ipv6和ipv4(1)

20174年7月5日

参考资料:

《Linux高性能服务器编程》       

linux-2.6.32源代码

《TCP/IP详解》(卷一)

         网络编程最重要的一个环节就是要理清TCP/IP传输协议栈。而协议栈的学习自然的少不了最关键的一个环节就是协议的分析。

首先是IPv4的首部信息:

如果涉及到编程在linux下/usr/include/netinet/ip.h中对首部字段有相关的定义。

         4位版本号(IPv4则值为4)

         4位首部长度(注意4位表示的最大值为15,而该字段用4字节表示一个字所有首部长度最大值为60这也说明了扩展部分【也就是选项部分】最大值为40个字节)

         8位服务类型

         16位总长度:整个IP数据报长度,以字节为单位。所以最大长度应该是65535字节。由于MTU的限制,超过MTU的部分将会涉及到分片。针对分片后面也会有相关的介绍。

         16位标识:唯一的标识一个主机发送的数据报,需要注明的是这个数值由系统开始随机分配,后面每发送一个数据报其值都会加1.

         3位标志:第一位保留,第二位DF表示禁止分片。如果该位设置则不能对数据包分片,如果数据包长度超过MTU则会直接丢弃

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值