TCP
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
三点:
- 面向连接
- 可靠
- 基于字节流
一个特殊点:
- 是传输层的协议
连接建立
TCP 使用三次握手协议建立连接:
-
客户端发出SYN报文给服务端
-
服务端接受到SYN报文,回应一个SYN, ACK 报文。 进入 SYN_RECV 状态
-
客户端收到服务器端的SYN报文 回应一个 ACK 报文 。 进入Established状态。
三次握手完成,TCP成功建立连接,可以开始传输数据了。
来一张图片描述:
图片来源百度百科
连接断开
TCP 断开连接需要四次 “挥手”:
- 某个应用首先调用close,该端的 TCP 发送 FIN 分节,表示数据发送完毕。
- 接受到 FIN 的另外一端执行 “被动关闭(passive close)” 发送ACK标记。
- 发送 FIN 给主动关闭端,表示自己已经关闭。
- 主动关闭端 发送ACK ,表示自己也已经关闭。
图片来源百度百科
UDP
UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,它是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,传送的是数据报。
同样也是四个方面:
- 无连接
- 不可靠
- 传输层协议
- 传送数据报
参考: