- 1、本文档共57页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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:
您可能关注的文档
最近下载
- 驼峰500重载无人机产品介绍.pdf VIP
- 建筑与市政施工现场安全卫生与职业健康通用规范培训课件-(2).pptx VIP
- 2025年社会工作者《初级综合能力》考点速记20页.pdf
- 联勤保障部队第九四〇医院面向社会招聘93人招聘笔试备考试题及答案解析.docx VIP
- SYNSPEC PM型颗粒物在线监测系统说明.ppt
- 从去思碑到言行录-元代士人的政绩颂扬、交游文化与身分形.pdf
- 赢利-未来10年的经营能力-读后感.pptx VIP
- 一次函数存在性问题(菱形).docx VIP
- 肠内营养并发症的预防与管理肠道感染的措施.pptx
- 2024年2月贵州省2024届高三大联考英语试卷(含答案).pdf VIP
文档评论(0)