互联网设计的主旨是隐藏底层网络技术,因此数据报的大小与物理网络限制越接近传输的资源利用率越高。TCP/IP选择了一种初始数据报大小的机制,在MTU较小的网络上把长数据报划分成更小的部分。此划分的过程称为分片,划分出来的小块称为数据报片。
分片通常由路由器来完成。分片规则:选择最接近MTU的8倍数的八位组。不一定能保证能把数据报分成大小相同的片,组后一片往往比其他片小。
在TCP/IP互联网中,一旦数据报分片后,每片都作为独立的数据报传输,直到到达目的站主机后才对他们进行重组。
接收机器从收到初始片开始就启动一个重组计时器,若有分组到达之前超时,则丢弃所有已收到的分片。
数据报首部中的标识、标志、片偏移三个字段用来控制数据报分片与重组。
假如一个长数据报分片成n片,前n-1片数据报长度应该是等长的,最后一片与前面的等长或小于前面的分片长。末尾短的分片再加上标志位低2位的标志值,共同确认出分片是否接收完毕?分片传递的路径,到达的次序等都是无序的。以上确认分片接收完毕的确认方式冒似不严密!
所有在因特网上传送的数据都是以IP数据报为传送单位的,网络层的IP数据报传送到数据链路层就成为帧的数据部分,在帧的数据部分的前面和后面添加上首部和尾部,构成一个完整的帧。 每一种链路层协议都规定了帧的数据...
数据链路层协议有许多种,但是有三个基本问题则是共同的:封装成帧、透明传输和差错检测。

(1)封装成帧

所有在因特网上传送的数据都是以IP数据报为传送单位的,网络层的IP数据报传送到数据链路层就成为帧的数据部分,在帧的数据部分的前面和后面添加上首部和尾部,构成一个完整的帧。
每一种链路层协议都规定了帧的数据部分的长度上线——最大传送单元MTU(Maximum Transfer Unit)。

(2)透明传输

透明传输,即无论什么样的比特流都能够通过数据链路层传输。
帧的开始和结束标记是专门指明的控制字符,因此,所传输的数据中的任何8比特组合一定不允许和这些控制字符的编码相同,否则就会出现帧的定界错误。
解决这种矛盾的方法是,将数据中可能出现的控制字符的前面插入转义字符“ESC”,而在接收端再删除该转义字符,这种方法被称为字节填充。

(3)差错检测

现实的通信线路都不会是理想的,比特在传输过程中可能会产生差错:1可能会变成0,0也可能会变成1。为了保证数据传输的可靠性,必须采用各种差错检测措施。目前在数据链路层广泛使用的是
1数据链路层的以太网帧结构 ...