TCP连接的建立与关闭

来源:互联网 发布:狗可以在淘宝出售吗 编辑:程序博客网 时间:2024/05/07 15:04

TCP链接的建立与关闭

TCP作为一种面向连接的可靠性传输层协议,连接的建立与关闭需要一些额外工作:

  • TCP连接建立时的三次握手
    握手双方分为主动打开端(调用connect系统调用)、被动打开端(bind系统调用后通过listen系统调用)。

这里写图片描述

第一次握手:
主动打开端会随机生成一个序号,并给被动打开端发送一个同步分节。
第二次握手:
被动打开端收到同步分节后将回复确认分节,并告诉本端希望下一个的分节序号,同时也随机生成一个序号发送一个同步分节给主动打开端。
第三次握手:
主动端回复被动端发送的同步分节,告诉下一个期望收到的分节序号。

为什么需要三次握手?
全双工,保证可靠性,通过握手协商出双端的初始分节序号,连接建立后两端完全对称,发送数据过程中依次给报文递增分配分节号,并且要求每个分节都得到对端的确认。

  • TCP连接关闭时的四次握手

这里写图片描述

主动关闭端调用系统调用close,等数据发送发送完毕将向被动关闭端发送FIN分节。此时被动关闭端将回复ACK,如果被动端收到FIN以后再调用read,将返回0,此时应该也调用close。
- TCP链接的状态机

TCP状态总共有11中状态,经过三次握手后TCP状态进入ESTABLISHED,其他的状态主要用于维护连接的建立与链接的关闭。

0 0
原创粉丝点击