• TCP和UDP区别


    TCP和UDP区别

    1. TCP面向连接(TCP三次握手),UDP是无连接的,即发送数据之前不需要建立连接。
    2. 每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信。
    3. TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的。
    4. TCP有序,UDP无序;消息在传输过程中可能会乱序,后发送的消息可能会先到达,TCP会对其进行重排序,UDP不会。
    5. TCP有流量控制(拥塞控制),UDP没有。流量控制:TCP利用滑动窗口机制在TCP连接上实现对发送方的流量控制, 如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提:网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络传输性能有关的所有因素。当出现网络抖动时,TCP会自觉降低发送速度,他会努力维护次序,但UDP依然保持速度不变。TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
    6. TCP传输速率慢,由于传输要进行三次握手,以及会进行拥塞控制等。
    7. TCP应用场景:效率要求相对低,但对准确性要求相对高的场景。因为传输中需要对数据确认、重发、排序等操作,相比之下效率没有UDP高。举几个例子:文件传输(准确高要求高、但是速度可以相对慢)、接受邮件、远程登录。UDP应用场景:效率要求相对高,对准确性要求相对低的场景。举几个例子:QQ聊天、在线视频、网络语音电话(即时通讯,速度要求高,但是出现偶尔断续不是太大问题,并且此处完全不可以使用重发机制)、广播通信(广播、多播)。

     

    TCP

    UDP

    连接

    面向连接

    无连接

    连接方式

    点到点

    支持一对一,一对多,多对一和多对多

    模式

    流模式(TCP)

    数据报模式(UDP)

    头部大小

    20字节

    8字节

    有序性

    有序

    无序

    传输速率控制

    流量控制(拥塞控制)

    可靠性

    可靠

    不可靠

    传输速率

    占用系统资源

    应用场景

    效率要求相对低,但对准确性要求相对高的场景。

    效率要求相对高,对准确性要求相对低的场景

     

    TCP字节流和UDP数据报区别

    两者的区别在于TCP接收的是一堆数据,而每次取多少由主机决定;而UDP发的是数据报,客户发送多少就接收多少。拥有这些区别的原因是由于TCP和UDP的特性不同而决定的。TCP是面向连接的,也就是说,在连接持续的过程中,socket中收到的数据都是由同一台主机发出的,因此,知道保证数据是有序的到达就行了,至于每次读取多少数据自己看着办。 而UDP是无连接的协议,也就是说,只要知道接收端的IP和端口,且网络是可达的,任何主机都可以向接收端发送数据。这时候,如果一次能读取超过一个报文的数据,则会乱套。比如,主机A向发送了报文P1,主机B发送了报文P2,如果能够读取超过一个报文的数据,那么就会将P1和P2的数据合并在了一起,这样的数据是没有意义的。

     
     
  • 相关阅读:
    未来所有的公司,都将成为互联网公司
    万达数字化管理体系
    架构图都画啥
    历经60年,数据库的王者终于出现了
    从智慧社区产品入手,阐述ToG产品的一些设计要点
    黑科技感爆棚的可视化大屏
    数据库编程——Oracle环境配置
    IO系列测试源码
    IO异步,读写压缩文件,监控文件系统
    StreamReader & StreamWriter
  • 原文地址:https://www.cnblogs.com/suihang/p/12886391.html
Copyright © 2020-2023  润新知