TCP连接的建立与关闭
2015-05-10 22:58
155 查看
TCP链接的建立与关闭
TCP作为一种面向连接的可靠性传输层协议,连接的建立与关闭需要一些额外工作:TCP连接建立时的三次握手
握手双方分为主动打开端(调用connect系统调用)、被动打开端(bind系统调用后通过listen系统调用)。
第一次握手:
主动打开端会随机生成一个序号,并给被动打开端发送一个同步分节。
第二次握手:
被动打开端收到同步分节后将回复确认分节,并告诉本端希望下一个的分节序号,同时也随机生成一个序号发送一个同步分节给主动打开端。
第三次握手:
主动端回复被动端发送的同步分节,告诉下一个期望收到的分节序号。
为什么需要三次握手?
全双工,保证可靠性,通过握手协商出双端的初始分节序号,连接建立后两端完全对称,发送数据过程中依次给报文递增分配分节号,并且要求每个分节都得到对端的确认。
TCP连接关闭时的四次握手
主动关闭端调用系统调用close,等数据发送发送完毕将向被动关闭端发送FIN分节。此时被动关闭端将回复ACK,如果被动端收到FIN以后再调用read,将返回0,此时应该也调用close。
- TCP链接的状态机
TCP状态总共有11中状态,经过三次握手后TCP状态进入ESTABLISHED,其他的状态主要用于维护连接的建立与链接的关闭。
相关文章推荐
- TCP的三次握手(建立连接)和四次挥手(关闭连接)
- TCP的三次握手(建立连接)和四次挥手(关闭连接)
- TCP的三次握手(建立连接)和四次挥手(关闭连接)
- TCP的三次握手(建立连接)和四次挥手(关闭连接)
- TCP的三次握手(建立连接)和四次挥手(关闭连接)
- 【通信】TCP建立连接协议是三次握手,而关闭连接却是四次握手
- TCP的三次握手(建立连接)和四次挥手(关闭连接)
- TCP连接建立与关闭
- TCP连接的建立与关闭
- TCP的三次握手(建立连接)和四次挥手(关闭连接)
- TCP连接的建立和关闭
- TCP的三次握手(建立连接)和四次挥手(关闭连接)
- TCP连接的建立与关闭
- TCP的三次握手(建立连接)和四次挥手(关闭连接)
- TCP的三次握手(建立连接)和四次挥手(关闭连接)
- TCP连接建立与关闭
- TCP连接建立和关闭中的疑难点
- libjingle源码解析(3)-【PseudoTcp】建立UDP之上的TCP(1):连接和关闭
- TCP建立和关闭连接
- TCP三次握手(建立连接)/四次挥手(关闭连接)