Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux-kernel – ICMP数据包的源和目标端口大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我正在Netfilter中编写数据包过滤器.有没有办法可以获得ICMP数据包的源端口和目的端口? 我从sk_buff结构中提取了icmp_hdr.但我没有看到来自源地址和目的地址的任何属性? 端口号是TRANSPORT层识别哪个数据包属于终端系统中的哪个进程的方式. 他们习惯于让流程到流程的交付工作;但从功能的角度来看,ICMP不是传输层协议. ICMP是网络层的消息传递协议(在IP之上; but
我正在Netfilter中编写数据包过滤器.有没有办法可以获得ICMP数据包的源端口和目的端口?

我从sk_buff结构中提取了icmp_hdr.但我没有看到来自源地址和目的地址的任何属性

解决方法

端口号是TRANSPORT层识别哪个数据包属于终端系统中的哪个进程的方式.
他们习惯于让流程到流程的交付工作;但从功能的角度来看,ICMP不是传输层协议.

ICMP是网络层的消息传递协议(在IP之上; but not really in the transport layer),它有很多责任,但它们都没有与进程到进程交付有关,因此有一个端口号不会有道理.

一个例子,当你ping(ping使用ICMP echo消息)一个IP地址时,你真正在ping哪个端口?
答案是:没有端口,你正在ping全站,看看它是否还活着.

现在,ICMP有很多types of messages;如果要过滤掉例如ping消息,则应检查字段类型,如果它等于ICMP_ECHO,则可以返回NF_DROP.

大佬总结

以上是大佬教程为你收集整理的linux-kernel – ICMP数据包的源和目标端口全部内容,希望文章能够帮你解决linux-kernel – ICMP数据包的源和目标端口所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。