首先看下传统的OSI七层模型和TCP/IP五层模型的对应关系
Tcp和Udp属于传输层协议,下面详细讲一下这两个协议。
UDP
UDP的特点
- UDP是无连接的
- UDP不支持可靠传输,是经最大可能交付的
- UDP没有拥塞控制
- UDP支持一对一,一对多,多对多的交互通信
- UDP是面向报文的,即对上层交付下来的报文既不合并也不拆分,仅添加一个UDP首部
UDP的首部格式
首部字段只有 8 个字节,包括源端口、目的端口、长度、检验和。12 字节的伪首部是为了计算检验和临时添加的。
UDP因为它是无连接而且没有拥塞控制,所以速度较快,适用于IP电话,视频会议等
TCP
TCP的特点:
- TCP是面向连接的
- TCP支持可靠性传输,有流量控制,拥塞控制
- TCP是面向字节流的,即将上层交付下来的报文看成字节流,并组成了大小不一的数据块
- TCP是一对一的
TCP的报文格式
1、序号 :用于对字节流进行编号,例如序号为 301,表示第一个字节的编号为 301,如果携带的数据长度为 100 字节,那么下一个报文段的序号应为 401。
2、确认号 :期望收到的下一个报文段的序号。例如 B 正确收到 A 发送来的一个报文段,序号为 501,携带的数据长度为 200 字节,因此 B 期望下一个报文段的序号为 701,B 发送给 A 的确认报文段中确认号就为 701。
3、数据偏移 :指的是数据部分距离报文段起始处的偏移量,实际上指的是首部的长度。
4、窗口 :窗口值作为接收方让发送方设置其发送窗口的依据。之所以要有这个限制,是因为接收方的数据缓存空间是有限的。
标志域(常见)
1、确认 ACK :当