<JavaEE> TCP 的通信机制(五) -- 延时应答、捎带应答、面向字节流

目录

TCP的通信机制的核心特性

七、延时应答

1)什么是延时应答?

2)延时应答的作用

八、捎带应答

1)什么是捎带应答?

2)捎带应答的作用

九、面向字节流

1)沾包问题

2)“沾包问题”如何处理?

3)UDP协议会不会出现“沾包问题”?


TCP的通信机制的核心特性

TCP的通信机制最核心的特性是可靠传输。
TCP至少通过以下机制来保证传输的可靠性,在保证可靠性的同时也采取一些机制来提升传输效率
<1> 确认应答<6> 阻塞控制
<2> 超时重传<7> 延时应答
<3> 连接管理<8> 捎带应答
<4> 滑动窗口<9> 面向字节流
<5> 流量控制<10> 异常情况处理

阅读指针 -> 《 TCP 的通信机制 -- 流量控制 和 拥塞控制 》<JavaEE> TCP 的通信机制(四) -- 流量控制 和 拥塞控制-CSDN博客文章浏览阅读203次,点赞8次,收藏7次。介绍了 TCP 的通信机制 -- 流量控制 和 拥塞控制https://blog.csdn.net/zzy734437202/article/details/135257678


七、延时应答

1)什么是延时应答?

当接收端接受了大量数据后,如果立刻返回ACK,此时ACK中“窗口大小”属性的值,就会比较小。
发送端在收到这条ACK后,就会降低数据的发送速率,以适应这个“窗口大小”。
延时应答就是,接收端在收到大量数据后,不立刻返回ACK,而是等待读取接收缓冲区的数据之后,再行返回ACK。此时ACK中“窗口大小”属性的值,就会比较大。

2)延时应答的作用

窗口越大,网络吞吐量就越大,传输效率就越高。
延时应答就是为了在保证网络不拥塞的情况下,尽量提高传输效率。

八、捎带应答

1)什么是捎带应答?

捎带应答的意思就是字面意思,服务器端返回响应时,捎带了其他的报文段。将原本的两条数据报合并为一条数据报,进行返回。

2)捎带应答的作用

原本需要传输两条数据报,就封装分用两次。通过捎带应答,将这两条数据报合并为一条,也就只需要封装分用一次了。这在延时应答的基础上,进一步提升了传输效率。

九、面向字节流

1)沾包问题

TCP以字节流传输数据,接收端从接收缓存区中读取字节数据。
以应用层角度看,收到的数据都是一个个的字节,无法区分应用层数据包从哪个字节开始到哪个字节结束。就类似数据包都粘到一起了,因此称为“沾包问题”。

2)“沾包问题”如何处理?

“沾包问题”的本质是应用层无法知道数据包开始和结束,也就是数据包的边界。
因此,要处理“沾包问题”,就要明确数据包的边界在哪里。
大体上可以通过以下两种方式处理沾包问题:
<1> 明确分隔符:在两个数据包之间使用分隔符,这个分隔符就属于应用层协议的内容,由程序员自定义。应用程序读取到这个分隔符,则认为得到了一个完成的数据包。
<2> 明确数据包长度:在数据包的包头写入该数据包的长度,应用程序按照这个长度读取数据,就得到一个完整的数据包。

3)UDP协议会不会出现“沾包问题”?

UDP协议不会出现“沾包问题”。因为“沾包问题”的本质是数据包边界不明确。
而UDP协议是面向数据报的,一个数据报就是一个包。因此数据包边界明确。

阅读指针 -> 《 TCP 的通信机制(六) -- 异常情况处理 和 总结 》

<JavaEE> TCP 的通信机制(六) -- 异常情况处理 和 总结-CSDN博客介绍了TCP通信机制中异常情况的处理方法。对TCP通信机制进行了总结。https://blog.csdn.net/zzy734437202/article/details/135259471

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习之RNN

1.循环神经网络 在时间t的时候&#xff0c;对于单个神经元来讲它的输出y(t)如下 wx是对于输入x的权重&#xff0c;wy是对于上一时刻输出的权重 所以循环神经网络有两个权重。 如果有很多这样的神经元并排在一起 则在t时刻的输出y为 这时输入输出都是向量 2.记忆单元 由于循…

liunx系统突然不能启动jar

启动命令 nohup java -jar /date/gd_ly/jar/mssda-platform-backend-0.0.1-SNAPSHOT.jar -Dspring.config.location/date/gd_ly/jar/application-dev.yml 报错信息 Error: A JNI error has occurred, please check your installation and try again Exception in thread &q…

【起草】【第五章】定制ChatGPT数字亲人

身为普普通通的我们&#xff0c;不知道亲人们在哪一天就要离开这个世界 &#xff1f; 作为普普通通的程序员&#xff0c;我们可以为我们的亲人做点什么 &#xff1f; 让他们以某种形式留在人世间 ? 对话&#xff5c;6岁女孩病逝捐器官&#xff0c;妈妈&#xff1a;她去当天使…

Qt+Opencv:人脸检测

话接上一篇&#xff0c;我们仍使用在上篇《QtOpencv&#xff1a;Qt中部署opencv》创建的Qt项目来测试opencv提供的sample。 在正式开始本篇之前&#xff0c;我们先说做一下准备工作&#xff1a; 一、opencv官方文档 学习最权威和最可靠的方式&#xff0c;就是阅读官方文档和…

释放资源的方式

为什么要学这个释放资源的方式&#xff1f; //5 关流outputStream.close();inputStream.close();原来这种方式&#xff0c;一般项目都会有很多代码&#xff0c;万一前面的代码有异常&#xff0c;就无法执行到这一步&#xff0c;绑定的系统资源就得不到释放&#xff0c;影响系统…

腾讯云服务器和轻量服务器选哪个好(各自的优势区别)

腾讯云轻量服务器和云服务器CVM该怎么选&#xff1f;不差钱选云服务器CVM&#xff0c;追求性价比选择轻量应用服务器&#xff0c;轻量真优惠呀&#xff0c;活动 https://curl.qcloud.com/oRMoSucP 轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年&#xff0c;540元三…

CGAL的形状规则化

规则化之前&#xff08;红色&#xff09;和之后&#xff08;绿色&#xff09;的闭合轮廓。 1、介绍 这个 CGAL包能够规范2D中的一组线段和开闭轮廓以及3D中的一组平面&#xff0c;以便所有输入对象根据用户指定的条件进行旋转和对齐。此外&#xff0c;我们提供了一个全局规范框…

linux cuda环境搭建

1&#xff0c;检查驱动是否安装 运行nvidia-smi&#xff0c;如果出现如下界面&#xff0c;说明驱动已经安装 记住cuda版本号 2&#xff0c;安装cudatoolkit 上官网CUDA Toolkit Archive | NVIDIA Developer 根据操作系统选择对应的toolkit 如果已经安装了驱动&#xff0c;选…

main函数的参数ac和av

概要&#xff1a; main函数有两个参数&#xff0c;ac和av ac表示参数的个数&#xff0c;程序名包括在内。也就是说程序无参数运行时&#xff0c;ac的值为1 av是一个字符串数组&#xff0c;这个数组中的每个元素表示一个参数&#xff0c;程序名包括在内。也就是说&#xff0c…

【iptables】增加规则和删除规则

我们在另外一台机器上&#xff0c;使用ping命令&#xff0c;向当前机器发送报文&#xff0c;如下图所示&#xff0c;ping命令可以得到回应&#xff0c;证明ping命令发送的报文已经正常的发送到了防火墙所在的主机&#xff0c;ping命令所在机器IP地址为31.133&#xff08;黑色&a…

idea 如何快速拉取新分支

方式1 &#xff08;快捷键&#xff1a;CtrlShift~&#xff09; 方式2:&#xff08;快捷键&#xff1a;Alt9&#xff09;

第八章 Gateway网关

Gateway网关 gitee:springcloud_study: springcloud&#xff1a;服务集群、注册中心、配置中心&#xff08;热更新&#xff09;、服务网关&#xff08;校验、路由、负载均衡&#xff09;、分布式缓存、分布式搜索、消息队列&#xff08;异步通信&#xff09;、数据库集群、分布…

java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ 可定制化

工程项目管理软件是现代项目管理中不可或缺的工具&#xff0c;它能够帮助项目团队更高效地组织和协调工作。本文将介绍一款功能强大的工程项目管理软件&#xff0c;该软件采用先进的Vue、Uniapp、Layui等技术框架&#xff0c;涵盖了项目策划决策、规划设计、施工建设到竣工交付…

第二章 iptables防火墙

2.1 Linux 防火墙基础 在 Internet 中&#xff0c;企业通过架设各种应用系统来为用户提供各种网络服务&#xff0c;如 Web 网站、 电子邮件系统、 FTP 服务器、数据库系统等。那么&#xff0c;如何来保护这些服务器&#xff0c;过滤企业不 需要的访问甚至是恶意的入侵…

Linux管理LVM逻辑卷

目录 一、LVM逻辑卷介绍 1. 概述 2. LVM基本术语 2.1 PV&#xff08;Physical Volume&#xff0c;物理卷&#xff09; 2.2 VG (Volume Group&#xff0c;卷组&#xff09; 2.3 LV (Logical Volume&#xff0c;逻辑卷&#xff09; 3. 常用的磁盘命令 4. 查看系统信息的命…

字符串转成时间的SQL,一个多种数据库通用的函数

select date 2010-10-06 from dual; date 函数&#xff0c;此函数适用于&#xff1a; 1.MySQL数据库 2.Oracle数据库 3.达梦数据库 4.人大金仓数据库

机器学习三要素与拟合问题

1.如何构建机器学习模型&#xff1f; 机器学习工作流程总结 1.获取数据 2.数据基本处理 3.特征工程 4.机器学习(模型训练) 5.模型评估 结果达到要求&#xff0c;上线服务&#xff0c;没有达到要求&#xff0c;重新上面步骤 我们使用机器学习监督学习分类预测模型的工作流…

python flask学生成绩管理系统,包含使用文档

python flask学生成绩管理系统。 一.功能介绍 系统交互 登录无需注册功能 学生以学生编号为用户名&#xff0c;密码默认为学生编号&#xff0c;可修改教师以教师编号为用户名&#xff0c;密码默认为教师编号&#xff0c;可修改管理员以admin作为用户名&#xff0c;密码为固定…

【Python基础】字符串

文章目录 [toc]什么是字符串索引示例索引越界 切片语法示例 字符串方法find()方法rfind()方法count()方法replace()方法 个人主页&#xff1a;丷从心 系列专栏&#xff1a;Python基础 什么是字符串 如下定义的变量url存储的是字符串类型的值 url www.baidu.com print(url)u…

【经验分享】日常开发中的故障排查经验分享(一)

目录 简介CPU飙高问题1、使用JVM命令排查CPU飙升100%问题2、使用Arthas的方式定位CPU飙升问题3、Java项目导致CPU飙升的原因有哪些&#xff1f;如何解决&#xff1f; OOM问题&#xff08;内存溢出&#xff09;1、如何定位OOM问题&#xff1f;2、OOM问题产生原因 死锁问题的定位…