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

相关推荐

  1. <span style='color:red;'>IP</span><span style='color:red;'>协议</span>

    IP协议

    2024-06-09 08:06:05      67 阅读
  2. <span style='color:red;'>ip</span> <span style='color:red;'>协议</span>

    ip 协议

    2024-06-09 08:06:05      28 阅读
  3. <span style='color:red;'>IP</span><span style='color:red;'>协议</span>

    IP协议

    2024-06-09 08:06:05      30 阅读
  4. 网络协议学习——IP协议

    2024-06-09 08:06:05       37 阅读
  5. TCP/IP协议

    2024-06-09 08:06:05       65 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-09 08:06:05       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-09 08:06:05       97 阅读
  3. 在Django里面运行非项目文件

    2024-06-09 08:06:05       78 阅读
  4. Python语言-面向对象

    2024-06-09 08:06:05       88 阅读

热门阅读

  1. Linux进程基本概念

    2024-06-09 08:06:05       29 阅读
  2. 2024-06-08 问AI: 大语言模型中,思维链CoT是什么?

    2024-06-09 08:06:05       34 阅读
  3. 自然语言处理(NLP)—— 符号方法与符号语言

    2024-06-09 08:06:05       26 阅读
  4. git凭证

    git凭证

    2024-06-09 08:06:05      24 阅读
  5. Sass 使用指南:让 CSS 编程更高效、更强大

    2024-06-09 08:06:05       31 阅读
  6. AI学习指南机器学习篇-使用C4.5算法构建决策树

    2024-06-09 08:06:05       30 阅读
  7. Scala学习笔记9: 继承

    2024-06-09 08:06:05       28 阅读
  8. Tomcat部署及优化

    2024-06-09 08:06:05       25 阅读
  9. Hbase中Rowkey的设计方法

    2024-06-09 08:06:05       27 阅读