计算机网络第一章:概述
第一章:计算机网络概述
三种交换方式
电路交换

A发出通话请求,E接到响铃后接听开始通话,通话过程中将一直占用通讯线路,直到挂断线路才会被交换机释放给其他使用。
计算机之间的数据传送是突发式的,当使用电路交换来传送计算机数据时,其线路的传输效率一般都会很低,线路上真正用来传送数据的时间往往不到10%甚至1%。
分组交换

计算机之间通信是交换一个二进制串,名为报文。报文有时候很长,往往超过了交换节点的缓存大小,所以就被设计为分组交换。发送机H1发送的报文被分为若干组,每个组回加一个首部来区分报文分组情况。接收机H3根据首部将报文组合成完整报文。
分组交换有以下优点:
- 没有建立连接和释放连接的过程
- 分组传输过程中逐段占用通信链路,有较高的通信线路利用率。
- 交换节点可以为每一个分组独立选择转发路由,使得网络有很好的生存性。
这使得分组交换适合用于计算机的数据交换。
但是也有缺点:
- 分组首部会带来额外的传输开销
- 交换节点存储转发会带来一定的时延
- 通信量大时会造成网络堵塞
报文交换
报文交换是分组的前身,在这里报文被整个发送而不是分组,所以在交换节点接收到完整报文才会转发到下一个节点。这样的交换方式对交换节点的缓存空间要求很高而且会造成很大的传输时延。
横向对比

如果需要连续传输大量数据,适用电路交换,然而计算机的传输都是突发式的。
报文交换和分组交换不需要建立连接,即不需要预先分配通信资源,能够提升链路利用率。
将报文构造成若干个更小的分组进行分组交换,比将整个报文进行报文交换的时延要小,并且还可以避免太长的报文长时间占用链路,有利于差错控制,同时具有更好的灵活性。
计算机网络的性能指标
速率
比特(bit,记为小写b)是计算机中数据量的基本单位,一个比特就是二进制数字中的一个1或0。
数据量的常用单位有字节(byte,记为大写B)、千字节(KB)、兆字节(MB)、吉字节(GB)以及太字节(TB)。
注意:在这里的数据量的进率不是1024而是1000
速率:数据传输的速率,即每秒传输多少个比特,也被称为数据率或比特率。
在此基础上可以延伸为千比特/秒(kb/s)和兆比特/秒(Mb/s)等。
带宽
带宽在计算机网络中用来表示网络的通信线路所能传送数据的能力,即在单位时间内从网
络中的某一点到另一点所能通过的最高数据率。(也就是最高速率)
单位:b/s(kb/s,Mb/s,Gb/s,Tb/s)
但是数据传送速率=min[主机接口速率,线路带宽,交换机或路由器的接口速率]
因为发送过程中存在因速率不同带来的等待问题,所以我们只能取最小者,类似于短板效应。
吞吐量
吞吐量是指在单位时间内通过某个网络或接口的实际数据量。吞吐量常被用于对实际网络的测量,以便获知到底有多少数据量通过了网络。
吞吐量受网络宽带的限制。
吞吐量等于下载速率和上传速率的总和。
时延
时延是指数据从网络的一端传送到另一端所耗费的时间,也称为延迟或迟延。数据可由一个或多分组、甚至是一个比特构成。
时延分为发送时延,传播时延,排队时延等
值得一提的是,接收时延往往和发送时延同时进行,所以不单独计算。

如果将每个分组发送后,等到该分组被完全接收再发送下一分组会导致在传输时延过程中发送方处于空窗期,造成效率低下。所以这里只要分组一的第一个字节到达路由器,路由器就能够接收并处理它,链路不再被分组一占用,发送方就能够将分组二推到链路上传输。

例题:

这就涉及到一个问题,时延是发送时延主导还是传播时延主导。
时延带宽积
时延带宽积是传播时延和带宽的乘积。
可将其视为一个管道,管道的长度为传播时延,管道半径为带宽。


所以,发送的第一个比特到达主机B时,说明计算机已经发送了时延带宽积个比特。
往返时间
往返时间(Round-Trip Time,RTT)是指从发送端发送数据分组开始,到发送端收到接收端发来的相应确认分组为止,总共耗费的时间。
你可以使用ping www.bing.com来测试你与Bing网站的RTT往返时间。

利用率
分为链路利用率和网络利用率。
- 链路利用率是指某条链路有百分之几的时间是被利用的(即有数据通过)。完全空闲的链路的利用率为零。
- 网络利用率是指网络中所有链路的链路利用率的加权平均。
根据排队论可知,当某链路的利用率增大时,该链路引起的时延就会迅速增加。网络也是如此,通信量增大会导致排队时延增大。
令D0表示网络空闲时的时延,D表示网络当前的时延,那么在理想的假定条件下,可用下式来表示D、D0和网络利用率U之间的关系。
$$
D=\frac{D_0}{1-U}
$$
所以,过高的利用率会使得时延急剧增大。
丢包率
丢包率是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率。
可分为接口丢包率,网络丢包率,路径丢包率,节点丢包率,链路丢包率等。
分组丢失主要有以下两种情况:
- 分组在传输过程中出现误码,被传输路径中的节点交换机(例如路由器)或目的主机检测出误码而丢弃。
- 节点交换机根据丢弃策略主动丢弃分组。
丢包率能够反应网络拥塞情况,无拥塞时丢包率为0,轻度为1%-4%,重度为5%-15%。
三种计算机网络体系结构
国际标准化组织成立了一个专业组织提出了一个标准化模型,名为OSI参考模型,将网络的标准有力地统一起来,这是法律上国际标准。
但是OSI提出之时因特网已经颇具规模,所以其使用的TCP/IP参考模型也是体系之一,作为事实标准存在。
但是能够占领市场的才是标准,OSI的背后没有商业驱动力,而且协议复杂,层次划分不大合理。

每个层之间相互协作。

计算机网络技术是一个很抽象且复杂的问题,所以分层解决各个层面的问题是很有必要的。考虑到OSI和TCP两个模型的冲突,我们各取一部分设计一个参考模型来讲解计算机网络技术,模型如下:

分层应用实例
PC和服务器的通讯本质上是应用间基于网络的通信,这里是谷歌浏览器和Nginx应用的通信。
如上图,应用层浏览器生成HTTP请求报文并下放,运输层给HTTP请求报文加上TCP报文段,用于区分应用进程保证传输可靠性,下放,网络层将接受的TCP报文段添加一个IP首部,用于IP寻址和路由,下放,链路层将IP数据报添加一个首部和尾部,作用是MAC寻址和帧校验,就此封装称为帧。物理层不理解帧的结构,将帧视为比特流并转化为电信号通过网线转移到路由器(如果是以太网还需要加前导码首部来控制时钟信号)。
路由器接收到电信号后去掉前导码(如有),转化为帧上交,链路层去掉首部和尾部,上交。网络层根据IP数据包的首部中的目标IP地址在内置转发表中查找,决定从哪个接口转发数据表,并对某些数值(如生存时间TTL)修改,再下放,链路层和物理层分别加首尾和转化为电信号发送到Web服务器。
Web服务器接收到后,自下而上的顺序逐层解开数据包,得到HTTP报文后做出处理,生成对应的相应报文,随后层层封装发送回个人PC。
我希望能够记住这个过程,以后的章节都会根据这个流程展开。
计网专业术语
实体:指任何可发送或接收信息的硬件或软件进程。
对等实体:通信双方相同层次中的实体。
对等实体之间使用相同的协议。

协议:控制两个对等实体在“水平方向”进行“逻辑通信”的规则的集合。
协议有三个要素,语法,语义,同步。
- 语法:定义交换信息的格式
- 语义:定义通信双方要完成的操作
- 同步:定义通信双方的时序关系

服务:在协议的控制下,两个对等实体在水平方向的逻辑通信使得本层能够向上一层提供服务。
- 在同一系统中相邻两层的实体交换信息的逻辑接口称为服务访问点SAP,它被用于区分不同的服务类型。
- 帧的“类型”字段、IP数据报的“协议”字段,TCP报文段或UDP用户数据报的“端口号”字段都是SAP。

最后给用户提供服务。
实体看得见下层提供的服务,但并不知道实现该服务的具体协议。下层的协议对上层的实体是“透明”的。所谓透明,即玻璃,就是上层能透过它(协议)享受服务,但不会注意到玻璃(协议)本身的存在。
上层要使用下层所提供的服务,必须通过与下层交换一些命令,这些命令称为服务原语。
对等层次之间传送的数据包称为该层的协议数据单元(Protocol Data Unit,PDU)
同一系统内层与层之间交换的数据包称为服务数据单元(Service Data Unit,SDU)。

如果一时间没办法理解,没关系,放过去,这里只是概论课而已。
第一章:概论结束。