网络原理

UDP

特点:无连接 不可靠传输 面向数据报    全双工

报文格式:

UDP数据报=UDP报头+UDP载荷(应用层数据报)

                         |

源端口   目的端口    报文长度   校验和

TCP

特点:有连接   可靠传输  面向字节流     全双工

 作为传输层协议,首先就需要能表示端口号是啥。

4位首部长度:        指的是报头的长度.不是总tcp报文的长度.

选项:optional  可以通过选项,来选择加长或者不加长。

不加长的时候最少为20.

长度可以变长,最长可以变成60个字节。((首部长度的单位是4个字节)。实际的首部长度是要这个数字的基础上*4.所以为15*4=60)

保留6位

UDP报文长度使用2个字节表示。不能扩展

但是TCP提前申请好一块空间,即是保留位,为了后面发展拓展功能的时候就可以应用这个保留位了。

TCP协议的核心机制

1.确认应答机制

TCP协议来说,要要解决一个很重要的问题,可靠传输.(你发送方能够100%的把数据发送给接收方但是会尽可能.尤其是能够让发送方知道,接收方是否收到.).

在日常生活中,对人打招呼的时候,另一个人一般会回一个招呼,这样回复的应答数据就可以称为“应答报文”。

就是应答报文(1bit)。

但是会出现一种问题,当我们早期发消息的时候会有消息延迟,导致我问你了两个问题,你回复两个问题的时候会导致误会。

在网络传输中也会出现这种情况-》后发先至。

这样的问题在我网络通信的时候经常会出现,所以我们就要对传输的数据进行编号,这样就能让应答报文和发送的数据编号,对应起来,

 给应答报文使用的(ack为1的时候才有效)这样的数据就可以根据确认序号区分出要应答哪个上面的报文了,

实际真实的tcp的序号不是按照“一条两条”方式来编号的而是按照“字节”来编号的.

此处报头中写的序号的数值就是载荷部分第一个字节的序号。

每个字节都有编号,字节的编号是连续递增的。

1)对于B来说,<1001的数据都已经确认收到了,

2)B再向A索要从1001开始的数据~~

可靠传输之所以能达成,主要就是依靠“确认应答”机制。

在日常生活中,每个交换机或者路由器是有上限的,当一个机器转发的信息量过多,合作社超出自己能处理的极限的时候,就会把接下来多出来的信息直接丢弃。

2.超时重传

A通过是否收到了ACK(b返回信息)来区分是否出现了 丢包的情况(A等待一定时间后,时间超过了某个阈值,没有收到ACK,就认为出现了丢包现象):

(1)就是A发送信息,B没有收到。

可以重新传输

(2)A发送信息,B接收到了,但是返回响应的时候,A没有收到。

如果B对相同的数据进行两个响应的时候就会出现bug,所以B会进行去重操作。通过发送的序号来去重。

B的内核态中有接受缓冲区,那会把接受的数据放入一个阻塞队列中,然后根据数据的序号来判定这个数据是否在队列中存在(或者曾经在队列中存在过)只要存在过,这个新的数据就不会进入队列,而是直接丢弃。

进入用户态:

调用accept拿到clientSocket拿到InputStream进行read

队列中的数据就会进入到用户态,但是他的序号会保存在这个阻塞队列中继续去重。

在其中也会根据序号自动来排序,让序号小的,在前头,序号大的在后头,并且数据和数据之间的序号始终都是连续的,这样就能提高效率。

超时重传,超时时间,是多少呢?

注意,这个时间,不是固定数值,而是会动态变化随着重传轮次的增加,会变的越来越长~~

这样重传的频率会越来越低,

如果达到一定重传次数就会尝试重置连接。

触发一个“复位报文”尝试重置连接(相当于连接重新开始)

重置就是通信双方清空之前tcp传输过程中接受缓冲区里里的数据啥的都不要了)

但是如果网络出现了严重故障,重置也没有用,就会断开连接 。

就会把信息删除掉。

TCP可靠传输,全靠确认应答超时重传这俩机制支撑着。

3.链接管理

建立连接的流程:三次握手  

两个机器,一见面,然后就进行打招呼,打招呼过程中,没有实质上的数据交互只是为了打招呼而传输一些数据

断开连接的流程:四次挥手

在握手和挥手的过程中,传输的网络数据报,不携带任何业务上的数据

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++实验五 : 类的继承 -----CUST

【题目】 1.定义person类&#xff0c;包括数据私有成员&#xff1a;姓名&#xff0c;性别&#xff1b;共用成员函数&#xff1a;带参数构造函数&#xff0c;display函数输出本类对象的所有数据成员值。 2.定义student类&#xff0c;保护继承person类&#xff1b;增加保护数据成…

怎么找投资白银的贵金属交易平台?

在当今的投资市场中&#xff0c;白银作为一种贵金属&#xff0c;一直受到投资者的广泛关注。但是&#xff0c;如何选择一家可靠的贵金属交易平台进行投资呢&#xff1f;这是许多投资者面临的难题。本文将从多个角度为投资者详细解析如何找到一家值得信赖的贵金属交易平台。 我们…

多模态大模型通过外接数据方案实现电力智能巡检(设计方案)

大模型相关目录 大模型&#xff0c;包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步&#xff0c;扬帆起航。 大模型应用向开发路径&#xff1a;AI代理工作流大模型应用开发实用开源项目汇总大模…

TSINGSEE青犀视频边缘计算AI智能分析网关V4告警消息语音推送的配置流程

TSINGSEE青犀视频边缘计算硬件智能分析网关V4内置了近40种AI算法模型&#xff0c;支持对接入的视频图像进行人、车、物、行为等实时检测分析&#xff0c;上报识别结果&#xff0c;并能进行语音告警播放。今天我们来分享一下如何配置和使用AI智能分析网关V4的语音推送。 提前准备…

webrtc初步了解

WebRTC搭建点对点实时音视频对话&#xff0c;起始需要保证完成两点&#xff1a; 1.媒体协商&#xff0c;了解彼此支持的媒体格式。参与视频通讯的双方必须先交换SDP信息&#xff0c;交换SDP的过程。 2.网络协商&#xff0c;了解彼此的网络环境&#xff0c;找到一条相互通讯的链…

【SpringBoot整合系列】SpringBoot整合RabbitMQ-消息可靠性

目录 确保消息的可靠性RabbitMQ 消息发送可靠性分析解决方案开启事务机制发送方确认机制单条消息处理消息批量处理 失败重试自带重试机制业务重试 RabbitMQ 消息消费可靠性如何保证消息在队列RabbitMQ 的消息消费&#xff0c;整体上来说有两种不同的思路&#xff1a;确保消费成…

基于Java+SpringBoot+Vue+echarts健身房管理系统设计和实现

基于JavaSpringBootVueecharts健身房管理系统设计和实现 &#x1f345; 作者主页 网顺技术团队 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; &#x1f345; 查看下方微信号获取联系方式 承接各种定制系…

Axure PR 10 下拉三级菜单设计图

在线预览地址&#xff1a;Untitled Document 程序员必备资源网站&#xff1a;天梦星服务平台 (tmxkj.top) 需要源码设计图联系我wx:19948765606,3块钱拿走

k8s 使用Docker和Containerd对比分析

目录 k8s 使用Docker和Containerd对比分析 互动1&#xff1a;docker build构建的镜像和containerd镜像通用吗&#xff1f; 互动2&#xff1a;k8s1.24之前版本和1.24及1.24之后版本区别&#xff1f; k8s 使用Docker和Containerd对比分析 如果你使用Docker作为K8S容器运行时的…

orbslam2基础

目录 一、 内容概要二、 orbslam2基础介绍三 、 orbslam2安装3.1 安装依赖3.2 安装orbslam23.3 下载Kitee数据集 四、 进行ORBSLAM2仿真五、 心得体会六、 参考链接 一、 内容概要 orbslam2基础介绍orbslam2安装orbslam2使用案例&#xff1a;orbslam2kitti数据集序列图像 二、…

python3安装教程

1.下载python 百度网盘下载python-3.12.3-amd64.exe 链接&#xff1a;https://pan.baidu.com/s/1MV3kvVdjCdS_G-_KgefwLw?pwdpgzu 提取码&#xff1a;pgzu 官网下载&#xff1a;Welcome to Python.org 有很多版本&#xff0c;选择需要的版本下载 2.安装python 双击python-…

作为餐饮行业HR,怎么选择一套合适的HCM人事管理系统?

在餐饮业这个行业中&#xff0c;人员流动性较高&#xff0c;特别是对于服务员和厨师这类基层员工&#xff0c;招聘一直是一个难题。根据艾瑞数据测算&#xff0c;到2024年&#xff0c;中国餐饮行业的年收入将超过6万亿元&#xff0c;年复合增长率高达8.8%。作为餐饮企业的品牌战…

RV32I指令集及其编码方式解读

文章目录 前言RISCV指令集的模块化RV32IR型指令I型指令load指令 (I型) S型指令B型指令 (S型指令变体)PC相对地址B型指令简单举例 U型指令LUI指令li伪指令 AUIPC指令 J型指令(U型指令变体)JAL指令JALR指令(I型指令) 注参考 前言 R I S C − V RISC-V RISC−V 表示精简指令集计算…

汽车IVI中控开发入门及进阶(十七):IVI的功耗管理

汽车人机界面(HMI)系统旨在使驾驶员能够在不分心的情况下与车辆互动。HMI可以通过触摸板、按钮或语音系统在人和机器之间建立更自然的互动。对连接解决方案、低成本HMI软件和增强的用户体验(UX)的需求不断增加,使得平视显示器(HUD)、后座娱乐系统、基于转向的控制、仪表…

第42天:WEB攻防-PHP应用MYSQL架构SQL注入跨库查询文件读写权限操作

第四十二天 一、PHP-MYSQL-SQL注入-常规查询 1.PHP-MYSQL-Web组成架构 MySQL(统一管理) ​ root&#xff08;自带默认&#xff09; ​ 网站A testA ​ 网站B testB MySQL(一对一管理) ​ testA用户 ​ 网站A testA ​ testB用户 ​ 网站B testB access无数据库用户 m…

使用海外云手机为亚马逊店铺引流

在全球经济一体化的背景下&#xff0c;出海企业与B2B外贸企业愈发重视海外市场的深耕&#xff0c;以扩大市场份额。本文旨在探讨海外云手机在助力亚马逊店铺提升引流效果方面的独特作用与优势。 海外云手机&#xff0c;一种基于云端技术的虚拟手机&#xff0c;能够在单一硬件上…

html--瀑布效果

<!doctype html> <html> <head> <meta charset"utf-8"> <title>瀑布效果</title><style> body {background: #222;color: white;overflow:hidden; }#container {box-shadow: inset 0 1px 0 #444, 0 -1px 0 #000;height: 1…

【Qt 学习笔记】Qt常用控件 | 输入类控件 | Slider的使用及说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 输入类控件 | Slider的使用及说明 文章编号&#xff1a;…

已经有 Prometheus 了,还需要夜莺?

谈起当下监控&#xff0c;Prometheus 无疑是最火的项目&#xff0c;如果只是监控机器、网络设备&#xff0c;Zabbix 尚可一战&#xff0c;如果既要监控设备又要监控应用程序、Kubernetes 等基础设施&#xff0c;Prometheus 就是最佳选择。甚至有些开源项目&#xff0c;已经内置…

QGraphicsView实现简易地图12『平移与偏移』

前文链接&#xff1a;QGraphicsView实现简易地图11『指定层级-定位坐标』 提供地图平移与偏移功能。地图平移是指将地图的中心点更改为给定的点&#xff0c;即移动地图到指定位置。地图偏移是指将当前视口内的地图向上/下/左/右/进行微调&#xff0c;这里偏移视口宽/高的四分之…
最新文章