欢迎来到天天文库
浏览记录
ID:37788397
大小:82.00 KB
页数:10页
时间:2019-05-31
《网络实验指导----ICMP协议的分析与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验:ICMP协议的分析与实现[实验目的]分析ICMP报文,理解ICMP协议在Internet网中的具体应用及其实现原理,深入了解TCP/IP网络的容错控制;学会运用网络套接字Winsock开发网络通信程序。[实验内容]使用VisualStudioC++6.0和网络接口套接字Socket进行Windows环境下的网络编程,运用原始嵌套字RAW_SOCKET从IP层开始构造整个ICMP报文,通过ICMP协议所提供的回送请求(echorequest)和回送应答(echoreply)这两种报文实现检测目的站的可达性与状态。1.IP报头、ICMP报文的基本描述IP协议并不能保
2、证绝对的可靠,所以就设计了ICMP协议,进行差错报告.ICMP消息使用IP头作为基本控制.IP头的格式如下:012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
3、Version
4、IHL
5、TypeofService
6、TotalLength
7、+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
8、Identification
9、Flags
10、Fragme
11、ntOffset
12、+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
13、TimetoLive
14、Protocol
15、HeaderChecksum
16、+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
17、SourceAddress
18、+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
19、DestinationAddress
20、+-+-+-+-+-+-
21、+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Version=4IHLInternet头长TypeofService=0TotalLengthIP包的总长度Identification,Flags,FragmentOffset用于IP包分段TimetoLiveIP包的存活时长ProtocolICMP=1HeaderChecksum头校验和(检查整个IP报头)Addresses发送Echo消息的源地址是发送Echoreply消息的目的地址,相反,发送Echo消息的目的地址是发送Echoreply消息的源地址.1
22、0Echo或EchoReply消息格式如下:012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
23、Type
24、Code
25、Checksum
26、+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
27、Identifier
28、SequenceNumber
29、+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
30、+-+-+-+-+-+-+
31、Data
32、+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Typeecho消息的类型为8echoreply的消息类型为0.Code=0Checksum为从TYPE开始到IP包结束的校验和,也就是校验整个ICMP报文Identifier如果code=0,identifier用来匹配echo和echoreply消息SequenceNumber如果code=0,identifier用来匹配echo和echoreply消息功能描述:收到echo消息必须回应echore
33、ply消息.identifier和sequencenumber可能被发送echo的主机用来匹配返回的echoreply消息.例如:identifier可能用于类似于TCP或UDP的port用来标示一个会话,而sequencenumber会在每次发送echo请求后递增.收到echo的主机或路由器返回同一个值与之匹配2数据结构(1)IP报头格式//定义IP首部typedefstruct_iphdr{unsignedcharh_lenver;//4位IP版本号+4位首部长度unsignedchartos;//8位服务类型TOSunsignedshortto
此文档下载收益归作者所有