第十一章 ICMP:Internet控制报文协议
来源:互联网 发布:python正则表达式匹配 编辑:程序博客网 时间:2024/05/10 13:49
一、ICMP是传输层的协议,和TCP、UDP等传输层协议同级
二、ICMP请求在ICMP type和code字段里有一个常量标识,同时对应PRC_也有一个对应常量,用来识别差错类型。
三、同时,对于ICMP字段,会有一个icmp_input函数进行对相应的ICMP报文进行处理。而且在插口层,对于UDP和TCP,也会有不同的函数来进行处理,udp_notify函数和tcp_notify函数、tcp_quench函数
四、对于每一种ICMP报文,都会被存放在一个叫做icmp结构中,里面定义了通用的icmp的一些信息,同时用union结构来定义不同ICMP报文专有的信息,(结构中有type,code,chsum,依赖于type和code的两个union结构)
五、ipintr函数调用指向icmp_input函数的函数指针,从而是icmp_input函数来对ICMP报文进行处理。icmp_input函数处理过程中,会根据情况将ICMP差错提交给传输协议,将ICMP差错应答和未知报文提交给rip_input函数,再由rip_input函数提交各相应的应用程序。而对于ICMP应答,是在icmp_input函数内部处理的。
六、icmp_input函数的处理流程:
- 1.首先分配三个静态结构,然后验证收到的ICMP报文是否合法
- 2.在函数中的switch语句中,会对不同的ICMP字段进行处理,如差错字段、请求字段、重定向字段及回答字段。对于差错字段,程序会将其映射在一个协议无关的代码集上,以PRC_开头的那些,然后如果识别出了type和code,icmp_input函数就跳转到deliver段,提交给传输层,然后调用pr_ctliput函数来进行进一步的处理。在处理请求字段中,在本函数中设置好回复type后转到reflect字段调用icmp_reflect函数请求,如果不能识别type,就交给raw字段中的rip_input函数进行处理。回答字段是不在icmp_input函数中进行处理的。
七、ICMP的输出处理:
第258页的图11-29将的很清楚
0 0
- 第十一章 ICMP:Internet控制报文协议
- 第五章 internet控制报文协议icmp
- ICMP:Internet控制报文协议
- ICMP:Internet控制报文协议
- ICMP:internet控制报文协议
- ICMP:Internet控制报文协议
- ICMP:Internet控制报文协议
- ICMP:Internet控制报文协议
- ICMP Internet 控制报文协议
- ICMP:Internet控制报文协议
- ICMP:Internet 报文控制协议
- TCP/IP 第6章 ICMP internet 控制报文协议
- (6)ICMP:Internet控制报文协议
- ICMP Internet控制报文协议(四)
- ICMP——Internet控制报文协议
- 6、ICMP:Internet控制报文协议
- 6 ICMP:Internet控制报文协议
- 《TCP/IP协议详解》第六章 ICMP:Internet控制报文协议
- 基于tensorflow的MNIST手写数字识别
- Google示例APP,教你实现Tab+ViewPaper,教你实现Drawer导航
- iOS点击链接跳转到App Store上的应用内
- RecyclerView的使用
- 带你玩转Visual Studio——调用约定与(动态)库
- 第十一章 ICMP:Internet控制报文协议
- sql查询语句
- 【十】DOM(一)
- java实现归并排序
- 餐馆(动态规划)
- 标准贴片电阻电容的焊接方法
- js中的动画效果
- Java Web中常见乱码问题的分析与解决
- 互联网常见用于(50%)