4.13、TCP通信流程
1.TCP与UDP的区别(传输层协议)
UDP
:用户数据报协议,面向无连接,可以单播,多播,广播, 面向数据报,不可靠
TCP
:传输控制协议,面向连接的,可靠的,基于字节流,仅支持单播传输
UDP | TCP | |
---|---|---|
是否创建连接 | 无连接 | 面向连接 |
是否可靠 | 不可靠 | 可靠的 |
连接的对象个数 | 一对一、一对多、多对一、多对多 | 支持一对一 |
传输的方式 | 面向数据报 | 面向字节流 |
首部开销 | 8个字节 | 最少20个字节 |
适用场景 | 实时应用(视频会议,直播) | 可靠性高的应用(文件传输) |
2.TCP通信流程
①服务器端(被动接受连接的角色)
- 创建一个用于监听的套接字
- 监听:监听有客户端的连接
- 套接字:这个套接字其实就是一个文件描述符
- 将这个监听文件描述符和本地的IP和端口绑定(IP和端口就是服务器的地址信息)
- 客户端连接服务器的时候使用的就是这个IP和端口
- 设置监听,监听的
fd
开始工作 - 阻塞等待,当有客户端发起连接,解除阻塞,接受客户端的连接,会得到一个和客户端通信的
套接字(fd)
- 通信
- 接收数据
- 发送数据
- 通信结束,断开连接
②客户端(主动发起连接)
- 创建一个用于通信的
套接字(fd)
- 连接服务器,需要指定连接的服务器的
IP 和 端口
- 连接成功了,客户端可以直接和服务器通信
- 接收数据
- 发送数据
- 通信结束,断开连接