IPv4头部

IPv4头部

        互联网协议(IP)的核心部分,用于在互联网上传输数据包。IPv4头部包含多个字段,这些字段对于正确地路由和传递数据至目的地至关重要。IPv4头部通常是20字节长,但可以因选项字段的存在而更长。以下是IPv4头部各个字段的详细说明:

  1. 版本(Version) - 占用4位,这个字段指定IP协议的版本。对于IPv4,这个字段的值是4。

  2. 头部长度(IHL, Internet Header Length) - 占用4位,表示IP头部的长度,单位是32位字(4字节)。由于头部可能包含可变的选项字段,这个长度是必需的。最小值是5(即20字节),如果有选项,长度会更长。

  3. 服务类型(Type of Service,TOS) - 现在通常称为区分服务(Differentiated Services,DS)。最初用于指示服务质量,但现在主要用于区分服务代码点(DSCP)和显式拥塞通知(ECN)。占用8位。

  4. 总长度(Total Length) - 占用16位,指IP头部和数据总的字节长度。这个字段的最大值是65535字节。

  5. 标识(Identification) - 占用16位,用于唯一标识主机发送的所有数据报。在分段和重组过程中使用。

  6. 标志(Flags) - 占用3位,其中只有2位被使用。第一位是保留位(必须为0),第二位(DF, Don’t Fragment)用于控制是否允许分段,第三位(MF, More Fragments)指示是否还有更多分段。

  7. 片偏移(Fragment Offset) - 占用13位,用于标示数据包分片在原始数据包中的相对位置,使得接收方能正确地重组原始数据包。

  8. 生存时间(TTL, Time to Live) - 占用8位,表示该数据包在网络中可以通过的最大路由器数。每当一个路由器转发一个数据包时,它会将TTL减1。当TTL减至0时,路由器不再转发该数据包,并向数据包的源地址发送ICMP时间超时消息(Time Exceeded)通知源地址数据包已经被丢弃。

  9. 协议(Protocol) - 占用8位,用于指示封装在IP包中的数据使用何种协议,例如TCP是6,UDP是17。

  10. 头部校验和(Header Checksum) - 占用16位,用于检测数据在传输过程中的任何错误。这个校验和只覆盖头部,而不是整个数据包。

  11. 源IP地址(Source Address) - 占用32位,标示发送方的IP地址。

  12. 目的IP地址(Destination Address) - 占用32位,标示接收方的IP地址。

  13. 选项(Options) - 这是一个可选字段,长度可变。包含用于网络测试、路由选择等的附加信息。由于选项字段的加入,头部长度可能会超过20字节。

  14. 填充(Padding) - 用于确保IP头部长度是32位字的整数倍。仅在选项字段导致头部长度不是4字节倍数时使用。

IPv4头部结构和其中的字段设计,使得IP数据包能在复杂的网络环境中有效地被处理和转发。

域名->IP地址

在win11上通过icmp查看域名所对应的IP地址

命令:nslookup   www.weibo.com

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

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

相关文章

Ubuntu20.04版本命令行设置挂载磁盘,并设置开机自动挂载

最近部署应用 系统是Ubuntu20.4版本的Linux系统,加了数据盘,需要格式化后挂载,记录下: Linux 数据盘挂载(采用 parted 分区工具)-格式化为 ext4 1. 初始化 Linux 数据盘 挂载数据盘后或者随实例创建时一并创建的数据盘&#xff…

HarmonyOS4 页面路由

Index.ets: import router from ohos.routerclass RouterInfo {// 页面路径url: string// 页面标题title: stringconstructor(url: string, title: string) {this.url urlthis.title title} }Entry // 入口組件 Component struct Index {State message: string 页面列表// …

Linux 内核学习(1) --- 时钟子系统

标题 时钟系统说明时钟树Clock Provider时钟通用数据结构clock_device 的注册clock_provider DTS配置和注册clock consumer时钟系统总结 时钟系统说明 时钟就是 SoC 中的脉搏,由它来控制各个部件按各自的节奏跳动。比如,CPU主频设置,串口的波…

基于 FPGA 的 DE1-SoC 功率估算器

Introduction 功耗是当今许多技术都要考虑的重要因素。例如,手机生产商总是谈论他们在电源管理方面的改进,以及如何延长电池的使用寿命。功能与功耗之间的平衡是许多人都在研究的有趣课题。然而,当我们做实验时,我们很少会考虑我…

前端vue: 使用ElementUI适配国际化

i18n介绍 i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称。 前端国际化步骤 1、安装i18n插件 安装插件时候,注意必须指定版本号,不然安装会报错。 npm i vue-i1…

vue3 依赖-组件tablepage-vue3说明文档,列表页快速开发,使用思路及范例-汇总

github求⭐ vue3 依赖-组件tablepage-vue3说明文档,列表页快速开发,使用思路及范例(Ⅰ)配置项文档 vue3 依赖-组件tablepage-vue3说明文档,列表页快速开发,使用思路及范例(Ⅱ)搜索及数据获取配置项 vue3 依赖-组件tablepage-vue3说明文档,列表页快速开发,使用思路…

lv_micropython for ESP32-C3

一、开发平台说明 硬件:立创实战派ESP32-C3开发板。处理器ESP32-C3(内置400KB SRAM),无内置FLASH,2.0寸液晶(液晶驱动IC:ST7789,触屏驱动IC:FT6336),下载口UART0。 ESP…

AUTOSAR-COMStack-002_Update-Bit 机制

最近在工作中第一次使用了AUTOSAR COM Update-Bit功能,对使用了Update-Bit功能信号的使用,不能得心应手,发送信号比较顺利;测试接收信号功能时,对应的RTE接口始终不能接收到对应的模拟发送的信号值,后来翻阅…

掌握现代 C++:Lambda 在 C++14、C++17 和 C++20 中的演变

深入研究Lambda 在 C14、C17 和 C20 中的演变 一、背景二、C14 中的 Lambda2.1、默认参数2.2、模板参数2.3、广义捕获2.4、从函数返回 lambda 三、C17 中的 Lambda四、C20 中的 Lambda总结 一、背景 Lambda 是现代 C 最受欢迎的功能之一。自从在 C 11 中引入以来,它…

MySQL 嵌套查询

嵌套查询 是指在一个完整的查询语句之中,包含若干个不同功能的小查询;从而一起完成复杂查询的一种编写形式。包含的查询放在()里 , 包含的查询出现的位置: 位置含义SELECT之后把查询结果作为表头使用FROM…

聊一下HashMap的底层原理

HashMap作为我们熟悉的一种集合,今天就来聊一下它的原理、数据结构。 1.HashMap的数据结构 JDK1.7的数据结构是数组链表,JDK1.7还有人在用?不会吧…… 说一下JDK1.8的数据结构吧: JDK1.8的数据结构是数组链表红黑树。 数据结…

Android 14.0 SystemUI修改状态栏电池图标样式为横屏显示

1.概述 在14.0的系统rom产品定制化开发中,对于原生系统中SystemUId 状态栏的电池图标是竖着显示的,一般手机的电池图标都是横屏显示的 可以觉得样式挺不错的,所以由于产品开发要求电池图标横着显示和手机的样式一样,所以就得重新更换SystemUI状态栏的电池样式了 如图: 2.S…