Linux中iphdr是什么意思,怎么样应用
Admin 2022-07-21 群英技术资讯 1361 次浏览
这篇文章主要讲解了“Linux中iphdr是什么意思,怎么样应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux中iphdr是什么意思,怎么样应用”吧!在linux中,iphdr是ip数据包的描述结构体;iphdr所在的头文件为“/usr/src/linux/include/linux/ip.h”,结构体是由一批数据组合而成的结构型数据,组成结构型数据的每个数据称为结构型数据的成员,其描述了一块内存区间的大小及解释意义。

本教程操作环境:linux7.3系统、Dell G3电脑。
iphdr,是一种计算机用语。是Linux下IP数据包的描述结构体。
所在头文件为/usr/src/linux/include/linux/ip.h,结构如下:
struct iphdr {
#if defined(__LITTLE_ENDIAN_BITFIELD) //小端模式下
__u8 ihl:4,//首部长度(4位)
version:4;//ip协议版本IPv4
#elif defined (__BIG_ENDIAN_BITFIELD) //大端模式下
__u8 version:4,
ihl:4;
#else
#error "Please fix <asm/byteorder.h>"
#endif
__u8 tos;//服务类型字段(8位)
__be16 tot_len;//16位IP数据报总长度
__be16 id;//16位标识字段(唯一表示主机发送的每一分数据报)
__be16 frag_off;//(3位分段标志+13位分段偏移数)
__u8 ttl;//8位数据报生存时间
__u8 protocol;//协议字段(8位)
__be16 check;//16位首部校验
__be32 saddr; //源IP地址
__be32 daddr; //目的IP地址
};
扩展知识
iphdr->version
版本(4位),目前的协议版本号是4,因此IP有时也称作IPv4。
iphdr->ihl
首部长度(4位):首部长度指的是IP层头部占32 bit字的数目(也就是IP层头部包含多少个4字节 – 32位),包括任何选项。由于它是一个4比特字段,因此首部最长为60个字节。普通IP数据报(没有任何选择项)字段的值是5 <==> 5 * 32 / 8 = 5 * 4 = 20 Bytes。
iphdr->tos
服务类型字段(8位): 服务类型(TOS)字段包括一个3 bit的优先权子字段(现在已被忽略),4 bit的TOS子字段和1 bit未用位但必须置0。4 bit的TOS子字段分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。4 bit中只能设置其中1 bit。如果所有4 bit均为0,那么就意味着是一般服务。
iphdr->tot_len
总长度字段(16位)是指整个IP数据报的长度,以字节为单位。利用首部长度字段和总长度字段,就可以知道 IP数据报中数据内容的起始位置和长度。由于该字段长16比特,所以IP数据报最长可达65535字节,总长度字段是IP首部中必要的内容,因为一些数据链路(如以太网)需要填充一些数据以达到最小长度。尽管以太网的最小帧长为46字节,但是IP数据可能会更短。如果没有总长度字段,那么IP层就不知道46字节中有多少是IP数据报的内容。
iphdr->id
标识字段(16位)唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就会加1。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
linux下grep命令是用来做什么呢?日常工作中,grep命令的使用是非常多的,grep命令是用来查找文件或标准输出中匹配的行,它的强大之处在于它支持正则表达式。因此这篇文章就和大家聊一聊linux下的grep命令。
Linux下内置了多种网络命令:1、ping,用来测试TCP/IP网络是否畅通或者测试网络连接速度;2、telnet,用于登录远程主机、对远程主机进行管理;3、netstat,用来打印Linux中网络系统的状态信息;4、ifconfig等。
linux运行c程序命令的方法:首先打开kali linux的终端,用vim工具打开文件并编写代码;然后输入【gcc test.cgcc】进行编译;最后再运行【test.out】在终端中输入【./test.out】。
linux中ipv6是能关闭的。关闭方法:1、利用vi编辑器打开“/etc/modprobe.conf”文件;2、在文档中添加“alias net-pf-10 off”和“alias ipv6 off”,保存退出后,重新启动系统即可。
两种查看方法:1、使用fuser命令,可以直接在Linux上查看指定端口被哪个进程占用了,语法为“fuser -v 80/tcp”,运行结果里会包含进程的名字和id。2、使用lsof命令,能根据指定端口找到对应的进程信息,语法为“lsof -i:80”,可以在输出结果中查看占用80端口的进程信息。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008