TCP 连接的建立和终止

tcp连接的三路握手

1.服务器通过调用socket,bind和listen三个函数准备接受外来连接,称为被动打开。

2.客户通过调用connect发起主动打开,导致客户tcp发送一个SYN同步分节,告诉服务器将在连接中发送的数据的初始序列号。

SYN分节不包含数据,只包含一个IP首部,一个TCP首部及可能的TCP选项。

3.服务器对客户端的SYN进行确认,并发送一个SYN分节给客户端,即服务器在发送同步分节的同时对客户端的同步分节进行确认。

4.客户端确认服务器的同步分节。

常用的TCP选项

MSS选项:发送SYN的TCP一端使用本选项通告对端它的最大分节大小,也就是它在本连接的每个TCP分节中愿意接受的最大数据量。

发送端TCP使用接收端的MSS值作为所发送分节的最大大小。

窗口规模选项:TCP连接任何一端能够通告对端的最大窗口大小为65535,因为TCP首部中相应的字段占16位。

时间戳选项:用于高速网络连接,可以防止由失而复现的分组可能造成的数据损坏。

TCP连接终止

1.应用进程首先调用close,称为主动关闭。该端的TCP发送一个FIN分节,表示数据发送完毕。

2.服务器接收到FIN后执行被动关闭。这个FIN由TCP确认,它的接收作为一个文件描述符传递给接收端应用进程,因为FIN的接受意味着接受端应用进程连接上再五额外数据可接收。

3.接收到这个文件描述符的应用进程将调用close关闭它的套接字。这导致它的TCP也发送一个FIN。

4.接收这个最终FIN的原发送端TCP确认这个FIN。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值