网站大量收购闲置独家精品文档,联系QQ:2885784924
  1. 1、本文档共57页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.ICMP教程

网络协议分析与实现;内容;ICMP的基本原理;ICMP报文格式;1、ICM报文类型;差错报告报文的特点 数据区包括发生差错的IP数据报首部及数据的前8个字节数据,能够使源主机找出差错的原因,以便采取差错控制。 只向源主机报告差错,不能向中间路由器报告差错。 只报告差错,不负责纠正错误,纠错由高层协议处理。 只作为一般数据进行传输,不享受特别的优先级可靠性。;以下情况不产生ICMP差错报告报文 对于携带ICMP差错报文的数据报,不再产生ICMP差错报文。 对于分片的数据报,如果不是第一个分片,则不产生ICMP差错报文。 对于具有多播地址的数据报,不产生ICMP差错报文。 对于具有特殊地址(如127.0.0.0或0.0.0.0)的数据报,也不产生ICMP差错报文。;1. ICMP报文类型;(1)目的地不可达报文;(1)目的地不可达报文;(1)目的地不可达报文;(2)超时报文;(3)参数错误(问题)报文;ICMP控???报文——(1)源点抑制报文;ICMP控制报文——(1)源点抑制报文;ICMP控制报文——(2)改变路由(重定向)报文;ICMP控制报文——(2)改变路由(重定向)报文;ICMP请求/应答报文;(1)回送(ECHO)请求/应答报文;(2)时间戳请求/应答报文;(2)时间戳请求/应答报文;(2)时间戳请求/应答报文;(3)地址掩码请求/应答报文;(4)路由器询问/通告报文;(4)路由器询问/通告报文;2. ICMP的应用举例 ;Ping 举例;Ping 举例;Ping 举例;Ping 举例;Ping 举例;Ping 举例;(2)路由跟踪Tracerout程序;Tracert 举例;Page *;说明;Tracert 举例;Tracert 举例;ICMP报文结构的实现;ICMP软件整体结构;ICMP输入处理;;001:/* icmp_in.c 文件 * 003:#include conf.h 004:#include kernel.h 005:#include network.h 006:#include bufpool.h 008:/* 009: * icmp_in:处理收到的icmp包 010: * struct netif *pni:收到相关报文的接口描述符 011: * struct ep *pep:输入的以太网帧 012: * 返回值:经过处理返回OK,报文有错返回SYSERR 013: * 014: */ 015:int icmp_in(struct netif *pni, struct ep *pep) 016:{ 017: struct ip *pip; 018: struct icmp *pic; 019: int i, len; 020: pip = (struct ip *)pep-ep_data; 021: pic = (struct icmp *) pip-ip_data; 022: len = pip-ip_len - IP_HLEN(pip); 023: 024: if (cksum(pic, len 1)) 025: { 026: IcmpInErrors++; 027: freebuf(pep); 028: return SYSERR; 029: } 031: IcmpInMsgs++; ;033: switch (pic-ic_type) 034: { 035: case ICT_ECHORQ: 036: IcmpInEchos++; 037: return icmp(ICT_ECHORP, 0, pip-ip_src, pep, 0L); 038: case ICT_MASKRQ: 039: IcmpInAddrMasks++; 040: 041: if (!gateway) 042: { 043: freebuf(pep); 044: return OK; 045: } 046: pic-ic_type = (char) ICT_MASKRP; 047: netmask(pic-ic_data, pip-ip_dst); 048: break; 049: case ICT_MASKRP: 050: IcmpInAddrMaskReps++; 051: 052: for (i = 0; i Net.nif; ++i) 053:

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档