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

TCP传输数据的确认机制

实际的TCP收发数据的过程是双向的。

TCP采用这样的方式确认对方是否收到了数据,在得到对方确认之前,发送过的包都会保存在发送缓冲区中。如果对方没有返回某些包对应的ACK号,那么就重新发送这些包。

这一机制非常强大。通过这一机制,我们可以确认接收方有没有收到某个包,如果没有收到则重新发送,这样一来,无论网络中发生任何错误,我们都可以发现并采取补救措施(重传网络包)。

反过来说,有了这一机制,我们就不需要在其他地方对错误进行补救了。

因此,网卡、集线器、路由器都没有错误补偿机制,一旦检测到错误就直接丢弃相应的包。应用程序也是一样,因为采用TCP传输,即便发生一些错误对方最终也能够收到正确的数据,所以应用程序只管自顾自地发送这些数据就好了。

不过,如果发生网络中断、服务器宕机等问题,那么无论TCP怎样重传都不管用。这种情况下,无论如何尝试都是徒劳,因此TCP会在尝试几次重传无效之后强制结束通信,并向应用程序报错。

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

相关文章:

  • 使用Ansible Expect模块实现自动化交互式任务
  • 51单片机独立按键以及矩阵按键的使用以及其原理--独立按键 K1 控制 D1 指示灯亮灭以及数码管显示矩阵按键 S1-S16 按下后键值 0-F
  • chrome安装jsonview
  • 使用TouchSocket适配一个c++的自定义协议
  • VSC改造MD编辑器及图床方案分享
  • SpringBoot的依赖管理和自动配置
  • linux 定时任务
  • 增强现实中的真实人/机/环与虚拟人/机/环
  • Python网络爬虫环境的安装指南
  • 【MyBatis系列】MyBatis字符串问题
  • 【Java】构建表达式二叉树和表达式二叉树求值
  • 采用Python 将PDF文件按照页码进行切分并保存
  • H264视频编码原理
  • UDP实现群聊
  • 服务器部署网易开源TTS | EmotiVoice部署教程
  • 贪心算法和动态规划
  • jsp 设备预约管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
  • Python:核心知识点整理大全10-笔记
  • Hive数据库系列--Hive数据类型/Hive字段类型/Hive类型转换
  • 在Spring Cloud中使用组件Ribbon和Feign,并分别创建子模块注册到Eureka中去
  • (JAVA)-缓冲流
  • Autosar UDS-CAN诊断开发02-1(CAN诊断帧格式类型详解、CANFD诊断帧格式类型详解、15765-2(CANTP层)的意义)
  • swing快速入门(三)
  • Swagger PHP Thinkphp 接口文档
  • 12.9每日一题(备战蓝桥杯循环结构)
  • 与时代共进退
  • Python 云服务器应用,Https,定时重启
  • pytorch 笔记:dist 和 cdist
  • Java的List中的各种浅拷贝和深拷贝问题
  • 20231207_最新已测_Centos7.4安装nginx1.24.0_安装详细步骤---Linux工作笔记066