大佬教程收集整理的这篇文章主要介绍了Golang实现ping,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
ICMP报头从IP报头的第160位开始,即第20个字节开始(除非使用了IP报头的可选部分)。
Bits | 160-167 | 168-175 | 176-183 | 184-191 |
---|---|---|---|---|
160 | Type | Code | 校验码(checksum) | |
192 | ID | 序号(sequence) |
类型 | 代码 | 描述 |
---|---|---|
0 -Echo Reply | 0 | echo响应 (被程序ping使用) |
1 and 2 | 保留 | |
3 - 目的地不可到达 | 目标网络不可达 | |
1 | 目标主机不可达 | |
2 | 目标协议不可达 | |
3 | 目标端口不可达 | |
4 | 要求分段并设置DF flag标志 | |
5 | 源路由失败 | |
6 | 未知的目标网络 | |
7 | 未知的目标主机 | |
8 | 源主机隔离 | |
9 | 禁止访问的网络 | |
10 | 禁止访问的主机 | |
11 | 对特定的TOS 网络不可达 | |
12 | 对特定的TOS 主机不可达 | |
13 | 网络流量被禁止 | |
4 - ICMP拥塞控制 | 拥塞控制 | |
5 - 路径控制 | 重定向网络 | |
重定向主机 | ||
基于TOS 的网络重定向 | ||
基于TOS 的主机重定向 | ||
Alternate Host Address | ||
保留 | ||
8 -Echo Request | Echo请求 | |
9 - 路由器通告 | 路由建议 | |
10 - 路由器请求 | 路由器的发现/选择/请求 | |
11 - ICMP 超时 | TTL 超时 | |
分片重组超时 | ||
12 - 参数错误 | IP 报首部参数错误 | |
丢失选项 | ||
@L_197_20@的长度 | ||
13 - 时间戳请求 | 时间戳请求 | |
14 - 时间戳应答 | 时间戳应答 | |
15 - 信息请求 | 信息请求(已弃用) | |
16 - 信息应答 | 信息应答(已弃用) | |
17 - 地址掩码请求 | 地址掩码请求 | |
18 - 地址掩码应答 | 地址掩码应答 | |
19 | 因安全原因保留 | |
20 至 29 | Reservedfor robustness experiment | |
30 - Traceroute | 信息请求 | |
31 | 数据报转换出错 | |
32 | 手机网络重定向 | |
33 | Where-Are-You(originally meant forIPv6) | |
34 | Here-I-Am(originally meant for IPv6) | |
35 | @H_333_25@mobile Registration request||
36 | @H_333_25@mobile Registration Reply||
37 | Domain Name request | |
38 | Domain Name Reply | |
39 | SKIP Algorithm Discovery Protocol,Simple Key-Management for Internet Protocol | |
40 | Photuris,Security @R_279_4895@ | |
41 | ICMP for experimental mobility protocols such asSeamoby[RFC4065] | |
42 到 255 | 保留 |
@H_333_403@ @H_637_404@在使用Go语言的net.Dial函数时,发送echo request报文时,不用考虑i前20个字节的ip头;但是在接收到echo response消息时,前20字节是ip头。后面的内容才是icmp的内容,应该与echo request的内容一致。
以上是大佬教程为你收集整理的Golang实现ping全部内容,希望文章能够帮你解决Golang实现ping所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。