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

TCP基础知识

Q1:TCP四次挥手为什么比三次握手多一次?

A1: TCP的握手过程主要是为了建立连接,确认双方身份和可用性,确保双方都正确地接收到了对方的请求。这一过程只需要三次即可完成。
        但在挥手过程中,通信的双方不仅需要确认连接的断开,还需要确保各自的数据已经全部传输完毕。
        所以在server发送ACK后,需要等待client的close()信号,表示对方已经确定没有数据传输了,再发送FIN信号。

Q2:TCP的可靠性?(TCP如何保证数据的可靠性?)

A2:有如下6中方式来确保TCP的可靠性:

①校验和:对数据段进行校验和计算。发送方在发送数据之前计算校验和,并填充在数据段中。接收方收到数据后,会对数据进行同样的校验和计算,并与发送方的校验和进行比对。如果两者不一致,则说明数据传输有误,接收方会要求发送方重新发送数据。
②连接管理:TCP通过三次握手建立连接,并在数据传输完成后通过四次挥手断开连接。这确保了双方都已准备好进行数据交换,并在结束时正常关闭连接。
③超时重传:如果发送方在一定时间内没有收到对于某个数据段的确认应答,它会认为该数据段已丢失或损坏,并触发超时重传机制。发送方会重新发送该数据段,直到收到确认应答或达到最大重传次数。
④流量控制:TCP使用滑动窗口协议来控制发送方和接收方之间的数据流量。接收方会在ACK中告诉发送方其当前可用的缓冲区大小,发送方则根据这个信息来调整发送速率,避免发送过多的数据导致接收方无法及时处理。
⑤拥塞控制:TCP通过拥塞控制机制来避免网络拥塞。它动态地调整发送速率,以适应网络的拥塞程度。当网络拥塞时,发送方会降低发送速率,以减少数据包的丢失和重传,从而提高网络的稳定性和可靠性。
⑥序列号和确认应答:TCP为每个数据段分配一个唯一的序列号,接收方在收到数据后,会向发送方发送一个包含接收到的数据段序列号的确认应答(ACK)。发送方会等待这些ACK,以确认数据是否成功传输。如果发送方没有收到确认应答或者序列号不连续,它会重新发送丢失或损坏的数据段。

Q3:一台服务器最多可以建立多少个TCP连接

A3:源端口的可用范围是0~65535,所以理论上,一台服务器可以建立的TCP连接数至少可以达到65536个。


http://www.kler.cn/a/542071.html

相关文章:

  • 怎麼使用靜態住宅IP進行多社媒帳號管理
  • Word成功接入DeepSeek详细步骤
  • DeepSeek 助力 Vue 开发:打造丝滑的步骤条
  • Django在终端创建项目(pycharm Windows)
  • 【kafka系列】Topic 与 Partition
  • sqlite 查看表结构
  • 【网络安全】服务器安装Docker及拉取镜像教程
  • 【AI时代】Page Assist - 本地 AI 模型的 Web UI (谷歌浏览器) 本地DeepSeek启用联网功能
  • JavaScript 入门指南:从零开始学前端开发
  • linux基于 openEuler 构建 LVS-DR 群集--一、用命令行完成 二、使用脚本完成
  • Batch Normalization (BN) 和 Synchronized Batch Normalization (SyncBN) 的区别
  • DeepSeek-V3与DeepSeek-R1的对比
  • 现代前端开发的演进与未来趋势:从工具革新到技术突破
  • 【C#零基础从入门到精通】(一)——了解C#
  • TCP协议报头及各个字段的作用
  • kafka了解-笔记
  • 腾讯云限时免费开放满血版DeepSeek-r1/v3模型,无限免费调用
  • 常用ADC使用-不间断更新
  • 【SVN基础】
  • webpack【初体验】使用 webpack 打包一个程序
  • 2025.2.11
  • CSS 性能优化全攻略:提升网站加载速度与流畅度
  • 安装WPS后,导致python调用Excel.Application异常,解决办法
  • 深度学习之神经网络框架搭建及模型优化
  • 17.垃圾回收器
  • Android副屏锁屏界面-Android14