TCP连接的建立与关闭

TCP链接的建立与关闭

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

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

这里写图片描述

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

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

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

这里写图片描述

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值