• TCP与UDP的区别


    在网络体系结构中网络通信的建立必须是在通信双方的对等层进行,不能交错。 在整个数据传输过程中,数据在发送端时经过各层时都要附加上相应层的协议头和协议尾(仅数据链路层需要封装协议尾)部分,也就是要对数据进行协议封装,以标识对应层所用的通信协议。

    一.UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议,UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知是否安全完整到达.

    具有以下特点:

    1. 面向无连接, UDP是不需要发送数据前进行三次握手建立连接的,想发数据就可以开始发送了,

    2. 有单播,多播,广播的功能,UDP 不止支持一对一的传输方式,同样支持一对多,多对多,多对一的方式,也就是说 UDP 提供了单播,多播,广播的功能,

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

    4. 不可靠性,体现在无连接上,通信都不需要建立连接,想发就发,这样的情况肯定不可靠,

    二.TCP协议全称是传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议,由 IETF 的RFC 793定义。流就是指不间断的数据结构,你可以把它想象成排水管中的水流。

    第一次握手,客户端向服务端发送连接请求报文段。该报文段中包含自身的数据通讯初始序号。请求发送后,客户端便进入 SYN-SENT 状态。

    第二次握手,服务端收到连接请求报文段后,如果同意连接,则会发送一个应答,该应答中也会包含自身的数据通讯初始序号,发送完成后便进入 SYN-RECEIVED 状态。

    第三次握手,当客户端收到连接同意的应答后,还要向服务端发送一个确认报文。客户端发完这个报文段后便进入 ESTABLISHED 状态,服务端收到这个应答后也进入 ESTABLISHED 状态,此时连接建立成功。

    TCP三次握手的原因:  是因为为了防止出现失效的连接请求报文段被服务端接收的情况,从而产生错误。

    TCP的断开连接:

     三.TCP与UDP的对比:

     

  • 相关阅读:
    2018/12/06 L1-031 到底是不是太胖了 Java
    2018/12/06 L1-030 一帮一 Java
    2018/12/06 L1-029 是不是太胖了 Java
    .NET Framework 类库命名空间
    .NET获取根目录
    ddd领域驱动设计
    垃圾回收
    rest api
    数据库ACID
    事务隔离级别
  • 原文地址:https://www.cnblogs.com/cxq20190307/p/11715103.html
Copyright © 2020-2023  润新知