一、TCP协议与UDP协议的区别
- TCP和UDP是传输层的两种不同的协议。UDP的实现相较于TCP更加简单。
- TCP是基于连接的可靠的数据传输,不会丢失数据,有三次握手的过程,但是连接过程需要消耗大量系统资源。
- UDP是基于数据包的不可靠的数据传输,没有校验,没有三次握手的过程,消耗资源少,速度更快,但会丢包。
二、TCP网络连接的一般步骤
服务端:
- 创建一个套接字(socket(2))
- 将套接字和本地的IP地址和端口绑定(bind(2))
- 将套接字设置为被动监听状态,监听连接的到来,并将到来的连接放入未决队列中(listen(2))
- 从未决连接中取出一个未决连接处理,建立连接(accept(2))
- 读取数据(read(2))
- 处理数据
- 发送数据(write(2))
- 关闭本次连接(close(2))
- 关闭监听
客户端:
- 创建一个套接字(socket(2))
- 与服务器建立连接(connect(2))
- 发送数据(write(2))
- 读取数据(read(2))
- 处理数据
- 关闭本次连接(close(2))
三、UDP网络连接的一般步骤
服务端:
- 创建一个套接字(socket(2))
- 将套接字和本地的IP地址和端口号绑定(bind(2))
- 阻塞等待客户端的请求信息(recvfrom(2))
- 处理数据
- 发送数据到客户端(sendto(2))
- 关闭本次连接(close(2))
客户端:
- 创建一个套接字(socket(2))
- 通过套接字向服务器发送消息(sendto(2))
- 阻塞等待服务器的响应信息(recvfrom(2))
- 处理数据
- 关闭本次连接(close(2))