2. ping实现
在完成本实验所有实验要求的情况下,实验分加1分(不会超过20分满分)。
在基础实验中,我们实现了ICMP协议的回复和不可达。 在附加实验中,我们希望同学们实现一个主动发起ICMP请求并监听回复的程序,就像PING一样(但是不需要实现PING的DNS解析功能)。 具体实验要求为:
你需要在icmp.h,icmp.c中添加相应的ICMP请求函数,该函数接收一个IP地址作为参数,发起ICMP请求。
你需要在main.c中每隔一秒调用一次ICMP请求函数,至少四次(不要使用sleep,因为这会阻塞主循环,你需要像ARP协议一样判断时间戳)
你需要记录每个ICMP请求的ID和时间戳,并在icmp_in函数中添加对ICMP应答的处理,按照PING的格式进行打印
你需要为每个ICMP请求维护一个生存时间(仿照ARP协议),在超过生存时间后不再继续等待回复,认为其已经超时
你需要在PING执行结束后打印统计信息,报告最小,最大和平均响应时间,及丢包率。
2.1. 实验提交
请提交实验报告。
实验报告需要给出设计方案、实验结果及分析。