首页 > 谁简单描述下 tcp的三次握手?? 网上搜了看不懂

谁简单描述下 tcp的三次握手?? 网上搜了看不懂

谁能简单描述下 tcp的三次握手?? 网上搜了看不懂


萌版:

第一次:a问b,你收到我的请求了嘛?

第二次:b回a,我收到你的请求了,你收到我的回复了嘛?

第三次:a回b,我收到你的回复了,那么我们开始愉快的聊天吧~


第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize > Sequence Numbers)。

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

结合下边这个图片看3次握手


我也在看这个问题,我的理解是这样的:a和b既然要通信,就得建立联系,如何确保能建立一个可靠的联系呢?答案是通过三次握手。注意一点,这里说的可靠,是指,a能给b发数据包,b也能给a发数据包,双向的,双向的,双向的。

过程是这样的,a给b发一个叫做syn的数据包,b收到了就给a发了个回执ack,告诉a:你给我的syn我收到了,这说明从a到b的路是通的,你可以放心了的给我发数据了。这时候已经两次握手了哦。然后a收到了ack,再给b回复说:你的ack我收到了,你也可以放心,从b到a的路也是通的。好的,到此三次握手结束。a和b都知道来回两条路都是通的,这样才算是可靠连接。

我也是新手,看了《图解http》,有说的不合适的地方欢迎指出来。


A向B发送连接请求;
B向A发送连接请求,并捎带确认A的连接请求;
A确认B的连接请求。


觉得耗子哥的写的挺好的.

http://coolshell.cn/articles/11564.html

【热门文章】
【热门文章】