首页 > 其他分享 >IP协议

IP协议

时间:2024-01-24 11:48:00浏览次数:26  
标签:协议 位字段 IP IPv4 分片 数据包

IP(Internet Protocol)协议网络层最重要的协议,也是互联网中最基础、最重要的协议之一。IP协议负责在网络中传输(IP)数据包,它是网络通信的基础。

IP协议有两个主要版本:IPv4(Internet Protocol version 4)和 IPv6(Internet Protocol version 6)。IPv4是目前广泛使用的版本,而IPv6则是为了解决IPv4地址耗尽的问题而引入的新版本。

IP协议的主要作用和内容

寻址/路由

  • IP协议定义了一种标准的方式来为设备在网络中分配唯一的标识地址,被称为IP地址

  • IP协议提供基本的路由概念和底层协议,包括基础路由功能。其实现主要是通过物理设备路由器,负责根据目标IP地址将数据包从源设备传递到目标设备。

分片(Fragmentation)/重组(Reassembly)

为了适应不同网络链路的大小限制,IP协议使用分片和重组机制来处理大于网络链路最大传输单元(MTU) 的数据包。该机制会在网络中带来复杂性和性能开销,因此在设计网络应用时应考虑MTU,尽量避免使用过大数据包,以减少分片和重组。

MTU(Maximum Transmission Unit)属于数据链路层的内容,MTU定义了在特定数据链路上传输的最大数据包的大小。

  • 当原始数据包大小超过网络链路MTU时,源主机的IP协议将数据包分割成多个分片,每个分片都包含头部(其包含分片信息)且长度小于MTU
  • 目标主机的IP协议接收到数据包分片后,通过其头部信息(根据标识和片偏移来识别和排序),并进行重组后得到完整数据包。将数据包传递给上层传输层协议(TCP/UDP)

IPv4 数据包的格式

主要由 头部(Header),数据(Payload) 构成

头部(Header)结构

  • 版本(Version): 4位字段,表示IP协议的版本,IPv4为4。
  • 头部长度(Header Length): 4位字段,表示IP头部的长度,以32位字为单位。通常情况下,IPv4头部长度为20字节,但它也可以变化,因为IPv4头部可能包含选项字段。
  • 服务类型(Type of Service): 8位字段,用于指定数据包的服务质量、优先级等信息。
  • 总长度(Total Length): 16位字段,表示整个IPv4数据包的长度,包括头部和数据。
  • 标识(Identification): 16位字段,用于标识数据包的唯一性,通常用于分片和重组。
  • 标志(Flags): 3位字段,用于指示是否允许分片以及分片的情况。
  • 片偏移(Fragment Offset): 13位字段,用于指示分片在原始数据中的位置。
  • 生存时间(Time to Live,TTL):8位字段,表示数据包在网络中可以经过的最大路由器数量,用于防止数据包在网络中无限循环。
  • 协议(Protocol): 8位字段,表示数据部分使用的上层协议,如TCP、UDP等。
  • 头部校验和(Header Checksum): 16位字段,用于检测头部的错误。
  • 源地址和目标地址: 每个32位字段,分别表示源IP地址和目标IP地址。
  • 选项(Options): 可选字段,用于包含一些额外的信息。

数据(Payload)

一般就是上层传输层协议(例如TCP、UDP)负责传输的内容

标签:协议,位字段,IP,IPv4,分片,数据包
From: https://www.cnblogs.com/ealenxie/p/17984310

相关文章

  • [NOIP2022] 种花
    题目描述小C决定在他的花园里种出\(\texttt{CCF}\)字样的图案,因此他想知道\(\textttC\)和\(\textttF\)两个字母各自有多少种种花的方案;不幸的是,花园中有一些土坑,这些位置无法种花,因此他希望你能帮助他解决这个问题。花园可以看作有\(n\timesm\)个位置的网格图,从上......
  • Linux下配置ip地址四种方法
    linux系统安装完,以后通过命令模式配置网卡IP。配置文件通常是/etc/sysconfig/network-scripts/ifcfg-interface-nameifconfig后显示的内容,lo代表loop回路。 一、Ifconfig命令第一种使用ifconfig命令配置网卡的ip地址。此命令通常用来零时的测试用,计算机启动后,ip地址的配置......
  • javaScript找出两个数组之中不同的元素
    在JavaScript中,我们可以使用以下方法找到两个数组中不同的元素:1.创建一个函数,将两个数组作为参数传递进去。2.在函数内部,创建一个新的空数组,用于存储不同的元素。3.使用for循环遍历第一个数组,并使用indexOf()方法检查第二个数组中是否存在相同的元素。4.如果第二个数组中......
  • [Typescript] Resolving the Block-scoped Variable Error in TypeScript (moduleDete
    constNAME="Matt";TypeScriptistellinguswecan'tredeclarethe name variablebecauseithasalreadybeendeclaredinsideof lib.dom.d.ts.The index.ts fileisbeingdetectedasaglobalscriptratherthanamodule.Thisisbecause,by......
  • [Typescript] Show the error close to where it's causes
    Examplecode:constroutingConfig={routes:[{path:"home",component:"HomeComponent",},{path:"about",component:12,},{path:"contact",componen......
  • 百度网盘(百度云)SVIP超级会员共享账号每日更新(2024.01.23)
    一、百度网盘SVIP超级会员共享账号可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答。我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免了U盘的物理载体,直接在网上就实现文件传输。百度网盘SVIP会员可以让自己百度账......
  • 代码随想录 day28 复原IP地址 子集 子集II
    复原IP地址本题确实比较有难度主要很难一开始就发现切入点虽然被提示了和切割字符串很像还是看了题解回溯部分重点就是怎么去切割这个ip地址这里注意要尝试每个位置都去加'.'去分割后面会回溯由于是ip地址也就是提示了是四段式并且利用isValid去判断是否合法还有一些......
  • JavaScript DOM表单相关操作之表单相关事件
    1、焦点事件焦点事件就是鼠标的光标事件,点到输入框中,叫做获得焦点事件,当鼠标离开这个输入框时叫做失去焦点事件。<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>知数SEO_专注搜索引擎优化和品牌推广</title></head><body><form><h3>输......
  • JavaScript DOM表单相关操作之表单验证
    在大部分的情况下我们希望用户输入的数据是我们理想中的格式,尤其是在用户注册上,一些重要的信息我们是不允许用户乱写的,如手机号,邮箱等。接下来一起看几种表单验证的方式:1、验证长度验证长度是比较简单的,input标签元素的maxlength属性可以设置可输入的最大长度//用maxlength属......
  • API调试?试试Apipost
    你是否经常遇到接口开发过程中的各种问题?或许你曾为接口测试与调试的繁琐流程而烦恼。不要担心!今天我将向大家介绍一款功能强大、易于上手的接口测试工具——Apipost,并带你深入了解如何玩转它,轻松实现接口测试与调试。什么是Apipost?Apipost是一款API全生命周期管理平台,它提供了一系......