TCP 是可靠的传输层协议,当应用进程将数据交给TCP 后,TCP 就能无差错地交给目的端的应用进程。TCP 使用差错控制机制保证数据的可靠传输,主要的差错控制机制即确认和重传。每个TCP 连接传输数据的第一个字节序号是建立TCP 连接时初始序号加“1”。以字节为单位的滑动窗口TCP 通过滑动窗口机制实现传输的控制。......
2023-10-19
2.3.1.1 TCP流程
TCP主要通过“三次握手”的连接建立、“序号与确认”的数据传输和“四次挥手”的连接拆除来保障面向连接的可靠通信,如图2-29所示。
1)连接建立
TCP的连接建立主要通过“三次握手”实现,分为请求连接(SYN)、请求确认(SYN+ACK)和确认连接(ACK)3个步骤。主机A向主机B发出连接请求,主要用于通知主机B可以开始建立TCP连接,并进行数据包的序号同步;主机B收到连接请求后,如同意,则发回确认;主机A收到主机B的确认后,主机A通知上层应用进程连接已经建立,并向主机B发回连接确认;当主机B收到主机A的确认后,也通知上层应用进程,此时可靠的连接已经建立。
图2-29 TCP交互流程
2)数据传输
TCP在数据传输过程中的可靠性主要靠“序号和确认”来维护。当主机A的TCP向主机B发送一数据报文段时,同时会在本地的重传队列中存放一个副本。只有收到主机B的确认应答才会删除此副本。若计时器时间到之前还没有收到确认,则重传此报文段的副本。
3)连接拆除
当数据传输结束后,通信双方都可以发出释放连接的请求。比如,主机A的应用进程先向其TCP发出连接释放报文段,并且不再发送数据。主机A的TCP通知对方要释放从A到B这个方向的连接,主机B收到该报文段后随即向主机A发出确认,并通知上层应用进程。此时连接处于“半关闭”状态。即主机B不再接收来自主机A的数据,但如果主机B仍有数据发送,主机A可以继续接收(但该情况通常较少)。主机A只要能正确收到数据,仍向主机B发送确认。若主机B不再向主机A发送数据,则用同样的方式去关闭连接。
2.3.1.2 TCP传输控制机制
TCP传输控制机制主要有流量控制、拥塞控制和差错控制。在过去的20多年,TCP历经多次调整和改动形成了几种不同的协议版本,但各种版本的TCP都包括这三大机制,只是具体实现时采用了不同的算法。
1)流量控制机制
该机制主要用于确保发送端发送的数据量不超过接收端的最大处理能力。如图2-30(a)所示,通过一根相对较粗的管道向小容器注水,只要发送端流量控制得当,保证其输出的水量不超过小容量接收端水桶的容量,接收端的水就不会溢出。TCP的流量控制具体通过滑动窗口算法来实现。在发送端,TCP保持一个发送缓冲区,该缓冲区用于存放两类数据:一类是已经发送但还未得到确认的数据;另一类是等待发送的数据。在接收端,TCP保持一个接收缓冲区,该缓冲区用于存放接收应用程序还未读取的数据。为了避免缓冲区空间的耗尽,接收端通过“接收窗口”来告知发送端其接收数据的能力。该窗口值的大小与接收方应用进程工作的快慢(从缓冲区中读取数据的速度)有关,通常设置为接收端缓冲区剩余空间的大小。
图2-30 传输控制示意
(a)流量控制机制;(b)拥塞控制机制
2)拥塞控制机制
该机制主要用于当网络负载超出其处理能力而导致拥塞发生时,将网络恢复正常,如图2-30(b)所示,制约因素不再是接收端的容量,而是输水管(网络)内部的承载能力。如果没有拥塞控制机制,当水以很快速度到来时,输水管来不及输送就会造成发送端水的溢出,如果发送端仍不减缓注水的速度,情况就会更糟糕。因此,为解决上述问题,拥塞控制机制中引入了“拥塞窗口”,发送端根据自己所估计的网络拥塞程度设置窗口值。地面网络常用TCP的拥塞控制机制主要包括TCP-Tahoe,TCP-Reno,TCP-SACT等。TCP-Tahoe是1988年提出的早期TCP拥塞控制版本,包括3个最基本的拥塞控制阶段,分别是慢启动、拥塞避免和快速重传,如图2-31所示。在TCP Tahoe机制中,无论出现数据传输超时,还是接收到多个重复ACK应答报文,TCP发送端都会将拥塞窗口设为初始值1,并回退到慢启动阶段。由此可见,TCP Tahoe没有区分网络拥塞程度,只是一味地减少数据传输流量,所以限制了协议吞吐量,降低了对网络资源的利用。TCP-Reno,TCP-SACK都是在TCP-Tahoe的基础上发展而来的。
图2-31 TCP Tahoe的拥塞控制机制
3)差错控制机制
该机制是保障TCP可靠传输的一个重要环节,主要通过确认包、定时器和重传来实现。TCP为每个数据包分配一个32位的序列号,该序列号是累积的,且接收端需要对每个数据包进行确认。发送端在发送数据的同时,启动一个重传定时器,如果在重传定时器超时之前收到数据包的确认,定时器会被关闭;如果在定时器超时之前还未收到确认,则认为该数据包已经丢失,需要重传。
有关空间激光微波混合信息网络技术的文章
TCP 是可靠的传输层协议,当应用进程将数据交给TCP 后,TCP 就能无差错地交给目的端的应用进程。TCP 使用差错控制机制保证数据的可靠传输,主要的差错控制机制即确认和重传。每个TCP 连接传输数据的第一个字节序号是建立TCP 连接时初始序号加“1”。以字节为单位的滑动窗口TCP 通过滑动窗口机制实现传输的控制。......
2023-10-19
在TCP/IP协议中,传输层使用的端口号用一个16位的二进制数表示。因此,在传输层如果使用TCP协议进行进程通信,则可用的端口号共有216个。由于UDP也是传输层一个独立于TCP的协议,因此,使用UDP协议时也有216个不同的端口。另外,当服务器要向客户端传输数据时,由于服务器可以从客户的请求报文中获得其端口号,因此也可以正常通信。......
2023-11-20
传输服务是通过建立连接两个传输实体之间所用的传输协议来实现,类似于数据链路层协议,但是也存在着显著差别,主要是因为两个协议所运行的环境不同。对于可靠的网络服务,只需基本的传输层协议机制,主要解决寻址、多路复用、流控、连接建立与拆除四个问题。当对方传输收到拆除请求后,就发回确认TPDU,除去未接收完的数据,并通知用户。......
2023-10-22
实践证明,实现拥塞控制并不容易,它属于动态控制问题。下面介绍TCP 采用的一些拥塞控制方法。引入拥塞窗口cwnd 后,TCP 发送方的最大发送窗口修改为“允许发送方发送的最大数据量为当前拥塞窗口和通告窗口的极小值”。TCP 拥塞控制主要根据网络拥塞状况调节拥塞窗口的大小。拥塞控制可以使这四个机制共同作用,以达到更好的效果。......
2023-10-19
使用Encounter进行后端物理实现的设计流程如图8.1所示。图8.1 EDI APR流程待布图规划完成后,工具会依据布图规划中的物理约束信息及SDC中的时序约束信息进行布局。如果数目较少,一般通过小范围的改动即可使之满足要求,这种改动称作ECO。DFM包含范围很广,而在APR流程中的DFM主要是进行诸如double via和spread wire width等优化,预防制造过程中由于加工的偏差使得芯片的功能失效。由于本章着重点在EDI的使用,关于此部分内容并不详细展开。......
2023-06-26
本节采用内嵌在Cadence Virtuoso Layout Editor的菜单选项来启动Calibre PEX。图4.100 打开Miller_OTA版图4)打开Calibre PEX工具。图4.107 Calibre LVS结果查看图形界面11)在Calibre PEX运行后,同时会弹出参数提取后的主网表,如图4.108所示,此网表可以在HSPICE软件中进行后仿真。图4.108 Calibre PEX提出部分的主网表示意图以上就完成了Calibre PEX寄生参数提取的流程。......
2023-06-26
TCP的通信过程比UDP复杂得多,必须依据C/S架构基础进行开发,一般TCP通信软件都分为服务器端和客户端两部分。图15-12 TCP服务器的侦听和应答结构创建工程名为“Server”和“Client”的两个对话框程序,用于演示通过CSocket类实现简单的TCP数据通信。图15-14 程序向导自动添加的代码3)在Server工程中创建一个CSocket类的派生类CListenSocket,如图15-15所示。6)在CListenSocket类中添加虚函数OnAccept,用于截获客户端的连接。8)在CClientSocket类中添加虚函数OnClose,用于监测某个客户端是否断开了连接。......
2023-11-25
相关推荐