当前位置: 首页 > news >正文

【计算机网络笔记】Internet网络的网络层——IP协议之IP数据报的结构

系列文章目录

什么是计算机网络?
什么是网络协议?
计算机网络的结构
数据交换之电路交换
数据交换之报文交换和分组交换
分组交换 vs 电路交换
计算机网络性能(1)——速率、带宽、延迟
计算机网络性能(2)——时延带宽积、丢包率、吞吐量/率
计算机网络体系结构概念
OSI参考模型基本概念
OSI参考模型中非端-端层(物理层、数据链路层、网络层)功能介绍
OSI参考模型中端-端层(传输层、会话层、表示层、应用层)功能介绍
TCP/IP参考模型基本概念,包括五层参考模型
网络应用的体系结构
网络应用进程通信
网络应用对传输服务的需求
Web应用之HTTP协议(涉及HTTP连接类型和HTTP消息格式)
Cookie技术
Web缓存/代理服务器技术
传输层服务概述、传输层 vs. 网络层
传输层——多路复用和多路分用
传输层——UDP简介
传输层——可靠数据传输原理之Rdt协议
传输层——可靠数据传输之流水线机制与滑动窗口协议
传输层——TCP特点与段结构
传输层——TCP的可靠数据传输
TCP连接管理(图解三次握手和四次挥手)
传输层——拥塞控制原理与解决方法
TCP的拥塞控制机制
网络层服务与核心功能
网络层服务模型——虚电路网络
网络层服务模型——数据报网络


  • 系列文章目录
  • Internet网络的网络层
  • IP协议
    • IP数据报(分组)结构


Internet网络的网络层

先来概括性地来看一些Internet网络层的主要内容:

Internet网络是一个数据报网络,它实现的主要功能是路由转发。主机或路由器这些网络设备根据路由协议或算法进行路径的选择,然后将这些路径信息存储在转发表(路由表),这个表就供IP协议去处理和转发分组。在处理的过程中难免会出现一些差错,这个时候,就涉及到把一些差错信息传输给一些路由器或主机,这时就需要另外一个非常重要的协议,即ICMP协议,它主要用于伴随IP协议的运行,提供一些差错报告或在路由器、主机之间提供一些“信令”信息的传输。所以ICMP协议从一定程度上可以看作是IP协议的伴随协议。也就是说一般实现IP协议的同时也要实现ICMP协议。

在这里插入图片描述


IP协议

IP数据报(分组)结构

IP数据报也称为IP分组。从结构上来说,主要包括两部分。分别是首部/头部数据部分。数据是IP协议封装的上层的或其它层协议的数据分组,比如说TCP段。

![

将IP数据报展开来看,头部包括很多域或者说字段。作为头部,又可以分为两部分,一部分是固定部分,另一部分是可变部分。固定部分就是说这部分在所有IP数据报中的大小都是固定的。这个固定的部分总共是20个字节(一行32位即4字节,固定部分占了5行,就是5*4=20字节)。可变部分的长度是不确定的。可以是0,个,也可以是多个。

在这里插入图片描述

下面来逐一看看一个IP数据报每个字段的主要含义:

  • 版本号字段占用4个比特位,标识IP协议的版本。如果是IPv4,就是4,如果是IPv6,就是6
  • 首部长度字段占4位,给出整个IP分组的首部长度。计算的时候以4字节为单位,也可以理解为一行(因为一行32位,就是4字节)。如果这个字段的值为5,那么需要乘以4才能得到IP分组首部长度的字节数,也就是20字节
  • 服务类型(TOS)字段占8位:最初的目的是这个IP分组在网络传输过程中期望获得哪种类型的服务
    • 1998 年这个字段改名为区分服务,也就是让网络能够区别对待不同的IP数据报,并且提供不同类型的服务。比如某些数据报优先转发,某些数据报之后转发
    • 这个字段只有在网络提供区分服务(DiffServ)时才有效
    • 在目前IPv4网络中,一般情况下不使用该字段,通常IP分组的该字段(第2字节)的值为00H
  • 总长度字段占16位:IP分组的总字节数(首部+数据)。注意它是以字节为单位的。
    • 因为字段长度是16位,所以所能表示的最大IP分组的总长度是65535B。去掉最小的头部长度也就是20B,那么IP分组可以封装的最大数据:65535-20=65515B。当然这只是理论上,在实际中不会有这么大的分组
  • 标识、标志位、片偏移与IP分组的分片有关,后面介绍
  • 生存时间(TTL,Time To Live,也叫做存活时间)字段占8位,用来标识IP分组在网络中最多可以通过的路由器数(或跳步数)
    • 路由器转发一次分组,TTL减1,如果TTL=0,路由器则丢弃该IP分组,这时会向源主机发送一个ICMP报文
  • 协议字段占8位:指示IP分组封装的是哪个协议的数据包
    • 实现复用/分解
    • 比如, 6为TCP,表示封装的为TCP段;17为UDP,表示封装的是 UDP数据报
  • 首部校验和字段占16位:实现对IP分组首部的差错检测
    • 计算校验和时,该字段置全0
    • 运算算法与前面讲的UDP校验和的计算算法是一样的,采用反码算数运算求和,和的反码作为首部校验和字段
    • 首部校验和在每一次转发也就是一跳的时候都要重新计算,重新校验。因此首部校验和是逐跳计算、逐跳校验的
  • 源IP地址、目的IP地址字段各占32位:分别标识发送分组 的源主机/路由器(网络接口)和接收分组的目的主机/路由器 (网络接口)的IP地址
  • 选项字段占长度可变,范围在1~40B之间:携带安全、源 选路径、时间戳和路由记录等内容
    • 实际上很少被使用,也就是0
  • 填充字段占长度可变,范围在0~3B之间:目的是补齐整个 首部,符合32位对齐,即保证首部长度是4字节的倍数

相关文章:

【计算机网络笔记】Internet网络的网络层——IP协议之IP数据报的结构

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…...

【Git】Git的GUI图形化工具ssh协议IDEA集成Git

一、GIT的GUI图形化工具 1、介绍 Git自带的GUI工具,主界面中各个按钮的意思基本与界面文字一致,与git的命令差别不大。在了解自己所做的操作情况下,各个功能点开看下就知道是怎么操作的。即使不了解,只要不做push操作,…...

Java中抽象类

1 抽象方法必须包含在抽象类中 package charactor; public abstract class Hero { String name; float hp;float armor;int moveSpeed;public static void main(String[] args) {}// 抽象方法attack // Hero的子类会被要求实现attack方法 public abstract void attack();} …...

18 Linux 阻塞和非阻塞 IO

一、阻塞和非阻塞 IO 1. 阻塞和非阻塞简介 这里的 IO 指 Input/Output(输入/输出),是应用程序对驱动设备的输入/输出操作。当应用程序对设备驱动进行操作的时候,如果不能获取到设备资源,那么阻塞式 IO 就会将对应应用…...

多因素验证如何让企业邮箱系统登录更安全?

企业邮箱系统作为基础的办公软件之一,既是企业内外沟通的重要工具,也是连接企业多个办公平台的桥梁,往往涉及到客户隐私、业务信息、企业机密等等。为了保护邮箱账户的安全,设置登陆密码无疑是保护账户安全的常用措施之一。然而随…...

投票助手图文音视频礼物打赏流量主小程序开源版开发

投票助手图文音视频礼物打赏流量主小程序开源版开发 图文投票:用户可以发布图文投票,选择相应的选项进行投票。 音视频投票:用户可以发布音视频投票,观看音视频后选择相应的选项进行投票。 礼物打赏:用户可以在投票过…...

黑客(网络安全)技术——高效自学1.0

前言 前几天发布了一篇 网络安全(黑客)自学 没想到收到了许多人的私信想要学习网安黑客技术!却不知道从哪里开始学起!怎么学 今天给大家分享一下,很多人上来就说想学习黑客,但是连方向都没搞清楚就开始学习…...

8255 boot介绍及bring up经验分享

这篇文章会简单的介绍8255的启动流程,然后着重介绍8255在实际项目中新硬件上的bring up工作,可以给大家做些参考。 8255 boot介绍 下面这些信息来自文档:《QAM8255P IVI Boot and CoreBSP Architecture Technical Overview》 80-42847-11 R…...

visual studio 启用DPI识别功能

在开发widow程序时,有时必须将电脑 设置-->显示-->缩放与布局-->更改文本、应用项目的大小-->100%后,程序的画面才能正确运行,居说这是锁定了dpi的原因,需要启dpi识别功能。设置方法如下: 或者...

一题三解(暴力、二分查找算法、单指针):鸡蛋掉落

涉及知识点 暴力、二分查找算法、单指针 题目 给你 k 枚相同的鸡蛋&#xff0c;并可以使用一栋从第 1 层到第 n 层共有 n 层楼的建筑。 已知存在楼层 f &#xff0c;满足 0 < f < n &#xff0c;任何从 高于 f 的楼层落下的鸡蛋都会碎&#xff0c;从 f 楼层或比它低的…...

第一章 Object-XML 映射简介

文章目录 第一章 Object-XML 映射简介基础如何工作的映射选项IRIS 中的相关工具XML 文档的可能应用 第一章 Object-XML 映射简介 基础 将对象映射到 XML 一词意味着定义如何将该对象用作 XML 文档。要将对象映射到 XML&#xff0c;请将 %XML.Adaptor 添加到定义该对象的类的超…...

精密设备企业适合哪款CRM客户管理体系?

精密设备企业致力于打造现代化管理体系&#xff0c;以精密的仪器、精细的销售、精准的市场、精确的售后为企业核心&#xff0c;提供优质的精密产品和专业服务。随着企业的发展及市场发展需要&#xff0c;建立高效的客户关系管理体系势在必行。那么&#xff0c;精密设备企业适合…...

Rasa-笔记

1 Rasa环境搭建 笔者使用的Rasa版本是古早的1.10.7&#xff0c;python环境3.7。 1、安装miniconda 2、conda创建python3.7环境 3、安装TensorFlow和GPU相关 4、安装Rasa相关 2 Rasa笔记 3 Rasa报错 3.1 ValueError: Can’t patch loop of type <class ‘uvloop.Loop’&g…...

云架构师学习------腾讯云通识-存储与数据库

云架构师学习------腾讯云通识-存储与数据库 云架构师学习------腾讯云通识-存储与数据库存储基础存储服务对象存储-COS产品概述功能概览产品优势 云硬盘-CBS产品概述产品功能产品优势云硬盘类型 文件存储-CFS产品概述产品功能产品优势文件存储类型及性能规格存储类型性能与规格…...

蓝桥杯之模拟与枚举day1

Question1卡片(C/CA组第一题) 这个是一道简单的模拟枚举题目&#xff0c;只要把对应每次的i的各个位都提取出来&#xff0c;然后对应的卡片数目减去1即可。属于打卡题目。注意for循环的特殊使用即可 #include <iostream> using namespace std; bool solve(int a[],int n…...

深度学习 python opencv 动物识别与检测 计算机竞赛

文章目录 0 前言1 深度学习实现动物识别与检测2 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络 3 YOLOV53.1 网络架构图3.2 输入端3.3 基准网络3.4 Neck网络3.5 Head输出层 4 数据集准备4.1 数据标注简介4.2 数据保存…...

爱家房产网站源码 爱家房产网商业版 微信互动营销整合+手机触屏版+经纪人分销

房产网站源码手机访问自动转手机版修改修复如下&#xff1a; 1&#xff0c;修复手机版首页标题头部名称 2&#xff0c;修复手机版首页频道导航按钮 3&#xff0c;新增手机版广告位置显示方式 4&#xff0c;修复手机版首页内容显示样式 5&#xff0c;手机版头部背景颜色ic…...

招聘信息采集

首先&#xff0c;我们需要使用PHP的curl库来发送HTTP请求。以下是一个基本的示例&#xff1a; <?php // 初始化curl $ch curl_init();// 设置代理 curl_setopt($ch, CURLOPT_PROXY, "jshk.com.cn");// 设置URL curl_setopt($ch, CURLOPT_URL, "http://www…...

java开发宝典

Java命名规范 1&#xff1a;代码中的命名均不能以下划线或美元符号开始&#xff0c;也不能以下划线或美元符号结束。 反例&#xff1a;_name / __name / $name / name_ / name$ / name__ 。 2&#xff1a;禁止使用拼音和英文混合。 反例&#xff1a;DaZhePromotion [打折] / …...

【图论实战】 Boost学习 03:dijkstra_shortest_paths

文章目录 示例代码 示例 最短路径: A -> C -> D -> F -> E -> G 长度 16 代码 #include <iostream> #include <boost/graph/adjacency_list.hpp> #include <boost/graph/dijkstra_shortest_paths.hpp> #include <boost/graph/graphviz.h…...

单片机Flash不够用?手把手教你用AT24C256存储30张BMP图片(附完整代码)

突破单片机Flash限制&#xff1a;用AT24C256实现30张BMP图片存储的完整方案 当你在开发一个需要显示多张图片的单片机项目时&#xff0c;Flash存储空间不足是一个常见痛点。最近我在一个OLED显示项目中就遇到了这个问题——需要显示30张12864分辨率的BMP图片&#xff0c;但单片…...

G-Helper:重新定义华硕笔记本性能控制的轻量级革命

G-Helper&#xff1a;重新定义华硕笔记本性能控制的轻量级革命 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Scar,…...

独立游戏开发者的音频救星:零代码用FMOD为Unity游戏添加动态背景音乐与交互音效

独立游戏开发者的音频救星&#xff1a;零代码用FMOD为Unity游戏添加动态背景音乐与交互音效 当你在深夜调试游戏时&#xff0c;是否曾被突如其来的静默打断沉浸感&#xff1f;或是发现精心设计的战斗场景因为单调重复的背景音乐而失去张力&#xff1f;作为独立开发者&#xff…...

VS Code写LaTeX论文,这5个隐藏技巧让你的效率翻倍(LaTeX Workshop进阶玩法)

VS Code写LaTeX论文&#xff1a;5个隐藏技巧让你的效率翻倍 在学术写作的漫长旅程中&#xff0c;工具的选择往往决定了效率的上限。对于LaTeX用户而言&#xff0c;VS Code配合LaTeX Workshop插件已经成为了许多研究者的首选组合。但大多数人仅仅停留在基础功能的使用上&#x…...

FPGA实战:手把手教你用AXI EMC IP核驱动64M Nor Flash(附S29GL512S时序参数详解)

FPGA实战&#xff1a;AXI EMC IP核驱动64M Nor Flash全流程解析 引言 在嵌入式系统开发中&#xff0c;Nor Flash因其可靠的存储性能和简单的接口特性&#xff0c;成为许多关键应用的理想选择。当我们需要在Xilinx FPGA平台上扩展存储容量时&#xff0c;AXI External Memory Con…...

XXMI Launcher终极指南:一站式跨平台游戏模组管理平台

XXMI Launcher终极指南&#xff1a;一站式跨平台游戏模组管理平台 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher 还在为管理不同游戏的模组而烦恼吗&#xff1f;每次都要打开不…...

嵌入式开发选型指南:Cortex-M3/M4项目中,ARM、Thumb、Thumb-2指令集到底该怎么选?

Cortex-M3/M4指令集选型实战&#xff1a;从编译选项到性能调优 当你用Keil或IAR新建一个STM32工程时&#xff0c;编译器选项里那个小小的"-mthumb"参数背后&#xff0c;藏着影响整个项目性能的秘密。去年我们团队在开发工业级电机控制器时&#xff0c;就因为一个指令…...

如何参与rms-support-letter.github.io签名:3种简单方法完整指南

如何参与rms-support-letter.github.io签名&#xff1a;3种简单方法完整指南 【免费下载链接】rms-support-letter.github.io An open letter in support of Richard Matthew Stallman being reinstated by the Free Software Foundation 项目地址: https://gitcode.com/gh_m…...

Gemma-3-12B-IT精彩案例分享:从初学者提问到完整函数实现的全过程

Gemma-3-12B-IT精彩案例分享&#xff1a;从初学者提问到完整函数实现的全过程 1. 引言&#xff1a;为什么这个案例值得一看&#xff1f; 如果你正在寻找一个能真正帮你写代码、解答疑惑的AI助手&#xff0c;那么今天分享的这个案例可能会让你眼前一亮。我们不是要讲空洞的理论…...

新手必看:LFM2.5轻量模型快速入门,5步完成部署与对话测试

新手必看&#xff1a;LFM2.5轻量模型快速入门&#xff0c;5步完成部署与对话测试 你是否想在自己的电脑上快速体验AI对话能力&#xff0c;但又担心配置复杂、资源消耗大&#xff1f;LFM2.5-1.2B-Thinking-GGUF正是为这种需求而生的轻量级解决方案。这个只有12亿参数的模型&…...