美文网首页
TCP UDP 区别

TCP UDP 区别

作者: 河马咕嘟 | 来源:发表于2021-04-15 14:30 被阅读0次

    都是TCP/ip 的族内协议

    UDP: 面向非连接的 不安全的 相对高效的,数据结构只有 源端口号,目的端口号,UDP长度,UDP校验码(使用 IP 首部、UDP 首部和数据报中的数据进行计算,接收方可以通过校验码验证数据的准确性,发现传输过程中出现的问题;)8个字节不用三次握手

    • 应用场景: 例如直播、电话会议、媒体传输等场景经常使用 UDP协议

    TCP :传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议

    • 源端口、目标端口
    发送方进程的端口号,数据接收方的端口号(范围0-65535);

    • 序号
      主要是为了解决乱序问题(编好号才知道哪个先来,哪个后到);
    • 确认序号
      发出去的包应该有确认,这样能知道对方是否收到,如果没收到就应该重新发送,这个解决的是不丢包的问题;
    • 状态位
      SYN 是发起一个链接,ACK 是回复,RST 是重新连接,FIN 是结束连接(TCP 是面向连接的,因此需要双方维护连接的状态,这些状态位的包会引起双方的状态变更);
    • 窗口大小
      TCP 要做流量控制,需要通信双方各声明一个窗口,标识自己当前的处理能力;

    TCP三次握手

    TCP协议发送数据之前必须在通信的两端建立连接,建立连接的方法是TCP三次握手:

    TCP三次握手

    • 第一次握手
      客户端向服务端发送连接请求报文;请求发送后,客户端便进入 SYN-SENT 状态;
    • 第二次握手
      服务端收到连接请求报文后,如果同意连接,则会发送一个应答,发送完成后便进入 SYN-RECEIVED 状态;
    • 第三次握手
      当客户端收到连接同意的应答后,还要向服务端发送一个确认报文;客户端发完这个报文后便进入 ESTABLISHED 状态,服务端收到这个应答后也进入 ESTABLISHED 状态,此时连接建立成功。

    为什么 TCP 建立连接需要三次握手,而不是两次?
    TCP既要保证数据可靠传输,又要提高传输的效率,而用三次(客户端与服务端发送的报文都得到了响应,通信双方全都有来有回)恰恰满足了以上两方面的需求!

    相关文章

      网友评论

          本文标题:TCP UDP 区别

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