zoukankan      html  css  js  c++  java
  • (原创)TCPIP学习笔记之UDP(用户数据报协议)

    TCP-IP学习笔记之UDP(用户数据报协议)

     

    一、引言

    UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。这与面向流字符的协议不同,如 TCP,应用程序产生的全体数据与真正发送的单个IP数据报可能没有什么联系。

     

      图1UDP封装

    UDP不提供可靠性:它把应用程序传给IP层的数据发送出去,但是并不保证它们能到达目的地。

     

    二、UDP首部

    U D P首部的各字段如图2所示:

     图1UDP首部

    端口号表示发送进程和接收进程。TCPUDP用目的端口号来分用来自IP层的数据的过程。由于IP层已经把IP数据报分配给TCPUDP(根据IP首部中协议字段值),因此TCP端口号由TCP来查看,而UDP端口号由UDP来查看。TCP端口号与UDP端口号是相互独立的。

    UDP长度字段指的是UDP首部和UDP数据的字节长度。该字段的最小值为8字节(发送一份0字节的UDP数据报是OK) 。这个UDP长度是有冗余的。IP数据报长度指的是数据报全长,因此UDP数据报长度是全长减去IP首部的长度。

     

    三、UDP检验和

    UDP检验和覆盖UDP首部和UDP数据。注:IP首部的检验和,它只覆盖IP的首部—并不覆盖IP数据报中的任何数据。

    UDPTCP在首部中都有覆盖它们首部和数据的检验和。 UDP的检验和是可选的,而TCP的检验和是必需的。

    注:UDP数据报和TCP段都包含一个1 2字节长的伪首部,它是为了计算检验和而设置的。伪首部包含IP首部一些字段。其目的是让UDP两次检查数据是否已经正确到达目的地(例如,IP没有接受地址不是本主机的数据报,以及IP没有把应传给另一高层的数据报传给UDP) 。UDP数据报中的伪首部格式如图3所示:

     

      图3UDP检验和计算过程中使用的各个字段

     

    注:为方便大家,若需下载完整文档,请点击

    https://files.cnblogs.com/tdyizhen1314/TCP-IP%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%E4%B9%8BUDP(%E7%94%A8%E6%88%B7%E6%95%B0%E6%8D%AE%E6%8A%A5%E5%8D%8F%E8%AE%AE).zip

     

    作者:tdyizhen1314

          电子爱好者,希望与大家共同交流,一起进步!

    邮箱495567585@qq.com  

          td.logic@hotmail.com

     

  • 相关阅读:
    由AbstractQueuedSynchronizer和ReentrantLock来看模版方法模式
    Java并发编程-CAS
    Java并发编程-volatile
    Java并发编程-synchronized
    学习几个协议
    邻接矩阵存储简单路径(1070)
    输出利用先序遍历创建的二叉树的层次遍历序列(0980)
    中缀表达式转换为后缀表达式(1042)
    特定字符序列的判断(1028)
    舞伴问题(1027)
  • 原文地址:https://www.cnblogs.com/tdyizhen1314/p/2648014.html
Copyright © 2011-2022 走看看