首页 > 其他分享 >UDP和TCP的联系和区别

UDP和TCP的联系和区别

时间:2022-10-09 11:12:25浏览次数:55  
标签:协议 UDP 区别 IP TCP 可靠 连接

1.tcp和udp的概念

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,UDP(用户数据包协议)是同一层内另一个重要的传输协议。

在因特网协议族中,TCP所在层位于IP层之上、应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。

UDP(User Datagram Protocol,用户数据报协议)是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。

TCP和UDP使用IP协议从一个网络传送数据包到另一个网络。把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口。TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等

 

2.联系

 

两个都是运输层的协议。

都是建立在ip之上的,tcp叫做流式套接字,udp是报文套接字。

 

3.区别

 

 

 

第一:TCP和UDP最大的区别就是:TCP是面向连接的,UDP是非面向连接的。通俗一点说就是:TCP管发管到,UDP管发不管到。因此,在安全性方面来说,TCP更具有优越性。

第二:TCP偏重的是点对点的通信,使用时服务器和客户端的区别显而易见,而UDP则可以使用组播实现一对多,通信时更像一个群聊系统,几乎没有客户端和服务器的区别,在时间和空间上具有更高的节约性。使用组播时,确定一个D类地址作为组的地址,将本机加入组中,向组内发送消息,从组中接收消息。

第三:在具体编写的代码结构上,TCP是通过创建Socket对象进行连接,从连接对象上得到输入输出流,在流中读写从而通信。而UDP则是在本机创建DatagramSocket对象,将数据包装成DatagramPacket包来发送,其中包里有要发送到的地址

1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保 证可靠交付
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5、TCP首部开销20字节;UDP的首部开销小,只有8个字节
6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

UDP以其简单、传输快的优势,在越来越多场景下取代了TCP,如实时游戏。

(1)网速的提升给UDP的稳定性提供可靠网络保障,丢包率很低,如果使用应用层重传,能够确保传输的可靠性。

(2)TCP为了实现网络通信的可靠性,使用了复杂的拥塞控制算法,建立了繁琐的握手过程,由于TCP内置的系统协议栈中,极难对其进行改进。

采用TCP,一旦发生丢包,TCP会将后续的包缓存起来,等前面的包重传并接收到后再继续发送,延时会越来越大,基于UDP对实时性要求较为严格的情况下,采用自定义重传机制,能够把丢包产生的延迟降到最低,尽量减少网络问题对游戏性造成影响。

 

标签:协议,UDP,区别,IP,TCP,可靠,连接
From: https://www.cnblogs.com/luoguangguang/p/16771427.html

相关文章

  • TCP与UDP的联系与区别
    TCP与UDP基本区别:1、基于连接与无连接。2、TCP要求系统资源较多,UDP较少。3、UDP程序结构较简单。4、流模式(TCP)与数据报模式(UDP)。5、TCP保证数据正确性,UDP可能丢包。6、TC......
  • TCP与UDP的联系与区别
    TCP与UDP基本区别:1、基于连接与无连接。2、TCP要求系统资源较多,UDP较少。3、UDP程序结构较简单。4、流模式(TCP)与数据报模式(UDP)。5、TCP保证数据正确性,UDP可能丢包。6、TC......
  • TCP与UDP的联系与区别?
    TCP(TransmissionControlProtocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来:1)主机A......
  • PHP 两个等号 和 三个等号的区别
    我们来看一下下面一个程序:$str=“abc”;if(0==$str){echo“真”}else{echo“假”}这个程序运行的结果出人意料,“fupeng”居然被PHP认为和0相等了。为......
  • tcp与udp的区别
    TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接TCP要求的系统资源较多,UDP较少TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差......
  • SOCK5代理服务器与HTTP代理有什么区别?
    SOCKS5代理与HTTP代理的区别:SOCKS工作在比HTTP代理更低的层次:SOCKS使用握手协议来通知代理软件其客户端试图进行的连接SOCKS,然后尽可能透明地进行操作,而常规代理可能会......
  • Flume和Logstash 都可以做日志收集,那有什么区别呢
      这个问题诞生于我和朋友的聊天,我问它最近在做什么,他说Flume,咱不懂呀,偷偷的百度了一下。短暂的看到也是做日志收集的,这让我瞬间想到了logstash,就是 ELK 组合中的一员......
  • png图片和jpg图片有什么区别
    首先在外观上,没有任何区别。png格式的图片所占存储大小明显大于jpg图片,相比之下jpg格式用于很多场合。png格式图片可进行无损压缩,可以在PS中重新编辑;jpg格式图片会牺牲图......
  • for in 和 for of的区别
    1.循环数组区别一:forin和forof都可以循环数组,forin输出的是数组的index下标,而forof输出的是数组的每一项的值。constarr=[1,2,3,4]//for...infor(const......
  • TCP与UDP的区别
    连接性TCP是面向连接的协议,在收发数据前必须和对方建立可靠的连接,建立连接的3次握手、断开连接的4次挥手,为数据传输打下可靠基础;UDP是一个面向无连接的协议,数据传输前,源......