您的位置:首页 > 理论基础 > 计算机网络

TCP与UDP的比较

2018-04-03 17:10 162 查看
TCP:面向连接    传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
UDP:面向无连接    用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

TCP创建流程:服务器:
      创建一个socket,用函数socket(); 
  设置socket属性,用函数setsockopt();
  绑定IP地址、端口等信息到socket上,用函数bind(); 
  开启监听,用函数listen(); 
  接收客户端上来的连接,用函数accept(); 
  收发数据,用函数send()和recv(),或者read()和write(); 
  关闭网络连接; 
  关闭监听; 客户端:      创建一个socket,用函数socket(); 
  设置socket属性,用函数setsockopt();
  绑定IP地址、端口等信息到socket上,用函数bind();
  设置要连接的对方的IP地址和端口等属性; 
  连接服务器,用函数connect(); 
  收发数据,用函数send()和recv(),或者read()和write(); 
  关闭网络连接;

UDP创建流程:
服务器:       创建一个socket,用函数socket(); 
  设置socket属性,用函数setsockopt();
  绑定IP地址、端口等信息到socket上,用函数bind(); 
  循环接收数据,用函数recvfrom(); 
  关闭网络连接;客户端:      创建一个socket,用函数socket(); 
  设置socket属性,用函数setsockopt();
  绑定IP地址、端口等信息到socket上,用函数bind();
  设置对方的IP地址和端口等属性; 
  发送数据,用函数sendto(); 
  关闭网络连接;
   TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。
  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: