通过Ping的实现,总结如下:
1.Ping可以返回最多9个路由地址,超过9个的可以通过traceroute实现,利用的是ip协议的ttl字段。
2.获取路由地址的主机名时gethostbyaddr大部分情况下都会返回NULL,并且这部分很耗时,没必要时最好去掉。
3.Ip头部包含两个长度,一个是头部长度,另一个是数据长度,当时搞混了,一直提示获取字节数很少。头部长度决定了,头部最多不能超过60个字节,路由路径不超过9个;数据长度决定了IP包所带的分组数据不能超过65K,及时有65K的数据大部分情况下都会被分片。
4.ICMP有两个协议,向前兼容。。这让人思考,每次定义协议时一定要思考新建版本时的兼容性以及向后扩展性。
5.可以通过IP协议的DF字段来发现MTU(最大传输单元)
本文详细解析了Ping的工作原理,包括返回最多9个路由地址的方法、获取路由地址主机名的注意事项、IP头部与数据长度的理解、ICMP协议的使用及MTU的发现过程。同时强调了协议设计时的兼容性和扩展性考虑。
4416

被折叠的 条评论
为什么被折叠?



