杂网络方面

1. 数据包大小问题
        MTU: 链路层的最大传输单元(只包含数据,不包含链路层头部和尾部的18个字节,6字节mac 目的地址+6字节原地址+4字节type+4字节校验和) 
            Ethernet的MTU为1500字节
                    所以IP数据包的最大值1480字节 (1500 - 20个字节的头)
                    UDP数据包的最大值1472字节 (1480 - 8字节头部)
                    TCP数据包的最大值1460字节 (1480 - 20字节头部)

                IP分片:一旦上层的数据包超出MTU,IP层负责将数据包分片,将数据包拆分成多个分片

        MSS: 最大报文长度,tcp的选项,通过协商通信双方的最大MSS值(在sync过程中协商,两者的MSS的最小值),Ethernet的MSS通常1460字节(1500 - 20 - 20)  

        IPv4 最小重组缓冲区:576字节 - ip协议要求每个ip层实现需要有至少接受576字节大小的数据的能力(包含ip头部,  数据可以是in one piece或者in fragments to be reassembled) - rfc791 (所以网上说“在进行Internet的UDP编程时, 最好将UDP的数据长度控件在548字节(576-8-20)以内”,是由于可能对方的ip层实现仅支持缓冲576字节的数据)

        Ethernet数据帧最小数据:46字节(只包含数据,不包含数据链路层头部尾部18字节)
2. 

猜你喜欢

转载自blog.csdn.net/iamanda/article/details/122359534