专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

tcp是什么,tcp协议详解

来源:小易整编  作者:小易  发布时间:2023-03-24 02:05
摘要:tcp是什么,tcp协议详解计算机网络在IT行业的重要性IT即互联网技术,从事的工作和网络有很大的关系,前端要负责和后台(服务器)进行交互,其必然得经过网络,所以懂点网络知识有很大的帮助。网络模型数据处理过程传输层协议的作用提供了一种端到端...
  • PSH => 缓存区将满,接收方应尽快将此报文段交给应用层;

  • RST => 连接断了重建连接;

  • SYN => 同步序号为1,用来发起一个新连接;

  • FIN => 为1表示发端完成发送任务。

tcp是什么,tcp协议详解

16位窗口大小:TCP流量控制,字节数,说明本地可接收数据段的数目,这个值的大小是可变的。当网络通畅时将这个窗口值变大加快传输速度,当网络不稳定时减少这个值可以保证网络数据的可靠传输。它是来在TCP传输中进行流量控制的

16位检验和:包括计算TCP首部和数据综合的二进制反码和检验和。

16位紧急指针:URG为1时有效,正向的偏移量,加上序号字段值表示最后一个字节的序号。通常在暂时中断通信时使用(比如输入 Ctrl + C)。

三次握手和四次挥手

tcp是什么,tcp协议详解

三次握手:

  1. 第一次握手主机A通过一个标识为SYN标识位的数据段发送给主机B请求连接,通过该数据段告诉主机B希望建立连接,需要B应答,并告诉主机B传输的起始序列号

  2. 第二次握手是主机B用一个确认应答ACK和同步序列号SYNC标志位的数据段来响应主机A,一是发送ACK告诉主机A收到了数据段,二是通知主机A从哪个序列号做标记。

  3. 第三次握手是主机A确认收到了主机B的数据段并可以开始传输实际数据。

第一次握手主要是确定服务端确认客户端能够发送信号;第二次握手主要是客户端确认服务端能够接收和发送信号;第三次握手主要是服务端确认客户端能够接收信号

四次挥手:

  1. 主机A发送FIN控制位发出断开连接的请求

  2. 主机B进行响应,确认收到断开连接请求

  3. 主机B提出反方向的关闭要求

  4. 主机A确认收到的主机B的关闭连接请求

第一次挥手是服务端确认客户端需要断开连接;第二次挥手是客户端确认服务器接收断开请;第三次挥手是客户端确认服务器数据发完,断开连接;第四次挥手是服务端确认客户端断开连接,断开连接。所以如果服务端的数据全部发送完,是没有第三次挥手,直接进入第四次挥手。

TCP流量控制和TCP拥塞控制

窗口:

  1. 接收端窗口 rwnd:接收端缓冲区大小。接收端将此窗口值放在TCP报文的首部中的窗口字段,传送给发送端。

  2. 拥塞窗口 cwnd (congestion window):发送端缓冲区大小

  3. 发送窗口swnd:发送窗口的上限值 = Min [rwnd, cwnd],当 rwnd < cwnd 时,是接收端的接收能力限制发送窗口的最大值。当cwnd < rwnd时,则是网络的拥塞限制发送窗口的最大值

拥塞控制和流量控制的差别:

  • 拥塞问题是一个全局性的问题,涉及到所有的主机、所有的路由器、以及与降低网络传输性能有关的所有因素。流量控制往往指的是点对点通信量的控制,是个端到端的问题。

  • 流量控制所要做的就是控制发送端发送数据的速率,以便使接收端来得及接受。拥塞控制控制的是注入网络中的数据量。

  • 流量窗口是接收方控制的,拥塞窗口是发送方控制的

TCP流量控制

所谓的流量控制就是接收方让发送方的发送速率不要太快,让接收方来得及接受。利用滑动窗口机制可以很方便的在TCP连接上实现对发送方的流量控制。TCP的窗口单位是字节,不是报文段,发送方的发送窗口不能超过接收方给出的接收窗口的数值。

tcp是什么,tcp协议详解

假设主机A向主机B发送数据。双方确定的窗口值是400.再设每一个报文段为100字节长,序号的初始值为seq=1,图中的箭头上面大写ACK,表示首部中的却认为为ACK,小写ack表示确认字段的值。

tcp是什么,tcp协议详解

下面这张接收窗口(rwnd)图和上面的数据不是对应的,但是能说明窗口大小调整的过程,可以自己将下面的图进行修改,用上面的数据分析:

  1. 刚开始的窗口值为400字节,每段报文100字节,经过发送2次请求后,此时已发送但未被确认的报文seq=201为100字节,主机B向主机A发送接收情况并调整窗口大小为300字节。

  2. 主机A向主机B发送301-500,并且重发201-300,主机B向主机A发送接收情况,并调整窗口大小为100字节

  3. 主机A向主机B发送501-600,主机B向主机A发送接收情况,并且调整窗口大小为0,让A暂停发送

假设B向A发送了rwnd=0的报文段后不久,B的接收缓存又有了一些存储空间。于是B向A发送了rwind=400的报文段,然而这个报文段在传送中丢失了。A一直等待收到B发送的非零窗口的通知,而B也一直等待A发送的数据。这样就死锁了。为了解决这种死锁状态,TCP为每个连接设有一个持续计时器。只要TCP连接的一方收到对方的零窗口通知,就启动持续计时器,若持续计时器设置的时间到期,就发送一个零窗口探测报文段(仅携带1字节的数据),而对方就在确认这个探测报文段时给出了现在的窗口值。

TCP拥塞控制

拥塞控制原理

发送方控制拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口就增大一些,以便把更多的分组发送出去。但是只要网络出现拥塞,拥塞窗口就减小一些,以减少注入到网络的分组数。

拥塞控制设计


本文地址:IT问答频道 https://www.hkm168.com/itwenda/938567_2.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


IT问答
小编:小易整编
相关文章相关阅读
  • 某台微机安装的是64位操作系统中,64位指的是什么

    某台微机安装的是64位操作系统中,64位指的是什么

    某台微机安装的是64位操作系统中,64位指的是cpu的字长,即cpu每次能处理64位二进制数据。字长是cpu的主要技术指标之一,指的是cpu一次能并行处理的二进制位数,字长总是8的整数倍,通常pc机的字长为32位,64位。本教程操作环境:w...

  • c语言是什么意思

    c语言是什么意思

    一:c语言是什么意思C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言,以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低...

  • skype是什么软件

    skype是什么软件

    skype是一种简单的免费软件,使您能够在数分钟之内在世界上的任何角落拨打免费电话,它使用全新的p2p【对等】技术将您与其他skype用户相连接。Skype是一种简单的免费软件,使您能够在数分钟之内在世界上的任何角落拨打免费电话。Sky...

  • 计算机按工作原理可分为什么

    计算机按工作原理可分为什么

    计算机按工作原理可分为数字计算机和模拟计算机。数字式电子计算机是当今世界电子计算机行业中的主流,其内部处理的是一种称为符号信号或数字信号的电信号,它有着运算速度快、运算精度高、通用性强等特点。模拟计算机是根据相似原理,用一种连续变化的模拟量...

  • 什么是电子版文件

    什么是电子版文件

    电子版文件是把纸质文档以计算机软件,如word、excel、pp、cad、photoshop等软件编辑出来,可以通过邮件、u盘、网络或其他传送方式传送的文件。本文操作环境:Windows7系统,DellG3电脑。电子版文件是把纸质文档以计...

  • 什么是构造函数?详解JavaScript中的构造函数

    什么是构造函数?详解JavaScript中的构造函数

    作为原型和原型链的基础,先了解清楚构造函数以及它的执行过程才能更好地帮助我们学习原型和原型链的知识。本篇文章带大家详细了解一下javascript中的构造函数,介绍一下怎么利用构造函数创建一个js对象,希望对大家有所帮助!一个普通的函数被用...

  • 计算机的三类总线分别是什么?

    计算机的三类总线分别是什么?

    计算机的三类总线分别是:控制总线、地址总线和数据总线。控制总线用于将微处理器控制单元的信号,传送到周边设备;地址总线用来指定在ram之中储存的数据的地址;数据总线用于在cpu与ram之间来回传送需要处理或是需要储存的数据。总线(Bus)是计...

  • 2k屏幕是什么意思

    2k屏幕是什么意思

    2k屏幕是指分辨率能够达到2560*1440的屏幕。2k是一个通用术语,指屏幕或者内容的水平分辨率达约2000像素的分辨率等级;又因“16:9”的比例是高清晰度视频规格的国际标准,所以2k分辨率在视频制作、显示屏等领域常见格式为2560*1...

  • 周排行
  • 月排行
  • 年排行

精彩推荐