Linux网络编程:原始套接字与IPv4数据报格式详解.pptx

Linux网络编程:原始套接字与IPv4数据报格式详解.pptx

原始套接字

IPv4数据报格式几点说明:首部长度是以32位(即4字节)为单位;16位的标识用于分片和重组;DF位(不分片);MF(还有片段);协议字段表示封装在IP报文中的上层协议,典型的有:ICMP(1)、IGMP(2)、TCP(6)、UDP(17);头部校验和只对IP头部(包括选项)计算,校验算法是标准的因特网校验和算法,即简单的16位反码求和。版本总长度(字节长度)标识片段偏移首部长度服务类型0DFMF存活时间(TTL)头部校验和协议32位源地址32位目的地址选项(如果有的话)数据首部数据0371531

IP数据报分片例子IP数据报是指IP层端到端的传输单元(在分片之前和重新组装之后),分组是指在IP层和链路层之间传送的数据单元。需要重申的是,任何传输层首部只出现在第1片数据中。

原始套接字(概述)原始套接字提供了一些使用tcp和udp协议不能实现的功能,如:使用原始套接字可以读/写ICMPv4、IGMPv4分组。如Ping程序,mroute程序等;使用原始套接字可以读/特殊的IPv4数据包,内核不处理这些数据报的IPv4协议字段。如大多数内核只处理ICMP、IGMP、TCP、UDP的数据报。但协议字段还可以为其他值,如OSPF直接使用IP协议,将IP数据报的协议字段设为89,此时,就必须有专门的程序通过原始套接字来处理它们;利用原始套接字还可以创建自定义的IP数据报首部

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档