1 实验:ICMP 协议的分析与实现 [实验目的] 分析ICMP 报文,理解ICMP 协议在Internet 网中的具体应用及其实现原理,深入了解TCP/IP 网络的容错控制;学会运用网络套接字Winsock 开发网络通信程序
[实验内容] 使用Visual Studio C++ 6
0 和网络接口套接字Socket 进行Windows 环境下的网络编程,运用原始嵌套字RAW_SOCKET 从IP 层开始构造整个ICMP 报文,通过ICMP 协议所提供的回送请求(echo request)和回送应答(echo reply)这两种报文实现检测目的站的可达性与状态
1.IP 报头、ICMP 报文的基本描述 IP协议并不能保证绝对的可靠,所以就设计了ICMP协议,进行差错报告
ICMP 消息使用IP头作为基本控制
IP头的格式如下: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL |Type of Service| Total Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification |Flags| Fragment Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time to Live | Protocol | Header Checksum | +-+-+-+-+-+-+-+-+-+-+