当前位置: 技术问答>linux和unix
为什么收到ip包
来源: 互联网 发布时间:2016-04-27
本文导语: 用sockfd = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)套接字 然后 sendto(sockfd, buf, len, 0, (struct sockaddr *)dstaddr, dstlen) 发送一个icmp包 接受的时候为什么read(sockfd, buf, sizeof(buf)) 为什么接受的字符串要转化为ip包。 我觉的套...
用sockfd = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)套接字
然后 sendto(sockfd, buf, len, 0, (struct sockaddr *)dstaddr, dstlen) 发送一个icmp包
接受的时候为什么read(sockfd, buf, sizeof(buf)) 为什么接受的字符串要转化为ip包。
我觉的套接字已经指定为ICMP协议,所以我觉的收到的时候也应该是一个ICMP包。 发的时候内核给加的ip头,收的时候怎么不是icmp包呢?
然后 sendto(sockfd, buf, len, 0, (struct sockaddr *)dstaddr, dstlen) 发送一个icmp包
接受的时候为什么read(sockfd, buf, sizeof(buf)) 为什么接受的字符串要转化为ip包。
我觉的套接字已经指定为ICMP协议,所以我觉的收到的时候也应该是一个ICMP包。 发的时候内核给加的ip头,收的时候怎么不是icmp包呢?
|
---------------------ICMP 数据包--------------------------
发送端地址 : 210.42.241.6
接收端地址 : 122.206.201.64
类型 : 0 (ICMP 响应)
IP头
版本 : 4
首部长度 : 5 DWORDS or 20 Bytes
服务 : 0
总长度 : 60 Bytes(Size of Packet)
标识符 : 27596
Reserved ZERO Field : 0
Dont Fragment Field : 0
More Fragment Field : 0
生存时间 : 123
协议 : 1
校验和 : 52404
发送地址 : 210.42.241.6
接收地址 : 122.206.201.64
编码 : 0
校验和 : 20316
标识符 : 512
序列号 : 1024
IP头数据
45 00 00 3C 6B CC 00 00 7B 01 CC B4 D2 2A F1 06 E..
发送端地址 : 210.42.241.6
接收端地址 : 122.206.201.64
类型 : 0 (ICMP 响应)
IP头
版本 : 4
首部长度 : 5 DWORDS or 20 Bytes
服务 : 0
总长度 : 60 Bytes(Size of Packet)
标识符 : 27596
Reserved ZERO Field : 0
Dont Fragment Field : 0
More Fragment Field : 0
生存时间 : 123
协议 : 1
校验和 : 52404
发送地址 : 210.42.241.6
接收地址 : 122.206.201.64
编码 : 0
校验和 : 20316
标识符 : 512
序列号 : 1024
IP头数据
45 00 00 3C 6B CC 00 00 7B 01 CC B4 D2 2A F1 06 E..
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!