网络层重点协议—IP协议

在复杂的网络环境中确定一个合适的路径

协议头格式如下:

4位版本号(version)

指定协议的版本(IPV4-4,IPV6-6)

4位首部长度(header length)

IP头部的长度是多少个32bit,也就是length*4的字节数。4bit表示最大的数字是15,因此IP头部最大长度是60字节

8位服务类型(Type Of Service)

3位优先权字段(已经弃用),4位TOS字段和1位保留字段(必须置为0)。

4位TOS不同的位设1分别表示不同的形态:最小延时、最大吞吐量、最高可靠性、最小成本。

这四者相互冲突,只能选择一个。对于SSH/Telnet这样的应用程序,最小延时比较重要;对于FTP这样的程序,最大吞吐量比较重要

16位总长度(total length)

IP数据报整体占多少个字节

IP协议确实也存在64KB这样的限制,但是IP协议自身支持”拆包组包“功能

通过以下这三个属性来支持IP协议的拆包和组包:

8位生存时间(Time To Live,TTL)

数据报到达目的地的最大报文跳数。一般是64。每次经过一个路由,TTL-=1,一直减到0还没到达那么就丢弃了。这个字段主要是用来防止出现路由循环。

8位协议

表示上层协议(传输层)的类型:IP数据包的载荷部分是一个UDP数据包还是一个TCP数据包

16位头部校验和

使用CRC进行校验,来鉴别头部是否损坏(不负责校验IP数据的载荷,UDP/TCP自身都是有校验和的)

32位源地址和32位目标地址

表示发送端和接收端IP地址,IP地址本身是一个32位整数,为了方便理解,写作点分十进制方式

IPV4版本的地址格式是:a.b.c.d,其中abcd表示的是0~255的数字,如192.168.88.101就是一个标准的IP地址

选项字段

(不定长,最多40字节)

相关推荐

最近更新

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

    2024-07-14 14:00:05       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 14:00:05       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 14:00:05       58 阅读
  4. Python语言-面向对象

    2024-07-14 14:00:05       69 阅读

热门阅读

  1. iOS热门面试题(三)

    2024-07-14 14:00:05       18 阅读
  2. 六爻排盘 api数据接口

    2024-07-14 14:00:05       21 阅读
  3. LeetCode 367, 56, 22

    2024-07-14 14:00:05       20 阅读
  4. 【关于Pinia与Vuex】

    2024-07-14 14:00:05       16 阅读
  5. Swift 基于Codable协议使用

    2024-07-14 14:00:05       20 阅读
  6. 升级springboot3.2集成shiro的问题

    2024-07-14 14:00:05       28 阅读
  7. 后端老鸟的前端初探:心得与领悟20240713

    2024-07-14 14:00:05       24 阅读