11 IP协议 - IP协议头部

什么是 IP 协议

IP(Internet Protocol)是一种网络通信协议,它是互联网的核心协议之一,负责在计算机网络中路由数据包,使数据能够在不同设备之间进行有效的传输。IP协议的主要作用包括寻址、分组、路由和转发数据包,并为上层协议提供无状态、无连接、不可靠的服务。

  • 无状态:无状态是指 IP 通信双方是不同步传输数据的状态信息。所有 IP 数据报的发送、传输和接收都是相互独立。
  • 无连接:无连接是指IP通信双方都不长久地维持对方的任何信息。上层协议每次发送数据的时候,都需要明确指出对方的IP地址。
  • 不可靠:不能保证 IP 数据报准确到达接收端,它只承诺尽最大努力交付。IP 模块一旦检测到数据报发送失败,就通知上层协议,而不会试图重传。

注意,IP协议负责的是数据包的路由。其作用类似于邮政系统中的邮政地址。它为数据包提供了唯一的地址,并规定了如何将数据包从发送方路由到接收方。
举个例子理解一下:想象一封电子邮件从您的计算机发送到朋友的计算机。在这个过程中,IP协议充当了邮递员的角色。它确保邮件(数据包)具有正确的发送地址和接收地址,并且知道如何跨越网络中的路由点(类似邮局)以最终到达目的地。无论您的朋友身在世界的哪个地方,IP协议都能确保邮件准确地送达。

IP 协议头部

通过 IP 进行通信时,需要在数据的前面加入 IP 首部信息。IP 首部包含着用于 IP 协议进行发包控制时所有的必要信息。
在这里插入图片描述

  1. 版本
    由 4 比特构成,用来标识 IP 首部的版本号。IPv4 版本号就是 4。
  2. 首部长度
    表示 IP 首部的大小,单位是 4字节(32bit)。IP 头部的长度也就是 length * 4 的字节数. 当没有可选项时,length 是 5,也就是20字节。
  3. 区分服务(TOS)
    用来表示服务的质量。可划分为 DSCP 和 ECN,DSCP 用来进行质量控制,ECN 用来报告网络拥堵情况。
  4. 总长度
    表示的是 IP 首部 与数据部分合起来的总字节数,最大长度是 65535 字节。
  5. 标识
    用于分片重组。同一个分片的标识值是相同的,不同分片的标识值不同。每发送一个 IP 包,它的值也会逐渐递增。
  6. 标志
    表示包被分片的相关信息。每一位的具体含义如下图。
    在这里插入图片描述
  7. 片偏移
    用来标识被分片的每一个分段相对于原始数据的位置。
  8. 生存时间(TTL)
    这个不是一个时间的概念,实际上是指可以中转多少个路由器的意思,每经过一个路由器,TTL会减少 1,直到变成0 则丢弃该包。
  9. 协议
    表示 IP 首部的下一个首部属于哪个协议。
  10. 首部校验和
    该字段只会校验数据包的首部,不会去校验数据部分。这个字段主要目的是用来确保 IP 数据包不被破坏。
  11. 源地址
    表示发送端的 IP 地址。
  12. 目标地址
    表示接收端的 IP 地址。
  13. 可选字段
    长度可变,通常只在进行实验或诊断时使用。
  14. 填充
    在有可选字段的情况下,首部长度可能不是 32 比特的整数倍。通过向字段填充 0,调整为 32 比特的整数倍。
  15. 数据
    用来存入实际要传输的数据,同时将 IP 上层协议的首部也作为数据进行处理。

在这里插入图片描述

IP协议属于网络层的。TCP,UDP协议属于传输层的。

IP层是用于底层传输的,所以里面是有源地址和目标地址的。所以地址是属于IP层。
TCP/UDP属于上层应用,里面有端口,来找到具体的应用。

参考:
https://blog.csdn.net/weixin_67596609/article/details/133633592
https://blog.csdn.net/GG_Bruse/article/details/130640438

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

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

相关文章

计算机网络 期末复习(谢希仁版本)第4章

路由器:查找转发表,转发分组。 IP网的意义:当互联网上的主机进行通信时,就好像在一个网络上通信一样,看不见互连的各具体的网络异构细节。如果在这种覆盖全球的 IP 网的上层使用 TCP 协议,那么就…

【六袆 - Java】Java 驱动连接Oracle数据库; Java单元测试 连接Oracle;

Java 驱动连接Oracle数据库 JDK8 Oracle驱动包 ORACLE8 测试用例代码 @Testpublic void oracleConn(){ResultSet rs = null;Statement stmt = null;Connection conn = null

股票数据集1-纳斯达克NASDAQ 100简介

数据集信息 纳斯达克 100 指数 由纳斯达克证券交易所 上市的 100 家最大的非金融公司发行的股票证券组成,根据公司市值设置不同权重的加权指数,权重还受某些规则影响如公司影响力。该指数仅限于来自单一交易所的公司,并且没有任何金融公司。 …

2024 vite 静态 scp2 自动化部署

1、导入库 npm install scp2 // 自动化部署 npm install chalk // 控制台输出的语句 npm install ora2、核心代码 创建文件夹放在主目录下的 deploy/index.js 复制粘贴以下代码: import client from scp2; import chalk from chalk; import ora from ora;const s…

K8s速览

k8s的核心能力 ● 服务发现与负载均衡 ● 服务恢复 ● 服务伸缩 ● 自动发布与回滚 ● 批量执行 架构 server-client两层架构,Master作为中央管控节点,会和每一个Node进行一个连接; 所有UI层,client的操作,只会和Mat…

详解linux设备下的/dev/null

/dev/zero是一个特殊的设备文件,它在Linux系统中通常被用来生成无限数量的零数据流。 这个设备文件位于/dev目录下,它不代表任何实际的硬件设备,而是一个虚拟设备。 当从/dev/zero设备中读取数据时,会得到无限数量的零字节&…

unix环境编程编程扫描版:深度解析与实践指南

unix环境编程编程扫描版:深度解析与实践指南 在探索Unix环境编程的广阔天地时,我们如同行走在一条充满未知与奇遇的旅程中。本篇文章将从四个方面、五个方面、六个方面和七个方面,深入剖析Unix环境编程的精髓,帮助读者在编程的海…

【机器学习】因TensorFlow所适配的numpy版本不适配,用anaconda降低numpy的版本

目录 0 TensorFlow最高支持的numpy版本 1 激活你的环境(如果你正在使用特定的环境) 2 查找可用的NumPy版本 3 安装特定版本的NumPy 4. 验证安装 5.(可选)如果你更改了base环境 0 TensorFlow最高支持的numpy版本 要使用 …

树莓派设置开机自启动程序(可执行文件与python脚本)

最近调试树莓派,希望开机运行两个程序,其中一个是可执行文件,另一个是 python 脚本,他们都是无限循环的程序,也就是说不关机不会停止运行。中间还是遇到了很多 bug,现在记录一下自启动程序的设置方法以及de…

Python | Leetcode Python题解之第132题分割回文串II

题目: 题解: class Solution:def minCut(self, s: str) -> int:n len(s)g [[True] * n for _ in range(n)]for i in range(n - 1, -1, -1):for j in range(i 1, n):g[i][j] (s[i] s[j]) and g[i 1][j - 1]f [float("inf")] * nfor …

Websocket前端传参:深度解析与实战应用

Websocket前端传参:深度解析与实战应用 在现代Web开发中,Websocket作为一种双向通信协议,已经广泛应用于实时数据传输场景。前端传参作为Websocket通信的重要组成部分,其正确性和高效性直接影响到应用的性能和用户体验。本文将深…

k8s学习--kubernetes服务自动伸缩之水平收缩(pod副本收缩)HPA详细解释与案例应用

文章目录 前言HPA简介简单理解详细解释HPA 的工作原理监控系统负载模式HPA 的优势使用 HPA 的注意事项应用类型 应用环境1.metircs-server部署2.HPA演示示例(1)部署一个服务(2)创建HPA对象(3)执行压测 前言…

安装node

下载地址 Node.js — Run JavaScript Everywhere 按照下面的图操作即可 然后就下载完了。

【Vue】声明式导航-导航链接

文章目录 一、引入二、解决方案三、代码示例四、声明式导航-两个类名1)router-link-active2)router-link-exact-active 一、引入 但凡说到声明式导航,都需要想到router-link 需求 实现导航高亮效果 如果使用a标签进行跳转的话,需要…

Web前端ES6-ES13笔记合集(上)

一. 走入ES6 ##### 1.初识ES6 > ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语…

浏览器中输入一个url发生了什么,用到了哪些协议

当你在浏览器中输入一个URL并按下回车键时,以下是发生的一系列步骤和涉及的协议: 解析URL: 浏览器首先解析输入的URL,确定协议类型(如http或https)、主机名(域名)、端口(…

【Python】selenium使用find_element时解决【NoSuchElementException】问题的方法

NoSuchElementException 是 Selenium WebDriver 中的一种异常,我们在写selenium.find_element 的时候也比较常见,它会在我们要尝试定位一个不存在的元素时抛出这类错误。 以下是一些解决NoSuchElementException 的常用方法: 检查元素定位器:…

【网络编程开发】8.TCP连接管理与UDP协议 9.IP协议与ethernet协议

8.TCP连接管理与UDP协议 三次握手 三次握手的过程在TCP/IP网络通信中起着至关重要的作用,它不仅确保了数据的可靠传输,还为两端的数据传输提供了稳定的连接初始化过程。这一过程涉及到几个关键步骤,每个步骤都有其特定的目的和功能。 步骤&…

算法人生(21):从“React框架”看“情绪管理”

说起React框架,我们知道它是一种由Facebook开发和维护的开源JavaScript库,主要用于构建用户界面,特别是单页应用程序(SPA)。React框架围绕组件化,即把用户界面拆分为可复用的独立组件,每个组件负…

SM481,SM432和利时DCS备件

SM481,SM432和利时DCS备件。POU名只能包含字母、数字、下划线,第一个字符必须是字母或者下划线,且遵循以下原则:SM481,SM432和利时DCS备件。关于重名,不能与变量名、变量组名、POU文件夹名、任务名、SM481,SM432和利时DCS备件。工…