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

    UDP

    什么是UDP

    UDP(User Datagram Protocol)用户数据报协议

    特点:

    1. 面向无连接的,也就是通信双方不需要像TCP那样先建立连接才能发送数据

    2. 尽最大努力交付,不可靠,没有确认也没有重传机制。

    3. 面向报文,应用层传下来的报文有多大,都统一接收,既不合并,也不拆分,

      所以IP很可能由于传输层的UDP报文过大,加上IP头后,大于MTU,出现分片的情况

      而TCP在这里会有一个MSS的功能,他还有一个缓存,可以等到一个MSS的长度时,再一并

      组成一个报文发下去。

    4. 没有拥塞控制,所以通常能胜任一些实时性需求较高的服务,比如IP电话和视频传输,

      而TCP通过拥塞窗口和慢开始,拥塞避免等算法实现拥塞控制,会降低发送方的发送速度。

    5. 从开销的角度看,UDP报文首部只有8个字节,和TCP固定首部长度20字节比起来小了,

      而且不用建立连接,所以开销更小。

    6. 通信方式:一对多,多对多,多对一的。而TCP是端到端的

    几个技术

    伪头部:用于实现传输层对传输层报文的校验,不会出现在网络层,只是到达传输层的时候,

    临时加上这个伪头部,根据伪头部 + UDP头部 + UDP数据部分 计算UDP校验和。

    为什么? 因为IP地址传输过程中可能出现差错,而路由器重新计算校验和后,传给错误的主机,

    而主机最终还可以在这一层通过校验和,发现差错,并丢弃报文。

     

    TCP

    1. Transmission Control Protocol 传输控制协议

    2. 面向连接 ,区别于UDP,使用TCP的发送方和接收方发送数据之前需要先建立连接,(三次握手)

      数据传输完毕后,还要释放连接 (四次握手)

    3. 端对端的通信方式,是一个Socket连接到另一个Socket,这里的Socket指IP:端口号

    4. 面向字节流,应用层交给传输层的时候,是一个字节一个字节这样的,区别于UDP,他不是

      一整个报文这样接受下来的,因此他可以当应用层交下来的字节过多,大于MSS(Maximum Segment Size)最大报文段长度的时候,分段,组成多个报文;又或者字节过少,小于1个MSS,则等待一会,利用缓存,这样可以提高报文的利用率,而避免首部过长,数据过短,头重脚轻。

    5. 可靠。具有确认,重传等功能确保可靠。

    6. 具有流量控制和拥塞控制。以提供很可靠的网络质量。(可以展开来写)

  • 相关阅读:
    杭电2050
    杭电2043,小细节。。。。。
    杭电2034,坑爹的人见人爱a-b
    杭电2035--人见人爱A^B
    杭电2032--杨辉三角
    杭电2029--Palindromes _easy version(回文串)
    杭电2028--Lowest Common Multiple Plus
    NPOI大数据分批写入同个Excel
    [每日一题] OCP1z0-047 :2013-07-25 权限――角色与对象权限
    Ubuntu下安装搜狗拼音输入法
  • 原文地址:https://www.cnblogs.com/zhanp/p/10931322.html
Copyright © 2011-2022 走看看