TCP三次握手四次握手详解

来源:互联网 发布:超级基因优化液无弹窗 编辑:程序博客网 时间:2024/06/16 01:22

首先先简单介绍一下tcp包首部的6个标志位,SYN是同步序号,用于发起一个tcp连接,FIN标志发送方完成数据收发,ACK标志确认序号,RST标志复位连接,PSH标志尽可能快的将数据送往接手程序,URG紧急指针标志。


下面详细介绍一下tcp连接时发的三次握手和关闭连接时的四次握手。


三次握手:

        1次: 客户端调用connect进行主动打开,这将发送一个SYN段用于指明客户端打算连接的服务器端口以及初始序号。

2次:服务器发回一个ACK段进行确认,包含服务器初始序号的SYN报文段作为应答,同时,将确认序号设置为客户的初始序号加1以对客户的SYN报文段进行确认。确认序号是发送这个ACK的一端所期待的下一个序号。

3次:客户端必须将确认序号设置为服务器的初始序号加1 以对SYN报文段进行确认。


四次握手:

1次:某个应用程序首先调用close执行主动关闭,该端的tcp将发送一个FIN分节,表示数据发送完毕。

2次:接收到这个FIN的对端执行被动关闭。这个FIN由tcp进行确认,并发送一个确认的ACk包。接收到FIN的一端将在套接字上收到一个文件结束符,表示接收端在这个连接上已无数据可收。

3次:一段时间后,接收进程将调用close关闭套接字,这导致接收进程也发送一个FIN。

4次:原发送端(执行主动关闭的那一端)确认这个FIN。

1 0
原创粉丝点击