ipv6和ipv4(1)

本文深入探讨了IPv4和IPv6的首部信息,包括版本号、首部长度、服务类型、总长度等关键字段,并介绍了IPv6如何解决IPv4地址耗尽问题。此外,还提到了IP模块的工作流程,强调了IPv6与IPv4在首部选项、固定长度及以太网封装上的区别,指出它们在操作系统中独立运行。
摘要由CSDN通过智能技术生成

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则会直接丢弃

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值