TCP-三次握手
作者:互联网
关于三次握手和四次挥手网络上已经存在太多,我的理解也很浅薄,因此这篇文章只做加深记忆。
一台主机上的一个进程想与另一台主机上的一个进程 建立连接,我们将发送连接请求的主机称为客户主机,另一台主机称为服务器主机。
客户主机的应用进程首先通知下层的TCP,和他说:我想和另一台主机的进程交流一下,你能不能帮我联系一下。
接下来,客户主机的TCP就会通过三次握手与服务器主机的TCP建立连接:
第一次握手:客户端TCP首先向服务器端TCP发送一个特殊的TCP报文段,这个报文段并不携带任何应用层数据。在报文段首部,将SYN(同步序列号)置为1,SYN是TCP/IP建立连接时使用的握手信号。并且,客户端随机地选择一个初始序号(client_isn),将其存放在报文段的序号字段。
第二次握手:一旦客户端的IP数据报到达服务器主机,服务器从该数据包中提取出报文段,并为这个TCP连接分配TCP缓存和变量,并向客户端发送允许连接的报文段。这个报文段同样不包含应用层数据,但是该报文段的首部包含3个重要信息。SYN=1;服务器的初始序号(server_isn),同客户端一样,也存放在报文段的序号字段;确认号字段为client_isn+1,表示已收到序号为client_isn的报文段。
第三次握手:当客户端收到服务器端的允许连接报文后,客户主机也为该连接分配缓存和变量。客户主机也向服务器发送第二个报文段,表示对服务器允许连接的确认。这个报文可以携带客户到服务器的数据。报文段首部同样包含3个重要信息:连接已建立,因此将SYN置为1;将序号为client_isn+1放入序号字段;确认号字段为server_isn+1,表示已收到序号为server_isn的报文段。
三次握手完成,表示客户和服务器主机可以相互发送包括数据的报文段。在以后的每一个报文段中,SYN都将被置为0。
标签:主机,握手,TCP,序号,isn,三次,服务器,报文 来源: https://blog.csdn.net/weixin_43810096/article/details/120696850