TCP协议

TCP协议基本工作流程

一、实验介绍

1.1 实验内容

  • TCP协议流程介绍

1.2 实验知识点

  • 了解TCP协议的特点
  • 了解TCP的创建流程
  • 了解TCP的拆除流程
  • 了解TCP的状态转换

二、TCP协议

2.1 TCP协议的特点

  • 面向连接
  • 字节流协议
  • 全双工
  • 可靠的差错控制和流量控制

2.2 TCP协议的创建

  • 客户端主动调用 connect 发送 SYN 分节
  • 服务器端必须回复一个 ACK 分节来确认客户端 SYN 分节,并发送一个 SYN 分节到客户端
  • 客户端对服务器端发送的 SYN 分节进行 ACK 确认

TCP三次握手示意图

至此,成功建立 TCP 连接,用于接下来的数据传输

2.3 TCP协议的拆除

因为 TCP 为全双工的传输协议,所以拆除连接的时候,需要四次分节的交换

  • 首先申请拆除的一端调用 close 发送一个 FIN 分节
  • 另一端接收到 FIN 分节时,发送一个 ACK 分节进行确认
  • 同理,另一端要申请拆除连接时,也要发送一个 FIN 分节
  • 接收端发送 ACK 分节进行确认

至此,成功拆除 TCP 连接

TCP四次握手示意图

上图展示了客户端主动发送关闭的流程,事实上服务器也是可以执行主动关闭的。

2.4 TCP的状态转换图

此处输入图片的描述

  • SYN_SENT 主动打开,SYN 分节已发送
  • SYN_RCVD 被动打开,SYN 分节已接收
  • ESTABLISHED 已经建立连接
  • FIN_WAIT_1 发起主动关闭,FIN 分节已发送
  • CLOSE_WAIT 被动关闭, FIN 分节已接收,ACK 分节已发送
  • FIN_WAIT_2 成功实现半关闭,ACK 分节已接收
  • LAST_ACK 最终的 ACK, FIN 分节已发送
  • TIME_WAIT FIN 分节已接收, ACK 分节已发送
  • CLOSED ACK 分节已接收,成功拆除连接

本章介绍了 TCP 协议的建立、拆除和状态转换,TCP 协议是 SOCKET 编程最常用的传输协议,是 HTTP、FTP 协议的基石,所以理解好 TCP 协议

三、作业

使用netstat命令观察TCP的状态

下一节:Socket编程
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值