精华内容
下载资源
问答
  • 网络通信(三): UDP 报头格式说明

    千次阅读 2019-02-24 00:00:19
    1、UDP 的特点 UDP 是 User Datagram Protocol 的缩写。 UDP 不提供复杂的控制机制,利用 IP 提供面向无连接的通信服务。 UDP 是将应用程序发来的数据在收到的那一刻,立即按照原样发送到网络上的一种机制。...

    1、UDP 的特点

    UDP 是 User Datagram Protocol 的缩写。

    • UDP 不提供复杂的控制机制,利用 IP 提供面向无连接的通信服务。
    • UDP 是将应用程序发来的数据在收到的那一刻,立即按照原样发送到网络上的一种机制。即使是出现网络拥堵的情况,UDP 也无法进行流量控制等避免网络拥塞行为。
    • 传输途中出现丢包,UDP 也不负责重发。
    • 当包的到达顺序出现乱序时也没有纠正的功能。
    • 如果需要以上的细节控制,不得不交由采用 UDP 的应用程序去处理。

    UDP 常用于以下几个方面:

    1.包总量较少的通信(DNS、SNMP等);

    2.视频、音频等多媒体通信(即时通信);

    3.限定于 LAN 等特定网络中的应用通信;

    4.广播通信(广播、多播)。

    2、UDP 头部格式

    UDP 头部由源端口号、目标端口号、包长、校验和组成
    在这里插入图片描述

    (1)源端口号(Source Port)

    表示发送端端口号,字段长为16位。没有源端口时该字段的值为0,可用于不需要返回值得通信中。

    (2)目标端口号(Destination Port)

    表示接收端端口号,字段长度为16位

    (3)包长度(Length)

    该字段保存了UDP首部的长度跟数据的长度之和

    (4)校验和(Checksum)

    校验和是为了提供可靠的UDP首部和数据而设计的。
    在这里插入图片描述

    • 源IP地址与目标IP地址为IPv4地址时,都是32位字段;为IPv6地址时,都是128位字段
    • 填充是为了补充位数,一般填入0

    接收主机在收到UDP数据报以后,从IP首部得到IP地址信息构造UDP伪首部,再进行校验和计算。校验和字段的值时校验和字段以外剩下部分的1的补码和。因此,包括校验和(Checksum)字段在内的所有数据之和结果为【16位全部为1】时,才会被认为所收到的数据是正确的。

    另外,UDP也有可能不用校验和,此时字段中的值为0。由于不用进行校验和的计算,这种情况下,协议处理的开销就会降低,从而可以提高数据转发的速度。

    然而,如果UDP首部的端口号或是IP首部的IP地址遇到损坏,那么可能会对其他通信造成不好的影响。因此,在互联网中比较推荐使用校验和做检查。

    3、为什么在进行校验和计算时,也要计算UDP的伪首部?

    TCP/IP中识别一个进行通信的应用需要5个元素,分别是:源IP地址、目标IP地址、源端口、目标端口、协议号。然而,在UDP的首部中只包含其中的两个(源端口和目标端口),剩下的3项都包含在IP首部里。

    如果其它3项的信息被破坏,极有可能会导致应该收包的应用收不到,不该收到包的应用确收到了包。

    为了避免这类问题,有必要验证一个通信中这5项识别码是否正确。因此,在计算校验和中就引入了伪首部的概念。

    另外,IPv6中的IP首部没有校验和字段。TCP或UDP通过伪首部,对5项数字进行校验,从而在IP首部不可靠的情况下仍然能够提供可靠的通信传输。

    展开全文
  • TCP和UDP报头格式各字段解释

    千次阅读 2019-09-22 12:29:25
    UDP长字段的值是UDP报文头的长度(8字节)与UDP所携带数据长度的总和。 2 字节校验和字段 是指整个UDP报文头和UDP所带的数据的校验和(也包括伪报文头)。伪报文头不包括在真正的UDP报文头中,但是它可以保证UDP...

    • 32位端口号:

    源端口和目的端口各占16位,2的16次方等于65536,看端口的命令:netstat。

    • 32位序号:

    也称为顺序号(Sequence Number),简写为SEQ,

    • 32位确认序号

    也称为应答号(Acknowledgment Number),简写为ACK。在握手阶段,确认序号将发送方的序号加1作为回答。

    • 4位首部长度

    这个字段占4位,它的单位时32位(4个字节)。本例值为7,TCP的头长度为28字节,等于正常的长度2 0字节加上可选项8个字节。,TCP的头长度最长可为60字节(二进制1111换算为十进制为15,15*4字节=60字节)。

    • 6位标志字段

    ACK 置1时表示确认号(为合法,为0的时候表示数据段不包含确认信息,确认号被忽略。

    RST 置1时重建连接。如果接收到RST位时候,通常发生了某些错误。

    SYN 置1时用来发起一个连接。

    FIN 置1时表示发端完成发送任务。用来释放连接,表明发送方已经没有数据发送了。

    URG 紧急指针,告诉接收TCP模块紧要指针域指着紧要数据。注:一般不使用。

    PSH 置1时请求的数据段在接收方得到后就可直接送到应用程序,而不必等到缓冲区满时才传送。注:一般不使用。

    • 16位检验和:

    检验和覆盖了整个的TCP报文段: TCP首部和TCP数据。这是一个强制性的字段,一定是由发端计算和存储,并由收端进行验证。

    • 16位紧急指针:

    注:一般不使用。

    只有当U R G标志置1时紧急指针才有效。紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。

    • 可选与变长选项

    通常为空,可根据首部长度推算。用于发送方与接收方协商最大报文段长度(MSS),或在高速网络环境下作窗口调节因子时使用。首部字段还定义了一个时间戳选项。

    u最常见的可选字段是最长报文大小,又称为MSS (Maximum Segment Size)。每个连接方通常都在握手的第一步中指明这个选项。它指明本端所能接收的最大长度的报文段。1460是以太网默认的大小。

    • 2字节源端口字段

    源端口是一个大于1023的16位数字,由基于UDP应用程序的用户进程随机选择。

    • 2字节节的端口字段
    • 2字节长度字段

    指明了包括首部在内的UDP报文段长度。UDP长字段的值是UDP报文头的长度(8字节)与UDP所携带数据长度的总和。

    • 2字节校验和字段

    是指整个UDP报文头和UDP所带的数据的校验和(也包括伪报文头)。伪报文头不包括在真正的UDP报文头中,但是它可以保证UDP数据被正确的主机收到了。因在校验和中加入了伪头标,故ICMP除能防止单纯数据差错之外,对IP分组也具有保护作用。

     

    转载于:https://www.cnblogs.com/Mr-F/p/9167917.html

    展开全文
  • TCP报头与UDP报头的区别

    千次阅读 2017-09-05 19:38:26
    TCP报头与UDP报头的区别

    一、TCP报头

    这里写图片描述
    TCP报头:
    (1)16位端口号:告诉主机该报文段是来自哪里,以及传给哪个上层协议或者应用程序(目的端口)的。
    (2)32位序号:给发送的数据编号。(随机值+偏移量(偏移量决定序号的大小));32位序号能够指定数据传送过去的序号。
    作用:A、保证发送的数据有序;B、保证重复的数据报被丢弃。
    (3)32位确认号:对A端发送的数据进行确认并回馈的序号。(在32位序中的序号值加1返回回去)。
    作用:保证数据能够有效地到达对端。
    (4)4位头部长度:因为4位最大能表示15,所以最大为60个字节。
    (5)6位标志位:
    PSH:通知尽快读取数据;
    RST:请求重新建立连接;
    SYN:请求建立连接;
    FIN:请求断开连接;
    ACK:表示确认号是否有效;
    URG:表示禁忌之阵是否有效。
    (6)16位窗口大小:控制发送数据的速度或流量。
    (7)16位校验和:由发送端填充,接收端对TCP报文段在传输过程中是否损坏。检验不仅包括头部部分,还包括数据部分。
    (8)16位紧急指针:一个正的偏移量(相当于当前序号的偏移)。紧急指针是发送端向接收端发送紧急数据的方法。
    TCP的特点的可靠性就体现在:32位序号,32位确认号16位校验和。面向连接体现在:URG、RST、SYN、FIN、ACK、PSH等六位标志。

    二、UDP报头

    这里写图片描述

    (1)用户数据报长度:包括报头和数据部分的总长度。
    (2)校验和:UDP协议不做错误纠正,发现错误会丢弃掉并发出警告。

    展开全文
  • TCP/IP 报文格式(IP数据包、TCP报头、UDP报头) 一、IP包格式 IP数据包,是一种可以变长的分组,由首部与数据负载组成。首部长度为20-60字节(Byte),后40字节是可选的,但长度不固定,前20字节格式为固定。数据...

    TCP/IP 报文格式(IP数据包、TCP报头、UDP报头)

    一、IP包格式

    IP数据包,是一种可以变长的分组,由首部与数据负载组成。首部长度为20-60字节(Byte),后40字节是可选的,但长度不固定,前20字节格式为固定。数据负载部分的长度一般可变。
    在这里插入图片描述
    1、 版本
    长度为4位,指IP协议的版本.通信双方使用的IP协议版本必须一致。目前广泛使用的 IP协议版本号为 4 (即 IPv4)。IPv6 目前还处于起步阶段。IP v4的值为0100,IP v6的值为0110。
    2、首部长度
    指的是IP包头长度,占 4 位,可表示的最大十进制数值是15。请注意,这个字段所表示数的单位是32位字 (1个32位字长是4 字节),因此,当 IP 的首部长度为 1111 时 (即十进制的 15),首部长度就达到 60字节。当 IP 分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充.因此数据部分永远在 4字节的整数倍开始,这样在实现 IP协议时较为方便。首部长度限制为 60字节的缺点是有时可能不够用.这样做的目的是希望用户尽量减少开销.最常用的首部长度就是 20 字节 (即首部长度为 0101),这时不使用任何选项。
    3、服务
    占 8 位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998年IETF把这个字段改名为区分服务 DS(Differentiated Services)。只有在使用区分服务时,这个字段才起作用。其组成:前3位为优先级(Precedence),后4位标志位,最后1位保留未用。优先级主要用于QoS,表示从0(普通级别)到7(网络控制分组)的优先级。标志位可分别表示D(Delay更低的时延)、T(Throughput 更高的吞吐量)、R(Reliability更高的可靠性)、C(Cost 更低费用的路由)。
    4、总长度
    总长度指首都及数据之和的长度,单位为字节.因为总长度字段为 16位,所以数据报的最大长度为 216-1=65 535字节.在IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,即最大传送单元 MTU (Maximum Transfer Unit).当一个数据报封装成链路层的帧时,此数据报的总长度 (即首部加上数据部分)一定不能超过下面的数据链路层的MTU值,否则要分片.
    5、标识 (Identification)
    占 16位.IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加 1,并将此值赋给标识字段.但这个"标识"并不是序号,因为 IP是无连接的服务,数据报不存在按序接收的问题.当数据报由于长度超过网络的 MTU 而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中.相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报.
    6、标志 (Flag)
    长度为3 位,但目前只有2位有意义. 标志字段中的最低位记为 MF(More Fragment).MF=1即表示后面"还有分片"的数据报.MF=0表示这已是若干数据报片中的最后一个.标志字段中间的一位记为DF(Don’t Fragment),意思是"不能分片",只有当 DF=0时才允许分片.
    7、片偏移
    占 13位。也称段偏移,较长的分组在分片后,某片在原分组中的相对位置.也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以 8个字节为偏移单位,这就是说,每个分片的长度一定是 8字节(64位)的整数倍。
    8、生存时间(TTL)
    长度为8位,初始值由操作系统设置,每经过一个路由器转发后其值就减1,减至0后丢弃该包。这种机制可以避免数据包找不到目地时不断被转发,堵塞网络。
    9、协议(Protocol)
    长度为8位,标识上层所使用的协议。
    10、首部校验和(Header Checksum)
    占16位,首部检验和只对IP数据包首部进行校验,不包含数据部分。因为数据包每经过一个路由器都要重新计算首部校验和, (一些字段,如生存时间,标志,片偏移等都可能发生变化)对首都进行检验。
    11、源IP地址(Source IP)
    长度为32位,表示数据发送的主机IP。
    12、目的IP地址(Destination IP)
    长度为32位,表示数据要接收的主机IP。
    13、选项字段(Options)
    长度为0-40字节(Byte),主要有:安全和处理限制(Security)、记录路径(Record Route)、时间戳(Timestamps)、宽松源站选路(Loose Source Routing)、严格的源站选路(Strict Source Routing)等。

    二、TCP报文

    在这里插入图片描述
    在这里插入图片描述
    TCP报文由首部和数据两部分组成。首部一般由20-60字节(Byte)构成,长度可变。其中前20B格式固定,后40B为可选。
    因为,TCP报文还得传给下层网络层,封装成IP包,而一个IP包最大长度为65535,同时IP包首部也包含最少20B,所以一个IP包或TCP包可以包含的数据部分最大长度为65535-20-20=65495B。

    TCP报文中数据部分是可选的,即TCP报文可以不包含数据(同理IP包也可以不包含数据)。不含数据的TCP报文通常是一些确认和控制信息类的报文,如TCP建立连接时的三次握手和TCP终止时的四次挥手等。

    1、源端口号(Source Port)
    16位的源端口字段包含初始化通信的端口号。源端口和IP地址的作用是标识报文的返回地址。

    2、目的端口号(Destination Port)
     16位的目的端口字段定义传输的目的。这个端口指明接收方计算机上的应用程序接口。

    3、序列号(Sequence Number)
    该字段用来标识TCP源端设备向目的端设备发送的字节流,它表示在这个报文段中的第几个数据字节。序列号是一个32位的数。

    4、确认号(Acknowledge Number)
      TCP使用32位的确认号字段标识期望收到的下一个段的第一个字节,并声明此前的所有数据已经正确无误地收到,因此,确认号应该是上次已成功收到的数据字节序列号加1。收到确认号的源计算机会知道特定的段已经被收到。确认号的字段只在ACK标志被设置时才有效。
    5、首部长度
    长度为4位,用于表示TCP报文首部的长度。用4位(bit)表示,十进制值就是[0,15],一个TCP报文前20个字节是必有的,后40个字节根据情况可能有可能没有。如果TCP报文首部是20个字节,则该位应是20/4=5。
    6、保留位(Reserved)
    长度为6位,必须是0,它是为将来定义新用途保留的。
    7、标志(Code Bits)
    长度为6位,在TCP报文中不管是握手还是挥手还是传数据等,这6位标志都很重要。6位从左到右依次为:
    1.
    • URG:紧急标志位,说明紧急指针有效;
    • ACK:确认标志位,多数情况下空,说明确认序号有效; 取1时表示应答字段有效,也即TCP应答号将包含在TCP段中,为0则反之。
    • PSH:推标志位,置位时表示接收方应立即请求将报文交给应用层;
    • RST:复位标志,用于重建一个已经混乱的连接,用来复位产生错误的连接,也会用来拒绝错误和非法的数据包。
    • SYN:同步标志,该标志仅在三次握手建立TCP连接时有效
    • FIN:结束标志,表示发送端已经发送到数据末尾,数据传送完成,发送FIN标志位的TCP段,连接将被断开。
    8、窗口大小(Window Size)
    长度为16位,TCP流量控制由连接的每一端通过声明的窗口大小来提供。
    9、检验和(Checksum)
    长度为16位,该字段覆盖整个TCP报文端,是个强制性的字段,是由发送端计算和存储,到接收端后,由接收端进行验证。
    10、紧急指针(Urgent Pointer)
    长度为16位,指向数据中优先部分的最后一个字节,通知接收方紧急数据的长度,该字段在URG标志置位时有效。
    11、选项(Options)
    长度为0-40B(字节),必须以4B为单位变化,必要时可以填充0。通常包含:最长报文大小(MaximumSegment Size,MSS)、窗口扩大选项、时间戳选项、选择性确认(Selective ACKnowlegement,SACK)等。
    12、数据
    可选报文段数据部分。

    三、UDP报头

    在这里插入图片描述

    UDP数据报由首部和数据两部分组成,其中首部只有8B(字节)。
    1、源端口号(Source Port)
    长度为16位,指明发送数据的进程。
    2、目的端口号(Destination Port)
    长度为16位,指明目的主机接收数据的进程。
    3、长度
    长度为16位,该字段值为报头和数据两部分的总字节数。
    4、检验和(Checksum)
    长度为16位,UDP检验和作用于UDP报头和UDP数据的所有位。由发送端计算和存储,由接收端校验。
    5、数据

    展开全文
  • ip报头,tcp报头,udp报头解析

    万次阅读 2016-07-24 17:31:43
    ip报头结构 版本号(Version):标明了IP 协议的版本号,目前的协议版本号为4。下一代IP 协议的版本号为6。 ●报文长度:指 IP 包头部长度,占4 位。 ●8 位的服务类型:包括一个3 位的优先权字段(COS...
  • 一、IP包格式 ...IP数据包是一种可变长分组,它由首部和数据负载两部分组成。首部长度一般为20-60字节...长度为16位,UDP检验和作用于UDP报头和UDP数据的所有位。由发送端计算和存储,由接收端校验。 5、数据
  • udp报头格式及其结构体

    千次阅读 2015-08-19 16:14:34
    1 用户数据报报头结构 UDP使用端口号来标识用户进程 源端口号:发送端端口号(16位) 目的端口号:接收端端口号(16位) 用户数据报长度:包括报头和用户数据在内的总字节数。(16位) 校验和:对报头和用户数据...
  • tcp/udp报头

    千次阅读 2016-02-19 10:40:46
    TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应的协议,如下图 ...所谓的协议就是双方进行数据传输的一种格式。...在这里只对IP、TCP、UDP协议头做一个分析。
  • TCP,UDP报头详解

    万次阅读 多人点赞 2018-11-29 20:21:54
    TCP报头 (1)源端口和目的端口 各占2个字节,分别写入源端口号和目的端口号,TCP的分用功能是通过端口实现的。 (2)序号 占4个字节。序号范围是[0,2^32-1],共2^32(即4282967296)个序号,序号增加到2^32-1后...
  • TCP,UDP报头格式

    2018-06-21 16:19:42
    TCP报头格式如上所示源端口:16位,指定报文的来源目的端口:16位,指定报文传给哪个上层协议或者应用程序。序号:32位,seq,发送的第一个报文序号初始化为随机值(ISN),后序的序号为ISN加上报文第一个字节在整个...
  • 1、UDP 报头 注意:  数据包长度包括首部在内的UDP报文长度。  校验值:头部和数据部分都校验。 2、TCP和UDP比较 (1)UDP控制信息很少,最多只有8个字节,而TCP最多有20个字节,所以UDP的传输速度较快。 (2...
  • ip、tcp、udp 报头结构体分析

    千次阅读 2014-03-20 12:40:24
    数据被冠以源、目标端口号等UDP报头字段后直接发往目的主机。这时,每个数据段的可靠性依靠上层协议来保证。在传送数据较少、较小的情况下,UDP比TCP更加高效。    如图2所示,是UDP头部结构(RFC 793、1323)...
  • TCP与UDP的区别

    2017-08-15 11:25:39
    详细讲解TCP和UDP
  • 转自:  ... 一、IP包格式 ... 长度为16位,UDP检验和作用于UDP报头和UDP数据的所有位。由发送端计算和存储,由接收端校验。 5、数据 转载于:https://www.cnblogs.com/HpeMephisto/p/11317686.html
  • 各种协议报头解析(以太网,IP,TCP,UDP报头)   本篇我们将介绍各种协议的报头解析。其中包括以太网数据报头,IP数据报头,TCP数据报头,UDP数据报头。 工具/原料 wireshark抓包工具 方法/步骤 1 ...
  • UDP 头部 源端口号: 发送方端口号 目的端口号: 接收方端口号 长度: UDP用户数据报的长度, 最小值是8( 仅有首部) 校验和: 检测UDP用户数据报在传输中是否有错, 有错就丢弃 // /usr/include/netinet/udp.h /*...
  • TCP与UDP的对比及其报头信息的解析

    千次阅读 2019-01-23 01:07:45
    TCP与UDP的对比及其报头信息的解析 我们先来看看TCP与UDP对于数据交互时的区别: TCP:面向连接的 可靠的 字节流服务 字节流服务: 发送方send数据的次数与接收方recv的次数没有必然联系 发送缓冲区中的...
  • TCP UDP IP 报头

    千次阅读 2017-07-15 21:14:29
    数据被冠以源、目标端口号等UDP报头字段后直接发往目的主机。这时,每个数据段的可靠性依靠上层协议来保证。在传送数据较少、较小的情况下,UDP比TCP更加高效。    如图2-6所示,是UDP头部结构(RFC 793、...
  • UDP协议3.1 UDP报头UDP怎么将报头与有效载荷分离?UDP怎么确定将有效载荷交给上层的谁?3.2 UDP的特点3.3 UDP缓冲区 1.端口号 端口号(port): 在网络技术中,端口包括逻辑端口和物理端口两种类型。 物理端口指的是...
  • UDP报头由4个域组成,其中每个域各占用2个字节,具体包括源端口号、目标端口号、数据包长度、校验值。 以下将对UDP数据报格式进行简要介绍,具体内容请参照RFC 768 。 端口号 UDP协议使用端口号为不同的应用保留其...
  • UDP十六进制数据传输

    2017-11-10 13:37:57
    if chkHexReceive.Checked then begin strLength := length(ss); for i := 1 to strlength do begin byteTemp := byte((ss[i])); hexOffset := (inttohex(byteTemp, 2)); //肮奻珨曆硒俴眈肮腔髡夔˙ ...
  • 如果你说你知道TCP的三次握手和四次挥手,那TCP和UDP报头你知道吗?TCP的确认机制和滑动窗口呢? 不知道也没关系,这些下面都会讲到的! PS:文章最后有惊喜~ TCP和UDP报头 TCP报文头部: ...
  • 一、TCP报头 TCP报文段的报头有10个必需的字段和1个可选字段。报头至少为20字节。报头后面的数据是可选项。 1、源端口号(16位) 标识发送报文的计算机端口或进程。一个TCP报文段必须包括源端口号,使目的主机...
  • 1、TCP报头段 32位序号:Seq(Sequence Number),第一个报文段的序号值为系统生成的随机值,后续的报文段的序号都是生成的随机值+此报文段携带数据的第一个字节在整个字节流中偏移量。来标识从计算机A到计算机B...
  • 一 建立连接tcp udp 报头格式里面 tcp有着 SYN ACK FIN的标记位 ,这些标记位用于建立 释放连接使用。SYN=1 表示发送方想要建立一个连接 ACK=1 的时候确认序号才有效。FIN=1 表示发送方想要停止发送数据,想要断开...
  • 根据这个字段的协议号,就可以识别IP传输的数据是TCP的内容还是UDP的内容。 TCP/IP的大多数协议都是以客户端/服务器端的形式运行,客户端类似于客户的意思,是请求的发起端,服务器端则是表示提供服务的意思,是...
  • 自定制报头 1.recv的工作原理 源码解释: Receive up to buffersize bytes from the socket. 接收来自socket缓冲区的字节数据, For the optional flags argument, see the Unix manual. 对于这些设置的参数,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,300
精华内容 9,720
关键字:

udp报头