雏鹰部落

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1798|回复: 8

MTU问题

[复制链接]
发表于 2013-1-29 16:15:36 | 显示全部楼层 |阅读模式
如图中所示,假设R1是一台服务器,R2和R3是路由器,R4是一台PC机,服务器和PC机的MTU都是1500,而R3的f0接口的MTU值时1450,那么当R1发送数据给R4的时候,IP包中的DF位为0的时候,路由器R3是不是会做分片处理这个数据包?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
发表于 2013-1-29 17:59:51 | 显示全部楼层
DF位表示是否分片。
DF=do not fragment
默认都是为0,表示分片。为1时,表示不分片。
正在和Jeff交流解答~
发表于 2013-1-29 18:22:46 | 显示全部楼层
1、PC到服务器端:
PC发起到服务器端的TCP SYN报文与服务器进行协商,TCP SYN报文经过R3出口时,路由器会将接口的MSS=1410(1450-TCP(20)-IP(20)=1410)与TCP报文中的MSS值1460(windows XP默认的是1500-20-20=1460)比较,取最小值为1410,服务器收到此TCP SYN报文时,查看其中的MSS值为1410,服务器端在后续发送数据时封装的最大TCP数据载荷为1410;
2、服务端到PC:
服务器发响应TCP SYN ACK报文给PC,在TCP SYN报文经过R2时,路由器R2会将接口的MSS值(1500-20-20=1460)与TCP报文中的MSS值1460(windows XP默认的是1500-20-20=1460)比较,取最小值为1460,PC在后续发送数据时封装的最大TCP载荷为1460;

PC在向服务器发送请求,作为服务器的被请求端,发出数据文件,需要封装成最大的MSS载荷传送(提高效率),在此MSS=1410,当数据包经过R2路由器时,数据包的MTU为1410+TCP(20)+IP(20)=1450,远远大于总公司的MTU=1500(默认),所以传送数据正常,如果从服务器端发起的访问到客户端PC,由于客户端接收到的TCP SYN报文中的MSS为1460,那么其封装的数据经过R3时数据包的MTU=1460+TCP(20)+IP(20)=1500大于R3路由器的接口MTU=1450,由于DF=0【分片】,所以数据包会被分片;
发表于 2013-1-29 18:26:04 | 显示全部楼层
Jeff. 发表于 2013-1-29 18:22
1、PC到服务器端:
PC发起到服务器端的TCP SYN报文与服务器进行协商,TCP SYN报文经过R3出口时,路由器会将 ...

哇塞,专业!
 楼主| 发表于 2013-1-30 08:45:37 | 显示全部楼层
Jeff. 发表于 2013-1-29 18:22
1、PC到服务器端:
PC发起到服务器端的TCP SYN报文与服务器进行协商,TCP SYN报文经过R3出口时,路由器会将 ...

那也就是说数据是在路由器上分片了,而不是路由器发送个回馈信息让服务器来分片发送数据包?
发表于 2013-1-30 09:20:03 | 显示全部楼层
不分白天黑夜 发表于 2013-1-30 08:45
那也就是说数据是在路由器上分片了,而不是路由器发送个回馈信息让服务器来分片发送数据包?

路由器上直接分片。
 楼主| 发表于 2013-1-30 10:52:35 | 显示全部楼层
Jeff. 发表于 2013-1-30 09:20
路由器上直接分片。

知道了,谢谢Jeff的解答!
发表于 2013-1-30 14:30:12 | 显示全部楼层
不分白天黑夜 发表于 2013-1-30 10:52
知道了,谢谢Jeff的解答!

客气,常来....
发表于 2013-1-31 09:55:46 | 显示全部楼层
出接口查看MTU,如果大于MTU,且设置为不分片,那么丢包。反之,分片。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|熊猫同学技术论坛|小黑屋| 网络工程师论坛 ( 沪ICP备09076391 )

GMT+8, 2024-5-3 09:36 , Processed in 0.077302 second(s), 19 queries , Gzip On.

快速回复 返回顶部 返回列表