IP协议格式

在传输层中有两个重要的协议,分别为UDP和TCP。UDP追求高效的效率,TCP追求更可靠的传输。但是这两个协议都太极端了,有没有一个协议可以在保证可靠性的同时又不失较高的效率。

针对上面的问题,网络层的IP协议是更好的解决方案。

IP协议的报文格式如下图:

1、版本 

IP协议分为IPv4和IPv6两个版本,现在基本上使用的都是IPv4协议,但有些软件也支持IPv6协议。

2、首部长度

与TCP协议一样,由于有选项的存在,导致首部长度是变化的,该属性即表示了IP协议报头的长度。单位为4字节。

3、服务类型

该属性决定了IP协议的工作方式。8位服务类型分为3位优先权字段(已经弃用)、4位TOS字段和1位保留字段(必须设置为0)。4位TOS字段分为最小延时、最大吞吐量、最高可靠性、最小成本。

4、总长度

即IP协议的报头与载荷的长度和。由于是16位,并且单位是字节,那么IP报文最大的长度为64KB。与UDP一样,若载荷过长,就有可能出现一个报文装不下的情况。但是对于IP协议,内置了拆包组包的操作,即当载荷过长时,会将载荷拆分成多个部分,并将这每一个部分封装为一个IP数据报。接收方在接收到这些IP数据报后,就会自动触发组包操作,将这些IP数据报的载荷拼接到一起。

5、16位标识、3位标志位、13位片偏移

由于IP协议内置了拆包组包的操作,那么在组包时是如何分清哪几个数据报是被拆分出来的?

标识即将同一个载荷拆分出来的IP数据报设置为同一个标识,在组包时就会将相同标识的包组合在一起。

标志位一共有三位。其中一位表示了该包是否被拆分过,另一位表示该包是否为拆分出来的最后一个包。

在组包过程中也需要考虑包与包之间的顺序。13位片偏移表示了包与包之间的顺序。偏移量小的包在前,偏移量大的包在后。

6、生存时间

IP数据报在网络中的最大传输时间,单位为次数。IP数据报每经过一个路由器转发,TTL就会减1,当TTL减为0时,就说明该数据报无法到达接收方,就会被丢弃。TTL的值是有可能变化的。

下图是访问搜狗服务器的TTL大小:

7、8位协议 

表示传输层使用的是哪种协议。在对数据报进行分用时,网络层就会拿到传输层使用的协议类型,在将载荷发送到传输层后,传输层就知道应该使用哪种协议来解析这个数据报。

8、首部校验和

在UDP/TCP协议中,也存在校验和属性。由于传输层的校验和是针对TCP/UDP数据报的报头与载荷,在IP数据报中的载荷就是TCP/UDP数据报,此时就不需要将载荷带入计算,而只需要将IP数据报的报头进行计算从而得出一个校验和即可。

9、源IP地址,目的IP地址(重要)

标识了IP数据报从哪来,要到哪去。

由于IP地址是32位,即用32位数字表示,但32位数字过于长,于是使用点分十进制来表示。将32位数字分为4组,组与组之间使用点分开,每组数字在0-255之间,如192.0168.0.1 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/5996.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt Creator 15.0.0如何更换主题和字体

1.打开Qt Creator 15.0.0 (Community), 2.点击编辑栏3.点击Preferences... 4.修改主题,点击环境,修改Theme:栏 5.修改字体大小,点击文本编辑器,修改字号栏。,修改Theme:栏

靶机复现-pikachu靶机文件包含漏洞

本篇文章旨在为网络安全渗透测试靶机复现学习。通过阅读本文,读者将能够对渗透pikachu靶场文件包含漏洞复现有一定的了解 原文学习链接 CSDN博主:One_Blanks主页地址 靶机资源下载 PHPStudy pikachu 一、前言 文件包含漏洞是编程中的一种安全隐患&a…

机器学习-线性回归(简单回归、多元回归)

这一篇文章,我们主要来理解一下,什么是线性回归中的简单回归和多元回归,顺便掌握一下特征向量的概念。 一、简单回归 简单回归是线性回归的一种最基本形式,它用于研究**一个自变量(输入)与一个因变量&…

5.SQLAlchemy对两张有关联关系表查询

问题 例如,一个用户可以有多个收获地址。 定义表如下: 用户表 地址表 一般情况,我们会先查询用户表,拿到用户id后,再到地址表中查询关联的地址数据。这样就要执行两次查询。 仅仅为了方便查询,需要一些属…

【Unity】ScrollViewContent适配问题(Contentsizefilter不刷新、ContentSizeFilter失效问题)

最近做了一个项目,菜单栏读取数据后自动生成,结果用到了双重布局 父物体 尝试了很多方式,也看过很多大佬的文章,后来自己琢磨了一下,当子物体组件自动生成之后,使用以下以下代码效果会好一些: …

springboot基于微信小程序的商城系统

基于Spring Boot的微信小程序商城系统是一种现代化的电商解决方案,它将Spring Boot框架的强大后端能力与微信小程序的便捷前端体验相结合,为商家和用户提供了高效、稳定的在线购物平台。 一、后端框架 :Spring Boot 1. 简介: 2.…

63,【3】buuctf web Upload-Labs-Linux 1

进入靶场 点击pass1 查看提示 既然是上传文件&#xff0c;先构造一句话木马&#xff0c;便于用蚁剑连接 <?php eval($_POST[123])?> 上传木马 文件后缀写为.php.jpg 右键复制图片地址 打开蚁剑连接 先点击测试连接&#xff0c;显示成功后&#xff0c;再点击添加即可 …

【玩转全栈】----基于ModelForm完成用户管理页面

目录 大致效果 添加用户代码 引入ModelForm ModelForm 与一般表单的区别&#xff1a; ModelForm 与传统 Form 的区别&#xff1a; 使用ModelForm制作用户管理 新建用户 编辑用户&#xff1a; 删除数据 完整代码 在学完前面的部门管理案例后&#xff0c;自己独立写出个用户管理应…

AIGC视频生成模型:ByteDance的PixelDance模型

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍ByteDance的视频生成模型PixelDance&#xff0c;论文于2023年11月发布&#xff0c;模型上线于2024年9月&#xff0c;同时期上线的模型还有Seaweed&…

深入探究 YOLOv5:从优势到模型导出全方位解析

一、引言 在计算机视觉领域&#xff0c;目标检测是一项至关重要的任务&#xff0c;它在自动驾驶、安防监控、工业检测等众多领域都有着广泛的应用。而 YOLO&#xff08;You Only Look Once&#xff09;系列作为目标检测算法中的佼佼者&#xff0c;一直备受关注。其中&#xff…

Qt —— 控件属性

一、概述 控件有很多属性&#xff0c;我们学习和整理常见和常用的几个属性&#xff0c;由于所有的控件基本都是继承Widget类的&#xff0c;所以前面会先拿Widget类和常见的控件进行示范。 Qt Designer左侧一长条就是Qt给我们内置好的控件&#xff1a; 二、enabled 状态属性 …

会议签到系统的架构和实现

会议签到系统的架构和实现 摘要:通过定制安卓会议机开机APP呈现签到界面&#xff0c;并且通过W/B结构采集管理签到信息&#xff0c;实现会议签到的功能。为达到此目标本文将探讨使用Redis提供后台数据支持&#xff1b;使用SocketIo处理适时消息&#xff1b;使用Flask进行原型开…

WPF实战案例 | C# WPF实现大学选课系统

WPF实战案例 | C# WPF实现大学选课系统 一、设计来源1.1 主界面1.2 登录界面1.3 新增课程界面1.4 修改密码界面 二、效果和源码2.1 界面设计&#xff08;XAML&#xff09;2.2 代码逻辑&#xff08;C#&#xff09; 源码下载更多优质源码分享 作者&#xff1a;xcLeigh 文章地址&a…

JAVA:Spring Boot 实现责任链模式处理订单流程的技术指南

1、简述 在复杂的业务系统中&#xff0c;订单流程往往需要一系列的操作&#xff0c;比如验证订单、检查库存、处理支付、更新订单状态等。责任链模式&#xff08;Chain of Responsibility&#xff09;可以帮助我们将这些处理步骤分开&#xff0c;并且以链式方式处理每一个操作…

stm32单片机个人学习笔记14(USART串口数据包)

前言 本篇文章属于stm32单片机&#xff08;以下简称单片机&#xff09;的学习笔记&#xff0c;来源于B站教学视频。下面是这位up主的视频链接。本文为个人学习笔记&#xff0c;只能做参考&#xff0c;细节方面建议观看视频&#xff0c;肯定受益匪浅。 STM32入门教程-2023版 细…

postgresql15的启动

PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统&#xff0c;且因为许可证的灵活&#xff0c;任何人都可以以任何目的免费使用、修改和分发PostgreSQL。现在国产数据库大力发展阶段&#xff0c;学习和熟悉postgresql的功能是非常有必要的&#x…

行人识别检测数据集,yolo格式,PASICAL VOC XML,COCO JSON,darknet等格式的标注都支持,准确识别率可达99.5%

作者简介&#xff1a; 高科&#xff0c;先后在 IBM PlatformComputing从事网格计算&#xff0c;淘米网&#xff0c;网易从事游戏服务器开发&#xff0c;拥有丰富的C&#xff0c;go等语言开发经验&#xff0c;mysql&#xff0c;mongo&#xff0c;redis等数据库&#xff0c;设计模…

【前端】CSS实战之音乐播放器

目录 播放器背景旋转音乐封面按钮进度条音量调节音乐信息按钮的效果JavaScript部分播放和暂停音乐切换音乐信息进度条 音量调节避免拖拽时的杂音音量调节条静音和解除静音 自动下一首实现一个小效果最终效果 播放器背景 <div class"play_box"></div>设置…

SSM开发(一)JAVA,javaEE,spring,springmvc,springboot,SSM,SSH等几个概念区别

目录 JAVA 框架 javaEE spring springmvc springboot SSM SSH maven JAVA 一种面向对象、高级编程语言&#xff0c;Python也是高级编程语言&#xff1b;不是框架(框架&#xff1a;一般用于大型复杂需求项目&#xff0c;用于快速开发)具有三大特性&#xff0c;所谓Jav…

rocketmq基本架构

简介 Name server 负责broker注册、心跳&#xff0c;路由等功能&#xff0c;类似Kafka的ZKname server节点之间不互相通信&#xff0c;broker需要和所有name server进行通信。扩容name server需要重启broker&#xff0c;不然broker不会和name server建立连接producer和consum…