计算机网络——传输层协议分析
传输层——TCP 协议
TCP 概述
TCP(Transmission Control Protocol) 是 传输层 协议,提供可靠的、面向连接的通信。
特点:
可靠性:通过序列号、确认机制和重传确保数据无丢失。
流量控制:使用滑动窗口控制发送速率。
拥塞控制:避免网络过载。
应用场景:HTTP、FTP、SMTP 等需要可靠传输的场景。
头部格式

TCP 三次握手
TCP 通过 三次握手 建立连接,确保双方准备好通信:
SYN:客户端发送同步报文(SYN = 1,Seq = x)。
SYN-ACK:服务器响应同步确认(SYN = 1,ACK = 1,Seq = y,Ack = x+1)。
ACK:客户端确认(ACK = 1,Seq = x+1,Ack = y+1)。
TCP 四次挥手
[!tip]
挥手断开连接,客服端、服务器均可主动发起。
FIN: 客户端发送结束报文(FIN = 1,Seq = u),表示客户端无数据发送,请求断开连接。
ACK: 服务器响应确认(ACK = 1,Seq = v,Ack = u + 1),告知客户端收到结束请求,但连接未立即关闭。
FIN: 服务器发送结束报文(FIN = 1,ACK = 1,Seq = w,Ack = u + 1),服务器也准备关闭连接。
ACK: 客户端确认(ACK = 1,Seq = u + 1,Ack = w + 1),客户端确认后,等待一段时间确保服务器收到确认后,连接彻底关闭。
抓包 TCP
方式一:kali 上开启监听
nc -lvnp 12345,Windows 上 nc 连接 kali 的端口nc 192.168.85.99 12345,随后选定 VMnet8 网卡,过滤器 tcp,开启捕获。方式二:在 Wireshark 开启捕获后,找一个 tcp 流量或基于 tcp 解封装的应用层流量(tls、http、ftp 等),随后追踪流。

传输层——UDP 协议
[!warning]
UDP 协议是没有连接,不可靠的。
概述
UDP(User Datagram Protocol) 是 传输层 协议,提供无连接、不可靠但高效的通信。
特点:
无连接:无需建立连接,直接发送数据。
不可靠:不保证数据到达或顺序。
低开销:适合实时应用。
应用场景:DNS、视频流等。
头部格式

TCP 与 UDP 区别
TCP 与 UDP 的应用
KCP
概述
KCP 是一种基于 UDP 的快速可靠传输协议,旨在结合 UDP 的速度和 TCP 的可靠性。
特点
基于 UDP 构建,但通过 ARQ(自动重传请求)实现可靠性。
优化拥塞控制,减少延迟。
提供可调参数(如重传次数、窗口大小)。
工作原理
在 UDP 上实现序列号、确认机制和重传。
使用滑动窗口控制流量。
优化低延迟场景,如游戏、实时通信。
应用场景
游戏服务器(如《王者荣耀》)。
实时音视频传输。
IoT 设备通信。
评论区