网络协议

类比于人类活动,协议是一种预先规定好的行为方式。
在网络中,协议用于控制因特网信息的接受和发送。
网络协议定义了在两个或多个通信实体之间交换的报文的格式和顺序,以及报文发送和或接收一条报文或其他事件所采取的动作。

无连接和面向连接服务

概念

无连接服务

无连接协议中的分组被称为数据报(datagram),每个分组都是独立寻址,并由应用程序发送的。
从协议的角度来看,每个数据报都是一个独立的实体,与在两个相同的对等实体之间传送的任何其他数据报都没有关系,这就意味着协议很可能是不可靠的。也就是说,网络会尽最大努力传送每一个数据报,但并不保证数据报不丢失、不延迟或者不错序传输。
无连接服务仅有数据传输这个阶段
显而易见的,无连接服务有以下几个特点:

  1. 不提供数据的可靠传输
  2. 不提供流量控制(Traffic Control)
  3. 不提供拥塞控制

面向连接服务

面向连接的协议则维护了分组之间的状态,使用这种协议的应用程序通常都会进行长期的对话。记住这些状态,协议就可以提供可靠的传输。
比如,发送端可以记住哪些数据已经发送出去了但还未被确认,以及数据是什么时候发送的。如果在某段时间间隔内没有收到确认,发送端可以重传数据。接收端可以记住已经收到了哪些数据,并将重复的数据丢弃。如果分组不是按序到达的,接收端可以将其保存下来,直到逻辑上先于它的分组到达为止。
面向连接服务也要经过三个阶段:数据传数前,先建立连接,连接建立后再传输数据,数据传送完后,释放连接。
对比于无连接,面向连接显然有:

  1. 可靠的、按序提交 数据包传输服务
  2. 流量控制
  3. 拥塞控制

区别

其一:面向连接分为三个阶段,第一是建立连接,在此阶段,发出一个建立连接的请求。只有在连接成功建立之后,才能开始数据传输,这是第二阶段。接着,当数据传输完毕,必须释放连接。而面向无连接没有这么多阶段,它直接进行数据传输。
其二:面向连接的通信具有数据的保序性, 而面向无连接的通信不能保证接收数据的顺序与发送数据的顺序一致。
值得一提的是,无连接一般采用UDP,面向连接一般采用TCP。废话

数据交换

三种数据交换

报文交换

概念

报文交换(Message Switching)的单位是报文,报文携带有目标地址、源地址等信息。报文交换在交换结点采用的是存储转发(store-and-forward transmission)的传输方式。
报文交换有两种复用方式:频分复用与时分复用。

优点

  1. 无需建立连接: 报文交换不需要为通信双方预先建立一条专用的通信线路,不存在建立连接时延, 用户可以随时发送报文。
  2. 动态分配线路: 当发送方把报文交给交换设备时,交换设备先存储整个报文,然后选择一条合适的空闲线路,将报文发送出去。
  3. 提高线路可靠性: 如果某条传输路径发生故障, 可重新选择另一条路径传输数据, 所以提高了传输的可靠性。
  4. 提高线路利用率: 通信双方不是固定占有一条通信线路,而是在不同的时间一段一段地部分占有这条物理通道,因而大大提高了通信线路的利用率。
  5. 提供多目标服务: 一个报文可以同时发送往多个目的地址,这在电路交换中是很难实现的.

缺点

  1. 由千数据进入交换结点后要经历存储、转发这一过程,从而引起转发时延(包括接收报文、检验正确性、排队、发送时间等)
  2. 报文交换对报文的大小没有限制,这就要求网络结点需要有较大的缓存空间。

分组交换

概念

分组交换(Packet Switching)也采用了存储转发方式,分组交换限制了每次传送的数据块大小的上限,把大的数据块划分为合理的小数据块,再加上一些必要的控制信息(如源地址、目的地址和编号信息等) , 构成分组( Packet ) 。网络结点根据控制信息把分组送到下一结点, 下一结点接收到分组后,暂时保存下来并排队等待传输,然后根据分组控制信息选择它的下一个结点,直到到达目的结点。
虚电路网络与数据报网络属于此类。

优点

  1. 无建立时延。不需要为通信双方预先建立一条专用的通信线路,不存在连接建立时延,用户可随时发送分组。
  2. 线路利用率高。通信双方不是固定占有一条通信线路,而是在不同的时间一段一段地部分占有这条物理通路, 因而大大提高了通信线路的利用率。
  3. 简化了存储管理(相对千报文交换)。因为分组的长度固定, 相应的缓冲区的大小也固定,在交换结点中存储器的管理通常被简化为对缓冲区的管理, 相对比较容易。
  4. 加速传输: 分组是逐个传输, 可以使后一个分组的存储操作与前一个分组的转发操作并行,这种流水线方式减少了报文的传输时间。此外, 传输一个分组所需的缓冲区比传输一次报文所需的缓冲区小得多,这样因缓冲区不足而等待发送的几率及时间也必然少得多.
  5. 减少了出错几率和重发数据呈: 因为分组较短,其出错几率必然减少, 所以每次重发的数据证也就大大减小,这样不仅提高了可靠性,也减少了传输时延。

缺点

l. 存在传输时延。尽管分组交换比报文交换的传输时延少,但相对于电路交换仍存在存储一转发时延, 而且其结点交换机必须具有更强的处理能力。
2. 需要传输额外的信息批。每个小数据块都要加上源、目的地址和分组编号等信息,从而构成分组,使传送的信息杂大约增大5%~1 0%, 一定程度上降低了通信效率, 增加了处理的时第间,使控制复杂,时延增加。
3. 当分组交换采用数据报服务时,可能出现失序、丢失或重复分组, 分组到达目的结点时,要对分组按编号进行排序等工作,增加了麻烦。若采用虚电路服务, 虽无失序问题,但有呼叫建物立、数据传输和虚电路释放三个过程。

电路交换

概念

对于电路交换(Circuit Switching),在进行数据传输前,两个结点之间必须先建立一条专用(双方独占)的物理通信路径(由通信双方之间的交换设备和链路逐段连接而成),该路径能经过许多中间结点。该线路在整个数据传输期间一直被独占,直到通信结束后才被释放。因此, 电路交换技术分为三个阶段: 连接建立、数据传输和连接释放。
从通信资源的分配角度来看,“交换”就是按照某种方式动态地分配传输线路的资源。电路交换的关键点是: 在数据传输的过程中,用户始终占用端到端的固定传输带宽。

优点

  1. 通信时延小。由千通信线路为通信双方用户专用,数据直达,所以传输数据的时延非常小。当传输的数据拉较大时,这一优点非常明显。
  2. 有序传输。双方通信时按发送顺序传送数据, 不存在失序问题。
  3. 没有冲突。不同的通信双方拥有不同的信道,不会出现争用物理信道的问题。
  4. 适用范围广。电路交换既适用于传输模拟信号, 又适用千传输数字信号。
  5. 实时性强。通信双方之间的物理通路一旦建立,双方可以随时通信。
  6. 控制简单。电路交换的交换设备(交换机等)及控制均较简单。

缺点

  1. 建立连接时间长。电路交换的平均连接建立时间对计算机通信来说太长。
  2. 线路独占,使用效率低。电路交换连接建立后,物理通路被通信双方独占,即使通信线路空闲,也不能供其他用户使用,因而信道利用率低。
  3. 灵活性差。只要在通信双方建立的通路中的任何一点出了故院,就必须亟新拨号建立新的连接, 这对十分紧急和重要的通信是很不利的。
  4. 难以规格化。电路交换时,数据直达,不同类型、不同规格、不同速率的终端很难相互进行通信,也难以在通信过程中进行差错控制。

分组交换与电路交换的对比

分组交换的性能由于电路交换

电路交换 分组交换
电路交换不考虑需求,而预先分配传输链路的使用 分组交换按需分配链路使用

网络时延

分组转发时延

单节点时延

  1. 节点处理时延 Nodal Processing delay
  2. 排队时延 Queueing delay
  3. 传输时延 Transmission delay
  4. 传播时延 Propagation delay

计算方法

单节点时延

$$d_{nodal} = d_{proc} + d_{queue} + d_{prop}$$

端时延

$$d_{end-end} = N(d_{proc} + d_{trans} + d_{prop})$$
$$d_{trans} = L/R$$
上式中,L为分组长度,R为传输速度,N-1为链路中路由器个数。

排队时延 流量强度

$$La/R$$
上式中,a的单位是分组/秒,L是单组比特长度,R为传输速度,上式计算流量强度
$La/R$ -> 0: 分组稀疏到达,无队列,平均排队延迟极小接近于0
$La/R$ -> 1: 分组猝发到达,形成队列,队列长度迅速增加,排队延迟大幅增大
$La/R$ > 1: 输出队列平均位到达速率超过送走这些位的极限速率,输出队列持续增长,排队延迟趋于无穷大

计算机网络的体系结构

分层

原因

使复杂系统简化(分而治之)
易于维护、系统更新

协议分层

采用分层的方式组织协议及实现协议的网络硬件与软件。 \

分层的特点

每层都有对应的一系列协议
每层协议通过软件、硬件或者两者结合实现
每层协议可分布在网络的不同组件之中

分层的缺点

有些功能可嫩在不同层重复出现 这个缺点真扯淡
某些功能可能需要仅存在其他层的信息 那解耦啊

体系结构

各层交互的封装过程


运输层获得应用层报文(application-layer message)$M$,附上运输层头部信息$H_1$,构成运输层报文段(lransport-layer segment),$H_1$也许包括了:如允许接收端运输层向上向适当的应用程序交付报文的信息;如差错检测位信息,该信息让接收方能够判断报文中的比特是存在途中已被改变。
随后运输层向网络层提交该报文段,网络层则增加了网络层首部信息$H_2$,构成网络层数据报(network-layer dal唔ram),$H_2$包含如源和目的端系统地址等。
此数据报随后交付给链路层,链路层也增加了链路层首部信息,构成链路层帧(link-layer frame)。
在此过程中,每一个分组都有两种类型的字段:首部字段和有效载荷字段(payload filed)。

参考文献

计算机网络:自顶向下方法(原书第七版)
《计算机网络(第7版)》
2019年王道计算机网络考研复习指导
https://blog.csdn.net/tennysonsky/article/details/44455565
https://www.zhihu.com/question/289026686/answer/1199958592
https://blog.csdn.net/tennysonsky/article/details/44455565