【计算机网络笔记】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字节的倍数

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

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

相关文章

Pytorch实战教程(一)-神经网络与模型训练

0. 前言 人工神经网络 (Artificial Neural Network, ANN) 是一种监督学习算法,其灵感来自人类大脑的运作方式。类似于人脑中神经元连接和激活的方式,神经网络接受输入,通过某些函数在网络中进行传递,导致某些后续神经元被激活,从而产生输出。函数越复杂,网络对于输入的数…

离线视频ocr识别

sudo apt-get install libleptonica-dev libtesseract-dev sudo apt-get install tesseract-ocr-chi-sim python -m pip install video-ocrwindows安装方法: 下载安装 https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-5.3.3.20231005.exe 下…

百度智能云千帆大模型平台再升级,SDK版本开源发布!

文章目录 1. SDK的优势2. 千帆SDK:快速落地LLM应用3. 如何快速上手千帆SDK3.1 SDK快速启动3.2 SDK进阶指引3.3 通过Langchain接入千帆SDK 4. 开源社区 百度智能云千帆大模型平台再次升级!在原有API基础上,百度智能云正式上线Python SDK&#…

nodejs express vue 酒店预订系统源码

开发环境及工具: nodejs,vscode(webstorm),大于mysql5.5 技术说明: nodejs express vue elementui 功能介绍: 用户端: 用户登录注册 首页显示轮播图,客房分类&…

【媒体邀约】媒体宣传——企业成长的催化剂

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 媒体宣传是企业成长的催化剂,它在各种方面对企业的成功和发展起到了关键作用。 1. 曝光和知名度: 媒体宣传可以将企业和其产品或服务推向广泛的受众,…

通义千问, 文心一言, ChatGLM, GPT-4, Llama2, DevOps 能力评测

引言 “克隆 dev 环境到 test 环境,等所有服务运行正常之后,把访问地址告诉我”,“检查所有项目,告诉我有哪些服务不正常,给出异常原因和修复建议”,在过去的工程师生涯中,也曾幻想过能够通过这…

CSRF(跨站请求伪造)攻击演示

目录 CSRF(跨站请求伪造)攻击演示CSRF 是什么CSRF 演示项目代码CSRF 演示过程服务启动演示 CSRF(跨站请求伪造)攻击演示 CSRF 是什么 CSRF(Cross-Site Request Forgery)跨站请求伪造,是一种网络安全攻击,其目标是利用被攻击者在…

搭建完全分布式Hadoop

文章目录 一、Hadoop集群规划二、在主节点上配置Hadoop(一)登录虚拟机(二)设置主机名(三)主机名与IP地址映射(四)关闭与禁用防火墙(五)配置免密登录&#xff…

计算机毕业设计 基于SpringBoot的养老院管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

MATLAB中deconvwnr函数用法

目录 语法 说明 示例 使用 Wiener 滤波对图像进行去模糊处理 deconvwnr函数的功能是使用 Wiener 滤波对图像进行去模糊处理。 语法 J deconvwnr(I,psf,nsr) J deconvwnr(I,psf,ncorr,icorr) J deconvwnr(I,psf) 说明 J deconvwnr(I,psf,nsr) 使用 Wiener 滤波算法对…

02-PostgreSQL的基本使用

一、数据库操作 ①: 登录到数据库 psql -U postgres -d postgres -h 127.0.0.1②:查看所有数据库 \l③: 创建数据库 # 创建一个名为 mydb 的数据库 create database mydb;④:切换数据库 # \c 数据库名 \c mydb⑤:删除数据库 # 删除前 先确保数据库没有被连接 drop databa…

安卓RadioButton设置图片大小

RadioButton都不陌生,一般我们都会设置图片在里面,这就涉及一个问题,图片的大小。如果图片过大,效果很不理想。搜了很多方法,都不理想。无奈只能自己研究了 代码如下: 1,一个简单的 RadioButt…

html与django实现多级数据联动

html与django实现多级数据联动 1、流程 1、进入页面后先获取年级数据 2、选择年级后获取院级数据 3、选择院级后获取层次数据 4、选择层次数据后获取专业数据 2、html代码 <p style"margin-top: 10px;"><label>年级</label><select id"…

认识计算机-JavaEE初阶

文章目录 一、计算机的发展史二、冯诺依曼体系&#xff08;Von Neumann Architecture&#xff09;三、CPU基本工作流程3.1 算术逻辑单元&#xff08;ALU&#xff09;3.2 寄存器&#xff08;Register)和内存&#xff08;RAM&#xff09;3.3 控制单元&#xff08;CU&#xff09;3…

深入理解 TCP;场景复现,掌握鲜为人知的细节

握手失败 第一次握手丢失了&#xff0c;会发生什么&#xff1f; 当客户端想和服务端建立 TCP 连接的时候&#xff0c;首先第一个发的就是 SYN 报文&#xff0c;然后进入到 SYN_SENT 状态。 在这之后&#xff0c;如果客户端迟迟收不到服务端的 SYN-ACK 报文&#xff08;第二次…

Apache Airflow (四) :Airflow 调度shell命令

&#x1f3e1; 个人主页&#xff1a;IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 &#x1f6a9; 私聊博主&#xff1a;加入大数据技术讨论群聊&#xff0c;获取更多大数据资料。 &#x1f514; 博主个人B栈地址&#xff1a;豹哥教你大数据的个人空间-豹…

Delphi 12 重返雅典 (RAD Studio 12)

RAD Studio 12 的新功能&#xff1a; 以最新的平台版本为目标&#xff01; RAD Studio 12 提供对 iOS 17&#xff08;仅适用于 Delphi&#xff09;、Android 14 和 macOS Sonoma 的官方支持。RAD Studio 12 还支持 Ubuntu 22 LTS 和 Windows Server 2022。 Delphi 源代码的多…

<蓝桥杯软件赛>零基础备赛20周--第5周--杂题-2

报名明年4月蓝桥杯软件赛的同学们&#xff0c;如果你是大一零基础&#xff0c;目前懵懂中&#xff0c;不知该怎么办&#xff0c;可以看看本博客系列&#xff1a;备赛20周合集 20周的完整安排请点击&#xff1a;20周计划 每周发1个博客&#xff0c;共20周&#xff08;读者可以按…

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

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

3DMAX汽车绑定动画模拟插件MadCar疯狂汽车使用教程

3DMAX汽车绑定动画模拟插件MadCar疯狂的汽车&#xff0c;用于通过模拟控制来快速装配轮式车辆及其动画。这个新版本允许装配任何数量的车轮的车辆&#xff0c;以及包括摩托车在内的任何相互布置。还支持任意数量的拖车。 每个车轮和悬架都有简化的行为设置以及微调&#xff0c…