TCP & UDP
1. TCP 和 UDP 的区别
- TCP 是面向连接的,UDP 是面向无连接的
- UDP程序结构较简单
- TCP 是面向字节流的,UDP 是基于数据报的
- TCP 保证数据正确性,UDP 可能丢包
- TCP 保证数据顺序,UDP 不保证
2. 面向连接 & 面向无连接
在互通之前,面向连接的协议会先建立连接,如 TCP 有三次握手,而 UDP 不会
3. TCP三次握手
“1.客户端发起请求(寻址请求)
2.服务端收到请求,然后回应请求(确认请求)
3.客户端收到服务端的回应报文并对服务端作出回应(连接请求)
plaintext
简单理解:A代表客户端,B代表服务端
A: 你好,我是A
B: 你好,我是B
A: 你好B4. TCP四次挥手
“1.数据验证请求码
2.传输结束标记
3.确认结束标记
4.连接断开标记
plaintext
A:B啊,我不想玩了
B:哦,你不想玩了啊,我知道了【 这个时候,只是 A 不想玩了,即不再发送数据,但是 B 可能还有未发送完的数据,所以需要等待 B 也主动关闭。】
B:A啊,数据发送完了,我也不玩了,拜拜
A:好的,拜拜5. TCP 为什么是可靠连接?
- 通过 TCP 连接传输的数据无差错,不丢失,不重复,且按顺序到达;
- TCP 报文头里面的序号能使 TCP 的数据按序到达;
- 报文头里面的确认序号能保证不丢包,累计确认及超时重传机制;
- TCP 拥有流量控制及拥塞控制的机制;
- TCP 的顺序问题,丢包问题,流量控制都是通过滑动窗口来解决的;
- 拥塞控制时通过拥塞窗口来解决的。
UDP报文结构:

TCP报文结构:
