精华内容
参与话题
问答
  • UDP一次最多能传输的数据大小 : 2^16-1 - 8 = 65507字节(-8是因为udp头部本身占用8个字节)

    b

    UDP一次最多能传输的数据大小 : 2^16-1 - 8 = 65507字节(-8是因为udp头部本身占用8个字节)

    展开全文
  • UDP头部结构,UDP校验和计算

    千次阅读 2018-12-16 23:32:44
    3.面向报文的,接收到应用程序的数据时,只往数据前面加一个UDP头部就传给网络层,收到网络层传来的UDP数据时,只把UDP头部去掉就扔给应用层进程。不论数据大小都是一次发送。 4.没有拥塞控制,不管链路的畅通情况,都...

    Udp:用户数据报协议
    特点:
    1.无连接,传输数据时不需要建立链接
    2.尽最大努力传输,不可靠
    3.面向报文的,接收到应用程序的数据时,只往数据前面加一个UDP头部就传给网络层,收到网络层传来的UDP数据时,只把UDP头部去掉就扔给应用层进程。不论数据大小都是一次发送。
    4.没有拥塞控制,不管链路的畅通情况,都以不变的速率发送报文。
    5.UDP支持一对一,一对多,多对一,多对多的交互通信
    6.UDP的头部简单,占用资源少(8字节)
    UDP头部结构在这里插入图片描述
    源端口 :源端口号。在需要对方回信时用,不需要时可用全0.
    目的端口: 目的端口号。在终点交付报文时使用。
    长度: UDP数据报长度。最小值为8字节(只有首部)
    校验和:检测UDP数据报文在传输过程中是否有错,错误就丢弃。
    伪首部:这个不属于UDP首部,既不向下传递,也不向上递交,仅仅是用来求校验和的。伪首部的第3字节全为0;第4字段是IP首部中的协议字段的值(协议号)。第5字段是UDP用户数据报的长度。因此,这样的校验和既检查了UDP用户数据报的源端口和目的端口以及UDP用户数据报的数据部分,又检查了IP数据报的源IP地址和目的地址。
    UDP校验和计算方法:
    UDP的校验是首部和数据一块校验的,而IP校验只校验IP头部

    发送方:
    1.看数据报是不是偶数字节数,若不是添加一个全0的字节填充(该字节不发送)。
    2.将校验和字段置为全0
    3.将伪首部以及UDP用户数据报看成由许多16位的字串起来的。
    4.进行二进制反码求和,结果填入校验和字段发送。
    接收方:
    将接收到的UDP报文连同伪首部以及可能的填充全0字节一起,按二进制反码求这些16位字的和。无差错时其结果为全1.否则出现差错丢弃。

    这里我们假定一个15字节的数据报。
    在这里插入图片描述
    10011001 00010011 --153.19
    00001000 01101000 --8.104
    10101011 00000011 --171.3
    00001110 00001011 --14.11
    00000000 00010001–0和17
    00000000 00001111–15
    00000100 00111111–1087
    00000000 00001101–13
    00000000 00001111–15
    00000000 00000000–全0(校验和)
    01010100 01000101–数据
    01010011 01010100–数据
    01001001 01001110–数据
    01000111 00000000–数据和填充项
    ——————————————————
    二进制求和??????
    在这里插入图片描述

    所以和为10010110 11101101—>取反01101001 00010010就是校验和。

    展开全文
  • Ethernet IP TCP UDP 协议头部格式及大小

    千次阅读 2014-11-25 07:18:33
    http://www.cnblogs.com/luxiaoxun/archive/2012/08/08/2628627.html The Ethernet header structure is shown in the illustration below: ...以太网头部14 bytes Destination Source Len

    http://www.cnblogs.com/luxiaoxun/archive/2012/08/08/2628627.html


    The Ethernet header structure is shown in the illustration below:

    以太网头部14 bytes

    Destination
    Source
    Len
    Data unit + pad
    FCS
    (6 bytes)
    (6 bytes)
    (2)
    (46-1500 bytes)
    (4 bytes)
    Ethernet header structure

    The IP header structure is as follows:

    IP头部20 bytes

    4
    8
    16
    32 bits
    Ver.
    IHL
    Type of service
    Total length
    Identification
    Flags
    Fragment offset
    Time to live
    Protocol
    Header checksum
    Source address
    Destination address
    Option + Padding
    Data
    IP header structure

    The TCP header structure is as follows:

    TCP头部20 bytes

    16
    32 bits
    Source port
    Destination port
    Sequence number
    Acknowledgement number
    Offset
    Resrvd
    U
    A
    P
    R
    S
    F
    Window
    Checksum
    Urgent pointer
    Option + Padding
    Data
    TCP header structure

    The UDP header structure is shown as follows:

    UDP头部8 bytes

    16
    32 bits
    Source port
    Destination port
    Length
    Checksum

    Data
    UDP header structure

    一些协议头部的定义:

    复制代码
    struct ip 
    {
    #if BYTE_ORDER == LITTLE_ENDIAN
        u_char    ip_hl:4,        /* header length */
                  ip_v:4;            /* version */
    #endif
    #if BYTE_ORDER == BIG_ENDIAN
        u_char    ip_v:4,            /* version */
                  ip_hl:4;        /* header length */
    #endif
        u_char    ip_tos;            /* type of service */
        short    ip_len;            /* total length */
        u_short    ip_id;            /* identification */
        short    ip_off;            /* fragment offset field */
        u_char    ip_ttl;            /* time to live */
        u_char    ip_p;            /* protocol */
        u_short    ip_sum;            /* checksum */
        struct    in_addr ip_src,ip_dst;    /* source and dest address */
    };
    
    struct udphdr 
    {
        u_short    uh_sport;        /* source port */
        u_short    uh_dport;        /* destination port */
        short    uh_ulen;        /* udp length */
        u_short    uh_sum;            /* udp checksum */
    };
    
    struct tcphdr 
    {
        u_short    th_sport;        /* source port */
        u_short    th_dport;        /* destination port */
        tcp_seq    th_seq;            /* sequence number */
        tcp_seq    th_ack;            /* acknowledgement number */
    #if BYTE_ORDER == LITTLE_ENDIAN
        u_char    th_x2:4,        /* (unused) */
                  th_off:4;        /* data offset */
    #endif
    #if BYTE_ORDER == BIG_ENDIAN
        u_char    th_off:4,        /* data offset */
                  th_x2:4;        /* (unused) */
    #endif
        u_char    th_flags;
        u_short    th_win;            /* window */
        u_short    th_sum;            /* checksum */
        u_short    th_urp;            /* urgent pointer */
    };
    复制代码

    更多网络协议格式细节参考:http://www.protocols.com/pbook/

     


    展开全文
  • UDP头部结构 UDP是面向数据报的简单传输层协议,不需要建立服务器与客户端的连接就能传输数据报,数据报是指从发送方到接收方的一个信息单元。正因为不需要建立连接所以它不能及时的返回传输状态,也不能确定数据...

    UDP头部结构

    UDP是面向数据报的简单传输层协议,不需要建立服务器与客户端的连接就能传输数据报,数据报是指从发送方到接收方的一个信息单元。正因为不需要建立连接所以它不能及时的返回传输状态,也不能确定数据是否到达发送方。
    UDP头部的结构:

    • 16位源端口号:标识发送方应用程序
    • 16位目的端口号:标识接收方应用程序
    • 16位UDP数据报长度:表示发送方传输数据报的大小
    • 16位检验和:校验数据报是否完整,不完整是重发数据
      UDP首部共为8字节 (16+16+16+16)/ 8 = 8字节
      UDP头部结构图如下:
      Linux网络编程-TCP头部与UDP头部结构对比

    TCP头部结构

    TCP是面向连接的协议,因此数据传输之前必须先建立连接,通过连接来传输数据,当数据传输完成后断开连接,因此TCP相比UDP可以保证数据的可靠稳定。
    TCP头部的结构:

    • 16位源端口号:标识发送方应用程序
    • 16位目的端口号:标识接收方应用程序
    • 32位序列号:数据按照序列号传输,如果接收方接收后的数据序列号出现错误,可以根据此序列号进行重排
    • 32位确定序列号:接收方接收到信号后,对发送方进行确认,此确定号为接收到的序列号+1
    • 4位头部长度:标识TCP头部有多少个4字节,最大为1111(15)
    • 6位保留长度:暂时没有标明用途
    • 6位标志:
      URG:紧急指针,让中间层尽快处理数据
      ACK:确定信号,让确认序列号有效
      PSH:push操作,数据到达接收方后立即送入应用程序,不进入缓存区
      RST:复位连接,用来复位错误的连接
      SYN:同步信号,在建立连接的三次握手中会用到
      FIN:发送方数据发送完成,在断开连接的四次挥手中会用到
    • 16位窗口大小:是接收方用于告诉发送方TCP缓冲区还能容纳多少字节
    • 16位检验和:检验数据在发送过程中是否损坏
    • 16位紧急指针:当URG为1时,表示此序列号开始到此序列号+紧急指针之间的数据为紧急数据
      TCP头部通常占20个字节,也是必有字节(可能TCP头部超过20字节但以上自己必有)(16+16+32+32+4+6+1+1+1+1+1+1+16+16+16)/ 8 = 20字节
      TCP头部结构如下图:
      Linux网络编程-TCP头部与UDP头部结构对比

    UDP与TCP对比

    如果需要在应用程序使用UDP时,那么进程可以创建一个Internet域内的SOCK_DGRAM类型的套接字。每次用此套接字发送数据时必须制定目的地址的IP地址和端口号。用此套接字介绍数据时,接收的数据保中包含源ipd地址和端口号。
    UDP不能保证数据的可靠传输,如果想要实现这个功能,则必须在应用程序中实现
    UDP发送的是UDP数据报,因此每个数据报都有一个长度值。可以从UDP的头部结构中能看出。而TCP是字节协议,没有长度限制
    UDP没有传输过程中的流量控制,传输数据只根据发送发的速率,不管接收方的缓冲区大小。
    由于UDP不面向连接,因此同一个套接字可以向不同目标发送数据报,同样,一个套接字也可以介绍不同发送方的数据

    TCP与UDP对比

    与UDP相比,TCP采用了确定机制,超时重传机制和流量控制机制

    确定机制:TCP接收方接收到数据后需要向发送发反馈确认信息。如果发送方没有收到确认的信息则重新发送数据。反馈信息的TCP头部用到了32位确认序列号和ACK。TCP的确认信号是对已接收的连续序号最后一个字节确认,其值为希望下次接收的序列号。例如接收到序列号为100,大小100的数据,则发送的确定序列号为201,在比如201在发送时候出错了,此时的确认信号仍然为201,则需要再次发送。
    超时重传机制:TCP发送方在发送数据过后并没有把数据删除,仍然把数据保留在发送缓冲区,直到接收到确认后才删除。如果在一段时间内没有收到确认信号,则重新发送一个数据包,如此循环,直到收到确认,或者到达一定限制后,放弃发送数据。返回对方不可达。
    流量控制机制:TCP接收方能够告诉发送发自己还能接收多大的数据量,称为通告窗口。窗口可以动态标识还能接收多少空间的数据,从而保证不会溢出。16位的窗口大小就是用来表示接收方TCP缓冲区还有多少空间。

    转载于:https://blog.51cto.com/13219187/2049207

    展开全文
  • tcp头部格式如下图所示: 1.源端口号,16位,发送方的端口号。 2.目标端口号,16位,发送方的目标端口号。...3. 32为序列号,sequence number,保证网络传输数据的顺序性。...5. 头部大小,4位,偏移...
  • 文章目录IP、TCP、UDP头部长度汇总IP头部UDP头部TCP头部 IP、TCP、UDP头部长度汇总 IP头部 IP头部范围为20B(不含options)~60B 60B是因为header length为4bit,故0b1111*4B(一行的大小) = 60B UDP头部 UDP头部长度是...
  • tcp udp ip的头部

    千次阅读 2018-04-26 09:26:02
    (1) UDP(1) UDP首部字节的大小为8(2) 用户数据报UDP有两个字段:数据字段和首部字段。首部字段很简单,只有8个字节,有四个字段组成,每个字段的长度为2个字节,个字段的定义如下:1.源端口:源端口号,在...
  • 在网络中传输数据,数据包的大小依赖于链路层和物理层的传输能力,一般传输数据的过程是TCP或者UDP封装数据在数据的头尾加上TCP/UDP头部,之后到达IP网络层,同样在数据的头部加上IP头部,继续链路层对数据加上帧...
  • IP ICMP TCP UDP 校验和

    千次阅读 2013-01-20 14:43:25
    首先,IP、ICMP、UDP和TCP报文头部都有校验和字段,大小都是16bit,算法也基本一样:  在发送数据时,为了计算数据包的校验和。应该按如下步骤:  (1)把校验和字段置为0;  (2)把需校验的数据看成以...
  • TCP是一种可靠的、面向连接的字节流服务,头部定义如下。 /*TCP头定义,共20个字节*/ typedef struct _TCP_HEADER { short m_sSourPort; // 源端口号16bit short m_sDestPort; // 目的端口号16bit unsigned ...
  • linux下的UDP发包器

    热门讨论 2011-01-07 16:46:40
    UDP传输实体将用户数据加上UDP报头,形成UDP数据包,在UDP数据包上增加IP头部,形成IP数据包。 为了能够使该程序能在单位时间内发送大量的数据包,采用了并发式的服务器,用多个线程同时发送大小指定的数据包。 该...
  • UDP协议

    2018-01-26 18:41:09
    1、UDP用户数据报协议 ...UDP长度(lenght):当UDP封装在IPv6中时,如果使用巨型负载,则UDP数据报的大小可以超过65535个字 节,UDP头中的长度位数只有2个字节不够时会被设置为0,虚拟头部的长度为32位
  • UDP数据报

    2019-11-13 01:23:09
    组成 UDP 报文头部+数据 大小为8字节 UDP 报文头部 组成: 16位的源端口号 16位的目的端口号 16位的报文长度 16位的校验和 端口号就不再说明 了 报文长度 指:总报文的长度 以字节位单位 校验和:检验UDP是否在传输...
  • Java实现UDP通信

    2020-07-29 14:38:50
    UDP在IP数据报的头部仅仅加入了复用和数据校验(字段)。 虽然UDP被认为是不可靠的,但是可以通过应用程序来负责传输的可靠性,如FTP等都是用了UDP协议。另外一个特点是UDP是基于数据包,也就是说数据会被打成包...
  • TCP,UDP报文详解

    千次阅读 2017-11-08 20:08:33
    TCP报文介绍 TCP是一种可靠的、面向连接的字节流服务。  源主机在传送数据前需要先和目标主机建立连接。然后,在此连接上,被编号的数据...除非出现选项,头部字段以32位为单位给出头部大小(最小值是5)。  源端口
  • linux udp bind函数说明

    千次阅读 2012-04-16 22:43:54
    1. IP包头部20个字节,其中有包含源IP地址与目标IP地址,报文长度用2个字节表示,说明最大IP大小为65535,如下图所示: 0 4 8 12 16 19 24 31 版本 首部长度 服务类型 长度 ...
  • TCP和 UDP的区别

    2017-07-14 16:26:00
    TCP ...所以我们可以推断出,在TCP报文段头部必有: 源端口号、目的端口号 标志位(SYN,ACK等) 序列号和确认序列号(按序收发) 校验位 窗口大小(流量控制) UDP  UDP则提供不可...
  • TCP UDP的主要区别

    2020-05-17 19:18:38
    TCP UDP的主要区别 1、TCP需要建立连接,UDP是无连接的。 2、TCP提供可靠的服务,UDP会丢包。...5、UDP头部开销小 6、UDP支持一对一,一对多,多对一,多对多通信,而每条TCP连接只有两个端点。 ...
  • tcp头部

    2019-03-15 20:49:15
    使用wireshark抓包的两个tcp头部如下,中括号表示注释,不计算大小, 有选项,无载荷 无选项,有载荷: 16位源端口号 16位说明什么? 16位表明计算机最多只有2^16 =65536个端口号。范围是0-65535。注意端口0...
  • 网络协议TCp、Udp介绍

    2020-02-28 17:32:44
    网络协议 TCP/IP网络协议栈模型 TCP、UDP的特点 UDP (1)面向无连接的 (2)有单播,多播,广播的功能 (3)面向报文的:发送方的UDP对应用程序交下来的报文,在...(5)头部开销小,传输数据报文时是很高效的...
  • TCP/UDP常见问题合集

    2020-05-03 10:40:32
    2.tcp面向字节流,将应用层报文看成字节流组成大小不等的数据块;udp面向报文,应用层报文并不拆分,只是添加udp首部。 3.tcp连接只能是一对一,而udp支持一对一,一对多,多对多的交互通信。 二.tcp头部报文结构? ...
  • 关于tcp和udp的缓冲区

    千次阅读 2016-10-13 10:49:34
    IPv6 数据报最大大小是65575,包括40个字节的IPv4头部MTU,这是由硬件规定的,如以太网的MTU是1500字节,IPv4要求最小MTU是68字节,IPv6要求最小MTU是576字节path MTU: 指两台主机间的路径上最小MTU分片...
  • IP报头的理解以及TCP和UDP

    千次阅读 2018-09-05 17:08:50
    2、IHL IP包的头部长度 大小为4bite 注意:整个IP头部一般为20字节 最大为60字节 (1111)*32=480bite 3、Service Type:服务类型 8bite 前3个比特(COS)表示优先级,TOS 第4个比特表示要求有更低的时延,第5个...
  • TCP\UDP\IP的基础知识

    2018-07-31 06:40:10
    IPv4 数据报最大大小是65535(16位),包括IPv4头部。IPv6 数据报最大大小是65575,包括40个字节的IPv4头部MTU,这是由硬件规定的,如以太网的MTU是1500字节,IPv4要求最小MTU是68字节,IPv6要求最小MTU是576字节...
  • 1.TCP头部 flag从左到右依次是URG,ACK,PSH,RST,SYN,FIN ACK设置为1表示有效。 PSH要求对方在接到数据后立刻请求递交给应用程序,不是缓冲。 SYN用来建立连接的过程 FIN用来释放一个连接 窗口大小:可以发送多少个...
  • IPv4 数据报最大大小是65535(16位),包括IPv4头部。 IPv6 数据报最大大小是65575,包括40个字节的IPv4头部 MTU,这是由硬件规定的,如以太网的MTU是1500字节,IPv4要求最小MTU是68字节,IPv6要求最小MTU是576...
  • //可以看到TCP报文头部是固定的,数据部分就不知道了。 1.两个端口号总和4个字节, 2.序列号4个字节 3.确认号4个字节 4.(4位首部长度+6位保留+6位报文类型) 2个字节+窗口大小两个字节 ==> 4个字节 5. 检验...
  • UDP头部大小字段占16字节,所以理论上是65535个字节大小。但是UDP如果是通过IP(大多数情况)来传送,由于UDP本身不支持分片,所以一个UDP包只能通过一个IP包来传送,一个IP包大大小理论上也是用16字节表示,这样UDP...

空空如也

1 2 3 4
收藏数 78
精华内容 31
关键字:

udp头部大小