0223-IP 协议部分字段解释

news/2024/9/17 22:49:20/文章来源:https://www.cnblogs.com/jiangbo4444/p/18357130

环境

  • Time 2022-11-20
  • WSL-Ubuntu 22.04
  • Rust 1.65.0
  • pnet 0.31.0
  • tun-tap 0.1.3

前言

说明

参考:https://docs.rs/pnet/latest/pnet/index.html
参考:RFC 791

目标

上一篇已经看过了 IP 协议的一部分字段,这里继续了解剩下的部分。

main.rs

use pnet::packet::ipv4::Ipv4Packet;
use tun_tap::{Iface, Mode};fn main() -> std::io::Result<()> {let iface = Iface::without_packet_info("tun0", Mode::Tun)?;let mut buffer = vec![0; 1500];loop {let size = iface.recv(&mut buffer)?;let packet = Ipv4Packet::new(&buffer).unwrap();if packet.get_version() == 6 {println!("IPv6 packet, continue");continue;}// 第七八个字节,处理分片// 3 位的标志//  Bit 0: reserved, must be zero 第一位必须为 0//  可以分片还是不可以分片//  Bit 1: (DF) 0 = May Fragment, 1 = Don’t Fragment.//  是否还有其余分片还是最后一个分片//  Bit 2: (MF) 0 = Last Fragment, 1 = More Fragments.println!("Flags: {}", packet.get_flags());// 13 位的偏移,单位是 8 字节println!("Fragment Offset: {}", packet.get_fragment_offset());// 第九个字节,存活周期,为 0 则不被转发println!("Time to Live: {}", packet.get_ttl());// 第十个字节,下一级的协议类型println!("Protocol: {}", packet.get_next_level_protocol());// 第十一,十二个字节,头部校验和println!("Header Checksum: {}", packet.get_checksum());println!("length: {}, {:?}", size, &buffer[..size]);}
}

抓包结果

抓包并保存到文件:tcpdump -X -i tun0 -w tun0.pcap,然后通过 Wireshark 打开。

Wireshark

通过 Wireshark 能清楚看到 IP 层的信息。

程序输出

Flags: 2
Fragment Offset: 0
Time to Live: 64
Protocol: Icmp
Header Checksum: 2908
length: 84, [69, 0, 0, 84, 111, 53, 64, 0, 64, 1, 11, 92, 172, 24, 51, 244, 172, 24, 51, 243, 8, 0, 248, 133, 165, 217, 0, 1, 139, 235, 124, 99, 0, 0, 0, 0, 136, 125, 10, 0, 0, 0, 0, 0, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55]

总结

了解了网络层的 IP 协议,认识了其中几个字节的数据所代表的含义。

附录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/783313.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apifox 深度分析:为什么它是不可错过的 API 管理平台

无论是大型企业还是初创公司,高效的 API 管理都是确保业务顺利运行的重要环节。然而,随着项目规模的扩大和团队的壮大,API 的设计、开发、测试和文档管理往往变得越来越复杂。无论是大型企业还是初创公司,高效的 API 管理都是确保业务顺利运行的重要环节。然而,随着项目规…

通过这五个问题,带你深入了解中国式报表

一、什么是中国式报表? 中国式报表,顾名思义具有中国特色的报表,通常指的是中国企业/机构在财务和业务报告方面的特有风格和规范。二、中国式报表有什么特点? 一句话就可以概括中国式报表:结构复杂、数据量大的一种报表。 格式复杂:为了能够展示更为详尽的数据分类和汇总…

unity2022.3.9+Pico更换渲染管线后打包,人物材质不可显示问题

为了解决字体和场景闪烁问题吗,更换渲染管线 旧项目管线是URP 新的项目管线是内置管线 build in()内置管线需要设置两个地方,可以解决人物材质不显示问题 1.PICO-Stereo Rendering Mode 选择 Multi Pass 模式 2,Player-OtherSetting-Auto Graphics API勾选 (注:项目中…

变电站弱电系统集成常见设备

"名称" 规格型号质量技术标准 不间断电源 UPS 输入 220VAC 96VDC/输出 220VAC/容量≥20kVA蓄电池 " UPS 功能 6000W 13 度 1200 万毫安 立式/磷酸铁锂"开关柜储能电机 DC48V/永磁直流电动机开关柜储能电机 DC110V/永磁直流电动机EPS 逆变器 " …

猪脸识别、自动投喂!Apache DolphinScheduler还能做这些?

数字化转型提速中!传统农牧食品行业也寻求搭上数字化转型的快车,通过物联网、大数据、人工智能等现代信息技术,实现生产、加工、流通等环节的智能化和自动化,提高生产效率、优化资源配置、提升产品质量,并满足消费者对食品安全和可追溯性的需求。 在数字化浪潮的推动下,铁…

【YashanDB数据库】YashanDB如何回收表空间

确认表空间高水位线,是否有可回收空间。 select a.tablespace_name,a.high_water_mark,b.user_bytes,b.total_bytes from (SELECT tablespace_name, max(header_block+blocks) * 8192 AS high_water_mark FROM dba_segments WHERE tablespace_name = USERS GROUP BY tablespac…

支付宝当面付快速接入网页h5

支付宝当面付快速接入网页h5第一步开放平台申请 网页应用,下载 支付宝开放平台密钥工具 V2.0.3 选择生成【证书】【RSA2】 应用开发设置 【接口加签方式(密钥/证书)】 上传 ,私钥在本地已经生成,其他3个crt应用申请上传CSR文件.csr 后下载即可| appPrivateKey: appPu…

PbootCMS上传图片被压缩怎么解决

PbootCMS上传图片被压缩怎么解决pb默认是大于1000宽或者高的,自动压缩,所以图片质量损失了,想解决这个,直接打开根目录config文件夹下的config.php和core文件夹下的convention.php,然后找到ico => array(把max_width跟max_height参数调大即可。扫码添加技术【解决问题…

pbootcms网站sqlite转mysql工具转换数据库导入后,出现错误

sqlite转mysql工具转换数据库导入后,出现错误。这是因为工具对应的是2X的版本,3X存在错误,尤其是对默认值处理不好,可以将gtype的默认值删掉即可。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等。承…

PbootCMS默认搜索搜不到产品及其余内容怎么办

PbootCMS默认搜索搜不到产品及其余内容怎么办 这种是搜索search.html的scode限定了,可以修改search.html下面有个调用标签的scode为scode=0。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等。承接:企业…

PbootCMS邮件发送失败: Network is unreachable

PbootCMS邮件发送失败: Network is unreachable 这是服务器环境问题,请自行检查服务器,关闭linux和windows防火墙,ip和网关也检查下。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等。承接:企业仿站…

pbootcms url路径地址被挂马解决办法

pbootcms url路径地址被挂马解决办法,近期很多用户pbootcms的程序通过site收录,会发现很多异常URL地址,而且打开后正常或打不开,标题却显示异常,今天我们就来分享下如何屏蔽处理这些异常URL路径。 解决办法:1:升级程序到最高版本。 2:处理robots.txt 文件,禁止收录,修…