端口

区分一台计算机的不同应用程序

每个应用程序进出网络都需要经过一个唯一端口 通过端口号来识别数据该交给那个应用程序处理

服务端一般是固定端口 客户端大部分则是1024以上的随机端口

TCP 封装

TCP/UDP基本原理_数据

Sequence Number 序列号

Acknowledgement Number 确认号

确认机制

Seq = 上一次的ACK

Ack = 上一次的seq+长度

如果没有接收到 或接收到不完整的 会再次发送Ack请求对方重发 [seq不变 Ack

强制结束 RST 置位为1 强行中断TCP连接

URG 紧急开关 表明数据段有紧急数据需要转发

URG Pointer 紧急指针 表面数据地址

Data Offset 是一个偏移量。 这个量存在的原因是 TCP Header 部分的长度是可变的,因此需要一个数值来描述数据从哪个字节开始。

windows 窗口机制 滑动窗口 通过通告本机接收能力 实现流量控制

Checksum 校验序列

OPtion 扩展 Padding 填充

占用带宽高 传输延迟大

适用于数据完整性较高 对传输延迟要求不高的场景


UDP

TCP/UDP基本原理_数据_02


占用带宽低 传输延迟低 没有任何可靠性机制

对传输延迟要求高 但数据完整性要求低