传输协议简介
文件/图片/视频 都是一堆二进制数据
经过传输层来传输
这两种协议有什么区别呢?
传输层的TCP/UDP三个步骤
TCP使用传输流程
1、三次握手
作用:三次握手就是建立连接的过程
2、传输数据
作用:建立连接完成之后,双方可互发数据
3、四次挥手
作用:四次挥手就是关闭连接的过程
TCP协议--三次握手
closed 状态
listen 状态
ESTAB-LISHED 状态
握手交互内容
SYN包
SYN +ACK包
ACK包
TCP协议--数据传输
MTU过大 TCP传输层分包 UDP网络层分片
TCP/IP 协议栈中定义了MSS, 为的是提高网络的性能,lwIP定义的MSS大小是1460
流量控制分两种
1、停止等待协议 2、滑动窗口协议
TCP引用了滑动窗口协议
滑动窗口协议
滑动窗口效果(发送方,窗口大小是4)
窗口相当于要同时并行的任务
开始并行窗口1234号同时发送4个包
发送1234号 后应答了1号包 2345 有成了并行窗口 1丢弃
发送2号 后应答了2号 3456 又成了并行窗口 2丢弃
滑动窗口的发送机 和接收机 如上一样的原理,其实就是展示图不同
发送缓冲区结构
回复确认结构
组装数据:根据序列号和长度重组数据
如果掉包呢
发了1234 包 1号响应 滑动到2345
再次发送2345包
然后34包也响应了,但是2号没响应,此时TCP触发重传机制重新再发2号包;
因为此时也发送了5号包,接收方因为接收到345,而没有2,接收方会全部丢弃2345包
TCP协议--四次挥手
TIME-WAIT 定时等待状态
LAST-ACK 最后一次响应状态
UDP协议
UDP协议
基于非连接
简单封装数据包
给到网卡发送
UDP特点 | 无连接 | 通讯前无需建立连接,无需在通信结束后断开连接 |
不可靠 | 无法保证数据一定能完整有效的传输目标 | |
无流量,拥塞 | 数据连续性比完整性要求更高、对轻微的数据差错不敏感 | |
广播、组播 | 实现一对一(TCP)、一对多、多对多的数据传输 |
TCP协议 VS UDP协议
UDP协议 | 速度快、性能损耗少、资源占用少 |
TCP协议 | 稳定可靠、稳定性强、保证数据传输完整性 |