原始套接口编程-Ping总结

通过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总结)