zoukankan      html  css  js  c++  java
  • TCP和UDP的区别

    TCP和UDP都是运输层协议

    参考链接:https://www.cnblogs.com/bizhu/archive/2012/05/12/2497493.html

    TCP:

      Transmission Control Protocol,传输控制协议,是面向连接的协议,也就是说,在收发数据之前,必须和对象建立可靠的连接,一个TCP连接必须通过三次"会话"才能建立起来,其中的过程非常复杂

      TCP三次握手过程:

        

      1 主机A通过向主机B发送一个含有同步序列号的标志位的数据段给主机B,向主机B请求建立连接,通过这个数据段,主机A告诉主机B两件事:我想要和你通信,你可以用哪个序列号作为起始数据段来回应我

      2 主机B收到主机A的请求后,用一个带有确认回答(ACK)和同步序列号(SYN)标志位的数据段响应主机A,也告诉主机A两件事:我已经收到你的请求了,你可以传输数据了;你要用哪个序列号作为起始数据段来回应我

      3 主机A收到这个数据段后,再发一个确认应答,确认已经收到主机B的数据:我已经收到回复,我现在要开始传输实际数据了

    3次握手的特点:

      没有应用层的数据

      SYN这个标志位只有在建立TCP连接时才会被置1

      握手完成后SYN标志位被置0

    TCP建立连接要进行3次握手,而断开连接需要4次握手

      1 当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求

      2 主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1

      3 由B端再提出反方向的关闭请求,将FIN置1

      4 主机A对主机B的请求进行确认,将ACK置1,双方关闭连接

    由TCP3次握手4次挥手可以看出,TCP使用面向连接的通信方式,大大提高了数据通信的可能性,使发送数据端和接收端在数据正式传输前就有了交互,为数据正式传输打下了可靠的基础

    UDP:

      User Data Protocol,用户数据报协议

      是一个非连接的协议,传输数据之前源端和终端不建立连接,当它想传送时就简单的去抓取来自应用程序的数据,并尽可能快的把它扔到网络上;在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度,计算机的能力和传输带宽的限制,在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读取一个消息段

      由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态,因此一台服务机可同时向多个客户机传递相同的消息

      UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态表

      UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小

    TCP和UDP的区别:

      1 TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接

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

      6 TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

  • 相关阅读:
    Mac之雕虫小技
    Python 合并两个字典(Dictionary)中相同key的value的方法
    linux只保留最新n个文件
    自动化测试笔记
    python实现一个判断时间的装饰,并抛出自定义异常
    python在字典列表中计算具有特定键的元素
    canvas游戏
    教为学:Oracle 11g OCP之路(七):数据结构
    教为学:Oracle 11g OCP之路(八):用户权限管理
    ADO.NET入门教程(六) 谈谈Command对象与数据检索
  • 原文地址:https://www.cnblogs.com/roxy/p/8094561.html
Copyright © 2011-2022 走看看