三次握手和四次挥手

前置知识

1 为什么需要TCP连接?

  因为是这套机制是以不同的五元组描述的通道进行管理的

2 什么是连接(Connection)?

 抽象层面上:五元组唯一标识的一条通信通道
 OS层面上:一个Connection对象,描述五元组信息+各种信息管理(SN/ASN+缓冲信息区)
 OS通过List/Map把Connection对象组织起来

3.连接管理
需要有创建连接的过程和销毁连接的过程
因此有了三次握手建立TCP连接和四次挥手释放连接

生命周期1)建立连接 2)连接可用(进行正常通信)3)连接释放

4.什么是Socket(套接字)
在这里插入图片描述

三次握手建立连接

1.主要过程(客户端与服务器之间的通信过程)
在这里插入图片描述
SN:序列号
SYN:表示想建立连接
ASN:确认序列号
ACK:确认应答用的,表示确认之前接收到的segment,配合确认序列号(ASN)使用空的ACK不需要再次应答

描述三次握手的过程

第一次:客户端发送含SN,SYN的包到服务器
第二次:服务器发送含ACK,SYN的包到客户端,ASN=Client’S+1
第三次:客户端发送含ACK,ASN=Server‘SN+1的包到服务器

练习

在这里插入图片描述
写出上述7个过程的通信过程
在这里插入图片描述
三次握手的状态转换:
在这里插入图片描述

四次挥手释放连接

TCP是全双工的,需要双向来关闭
在这里插入图片描述
主动关闭方VS 被动关闭方(不等同于服务器和客户端)
1)我是主动关闭方
2)我是被动关闭方
3)我是同时关闭方

问题:为什么握手是三次?挥手是四次?

1)对于握手:握手只需要确认双方通信时的初始化序号,保证通信不会乱序。第三次握手的必要性:假设服务端确认丢失,连接并未断开,客户端超时重发连接请求,这样服务器会同时对一个客户机保持多个连接,造成资源浪费
2)对于挥手:TCP是双工的,所以发送方和接收方都需要FIN和ACK,只不过有一方是被动的,所以看上去就成了4次挥手

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值