最近刚学习完网络原理,遇到几个一直有疑惑的问题,希望大伙都来传道授业解惑阿……1.就是一个数据包的长度上限到底是多少阿?按照IP数据包格式的“数据包总长”部分的定义,一个数据包的长度可以达到65535字节,而根据数据祯的数据域部分可以达到1500字节,IP数据包本来就是要包装在祯的数据域部分,还要减去20字节的固定IP头长度。
2.第二个问题就是在发送端一个TCP数据段有时候会分为几个IP数据包,那么在接收端怎么来将数据包组装起来一个TCP数据段,IP包虽然有标识部分和MF来判断是否属于一个数据段和最后一个IP包。这个应该跟“粘包”和“封包” “拆包”没有什么关系把?

解决方案 »

  1.   

    用来标示最后一个包的MF位这个应该是用来IP分片组装的把。
    昨晚看了一篇文章,它算是解决我的问题:http://blogger.org.cn/blog/more.asp?name=binaryluo&id=13599
      

  2.   

    包和帧是不同的概念
    一个是网络层的 
    一个是链路层的链路层有一个MTU的概念(你打开设备管理器的网卡,在高级里可以看到这个东西)
    就是网络设备允许通过的最大数据包长度所有数据包的大小都不能超过这个长度
    而IP包的大小(65535)有可能超过这个长度所以就涉及到IP分片的问题数据包的大小是65535吧  那个协议里规定长度的16个宽度~ 
    回答完毕=。=
    不知道有没有错