TCP协议为什么握手时3次?挥手是4次?
2022-05-04 本文已影响0人
唐僧取经
名词解释
-
TCP是传输层协议
-
提供端到端的可靠性传输:为应用提供到应用的能力。可靠性(数据保证无损传输)
主机到主机,Host- To- Host -
支持全双工(任何时刻数据都可以双向收发)
-
是一个连接导向的协议
-
连接:Connection(是网络行为状态的记录),是传输层的概念。
数据收发双方,在传输之前,需要建立一个连接收发双方在内存中都需要创建一个用于维护传输状态的对象。(
IP、端口、已发送数据量?状态健康吗?传输速度如何?) -
会话:Session(是应用的行为)
应用层的概念,比如会话可以负责在多次连接中保存状态,比如HTTP Session在多次HTTP请求连接间保持状态。
TCP协议的基本操作
- 如果一个Host主动向另一个Host发起连接,成为SYN(Synchronization),请求同步
- 如果一个Host主动断开请求,称为Fin(Finish),请求完成。
- 如果一个Host给另一个Host发送数据,成为PSH(Push),数据发送
接收方收到数据后,都需要给发送方一个ACK(Acknowledging)响应。
建立连接(三次过手过程):
为了保持连接的可靠性约束,TCP协议要保证每一条发出的数据必须给返回。
image.png
三次握手
TCP 是一个双工协议,为了让双方都保证,建立连接的时候,连接双方都需要向对方发送 SYC(同步请求)和 ACK(响应)。
握手阶段双方都没有烦琐的工作,因此一方向另一方发起同步(SYN)之后,另一方可以将自己的 ACK 和 SYN 打包作为一条消息回复,因此是 3 次握手——需要 3 次数据传输。
四次挥手
挥手阶段,双方都可能有未完成的工作。收到挥手请求的一方,必须马上响应(ACK),表示接收到了挥手请求。不能够将SYN和ACK合并发送,故而需要4次连接