zoukankan      html  css  js  c++  java
  • TCP和UDP

    TCP

    (1) TCP特性

      点到点,全双工,可靠有序的字节流,面向连接,且存在流量和拥塞控制。
    (2)TCP的优点

      可靠,稳定。
         TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。 
    (3) TCP的缺点
          慢,效率低,占用系统资源高,易被攻击。  
          TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。而且,因为TCP有确认机制、三次握手机制,这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。

    UDP

    (1)UDP特性
      无连接,系统开销小快速。主要应用于对丢包容忍较大,速率敏感的场景。

    (2)UDP的优点
         快速,系统消耗低,比TCP稍安全。
         UDP没有TCP的握手、确认、窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的这些机制,UDP较TCP被攻击者利用的漏洞就要少一些。但UDP也是无法避免攻击的,比如:UDP Flood攻击。
    (3)UDP的缺点
         不可靠,不稳定。
         因为UDP没有TCP那些可靠的机制,在数据传递时,如果网络质量不好,就会很容易丢包。 

    TCP与UDP的区别

       1.连接性:TCP面向连接;UDP是无连接的。(TCP需要三次握手,而UDP不需要握手)
      2.可靠性:TCP提供可靠的服务;UDP尽最大努力交付,即不保证可靠交付。(通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP则可能出现丢包,不保证顺序到达)
      3.面向对象:TCP面向字节流;UDP是面向报文的。( 面向报文的是指发送方的UDP对应用层交下来的数据报文,不合并不拆分,只是在其上面加上首部后就交给了下面的网络层。)。
      举个例子:
         发送方使用TCP协议先发送 100个字节的包1,再发送10个字节的包2;等待2秒后,接收方只需要接收一次就能能将数据(110字节)接收下来。
         发送方使用UDP协议先发送 100个字节的包1,再发送10个字节的包2;等待2秒后,接收方必须要接收两次才能将包1(100字节)和包2(10字节)分别接收。
      4.差错拥塞控制:UDP没有差错和拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低。(TCP拥塞控制,当另一端出现阻塞时,会降低发送速率)。
      5.系统开销:TCP首部开销20字节(具有报文段序号,应答序号,窗口大小等);UDP的首部开销小,只有8个字节(2个字节的源端口,2个字节的目的端口,2个字节的报文长度,2个字节的校验和)。
      6.信道:TCP的逻辑通信信道是全双工的可靠信道,即可以流入也可以流出的信道;UDP则是不可靠信道。
      7.有序性:TCP是有序的字节流;UDP则是无序的。(这是由于tcp头部存在报文段的序号,而udp没有)

  • 相关阅读:
    babel的使用以及安装配置
    常见的浏览器兼容性问题与解决方案——CSS篇
    ES6入门——变量的解构赋值
    ES6入门——let和const命令
    第一个移动端项目
    向Github提交更改的代码
    MySQL安装配置
    HTTP 状态消息
    HTMl基础
    Shell 常用的命令
  • 原文地址:https://www.cnblogs.com/zhichaoma/p/7506258.html
Copyright © 2011-2022 走看看