首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在这种情况下,我应该使用UDP还是TCP?

在这种情况下,选择使用UDP还是TCP取决于具体的需求和场景。

UDP(User Datagram Protocol)是一种无连接的传输协议,它提供了一种简单的、不可靠的数据传输方式。UDP具有低延迟和较小的开销,适用于对实时性要求较高的应用场景,如音视频传输、实时游戏等。UDP不保证数据的可靠性和顺序性,数据包可能会丢失或乱序,因此在应用层需要自行处理这些问题。

TCP(Transmission Control Protocol)是一种面向连接的传输协议,它提供了可靠的数据传输方式。TCP通过序列号、确认应答、重传等机制保证数据的可靠性和顺序性,适用于对数据完整性要求较高的应用场景,如文件传输、网页浏览等。TCP的可靠性和顺序性带来了一定的开销,可能会导致较高的延迟。

综合考虑,可以根据以下几个因素来选择UDP或TCP:

  1. 实时性要求:如果应用需要实时传输数据,并且对数据的完整性和顺序性要求不高,可以选择UDP。例如,音视频传输、实时游戏等场景。
  2. 数据完整性要求:如果应用对数据的完整性和顺序性要求较高,不能容忍数据丢失或乱序,应选择TCP。例如,文件传输、网页浏览等场景。
  3. 网络环境稳定性:如果网络环境较差,存在丢包或延迟较高的情况,可以考虑使用UDP,因为UDP的开销较小,可以减少网络传输的负担。
  4. 应用层处理能力:如果应用层具备处理数据丢失、乱序等问题的能力,并且对实时性要求较高,可以选择UDP。如果应用层无法处理这些问题或对数据完整性要求较高,应选择TCP。

总之,选择UDP还是TCP需要根据具体的需求和场景来决定。在实时性要求高、对数据完整性和顺序性要求不高的场景下,可以选择UDP;在对数据完整性和顺序性要求高的场景下,应选择TCP。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 应该使用 PyCharm Python 中编程吗?

    此外,它可以多种平台上使用,包括Windows,Linux和macOS。...此外,它对于使用流行的Web应用程序框架(如Django和Flask)进行Web开发特别有用。此外,程序员还可以使用各种API创建他们的Python插件。...远程开发 - PyCharm 允许您开发和调试远程计算机、虚拟机和容器上运行的代码。...版本控制集成 - PyCharm支持广泛的版本控制系统,如Git,Mercurial和SVN,使得使用存储版本控制存储库中的代码变得容易。...但是,您是否应该使用它取决于您的特定需求和偏好。如果您不熟悉编程或更喜欢简单的文本编辑器,则可能需要从更基本的工具开始。但是,如果您正在处理大型项目或需要高级功能,PyCharm可能是您的最佳选择。

    4.6K30

    网络编程懒人入门(四):快速理解TCPUDP的差异

    1、前言 对于即时通讯开者新手来说,开始着手编写IM或消息推送系统的代码前,最头疼的问题莫过于到底该选TCP还是UDP作为传输层协议。...8、使用场景总结 文章最后的一部分,聊聊 TCPUDP 使用场景。 先来说 UDP 的吧,有很多人都会觉得 UDPTCP 相比,性能速度上是占优势的。...那什么时候我们非用 UDP 不可呢? 对实时性要求高:比如实时会议,实时视频这种情况下,如果使用 TCP,当网络不好发生重传时,画面肯定会有延时,甚至越堆越多。...如果使用 UDP 的话,即使偶尔丢了几个包,但是也不会影响什么,这种情况下使用 UDP 比较好; 多点通信:TCP 需要保持一个长连接,那么涉及多点通讯的时候,肯定需要和多个通信节点建立其双向连接,...这种情况下使用 UDP 也是没错的。 以上我们说了 UDP使用场景,在此之外的其他情况,使用 TCP 准没错。

    83920

    udp协议:udptcp相比快在哪里?

    一个 seq 过来了,跟现在记住的 seq 不一样,怎么知道他是上条延迟的,还是上上条延迟的呢?...【分析】这个问题最核心的点是需要思考 Ping 服务应该TCP 实现还是 UDP 实现?请你思考:Ping 需不需要保持连接呢?...通过分析上面的例子,想告诉你,TCPUDP使用场景是不同的。TCP 适用于需要可靠性,需要连接的场景。...UDP 足够简单,在其上构建自己的协议就很方便。 你可以再思考一个问题:文件上传应该TCP 还是 UDP 呢?乍一看肯定是 TCP 协议,因为文件上传当然需要可靠性,防止数据损坏。...所以时至今日,到底什么情况应该TCP,什么情况用 UDP?这个问题边界的确模糊化。总体来说,需要可靠性,且不希望花太多心思在网络协议的研发上,就使用 TCP 协议。

    55220

    TCPIP网络协议的通俗理解

    至于,传送过程中具体选择哪种传送方式,需要具体问题具体分析。不可靠的 网络传送过程中一般选择TCP传送方式。讲求效率,或者不在乎传送失误的情况下可以选择UDP方式来提高传输速率。...在理解TCP/IP协议的过程中,遇到了三个困惑。 1.什么是socket? 以前有听说过socket编程这种说法,也有的说套接字编程。...故其中文译名“超文本传输协议”恰恰引种反映了这种误解。更符合原义的译名应该为“超文本转 移协议”。 这段话解除了的疑惑。那么http协议当然是应用层的协议。...3.SOAP可以使用HTTP协议进行传输吗? 了解SOAP协议的过程中,看到介绍说soap可以通过tcp,udp,http协议来传送。这也是让人困惑的描述。...查阅了资料,是这样一回事情,soap将信息进行XML的序列化后,再用http协议的方式再打包进行传送,传送的方式还是tcp或者udp。做 个比喻就好理解了。

    1.1K60

    TCPip详解_TCPIP详解

    尽管大多数情况下,错误的包传送应该给出ICMP报文,但是特殊情况下,是不产生ICMP错误报文的。如下 1....2.1.RIP:选路信息协议 它的定义可以RFC1058内找到,这种协议使用UDP作为载体(也就是UDP的上层协议)。...而自己定义的zone则可以规定其缓存中的时间,一般是1天(就是配置文件中的1D)。 4.2.用UDP还是TCP DNS服务器支持TCPUDP两种协议的查询方式,而且端口都是53。...1.4.估计器的初始化 在这里,SYN用的估计器初始化似乎和传输用的估计器不一样(也没有把握)造的理解,修正公式中,SYN的情况下,A初始化为0,D初始化为3S。...而在得到传输第一个数据的ACK的时候,应该按照下面的公式进行初始化: A=M+0.5 D=A/2 1.5.估计器的更新 和上面的讨论差不多,就是正常情况下,用上面的公式计算,重传的情况下,不更新估计器的各种参数

    99910

    5 分钟读透 HTTP 的前世今生( Chrome、Firefox 和 Cloudflare 均已支持 HTTP3 )

    这个算法会让所有人都 “冷静” 下来,然后进入一个 “慢启动” 的过程,包括 TCP 连接建立时,这个慢启动也,所以导致 TCP 性能迸发地比较慢。QUIC 基于 UDP使用更为激进的方式。...所以,QUIC 是一个 UDP 之上的伪 TCP + TLS + HTTP/2 的多路复用的协议。 但是对于 UDP 还是有一些挑战的,这个挑战主要来自互联网上的各种网络设备。...这些设备根本不知道是什么 QUIC,他们看 QUIC 就只能看到的就是 UDP,所以,一些情况下UDP 就是有问题的。...比如在 NAT 的环境下,如果是 TCP 话,NAT 路由或是代理服务器,可以通过记录 TCP 的四元组(源地址、源端口、目标地址、目标端口)来做连接映射的。然而, UDP情况下不行了。... TCP 上,这种同步是透明的,然而在 UDP 上这个事不好干了。

    72700

    一篇文章带你详解 TCPIP 协议

    计算机网络体系结构分层 不难看出,TCP/IP 与 OSI 分层模块上稍有区别。OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“计算机上实现协议应该开发哪种程序”。...然而在很多情况下,它只是利用 IP 进行通信时所必须用到的协议群的统称。具体来说,IP 或 ICMP、TCPUDP、TELNET 或 FTP、以及 HTTP 等都属于 TCP/IP 协议。...UDP 是不具有可靠性的数据报协议。细微的处理它会交给上层的应用去完成。 UDP情况下,虽然可以确保发送消息的大小,却不能保证消息一定会到达。因此,应用有时会根据自己的需要进行重发处理。...TCPUDP 应该根据应用的目的按需使用。 1. 端口号 数据链路和 IP 中的地址,分别指的是 MAC 地址和 IP 地址。...3.8 窗口控制中的重发控制 使用窗口控制中, 出现丢包一般分为两种情况: ① 确认应答未能返回的情况。在这种情况下,数据已经到达对端,是不需要再进行重发的,如下图: ?

    68510

    计算机网络协议(三)——UDPTCP、Socket

    UDP继承了IP的特性,基于数据报的,一个个发,一个个收; TCP是可以有拥堵控制的,可以根据网络环境调整自己的行为;UDP就是应用让发,就发,管它洪水滔天; TCP是一个有状态的服务,通俗的讲就是有脑子的...使用超时重传来实现可靠传输:如果一个已经发送的报文段超时时间内没有收到确认,那么就重传这个报文段。...超时时间 RTO 应该略大于 RTTs,TCP 使用的超时时间计算如下: 其中 RTTd 为偏差的加权平均值。 ---- 3.2 TCP滑动窗口 窗口是缓存的一部分,用来暂时存放字节流。...在这种情况下,只是丢失个别报文段,而不是网络拥塞。因此执行快恢复,令 ssthresh = cwnd / 2 ,cwnd = ssthresh,注意到此时直接进入拥塞避免。...还要指定到底是TCP还是UDPTCP协议是基于数据流的,所以设置为SOCK_STREAM,而UDP是基于数据报的,因而设置为SOCK_DGRAM。

    1.6K20

    网络协议 7 - UDP 协议:性善碰到城会玩

    发送的时候,接收机器怎么知道数据包是 UDP 的包呢?所以 IP 头里面有个 8 位协议,这里会存放,数据包究竟是 TCP 还是 UDP。     ...无论应用程序写的是使用 TCP 传呼机,还是 UDP 传数据,都要监听一个端口。正式这个端口,用来区分应用程序。     这样,UDP 头里面的内容就都出来了,如下图: ?     ...UDP 使用场景     正所谓“祸兮福所倚”,虽然 UDP 有着很多问题,但也可以特定场景中发挥更好的作用。     第一,需要资源少,在网络情况比较好的内网,或者对于丢包不敏感的应用。...,建立一次连接需要的时间会比较长,而且移动互联网还是移动中,TCP 可能还会断了重连,这也是很耗时的。     ...因此,在网络不好的情况下,应用希望选择性的丢帧。     还有就是,当网络不好的时候,TCP 会主动降低发送速度。这对本来就卡的看视频来讲是要命的,本来应该马上重传,而不是主动让步。

    74730

    TCPUDP协议(二)

    面试问题:Tcp/Udp协议是什么,各有什么异同点,各自的使用场景?...Tcp协议(传输控制协议) tcp是面向连接的协议,收发数据之前,必须与对方建立可靠的连接; 三次握手:简单形象通俗描述: 主机A向主机B发出连接请求数据包:“想给你发数据,可以吗?”...一种情况是,B收到重传的消息后,又收到了之前丢失的消息,此时B也应该向A发送确认信息,但A会将这个信息丢弃,B也会将迟到的那个信息丢弃。...语音数据包一般比较小,需要高速发送,偶尔断音或串音也没有问题); UDP可以用于服务系统内部之间的数据传输,因为数据可能比较多,内部系统局域网内的丢包错包率又很低,即便丢包,顶多是操作无效,这种情况下...,UDP经常被使用

    80730

    动图图解 | UDP就一定比TCP快吗?

    什么情况下UDP会比用TCP慢? 我们今天就来聊下这个话题。...基于socket我们可以选择使用TCPUDP协议进行通信。 对于TCP这样的可靠性协议,每次消息发出后都能明确知道对方收没收到,就像打电话一样,只要"喂喂"两下就能知道对方有没有听。...这时候网络信号不好,你可能会听到"….点赞在看"。 但却从来没遇到过"在看小白好想赞"这样的乱序场景吧? 所以说,虽然选择了使用UDP,但一般还是会在应用层上做一些重传机制的。...TCP分段 但对于UDP,其本身并不会分段,如果数据过大,到了IP层,就会进行分片。此时发生丢包的话,再次重传,就会重传整个大数据包。 UDP不分段 对于上面这种情况,使用UDP就比TCP要慢。...这种场景下,其实TCP更快。 最后 最近原创更文的阅读量稳步下跌,思前想后,夜里辗转反侧。 有个不成熟的请求。 离开广东好长时间了,好久没人叫我靓仔了。 大家可以评论区里,叫我一靓仔吗?

    84030

    【重学计算机网络】UDP协议到底有什么用

    TCP三次握手,UDP也可以发三个包玩玩,有啥区别? 所谓建立连接,是为了客户端和服务端维护连接,而建立特定数据结构维护双方交互的状态,保证所谓的面向连接特性。 例如,TCP提供可靠交付。...UDP就不会,应用让发,就发。 所以TCP是个有状态服务,它精确地记着发送了没有,接收到没有,发送到哪个了,应该接收哪个了,错一点儿都不行。 而 UDP则是无状态服务。...发送时,知道发的是一个UDP包,收到的那台机器咋知道的? 所以IP头里面有个8位协议,存放数据里面到底是TCP or UDP,当然这里是UDP。...无论应用程序写的使用TCP还是UDP传数据,都要监听一个端口。 端口用来区分应用程序。两个应用监听一个端口,到时候包给谁?...PXE可以启动时自动安装os,os镜像的下载使用的TFTP,也是基于UDP还没有os时,客户端拥有的资源很少,不适合维护一个复杂状态机,而是因为是内网,一般也没啥问题。

    45420

    浅析端口扫描原理

    ,或者ACK位的报文发送到开放端口时服务端会丢弃该报文),那么就有如下行为/状态表: 行为 状态 未响应 Open/filtered 返回RST Closed ICMP不可达错误 filtered 这种扫描扫描本地时准确率不低...793 (TCP)标准下无论端口开放还是关闭都应该响应RST给这样的探测,然而在许多基于BSD的系统中,如果端口开放,它只是丢弃该探测报文而非响应。...显然UDP扫描相较于TCP扫描而言使用的较少,就个人来说也不习惯去扫描UDP端口,而例如常见的DNS,SNMP,和DHCP (注册的端口是53,161/162,和67/68)同样也是一些不可忽略的端口...,某些情况下会有些用处。...协议扫描扫的不是端口,它是IP协议域的8位上循环,仅发送IP报文,而不是前面使用到的TCP or UDP报文,同时报文头(除了流行的TCP、ICMP、UDP协议外)会是空的,根据nmap中说的是如果得到对应协议的响应则将该协议标记为

    2.4K20

    Nmap----简单使用

    -sP选项默认情况下, 发送一个ICMP回声请求和一个TCP报文到80端口。如果非特权用户执行,就发送一个SYN报文 (用connect()系统调用)到目标机的80端口。...Nmap并不关心端口开放还是关闭。 无论RST还是SYN/ACK响应都告诉Nmap该主机正在运行。 UNIX机器上,通常只有特权用户 root 能否发送和接收 原始的TCP报文。...如果目标机器的端口是关闭的,UDP探测应该马上得到一个ICMP端口无法到达的回应报文, 从而向Nmap快速表明该机器正在运行。 该扫描类型的主要优势是它可以穿越只过滤TCP的防火墙和过滤器。 例如。...曾经有过一个Linksys BEFW11S4无线宽带路由器。默认情况下, 该设备对外的网卡过滤所有TCP端口,但UDP探测仍然会引发一个端口不可到达 的消息,从而暴露了它自己。...open|filtered(开放或者被过滤的) 当无法确定端口是开放还是被过滤的,Nmap就把该端口划分成 这种状态。 UDP,IP协议, FIN,Null,和Xmas扫描可能把端口归入此类。

    42120

    告知你不为人知的 UDP:疑难杂症和使用

    (4) UDP包分片问题 如果MTU是1500,Client发送一个8000字节大小的UDP包,那么Server端阻塞模式下接包,不丢包的情况下,recvfrom(9000)是收到1500,还是8000...这种方式提高丢包率的原理比较简单,例如本例的冗余发包方式,偶数包全丢的情况下,依然能够还原出完整的数据,也就是在这种情况下,50%的丢包率,依然能够达到100%的数据接收。...然而UDP大多情况下并不一定比TCP高效,TCP发展至今天,为了适应各种复杂的网络环境,其算法已经非常丰富,协议本身经过了很多优化,如果能够合理配置TCP的各种参数选项,那么多数的网络环境下TCP是要比...上面说了这么多,难道真的不该用UDP了吗?其实也不是的,某些场景下,我们还是必须UDP才行的。那么UDP的较为合适的使用场景是哪些呢?...5.3 UDP使用原则 通常情况下UDP使用范围是较小的,以下的场景下,使用UDP才是明智的。

    21.1K95

    为什么 DNS 协议使用 UDP?只使用UDP 吗?

    某些情况下 UDP 是一种最有效的工作方式,一般用于即时通信,比如:语音电话、 直播等等;而 TCP 一般用于文件传输、发送和接收邮件、远程登录等准确性要求比较高的场景 上面这些是最基本的吧。...DNS 分别在什么情况下使用 UDPTCP 了解了 TCP 面向字节流而 UDP 面向报文的这个特性之后,域名解析的时候,也就是客户端向 DNS 服务器查询域名获取 IP 地址的时候,DNS 协议关于...使用场景如下: DNS 域名解析的过程中,会根据 DNS 响应报文的大小选择使用 TCP 还是 UDP。...但是一般情况下,返回的 DNS 响应报文都不会超过 512 字节,所以事实上,很多 DNS 服务器进行配置的时候,也仅支持 UDP 查询包; DNS 进行区域传输的时候使用 TCP 协议。 ?...另外,虽然现在本号仍然很小,不过还是建了一个交流群『小牛肉和它的小伙伴们』,感兴趣的各位可以下方扫码加我微信回复 "进群",拉你进群:

    5.6K30

    浅谈TCPUDP协议

    目录 TCPUDP的区别 UDP 特点: 使用场景 UDP变形 QUIC协议 直播中的帧 嵌入式 TCP TCP三次握手 TCP四次挥手 TCP状态机 TCPUDP的区别 我们大多数人的回答是,TCP...我们讲过 PXE 可以启动的时候自动安装操作系统,操作系统镜像的下载使用的 TFTP,这个也是基于 UDP 协议的。...还有就是在网络不好的时候,TCP协议会主动降低发送速度,这对本来当时就卡的看视频来讲是要命的,应该应用层马上重传,而不是主动让步。因而,很多直播应用,都基于 UDP 实现了自己的视频传输协议。...也就是说,对于 TCP 来讲,IP 层你丢不丢包,管不着,但是的层面上,会努力保证可靠性。...另外,你作为服务端 B 的程序设计者,对于 A这种长时间不发包的客户端,可以主动关闭,从而空出资源来给其他客户端使用

    47320

    TCPUDP 的区别,三次握手、四次挥手

    博客地址:https://ainyi.com/55 TCPUDP 的区别总结 |TCP|DUP| |-|-|-| |TCP 面向连接(如打电话要先拨号建立连接)|UDP 是无连接的,即发送数据之前不需要建立连接...,多对一和多对多的交互通信| |TCP 首部开销20字节|UDP 的首部开销小,只有8个字节| |TCP 的逻辑通信信道是全双工的可靠信道|UDP 则是不可靠信道| |TCP 传输速率:慢|UDP 传输速率...正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中的一个中间状态,很短暂,基本上用netstat很难看到这种状态,除非故意写一个监测程序,将三次TCP握手过程中最后一个...当然实际的正常情况下,无论对方处于任何种情况下,都应该马上回应ACK报文,所以FIN_WAIT_1 状态一般是比较难见到的,而FIN_WAIT_2 状态有时仍可以用netstat看到。...CLOSING :这种状态实际情况中应该很少见,属于一种比较罕见的例外状态。正常情况下,当一方发送FIN报文后,按理来说是应该先收到(或同时收到)对方的ACK报文,再收到对方的FIN报文。

    3K50
    领券