您的位置 首页 FPGA

树立TCP衔接:三次握手

TCP是面向连接的,在面向连接的环境中,开始传输数据之前,在两个终端之间必须先建立一个连接。建立br>连接的过程可以却确保通信双方在发

TCP是面向衔接的,在面向衔接的环境中,开端传输数据之前,在两个终端之间有必要先树立一个衔接。树立
衔接的进程能够却保证通讯两边在发送运用数据包之前静静预备好了传送和接纳数据。关于一个要树立的连

接,通讯两边有必要用互相的初始化序列号seq和来自对方成功传输承认的应对号ack来同步。(ack号丧命期望收到的下一个八位组的编号)习气大将同步信号写为SYN,应对信号为ACK。整个同步的进程称为三次握手
1)主机A发送SYN给主机B:我的序列号seq是X。
2)主机B发送SYN、ACK给主机A:我的序列号seq是X+1,应对号是X+1(等候接纳第X+1号八位组)。
3)主机B发送SYN、ACK给主机B:我的序列号seq是X+1,应对号是Y+1.
经过以上3个过程(三次握手),TCP衔接衔接树立,开端传输数据。任何机器上的TCP都能被动地等候握手或主动地建议握手。一旦衔接树立,数据能够对等地双向活动。
假如TCP运用1作为每次树立衔接的初始化序列号,当本地体系重启后,长途体系会以为曾经的衔接仍然存在。所以每次衔接时,主机都会随机挑选一个初始化序列号,用它来区分所传输的八位组在数据流中的方位。然后两边要对各自的序列号进行洽谈,由于接纳收到第一个SYN时,他并不知道这是否一个被推迟的旧信号。所以它有必要要求发送验证这个SYN。
一般状况下,TCP运用最少信息的报文段来完成三次握手,这对削减网络通讯流量是有用的。总归,三次握手使通讯两边做好了传输数据的预备,而且使通讯通讯两边一致了初始化序列号。
封闭TCP衔接:改善的三次握手
关于一个现已树立的衔接,TCP运用改善的三次握手来结束通话(运用一个带有FIN附加符号的报文段)。
1)当主机A的运用程序告知TCP数据现已结束时,TCP向主机B发送一个带有FIN附加符号的报文段(FIN理解为
finish)。
2)主机B收到这个FIN报文段之后,并不立即用FIN报文段回复主机A,而是向主机A发送一个承认ACK,一起
一起告知自己相应的运用程序:对方要求封闭衔接(先发送ACK为了避免在这段时刻内,对方重传FIN报文段)。
3)主机B的运用程序告知TCP:我要完全的封闭的封闭衔接,TCP向主机A送第二个FIN报文段。
4)主机A收到第二个FIN报文段后,向主机B发送一个ACK表明衔接完全封闭。
TCP的可靠性
TCP是面向流的,即数据段被当作字节的序列化进行传输。
在经过三次握手树立衔接时,序列号被初始化。在传输进程中,TCP持续运用这个序列号来符号每一个发送的数据段每发送一个数据段,序列号加1.接纳站点一句序列号从头拼装缩所收到数据段。为什么要依托序列号来重组数据段呢?
例如,在一个告知高速链路与低速链路并存的网络上,可能会呈现高速链路比低速链路上的数据段提早抵达的状况,此刻就有必要依托序列号来重组数据段,这便是序列号的效果之一。
在传输进程中,承认号ACK的效果是告知发送端那些数据包现已成功接纳,而且承认号会向发送端指出了接纳端期望收到的下一个数据段的序列号,这种机制称为预期承认,即承认号等于下一个预期的位元组。
在 TCP/IP网络中,存在超时与重传两种现象。假如在传输进程中丢掉了某个序列号的数据段,导致发送端在给定时刻距离内得不到那个数据段的应对,那么那个丢掉数据段就会被要求重发。数据段会被保存在发送端的缓冲区中,直到发送端接纳到应对号,它才会开释这个缓冲区。这种机制被称为必定承认与从头传输 (Positive Acknowledgement and Retransimission,PAR),他是虚脱通讯协议用来保证可信度的一种技能。
序列号的第二个效果便是消除网络中的重复包(同步仿制)。例如在网络拥塞时,发送端迟迟没有收到接纳端某个数据段的ACK包,它可能会以为这个序列号的数据段丢掉了,所以它会从头发送,这种状况可能会导致接纳端在网络康复正常后收到两个相同序列号的数据段,此刻接纳端会主动丢掉第二个相同数据段。
序列号和应对号为TCP供给了一种纠错机制,提高了TCP的可靠性。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/fpga/318710.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部