08-传输层(7)

TCP 的传输连接管理

概述

  • TCP 是面向连接的协议,运输连接有 3 个阶段:
    • 连接建立
    • 数据传送
    • 连接释放
  • 运输连接的管理就是使运输连接的建立和释放都能正常地进行
  • TCP 连接建立过程中要解决的 3 个问题
    • 要使每一方能够确知对方的存在
    • 要允许双方协商一些参数(如最大窗口值、是否使用窗口扩大选项和时间戳选项以及服务质量等)
    • 能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配
  • 客户-服务器方式
    • TCP连接的建立采用 [客户-服务器方式]
    • 主动发起连接建立的应用进程叫做客户(client)
    • 被动等待连接建立的应用进程叫做服务器(server)

TCP 连接建立

TCP 建立连接的过程叫做"握手",握手需要在客户和服务器之间交换 3 个 TCP 报文段,故称之为"三报文握手"。

流程

为什么要有第 3 次?

举例

TCP 连接释放

数据传输结束后,通信的双方都可释放连接。TCP 连接释放过程是四报文握手。

流程


关闭为什么是 4 次?

为什么建立连接是三次握手,而关闭连接却是四次挥手呢?

关闭连接时,当收到对方的 FIN 报文时,仅仅表示对方不再发送数据了但是还能接收数据,我们也未必全部数据都发送给对方了,所以我们不可以立即 close,也可以发送一些数据给对方后,再发送 FIN 报文给对方来表示同意现在关闭连接,因此,我们的 ACK 和 FIN 一般都会分开发送。

等待 2MSL 的时间

原文地址:https://www.cnblogs.com/liujiaqi1101/p/13628420.html