TCP连接的握手

(一)三次握手

建立一条新的TCP连接时,是指是在发送任意数据之前,TCP连接之间交换一些的IP分组,对连接的有关参数进行沟通(如下图),如果连接只用来传送少量数据,这些交换就会严重降低HTTP的性能。

113341_JVG3_2313177.png

TCP连接握手需要经过以下几个步骤。

(1) 请求新的TCP连接时,客户端要向服务端发送一个晓得TCP分组(通常是40-60个字节)。这个分组中设置了一个特殊的SYN标记,说明这是一个连接请求

(2)如果服务器接受了连接,就会对一些连接参数进行计算,并向客户端回送一个TCP分组,这个分组中的SYN和ACK标记都被置位,说明连接已被接受。

(3)最后,客户端想服务器会送一条确认信息,通知它连接已成功建立。现代的TCP栈都允许客户端在这个确认分组中发送数据。

位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)
Sequence number(顺序号码) Acknowledge number(确认号码)

(二)确保消息可靠性

由于因特网自身无法确保可靠的分组传输(因特网路由器超负荷的话,可以随意丢地分组),所以TCP实现了自己的确认机制来确保数据的成功传输。

每一个TCP段都有一个序列号和数据完整性校验和。每个段的接收者收到完好的段时,都会向发送者回送小的确认分组,如果发送者没有在指定的窗口时间内收到确认信息,发送者就认为分组已被破坏或者损毁,并重新发送数据。

152243_b7Lt_2313177.png

参考:https://github.com/jawil/blog/issues/14

        《HTTP权威指南》

转载于:https://my.oschina.net/u/2313177/blog/1604561

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值