美文网首页
TCP和UDP协议

TCP和UDP协议

作者: 彭空空 | 来源:发表于2019-10-03 20:39 被阅读0次

    两者都是通信协议, TCP、UDP 是传输层协议,但他们的通信机制与应用场景不同,下面来阐述两者的区别以及它们的应用场景。

    导读

    特点对比

    TCP(Transmission Control Protocol),又叫传输控制协议,UDP(User Datagram Protocol),又叫用户数据报协议,它们都是传输层的协议,但两者的机制不同,它们的区别如下

    特点 TCP UDP
    连接性 面向连接 面向非连接
    可靠性 可靠 不可靠
    传输效率

    TCP

    从如上表格看到,TCP 是面向连接的,并且是一种可靠的协议,在基于 TCP 进行通信时,通信双方需要先建立一个 TCP 连接,建立连接需要经过三次握手,握手成功才可以进行通信,关于 TCP 三次握手、四次挥手的过程

    TCP 协议是一种可靠的传输协议,可靠性是指在通信的角度来看,可靠即要确保通信双方的通信信息不会丢失,若丢失了保证能够对其进行恢复,并且收到的信息内容与原发送内容一样。

    在 TCP 中,传输报文都是通过建立的虚拟连接来进行传输,发送端传输的每一个 TCP 报文,都会对其进行编号(编号是由于网络传输的原因,发送的报文可能会乱序到达,因此需要根据编号对报文进行重排),并且开启一个计时器;当接收端收到报文后,并且通过校验和对收到的报文数据进行校验,若校验成功则会返回一个确认报文,告知发送端我已经成功收到该报文了;若发送端在计时器结束前仍未收到确认报文,则认为接收端接收失败,则会重传该报文;服务端若收到重复报文(根据编号发现已经是收到了),则会将该报文丢弃。

    因此,从上面的机制可以知道,TCP 是通过重传、确认和校验和的方式来确保可靠。

    注:校验和并不能检验数据是否被篡改过,想要保证数据的完整性可以了解一下数字签名

    UDP

    UDP 是一种面向无连接,且不可靠的协议,在通信过程中,它并不像 TCP 那样需要先建立一个连接,只要(目的地址,端口号,源地址,端口号)确定了,就可以直接发送信息报文,并且不需要确保服务端一定能收到或收到完整的数据。它仅仅提供了校验和机制来保障一个报文是否完整,若校验失败,则直接丢弃报文,不做任何处理。

    TCP 与 UDP 的应用场景

    从特点上我们已经知道,TCP 是可靠的但传输速度慢 UDP 是不可靠的但传输速度快。因此在选用具体协议通信时,应该根据通信数据的要求而决定。

    若通信数据完整性需让位与通信实时性,则应该选用 TCP 协议(如文件传输、重要状态的更新等);反之,则使用 UDP 协议(如视频传输、实时通信等)。

    TCP与UDP基本区别

    1.基于连接与无连接
    2.TCP要求系统资源较多,UDP较少;
    3.UDP程序结构较简单
    4.流模式(TCP)与数据报模式(UDP);
    5.TCP保证数据正确性,UDP可能丢包
    6.TCP保证数据顺序,UDP不保证

    UDP应用场景:
    1.面向数据报方式
    2.网络数据大多为短消息
    3.拥有大量Client
    4.对数据安全性无特殊要求
    5.网络负担非常重,但对响应速度要求高

    相关文章

      网友评论

          本文标题:TCP和UDP协议

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