TCP vs UDP

作者: wenmingxing | 来源:发表于2018-03-23 16:38 被阅读37次

简单总结TCP与UDP的区别。

I、TCP与UDP基本区别

TCP UDP
TCP基于连接 无连接
流模式 数据包模式
通过数据流编号,超时重传,传输确认机制确保传输的安全可靠 不可靠
有流量控制和拥塞控制机制 无流量控制与拥塞控制
点到点连接 支持一对一,一对多,多对一,多对多
开销大(首部20个字节) 开销小(首部只有8个字节)
速度相对慢 速度快

II、应用场景

对于TCP协议,在要求可靠性高的场景下使用,例如文件传输。

而由于UDP的特性,在视频电话,网络数据大多为短消息,对安全性无特殊要求的情况下使用。

III、编程时的区别

我们平时所说的网络编程默认是指TCP编程,而UDP编程是与TCP有区别的。例如,UDP服务端不需要listen和accept(因为其没有确认机制)。

对于TCP编程的服务端一般步骤是
1、创建一个socket,用函数socket();
2、设置socket属性;
3、绑定IP地址,端口号等信息到socketfd上,用函数bind();
4、开启监听,用函数listen(),主动套接字变为监听套接字;
5、接收客户端上来的连接,用函数accept(),监听套接字变为连接套接字;
6、收发数据,使用send(),recv(),或read()和write();
7、关闭连接;
8、关闭监听;

TCP编程的客户端一般步骤是
1、创建socket;
2、设置socket属性;
3、绑定IP地址、端口;
4、设置要连接的对方的IP地址和端口等属性;
5、连接服务器,用函数connect();
6、收发数据;
7、关闭网络连接;

UDP的服务端编程步骤是
1、创建socket;
2、设置socket属性;
3、绑定IP地址、端口号;
4、循环接收数据,用函数recvfrom()
5、关闭网络连接;

UDP客户端编程步骤是
1、创建socket;
2、设置socket属性;
3、绑定IP地址、端口号;
4、设置对方IP地址和端口等属性;
5、发送数据,使用函数sendto()
6、关闭网络连接;

IV、关于使用UDP完成可靠传输

因为UDP本身是不可靠协议,既然需要让其实现可靠传输,就需要在应用层来增加类TCP的可靠传输机制,如添加定时器(超时重传),添加序列包(有序接收),添加应答确认等内容。

已有的UDT协议就是在UDP协议上实现的,引入了拥塞控制和数据可靠性控制机制。

欢迎转载,转载请注明出处wenmingxing TCP vs UDP

相关文章

  • 设计一个基于udp差不多可靠的算法

    TCP VS UDP 1 tcp 是面向连接提供可靠传输;UDP是面向无连接,提供不可靠连接 Tcp 提供流量控制...

  • day33-基于UDP的套接字通信

    一、基于udp协议的套接字通信 TCP VS UDP协议1、可靠性tcp协议是可靠协议:对方必须回复一个ack...

  • TCP vs UDP

    简单总结TCP与UDP的区别。 I、TCP与UDP基本区别 II、应用场景 对于TCP协议,在要求可靠性高的场景下...

  • TCP vs UDP

    相同点都是传输层(第四层)的协议 不同点 TCPUDP基于连接,建立连接 -> 传输数据 -> 关闭连接无需建立连...

  • TCP vs UDP

  • TCP vs UDP

    2019-04-09 TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,...

  • UDP vs TCP

    UDP,TCP是运输层[https://www.jianshu.com/writer#/notebooks/526...

  • TCP和UDP的区别——C++

    1面向连接vs无连接 TCP面向连接而UDP面向无连接的,TCP是和单对单传送数据,UDP适合多波发布 2 可靠性...

  • iOS 网络相关面试题

    问题:TCP、UDP TCP/UDP 传输层协议 ||—— UDP:用户数据报协议 TCP与UDP的区别: 问题...

  • TCP 与 UDP

    TCP 与 UDP(主要说TCP)TCP/UDP端口号TCP/UDP端口号TCP连接的建立TCP连接的建立发送se...

网友评论

    本文标题:TCP vs UDP

    本文链接:https://www.haomeiwen.com/subject/wdviqftx.html