计算机网络-TCP基础、三次挥手、四次握手过程

TCP基础

  • 定义:TCP是面向连接的、可靠的、基于字节流的传输层通信协议。这意味着在发送数据之前,TCP需要建立连接,并且它能确保数据的可靠传输。此外,TCP将数据视为无结构的连续字节流。
  • 面向连接:TCP只能一对一进行连接、通信。这并不意味着一个端口只能有一个TCP连接,而是说TCP连接是端到端的。
  • 可靠性:TCP通过序列号、确认应答、重传机制、流量控制等手段保证了数据的可靠传输。
  • 字节流:TCP将应用程序交下来的数据流分割成适当长度的报文段,然后交给IP层,由IP层进行发送。

TCP头格式

  • 源端口、目的端口:标识发送端和接收端的应用程序。
  • 序列号:TCP报文段中第一个字节的数据序列标识。建立连接时采用随机数作为初始值,每发送一次累加当此发送的字节数。序列号的作用包括解决包乱序问题,确认已经接收和发送的数据包,防止因网络原因送来的旧报文,以及实现流量控制。
  • 确认号:表示已经成功接收到了这个序列号之前的所有数据,请求从这个序列号开始发送后续的数据。发送方根据确认号确定是否需要重传数据。
  • 头部长度:标识该TCP头部有多少个32bit字。
  • 控制位:包括SYN、ACK、FIN、RST、URG、PSH等,用于控制TCP的各种操作。
  • 窗口大小:表示自己接受数据的窗口大小,用于控制对方的发送速度。
  • 校验和:执行CRC算法以检验报文段在传输过程中是否损坏。
  • 紧急指针:它和序列号字段的值相加表示最后一个紧急数据的下一字节的序号。
  • TCP选项:如MSS,表示TCP数据的最大长度。

TCP连接

  • 连接是为了维护保证可靠性和流量控制的状态信息,这些信息的组合,包括Socket、序列号和窗口大小称为连接。

三次握手过程

  • 服务端开启进程,监听端口。
  • 客户端希望建立连接,发送SYN报文,SYN置1,初始化序列号client_isn,发送后处于SYN-SENT状态。
  • 服务端收到SYN报文,回复SYN+ACK报文,SYN和ACK都置1,初始化自己的序列号server_isn,确认应答号填入client_isn+1,发送后处于SYN-RCVD状态。
  • 客户端收到SYN+ACK报文,回复ACK报文,ACK置1,确认应答号填入server_isn+1,可以携带数据,发送后处于ESTABLISHED状态。
  • 服务端收到ACK报文,确认连接的建立,进入ESTABLISHED状态。

四次挥手过程

  • 主动关闭方发送FIN报文,FIN置1,ACK置1,发送后处于FIN_WAIT_1状态。
  • 被动关闭方收到FIN+ACK报文,回复ACK报文,ACK置1,发送后进入CLOSE_WAIT状态,继续接收数据。
  • 主动关闭方收到ACK报文,收到后进入FIN_WAIT_2状态。
  • 被动关闭方数据接受完毕,发送FIN+ACK报文,FIN置1,ACK置1,发送后处于LAST_ACK状态。
  • 主动关闭方收到FIN+ACK报文,回复ACK报文,ACK置1,发送后进入TIME_WAIT状态。
  • 被动关闭方收到ACK报文,收到后进入CLOSE状态。
  • 主动关闭方等待2MSL,等待后进入CLOSE状态。
相关推荐
木由里予20 分钟前
TEE(Trusted Execution Environment)技术详解
java·linux·开发语言·网络·嵌入式硬件·android-studio
lemon_sjdk23 分钟前
Spring 容器与 Bean 深度解析:从概念到实践
java·网络·spring·webflux
颜挺锐42 分钟前
JMeter TCP 取样器 行尾字节值是 62,是代表的什么意思?
网络协议·tcp/ip·jmeter
Yan_chen6661 小时前
HTTP和HTTPS 完整指南
网络协议·web安全·http·网络安全·https
艺杯羹1 小时前
从攻击者视角拆解12306:SYN泛洪、CC攻击与候补机制的攻防博弈
网络·web安全·网络安全·网络攻击模型·攻防
2603_954708311 小时前
微能网协调控制箱的核心价值:让多种能源“协同作战”
大数据·运维·网络·人工智能·架构·能源
蜡台1 小时前
Flutter HTTP 请求完整详解
网络协议·flutter·http·dart
OSMeteor1 小时前
在 Hyper-V 中搭建固定 IP、固定网关、可上网且与宿主机互通的 Ubuntu 环境
网络协议·tcp/ip·ubuntu
abbgogo13 小时前
TCP/IP、OSI 与常见网络协议知识点总结
网络·网络协议·计算机网络
李昊哲小课13 小时前
fastapi sse websocket 奶茶店实时订单看板
人工智能·python·websocket·网络协议·fastapi·sse