为什么TCP连接需要三次握手?

来源:互联网 发布:开票系统数据更新失败 编辑:程序博客网 时间:2024/05/29 14:13

建立连接的过程是利用客户/服务器模式,假设主机A为客户端,主机B为服务器端。
三次握手 主要是为了防止已失效的连接请求报文段突然有传送到了B,因而产生错误。
“已失效的连接请求报文段”是指A发出连接请求,但因连接请求报文丢失二位收到确认。 于是A再重传一次连接请求。后收到连接请求确认,建立连接。数据传送完毕后,就释放了连接。A共发送了两个连接请求报文段,其中第一个丢失,第二个到达了B。没有”已失效的连接请求报文段“。
现在假定出现一种异常情况,即A发出的第一个连接请求报文段并没有丢失,而是在某些网络节点长时间滞留了,以致延误到连接释放以后的某个时间才到达B。本来这是一个早已失效的报文段。但B收到此失效的连接请求报文段后,就误以为是A又发出一次新的连接请求。于是就向A发出确认报文段,同意建立连接。假定不采用三次握手,那么只要B发出确认,新的连接就建立了。
由于现在A并没有发出建立连接的请求,因此不会理财B的确认,也不会向B发送数据。但B确以为新的运输连接已经建立了,并一直等待A发来数据。B的许多资源就这样白白浪费了。
采用三次握手的办法可以防止上述现象的发生。

0 0
原创粉丝点击