千家信息网

TCP数据的传输进程

发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,图1:TCP 套接字的数据交流进程上图给出了主机A分2次(分2个数据包)向主机B传递200字节的进程。起首,主机A经过1个数据包发送100个字节的数据,数据包的 Seq 号设置为 1200。主机B为了
千家信息网最后更新 2025年02月06日TCP数据的传输进程


图1:TCP 套接字的数据交流进程


上图给出了主机A分2次(分2个数据包)向主机B传递200字节的进程。起首,主机A经过1个数据包发送100个字节的数据,数据包的 Seq 号设置为 1200。主机B为了确认这一点,向主机A发送 ACK 包,并将 Ack 号设置为 1301。

为了包管数据精确抵达,目的机械在收到数据包(包含SYN包、FIN包、通俗数据包等)包后必需立刻回传ACK包,如许发送刚才能确认数据传输胜利。

此时 Ack 号为 1301 而不是 1201,缘由在于 Ack 号的增量为传输的数据字节数。假定每次 Ack 号不加传输的字节数,如许固然可以确认数据包的传输,但无法明白100字节全体准确传递照样丧失了一局部,比方只传递了80字节。因而按如下的公式确认 Ack 号:

Ack号 = Seq号 + 传递的字节数 + 1

与三次握手协定相反,最初加 1 是为了通知对方要传递的 Seq 号。
下面剖析传输进程中数据包丧失的状况,如下图所示:


图2:TCP套接字数据传输进程中发作毛病


上图表现经过 Seq 1301 数据包向主机B传递100字节的数据,但两头发作了毛病,主机B未收到。经由一段工夫后,主机A仍未收到关于 Seq 1301 的ACK确认,因而测验考试重传数据。
为了完成数据包的重传,TCP套接字每次发送数据包时都邑启动准时器,假如在必定工夫内没有收到目的机械传回的 ACK 包,那么准时器超时,数据包会重传。

上图演示的是数据包丧失的状况,也会有 ACK 包丧失的状况,一样会重传。
重传超不时间(RTO, Retransmission Time Out)

这个值太大了会招致不用要的等候,太小会招致不用要的重传,实际上最好是收集 RTT 工夫,但又受制于收集间隔与瞬态时延变更,所以实践上运用自顺应的静态算法(例如 Jacobson 算法和 Karn 算法等)来肯定超不时间。

往复工夫(RTT,Round-Trip Time)表现从发送端发送数据开端,到发送端收到来自接纳端的 ACK 确认包(接纳端收到数据后便立刻确认),总共阅历的时延。
重传次数

TCP数据包重传次数依据零碎设置的分歧而有所差别。有些零碎,一个数据包只会被重传3次,假如重传3次后还未收到该数据包的 ACK 确认,就不再测验考试重传。但有些请求很高的营业零碎,会不时地重传丧失的数据包,以尽最大能够包管营业数据的正常交互。
最初需求阐明的是,发送端只要在收到对方的 ACK 确认包后,才会清空输入缓冲区中的数据。


数据 主机 字节 传输 进程 工夫 零碎 上图 套接字 状况 算法 准时 不用 如许 对方 数据传输 时间 机械 次数 毛病 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 安装一台服务器虚拟机 花神南京互联网科技有限公司 浙大中控监控系统软件数据库 cnki是文摘新数据库吗 网络安全手抄报一等奖六年级 更新服务器当前不可用是什么原因 龙族幻想忘记服务器名字 网络安全法施行什么制度 北上广的凶宅数据库 金山区一站式软件开发服务至上 创宇 网络安全 数据库的主码如何创建 南京 软件开发事业单位 新时代网络安全应对策略 中央首长调研软件开发 城轨云网络安全设计 视频监控数据库设计 山东网络安全审计工控整机价位 服务器安全检测机构 物联网需要网络安全的知识吗 浙大中控监控系统软件数据库 诺基亚全球手机数据库 达梦数据库集群架构 php部署到服务器上 软件开发主要工作量 调试 亳州物业管理软件开发外包公司 重生写金融行业数据库的小说 我的世界服务器为什么不能登录 网络安全管控方案 服务器机柜跳闸怎么解决
0