通信人家园

标题: 关于TCP/IP的分段和分片  [查看完整版帖子] [打印本页]

时间:  2015-1-22 15:51
作者: glvslg     标题: 关于TCP/IP的分段和分片

TCP/IP里,有很多地方阐述传输层的分段和网络层的分片,感觉很多地方都没讲清楚和彻底。以下谈一下个人的理解,求正解:

1、TCP分段是指在经三次握手后,收发双方建立起连接通道后,双方已经协商好并确定彼此要采用的MSS(最大分段长度B),MSS一般是按照接受方的XXX确定。然后把用户数据payload按照MSS大小进行分段,各个分段数据被逐一添加TCP报头后(20B),送给下一层网络层。

2、网络层接受到这些分段后,在添加端主机的IP报头前,按照主机所在的局域网链路层的MTU(最大传输单元B),进行分片,即当分段大小超过该局域网链路上的MTU的大小才会发生,并在分片后的每个分片前添加IP报头20字节。

3、当这些分片经由网络不同的路径,进行传输时,可能会跨越不通的链路,即不同的MTU,因此分片在路由器上不断被进行,注意,该项很消耗路由器的性能,因为数据报越小,产生CPU中断越频繁。

4、网络设备或主机的IP层,在进行分片时,会添加一个整体的报文进行分片的标记,每片的大小应该等于该链路上的MTU+40字节。

5、接受端的网络设备及主机的网络层,对分片按照标记序号,进行重组,并交给上一层传输层进行处理,传输层去掉各分片的IP报头,形成完整的分段。

请各位指正,多谢

时间:  2015-1-23 09:37
作者: water0x1y2z

“然后把用户数据payload按照MSS大小进行分段”,这个就不对啦,那岂不是所有报文都经过分段处理?
时间:  2015-1-26 15:09
作者: colourpen

为了避免频繁分段,一般MTU和MSS是对应的。所以TCP在协商时确定的MSS就低于MTU,这样下层就不用分段了。




通信人家园 (https://www.txrjy.com/) Powered by C114