IP协议报文格式

一: 报头格式

在这里插入图片描述

1.1 : 4位版本

现在使用的也就只有IPv4,IPv6

1.2 : 4位首部长度

以 4字节为单位,所以IP报头最长就是64字节,最短就是20字节

1.3 : 8位服务类型 :

实际上只有4位有效, 而且这4位是互斥的,只有一位为1

  1. 最小延时 : 传输过程中.消耗的时间最短
  2. 最大吞吐量: 单位时间内,传输的数据尽可能多.
  3. 最高可靠性: 降低丢包的概率.
  4. 最小成本: 比较节省系统开销.

1.4 : 16位总长度(字节数)

指的是整个IP 数据包的长度: 报头+ 载荷
总长度,去掉IP报头长度,就是IP载荷长度,而IP载荷是由TCP/UDP报头+ TCP/UDP载荷组成,所以去掉TCP/UDP报头长度,剩下的就是载荷长度了.
16bit ,表示IP数据包最大64KB,如果超过64KB,怎么办?
IP协自身实现了拆包,组包这样的功能,如果数据包的长度超过上限,IP数据包就会自动拆分成多个数据包,每个数据包携带一部分,发送到对方后,再拼接好.

在这里插入图片描述

在这里插入图片描述

1.5 : 8位生存时间(TTL)

IP 数据包在网络上转发,是由次数限制的,当转发的次数过多,接收方还未收到,这个数据包就要被丢弃.
8位生存时间,就是限制一个数据包在网络上转发的最大次数.
一个IP数据包,初始情况下,有一个TTL的值(32/64这样的整数),也是可以配置的.
这个次数每经过一个路由器的转发,就要-1,减到0了,就要把这个数据包丢弃掉.

1.6 : 8 位协议

描述了载荷部分是哪种协议的数据包.
一个数据包在分用的时候,要交给上层的哪个协议,都是有明确的声明的,
传输层 ==> 应用层 : 通过端口号来区分

网络层 ==> 传输层 : 报头中有这个8位协议字段,不同的取值就对应不同的传输层协议

数据链路层 ==>网络层 : 报文中,类型字段,区分是IP数据包,还是其他的数据包

1.7 : 32 位源IP / 32 位目的IP

32位范围: 0 - 42亿9千万,原则上.IP地址应该是唯一的,不重复的,但32位仍然不够用,尤其是现在处于移动互联网的今天.
32位IP地址不够用,如何解决?

  1. 动态分配 IP地址.
    某个设备,上网就分配 IP地址,不上网,就不分配,
    这样的机制,只能缓解,没办法从根本上解决问题,IP地址没有变多,只是跳过了IP地址的利用率.

  2. NAT机制 : 网络地址映射
    首先,把IP地址分为两类,
    1: 私网IP (局域网内部使用)
    10.x.x.x
    172.16 .x.x - 172.31.x.x
    192.168.x.x
    2: 公网IP(广域网使用): 私网IP以外的IP

公网IP是唯一的,私网IP可以在不同的局域网中重复.

== 引入私网IP,如何进行通信呢?==

  1. 同一个局域网内部, 设备之间的通信
    由于一个局域网内部的设备之间的IP是不能重复的,所以这些设备可以正常通信
  2. 广域网和广域网设备之间的通信
    广域网中的设备IP本身就是唯一的,所以也能正常交互.
  3. 局域网1 中的设备A尝试访问局域网2 中的设备B
    这种情况下是不允许进行访问的
  4. 局域网中的设备主动访问广域网设备,
    这个过程中,NAT机制就发挥作用了.
  5. 广域网主动访问局域网设备
    不允许进行访问

因此, 如果需要进行上述的局域网和局域网设备之间的通信,往往需要广域网中的服务器进行数据转发.

相关推荐

  1. DNS协议

    2024-06-16 13:50:02       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-16 13:50:02       14 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-16 13:50:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-16 13:50:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-16 13:50:02       18 阅读

热门阅读

  1. Web前端收入来源:探索多元化的盈利渠道

    2024-06-16 13:50:02       5 阅读
  2. yolov10 学习笔记

    2024-06-16 13:50:02       6 阅读
  3. js面试题

    2024-06-16 13:50:02       6 阅读
  4. ndk-build

    2024-06-16 13:50:02       6 阅读
  5. AI学习指南机器学习篇-KNN基本原理

    2024-06-16 13:50:02       7 阅读
  6. XML XSLT:技术与应用解析

    2024-06-16 13:50:02       5 阅读
  7. 【C++】priority_queue的用法(模板参数的实例)

    2024-06-16 13:50:02       6 阅读
  8. 决策树算法介绍 - 原理与案例实现

    2024-06-16 13:50:02       8 阅读
  9. Web前端设计培训机构:深度解析与实战指南

    2024-06-16 13:50:02       8 阅读