• 孜孜
    2019-10-31
    既然IP会分片,那么tcp不分段可不可以?完全让IP搞定?如果可以这样做,如果一个IP分片丢失,会发生什么?

    作者回复: 如果一个IP分片丢失,整个IP报文的所有分片都得重传。
    IP分片性能低下,网络设备只负责分片不会重组,只有接收主机才会重组

    
     1
  • tongmin_tsai
    2019-10-01
    老师,假如发送方发送了3000字节报文,那么会分2个包发送,那接收端收到的报文,也是按照mtu分割收到的,那报文在tcp层会自动组装这2个报文吗?还是直接分别把这2个报文放操作系统缓冲区?如果直接放缓冲区,那报文的组装由应用层的应用程序自己来接收,自己组装吗?

    作者回复: 不是在TCP层自动组装,而是在IP层自动组装。由IP层分片的,必须要由IP层组装。IP层由操作系统实现,是放在操作系统缓冲区实现的。

    
     1
  • 一周思进
    2019-10-31
    什么情况下需要设置不允许分片,是不是都允许设置分片就行,这样数据包过中间小的MTU,也就不怕丢包了?

    作者回复: 测试路径最大MTU时会设置不允许分片

    
    
  • kissingers
    2019-09-22
    老师,MTU 概念中T是指发送,那么实际中比如以太网1500字节,那么能接收的包的大小也受这个值影响吗?

    作者回复: 是的

    
    
  • 加载中……
    2019-09-21
    陶老师好,我在用ping 8.8.8.8 -s 8000的时候,这边是mac, -s是制定报文大小的。
    在wireshark中看到是分成了几个fragment,控制台显示
    ping 8.8.8.8 -s 8000
    PING 8.8.8.8 (8.8.8.8): 8000 data bytes
    Request timeout for icmp_seq 0
    Request timeout for icmp_seq 1
    Request timeout for icmp_seq 2
    Request timeout for icmp_seq 3
    在wireshark中(没有设置任何过滤器)也没看到错误的报文
    是不是因为 中间路由器或什么设备直接把包丢弃了,并且也没有返回任何报文。所以我这边抓包看不到任何响应?
    展开

    作者回复: 8.8.8.8存在主机吗?内核要构造数据链路层,需要MAC地址,它会发广播ARP去问有没有8.8.8.8,如果没有,自然构造不出来。参见112课。

     1
    
  • 我在你的视线里
    2019-09-13
    在Linux或window中,有没有命令可以打印报文字段信息的?

    作者回复: 37课wireshark,87课tcpdump

    
    
我们在线,来聊聊吧