如何自己编写或获取ip报文
发布网友
发布时间:2022-05-02 08:37
我来回答
共1个回答
热心网友
时间:2023-10-14 03:40
IP报文格式如下图,IP报头前5块为必选,因此,IP包最少20字节:
以下为属性解说供参考:
Version(版本):标识了数据包的IP版本号,一共4位,0100表示IPV4,0110表示IPV6;
IHL(报头长度):表示32位字长的报头长度,一共4位;
TOS(服务类型):用来指定特殊的数据包处理方式。一共8位;Total Length(总长度):接收者用IP数据包总程度减去IP报头长度,就可以确定数据包数据有效载荷的大小;
Identification(标识符):通常与标记字段和分片字段一起用于数据包的分段,长度为16位;
Flags(标记字段):用于IP数据包分段标记使用,长度为3位;Fragment Offset(分段偏移):用于指明分段起始点相对于报头起始点的偏移量,可以使接受者按照正确的顺序重组数据包,长度为13位;
Time to Live(生存时间):用于防止数据包在网络上无休止地被传输,长度8位;
Protocol(协议):指定了数据包中信息的类型,长度8位;Header Checksum(报头校验和):针对IP报头的纠错字段;
Source Address(源地址):表示发送者数据包源点的IP地址,长度为32位;Destination Address(目标地址):表示发送者目标的IP地址,长度为32位;
Options(可选项):被添加在IP报头中,包括源点产生的信息和其它路由器加入的信息;可选字段,主要用于测试,长度可变;Loose Source Routing(松散源路由选择):可以指定数据包传递的路径;可以跨越中间多台路由器;Strict Soutce Routing(严格源路由选择):可以指定数据包传递的路径;不同于loose的是,数据包必须严格按照路由转发,如果下一跳不在路由表中,将会产生错误;
Record Route(记录路由):记录数据包离开每台路由的出接口,区别于traceroute的是,record可以记录来 回的路径,而traceroute只可以记录但方向的;Timestamp(时间戳):记录数据包到达设备的时间;Verbose(详细内容):查看数据包传送的详细内容;一般用于查看延迟;Padding(填充):通过在可选字段后面添加0来补足32位,为了确保报头长度是32的倍数。