通信人家园
标题:
关于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