当前位置: 首页 > news >正文

<JavaEE> 了解网络层协议 -- IP协议

目录

初识IP协议

什么是IP协议?

IP协议中的基础概念

IP协议格式

图示

4bit版本号(version)

4bit头部长度(headerlength)

8bit服务类型(TypeOfService)

16bit总长度(total length)

16bit标识(id)

3bit标志字段

13bit分片偏移(framegament offset)

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

8bit上层协议类型

16bit头部校验和

32bit源地址和32bit目标地址

选项字段

IP协议有什么功能?


初识IP协议

                                                  

什么是IP协议?

  • IP协议属于网络层协议,主要功能是通过地址管理和路由选择,将数据包传输到目标主机

  • IP协议定义了数据包的格式、寻址方式和路由规则,是互联网通信的基础


IP协议中的基础概念

  • 主机:配有IP地址,但不进行路由控制的设备。

  • 路由器:既配有IP地址,又能进行路由控制的设备。

  • 节点:主机和路由器的统称。


IP协议格式

                                                  

图示


4bit版本号(version)

  • 表示当前报文的IP协议版本,如IPv4

4bit头部长度(headerlength)

  • 表示IP头部的⻓度。

  • 4bit可以表示的最大数字是15,其中每个1表示一个32bit,即4字节,因此头部长度最长为15*4=60字节


8bit服务类型(TypeOfService)

具体包含以下内容:

  • 3bit优先权字段已弃用

  • 4bitTOS字段:表示IP协议的四种不同形态

    1. 最小延时

    2. 最大吞吐量

    3. 最高可靠性

    4. 最小成本

  • 1bit保留


16bit总长度(total length)

  • 表示IP数据报整体占多少字节

  • 16bit最多只能表示65535,即单个报文长度最长为64kb

  • 但是IP协议本身支持“拆包组包”功能,因此报文长度并不是固定的。


16bit标识(id)

  • 用于表示发出的报文,是一个唯一的标识

  • 当IP报文在数据链路层被分片,则每个分片中的id都是相同的,以此识别数据中的同一段报文。


3bit标志字段

具体包含以下内容:

  • 第一个bit,为保留位。

  • 第二个bit,为1表示禁止分片,此时如果报文长度超过MTU,则报文会被丢弃;为0表示可以分片

  • 第三个bit,表示分片结束标识,当存在分片且当前分片是报文的最后一片时,该bit为1;不是最后一片,则为0。


13bit分片偏移(framegament offset)

  • 表示当前分片在原报文中所处的位置

  • 偏移字节数通过该值*8计算得出,因此除最后一个报文外,其他报文长度必须为8的整数倍。


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

  • 表示数据报到达目标地址的最大报文跳数

  • 每经过一个路由则跳数-1,当跳数为0时,报文将被丢弃

  • 这个属性的作用是防止出现路由循环


8bit上层协议类型

  • 表示上层(传输层)协议的类型。

  • 描述了IP数据报的载荷部分的协议类型,如UDP数据报或TCP数据报。


16bit头部校验和

  • 使用CRC进行校验,只用于鉴别头部是否损坏,并不校验载荷

32bit源地址和32bit目标地址

  • 是两个32bit的整数,分别表示发送端地址和接收端地址,是IP数据包中最关键的内容


选项字段

  • 长度不定,最多40字节,用于辅助上述字段工作,不做介绍。


IP协议有什么功能?

                                                  

  • IP协议的功能是地址管理和路由选择

<JavaEE> 理解IP协议的两个功能 -- 地址管理和路由选择-CSDN博客


http://www.lryc.cn/news/321821.html

相关文章:

  • 【安全类书籍-2】Web渗透测试:使用Kali Linux
  • ubuntu10.04 apache2.2开启tls1.2的支持,使现代的edge和firefox浏览器能正常访问https
  • 算法学习(持续更新中)
  • 蓝桥杯 2023 省B 飞机降落
  • 基于python的变配电室运行状态评估与预警系统flask-django-nodejs-php
  • el-table左键双击单元格编辑内容(输入框输入计算公式可直接得出结果),右键单击展示操作菜单,可编辑单元格高亮展示
  • 实现HBase表和RDB表的转化(附Java源码资源)
  • 10:00面试,10:06就出来了,问的问题有点变态。。。
  • 【Python】: Django Web开发实战(详细教程)
  • 突破编程_C++_C++11新特性(tuple)
  • xss.pwnfunction(DOM型XSS)靶场
  • 安装 docker 和 jenkins
  • jni入门学习 CMakeLists脚本
  • 如何在没有向量数据库的情况下使用知识图谱实现RAG
  • 6.如何判断数据库搜索是否走索引?
  • Java并发编程的性能优化方案中,哪些方法比较常用
  • AcWing 2867. 回文日期(每日一题)
  • 学习笔记-华为IPD转型2020:3,IPD的实施
  • 2024腾龙杯web签到题-初识jwt(签到:这是一个登录页面)
  • Monaco Editor系列(一)启动项目与入门示例解析
  • DNA存储技术原理是什么?
  • 多维时序 | Matlab实现VMD-CNN-GRU变分模态分解结合卷积神经网络门控循环单元多变量时间序列预测
  • 基于springboot+vue的毕业论文管理系统
  • JavaWeb后端——分层解耦 IOC DI
  • 短视频矩阵系统技术交付
  • Halcon 凹坑检测案例
  • MD5算法:密码学中的传奇
  • microk8s使用本地私服registry的镜像http协议
  • C++初阶 | [九] list 及 其模拟实现
  • 如何将Excel两列数据转换为统计图、曲线图、折线图?如何自定义某一列作为Excel的统计图横纵坐标?