计算机网络————IP数据报的首部各字段详解(很重要)


目录

    • 1. IP数据报的介绍
    • 2. 首部的固定部分的各字段说明
      • 2.1 Version(版本)
      • 2.2 IHL(首部长度)
      • 2.3 Type of service(区分服务)
      • 2.4 Total Length(总长度)
      • 2.5 Identification(标识)
      • 2.6 Flag(标志)
      • 2.7 Fragment offset(片内偏移)
      • 2.8 Time to live(生存时间TTL)
      • 2.9 Protocol(协议)
      • 2.10 Header checksum(首部检验和)
      • 2.11 Source address 和 Destination address(源地址和目的地址)

1. IP数据报的介绍

  • 一个IP数据报由首部数据两部分组成。
  • 首部的前一部分是固定字段,共20字节,是所有IP数据报必须所具有的。
  • 在首部的固定部分的后面是一些可选字段,其长度是可变的。我们将详细介绍固定字段的各部分说明。

2. 首部的固定部分的各字段说明

2.1 Version(版本)

  • 占4bit,指IP协议的版本。目前的IP协议版本号为4(即IPv4)

2.2 IHL(首部长度)

  • 占4bit,IP包头长度,最小为5,最大为15,单位为word(32bit–4字节),因此一个IP首部长度的最大值为60字节。

2.3 Type of service(区分服务)

  • 1字节—占8bit,只有在使用区分服务时,这个字段才会起作用。一般情况下都不适用这个字段

2.4 Total Length(总长度)

  • 2字节—占16bit,指首部和数据之和的长度(即IP包总长度),单位为字节,因此数据报的最大长度为65535字节。总长度必须不超过最大传送单元MTU.

2.5 Identification(标识)

  • 2字节—占16bit,是一个计数器,用来产生IP包的标识

2.6 Flag(标志)

  • 占3bit, 目前只有后两位有意义。第一位无意义,(总的为第50位)第二位为DF,DF = 0时才允许分片;(总的为第51位)第三位为MF,MF = 1表示后面还有分片,MF = 0表示最后一个分片。

2.7 Fragment offset(片内偏移)

  • 占13bit,较长的分组在分片后,某片在原分组中相对位置,以8字节为基本单位

2.8 Time to live(生存时间TTL)

  • 占8bit,数据报在网络中可通过的路由器个数的最大值。

2.9 Protocol(协议)

  • 占8bit,协议字段,1表示ICMP;2表示IGMP;6表示TCP;17表示UDP

2.10 Header checksum(首部检验和)

  • 占16bit,该字段指检验数据报的首部,不检验数据部分

2.11 Source address 和 Destination address(源地址和目的地址)

  • 源地址和目的地址都各自占用4字节—32bit

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

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

相关文章

http学习笔记3

第 11 章 Web 的攻击技术 11.1 针对 Web 的攻击技术 简单的 HTTP 协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击的对象。应用 HTTP 协议的服务器和客户端,以及运行在服务器上的 Web 应用等资源才是攻击目标。目前,来自互联网的攻…

Python爬虫——scrapy_多条管道下载

定义管道类(在pipelines.py里定义) import urllib.requestclass DangDangDownloadPipelines:def process_item(self, item, spider):url http: item.get(src)filename ../books_img/ item.get(name) .jpgurllib.request.urlretrieve(url, filename…

js 小程序限流函数 return闭包函数执行不了

问题: 调用限流 ,没走闭包的函数: checkBalanceReq() loadsh.js // 限流 const throttle (fn, context, interval) > {console.log(">>>>cmm throttle", context, interval)let canRun…

django中使用ajax发送请求

1、ajax简单介绍 浏览器向网站发送请求时 是以URL和表单的形式提交的post 或get 请求,特点是:页面刷新 除此之外,也可以基于ajax向后台发送请求(异步) 依赖jQuery 编写ajax代码 $.ajax({url: "发送的地址"…

第十五课、Windows 下打包发布 Qt 应用程序

功能描述:讲解了 Windows 下打包发布 Qt 应用程序的三种方法,并对比优缺点 一、利用 windepolyqt 工具打包发布 Qt 提供了一个 windeployqt 工具来自动创建可部署的文件夹。 打包发布流程: 1. 新建一个文件夹,将编译后的可执行…

无涯教程-PHP - 循环语句

PHP中的循环用于执行相同的代码块指定的次数。 PHP支持以下四种循环类型。 for - 在代码块中循环指定的次数。 while - 如果且只要指定条件为真,就会循环遍历代码块。 do ... while - 循环执行一次代码块&#xf…

【解析postman工具的使用---基础篇】

postman前端请求详解 主界面1.常见类型的接口请求1.1 查询参数的接口请求1.1.1 什么是查询参数?1.1.2 postman如何请求 1.2 ❤表单类型的接口请求1.2.1 复习下http请求1.2.2❤ 什么是表单 1.3 上传文件的表单请求1.4❤ json类型的接口请求 2. 响应接口数据分析2.1 postman的响…

JVM详解

文章目录 一、JVM 执行流程二、类加载三、双亲委派模型四、垃圾回收机制(GC) 一、JVM 执行流程 程序在执行之前先要把java代码转换成字节码(class文件),JVM 首先需要把字节码通过一定的方式 类加载器(Clas…

数字孪生助力智慧水务:科技创新赋能水资源保护

智慧水务中,数字孪生有着深远的作用,正引领着水资源管理和环境保护的创新变革。随着城市化和工业化的不断推进,水资源的可持续利用和管理愈发显得重要,而数字孪生技术为解决这一挑战提供了独特的解决方案。 数字孪生技术&#xf…

ByteV联合“智农”打造的数字孪生高标准农田,助力乡村振兴!

ByteV联合“智农”打造的数字孪生高标准农田,不仅要让粮食稳产、增产,更要对土壤肥力进行改良和提升。不仅能够实现科技引领农业发展,更在智慧农业的基础上实现一站式托管,真正做到技术提升、5G引领、建后管护的闭环管理。让高标准…

无服务器架构发布啦!

导读Serverless 1.15.2 已发布。The Serverless Framework (无服务器架构)允许你自动扩展、按执行付费、将事件驱动的功能部署到任何云。 目前支持 AWS Lambda、Apache OpenWhisk、Microsoft Azure,并且正在扩展以支持其他云提供商。 Serverless 降低了…

【c语言】五子棋(EasyX图形库+背景音乐)

大家好,有没有觉得写了好多c语言代码,面对的都是黑框框控制台,当我们学习了基础的c语言知识,和EasyX图形库后,终于可以和黑框框saygoodbye,今天要分享给大家的是小游戏五子棋,跟着小张一起学习吧 EasyX图形…

opencv-gpu版本编译(添加java支持,可选)实现硬解码

目录 opencv gpu版本编译,实现硬解码,加速rtsp视频流读取1、准备文件2、复制 NVCUVID 头文件到 cuda 安装目录 include3、安装相关依赖4、 执行cmake5、编译安装6、测试 opencv gpu版本编译,实现硬解码,加速rtsp视频流读取 前置条…

复习3-5天【80天学习完《深入理解计算机系统》】第七天

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

git创建分支和合并分支

1.创建分支 git创建分支只需要使用switch 命令就行: git switch -c 分支名 创建分支并切换到该分支 后面括号里面的内容发生改变就是修改了分支 。 然后想要合并分支就在 创建的分支中 进行提交修改的内容,还是通过:add 命令和commit命令…

6.链路追踪-Zipkin

链路追踪(Distributed Tracing)是一种用于监视分布式应用程序的技术,通过收集和展示分布式系统中不同组件之间的调用和交互情况,帮助开发人员和运维团队理解系统中的请求流程、性能瓶颈和异常情况。 1.Zipkin Zipkin 是一个开源的…

(三)行为模式:4、迭代器模式(Iterator Pattern)(C++示例)

1、迭代器模式(Iterator Pattern)含义 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中各个元素,而不暴露该对象的内部表示。【DP】 通过使用迭代器模式,可以将遍历算法与集合对象解耦…

C#程序变量统一管理例子 - 开源研究系列文章

今天讲讲关于C#应用程序中使用到的变量的统一管理的代码例子。 我们知道,在C#里使用变量,除了private私有变量外,程序中使用到的公共变量就需要进行统一的存放和管理。这里笔者使用到的公共变量管理库划分为:1)窗体;2)…

一“码”当先,PR大征集!2023 和RT-Thread一起赋能开源!

活动地址:https://club.rt-thread.org/ask/article/3c7cf7345ca47a18.html 活动介绍 「一“码”当先,PR大征集!」是一项为了鼓励开发者积极参与开源软件开发维护的活动。 你可在Github RT-Thread( https://github.com/RT-Thread …

Unity的TimeScale的影响范围分析

大家好,我是阿赵。 这期来说一下Unity的TimeScale。 一、前言 Unity提供了Time这个类,来控制时间。其实我自己倒是很少使用这个Time,因为做网络同步的游戏,一般是需要同步服务器时间,所以我比较多是在使用System.Date…