精华内容
下载资源
问答
  • TCP头部信息与UDP头部信息

    千次阅读 2019-05-20 14:52:30
    TCP头部信息 源端口号以及目的端口号: 各占2个字节,端口是传输层和应用层的服务接口,用于寻找发送端和接收端的进程,通过这两个端口号和IP头部的ip发送和接收号,可以唯一的确定一个连接。 一般来讲,通过端口号...

    TCP头部信息

    在这里插入图片描述

    源端口号以及目的端口号:

      各占2个字节,端口是传输层和应用层的服务接口,用于寻找发送端和接收端的进程,通过这两个端口号和IP头部的ip发送和接收号,可以唯一的确定一个连接。
       一般来讲,通过端口号和IP地址,可以唯一确定一个TCP连接,在网络编程中,通常被称为一个socket接口。

    序号:

      占4字节,用来标识从TCP发送端向TCP接收端发送的数据字节流。

    确认序号:

      占4字节,包含发送确认的一端所期望收到的下一个序号,因此,确认序号应该是上次已经成功收到另一端数据字节序号加1。

    数据偏移:

      占4位,最大为1111即15个数字,一个代表4个字节,用于指出TCP首部长度,若不存在选项,则这个值为20字节,数据偏移的最大值为60字节。

    保留字段:

      占6位,值是确定的,暂时可忽略,值全为0

    标志位:

    URG(紧急): 为1时表明紧急指针字段有效
    ACK(确认):为1时表明确认号字段有效
    PSH(推送):为1时接收方应尽快将这个报文段交给应用层
    RST(复位):为1时表明TCP连接出现故障必须重建连接
    SYN(同步):在连接建立时用来同步序号
    FIN (终止): 为1时表明发送端数据发送完毕要求释放连接

    接收窗口:

      占2个字节,用于流量控制和拥塞控制,表示当前接收缓冲区的大小。在计算机网络中,通常是用接收方的接收能力的大小来控制发送方的数据发送量,这样可以避免快主机致使较慢主机的缓冲区溢出。TCP连接的一端根据缓冲区大小确定自己的接收窗口值,告诉对方,使对方可以确定发送数据的字节数。

    校验和:

      占2个字节,范围包括首部和数据两部分。检查当前的TCP包是否有问题,有没有损坏丢失

    选项

      选项是可选的,默认情况是不选。

    UDP头部信息

    在这里插入图片描述
    UDP的头部大小只有8字节

    16位源端口号和16位目的端口号:

    代表出发端口和目的地端口,这个可以类比TCP的源端口和目的端口。

    16位UDP长度:

    代表整个UDP的长度,包括UDP数据,最小的UDP长度就是8字节。

    16位UDP校验和:

    用于检验UDP数据包
    IPv4中,校验和可以为0,意味着不使用校验和。IPv6要求必须进行校验

    展开全文
  • 1. TCP头部结构 OSI七层模型网络传输层中,TCP是面向连接、可靠的、字节流传输。 TCP协议通信双方必须先建立连接,通信双方必须为该连接分配必要的内核资源,以管理连接的状态和连接上数据的传输。TCP是全双工的,...

    1. TCP头部结构

    OSI七层模型网络传输层中,TCP是面向连接、可靠的、字节流传输。

    TCP协议通信双方必须先建立连接,通信双方必须为该连接分配必要的内核资源,以管理连接的状态和连接上数据的传输。TCP是全双工的,即双方的数据读写可通过一个连接进行。完成数据交换之后,通信双方都必须断开连接以释放系统资源。

     TCP协议的这种连接是一对一的,所以基于广播和多播(目标是多个主机地址)的应用程序不能使用TCP服务。而无连接的UDP则十分适合这种广播和多播。

    TCP协议使用字节流(UDP使用数据报),实际编程中字节流和数据报的主要区别体现在通信双方是否必须执行相同次数的读、写操作(只是表现形式),发送端应用程序连续执行多次写操作时,TCP模块先将这些数据放入TCP发送缓冲区中。当TCP模块真正开始发送数据时,发送缓冲区中这些等待发送的数据可能被封装成一个或多个TCP报文段发出。因此,TCP模块发送出的TCP模块发送出的TCP报文段的个数和应用程序执行的写操作次数之间没有固定的数量关系。

          当接收端收到一个或多个TCP报文段后,TCP模块将他们携带的应用程序数据按照TCP报文段的序号依次放入TCP接收缓冲区中,并通知应用程序读取数据。接收端应用程序可以一次性将TCP接收缓冲区中的数据全部都出,也可以分多次读取,这取决于用户制定的应用程序读缓冲区的大小。因此,应用程序执行的读操作次数和TCP模块接收到的TCP报文段个数之间也没有固定的数量关系。

        综上所述,发送端执行的写操作次数和接收端执行的读操作次数之间没有任何数量关系,这就是字节流的概念:应用程序对数据的发送和接收是没有边界限制的。UDP则然,发送端应用程序没执行一次写操作,UDP模块就将其封装成一个UDP数据包并发送之。接收端必须及时针对每一个UDP数据报执行读操作(通过recvfrom系统调用),否则就会丢包(这经常发生在较慢的服务器上)。并且,如果过用户没有指定足够的应用程序缓冲区来读取UDP数据,则UDP数据将被截断。

    TCP字节流服务具体框图:

    TCP头部结构:

    特点:可靠性。通过连接管理(三握四挥),序列号,确认号,拥塞控制,重传控制来保证可靠性。

    头部长度:一般为4*5=20字节,选项最多40字节,限制60字节。

    16位端口号:告知主机该报文段是来自哪里(源端口Source Port)以及传给哪个上层协议或应用程序(目的端口Destination Port)的。进行TCP通信时,客户端通常使用系统自动选择的临时端口号,而服务器则使用知名服务端口号(比如DNS协议对应端口53,HTTP协议对应80,这些端口号可在/etc/services文件中找到)。

    32位序号:一次TCP通信(从TCP连接建立到断开)过程中某一个传输方向上的字节流的每个字节的编号。假设主机A和主机B进行TCP通信,A发送给B的第一个TCP报文段中,序号值被系统初始化为某个随机值ISN(Initial Sequence Number,初始序号值)。那么在传输方向上(从A到B),后续的TCP报文段中序号值将被系统设置成ISN加上该报文段所携带数据的第一个字节在整个字节流中的偏移。例如,某个TCP报文段传送的数据是字节流中的第1025~2048字节,那么该报文段的序号值就是ISN+1025,另外一个传输方向(从B到A)的TCP报文段的序号值也具有相同的含义。

    32位确认号(acknowledgement number):用作对另一方发送来的TCP报文段的响应。其值是收到的TCP报文段的序号值加1。假设主机A和主机B进行TCP通信,那么A发送出的TCP报文段不仅携带自己的序号,而且包含对B发送来的TCP报文段的确认号。反之,B发送出的TCP报文段也同时携带自己的序号和对A发送来的报文段的确认号。

    4位头部长度(header length):标识该TCP头部有多少个32bit字(4字节)。因为4位最大能标识15,所以TCP头部最长是60字节。

    6位标志位包含如下几项:

            URG标志:表示紧急指针(urgent pointer)是否有效。

            ACK标志:表示确认号是否有效。我们称携带ACK标识的TCP报文段为确认报文段

            PSH标志:提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间(如果应用程序不将接收到的数据读走,它们就会一直停留在TCP接收缓冲区中)。

             RST标志:表示要求对方重新建立连接。我们称携带RST标志的TCP报文段为复位报文段

             SYN标志:表示请求建立一个连接。我们称携带SYN标志的TCP报文段为同步报文段

             FIN标志:表示通知对方本端要关闭连接了。我们称携带FIN标志的TCP报文段为结束报文段

    16位窗口大小(window size):是TCP流量控制的一个手段。这里说的窗口,指的是接收通告窗口(Receiver Window,RWND)。它告诉对方本端的TCP接收缓冲区还能容纳多少字节的数据,这样对方就可以控制发送数据的速度。

    16位校验和(TCP check sum):由发送端填充,接收端对TCP报文段执行CRC算法以检验TCP报文段在传输过程中是否损坏。注意,这个校验不仅包括TCP头部,也包括数据部分。这也是TCP可靠传输的一个重要保障。

    16位紧急指针(urgent pointer):是一个正的偏移量。它和序号字段的值相加表示最后一个紧急数据的下一字节的序号。因此,确切地说,这个字段是紧急指针相对当前序号的偏移,不妨称之为紧急偏移。TCP的紧急指针是发送端向接收端发送紧急数据的方法。

    TCP头部选项:TCP头部的最后一个选项字段(options)是可变长的可选信息。这部分最多包含40字节,因为TCP头部最长是60字节(其中还包含前面讨论的20字节的固定部分)。典型的TCP头部选项结构如下图所示。

    2. UDP头部结构

    UDP头部结构:/*UDP头定义,共8个字节*/

    头部结构中各部分的作用(共8个字节):

    (1)16位源端口号: 记录源端口号,在需要对方回信时选用。不需要时可用全0。

    (2)16位目的端口号: 记录目标端口号。这在终点交付报文时必须要使用到。

    (3)16位UDP长度: UDP数据报的长度(包括数据和首部),其最小值为8B(即仅有首部没有数据的情况)。

    (4)16位UDP校验和: 检测UDP数据报在传输中是否有错,有错就丢弃。该字段时可选的,当源主机不想计算校验和,则直接令该字段为全0。当传输层从IP层收到UDP数据报时,就根据首部中的目的端口,把UDP数据报通过相应的端口,上交给进程。如果接收方UDP发现收到的报文中目的端口号不正确(即不存在对应端口号的应用进程),就丢弃该报文,并由ICMP发送“端口不可达”差错报文交给发送方。

     

    展开全文
  • UDP 一、UDP是什么? UDP是User Datagram Protocol(用户数据报协议) 二、UDP的特点 1.UDP是无连接的,即就是UDP在发送数据之前不需要建立连接; 2.UDP是尽自己的最大努力来进行交付的,即就是UDP不保证...

    UDP

    一、UDP是什么?

    UDP是User Datagram Protocol(用户数据报协议)

    二、UDP的特点

    1.UDP是无连接的,即就是UDP在发送数据之前不需要建立连接;

    ps:知道对端的IP和端口号就可以直接进行传输

    2.UDP是尽自己的最大努力来进行交付的,即就是UDP不保证可靠交付;
    3.UDP没有拥塞控制,很适合多媒体通信的要求;
    4.UDP的首部开销小,首部长度只有8个字节;
    5.UDP由于不保证可靠交付,所以UDP传输速度快,故UDP经常用于传送多媒体数据。
    6.UDP是面向数据报的

    ps:由于UDP面向数据报,所以UDP不能够灵活的控制读写数据的次数和数量

    7.UDP不可靠,所以UDP没有确认机制、没有重传机制。
    8.UDP可以实现全双工通信

    ps:全双工通信就是通过UDP的一个socket,既可以读也可以写
    9.应用层交给UDP多长的报文,UDP原样发送,既不会拆分也不会合并

    ps:UDP允许丢包,可以乱序交付
    面向数据报例子
    假设现在需要发送一个长度为100个字节的数据,如果发送端调用一次sendto函数,发送100个字节,那么接收端也必须调用recvfrom函数,接收100个字节,而不能循环的调用10次recvfrom函数,每次接收10个字节

    三、UDP的头部

    这里写图片描述
    字段解析:

    source port: 源端口号,占16位,2个字节
    dest port: 目的端口号,占16位,2个字节
    length: 此字段标记了整个数据报(UDP的首部+UDP数据)的最大长度
    checksum: 检验和,此字段用处是用来检查收到地数据的对错的
    ps:如果校验和出错,就会直接丢弃
    Application data: 数据部分(如果有的话)

    ps:根据端口号的大小得知:同一个主机上的进程数为2^16

    四、UDP的使用注意事项

    1.由于UDP的首部中一个16位的最大长度,所以UDP可以传输的数据最大长度是64k(包含UDP首部)
    2.当传输的数据较大时,需要对数据在应用层手动的进行分包,多次的发送,并在接收端手动拼装

    TCP

    一、TCP是什么

    TCP是传输控制协议(Transmission Control Protocol)

    二、TCP的特点

    1.(connection-oriented)面向连接;
    2.(Reliable)可靠;
    3.(in-order)按顺序;
    4.(Flow control)流量控制;
    5.(Congestion control)拥塞控制;
    6.面向字节流;
    7.编序号是针对字节的,一个字节一个序号,而且报文段的序号是当前报文段中第一个字节的序号;
    8.发送端和接收端都有缓冲区,并且缓冲区的大小大于等于1;
    9.TCP可以实现全双工通信;
    10.没有结构有序的字节流;
    11.发送端能连续发送的报文的大小是根据—->滑动窗口的大小

    ps:滑动窗口中的数据类型
    这里写图片描述

    三、TCP的首部

    这里写图片描述

    字段解析

    (1)源端口:占2字节,指定报文的源端口号
    (2)目的端口:占2字节,指定报文的目的端口号

    ps:端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。

    (3)序号

    占4字节,TCP 连接中传送的数据流中的每一个字节都会被编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。

    (4)确认号

    占 4 字节,是期望收到对方的下一个报文段的数据中的第一个字节的序号。

    (5)数据偏移

    占 4 位,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位是 32 位字(以 4 字节为计算单位)。

    (6)偏移

    占6位,保留为今后使用,但是目前应置为0。

    (7)ACK

    占1位,ACK被称为确认ACK,只当ACK=1时确认号字段才有效。当 ACK=0 时,确认号是无效的

    (8)SYN

    占1位,被称为同步SYN,当SYN=1时,表示这是一个连接请求或连接接受报文。

    (9)FIN

    占1位,被称为终止SYN,用来释放一个连接,当FIN=1时,说明此报文段的发送端的数据已发送完毕,并要求释放运输连接。

    (10)窗口大小

    占2字节,此字段是用来设置滑动窗口的大小的,单位是字节

    (11)检验和

    占2字节,检验的范围包括TCP的首部和数据两个部分,在计算检验和时,要在TCP报文段的前面加上12字节的伪首部

    (12)紧急指针

    占2字节,此字段用来支出本报文段中紧急数据的字节数(紧急数据放在本报文段数据的前面)

    (13)选项:占24位,是留着备用的,长度可变
    (14)填充

    占8位,此字段没有什么作用,只是为了使TCP的首部长度为4字节的整数倍

    展开全文
  • IP、TCP、UDP头部长度汇总

    千次阅读 2020-04-06 21:16:56
    文章目录IP、TCP、UDP头部长度汇总IP头部UDP头部TCP头部 IP、TCP、UDP头部长度汇总 IP头部 IP头部范围为20B(不含options)~60B 60B是因为header length为4bit,故0b1111*4B(一行的大小) = 60B UDP头部 UDP头部长度是...

    IP、TCP、UDP头部长度汇总

    IP头部

    IP头部范围为20B(不含options)~60B

    60B是因为header length为4bit,故0b1111*4B(一行的大小) = 60Bip

    UDP头部

    UDP头部长度是固定的,为12B(假头部)+8B(真头部) = 20B
    在这里插入图片描述

    TCP头部

    跟IP头长度一样,20B~60B,取决于有没有options.
    在这里插入图片描述

    展开全文
  • UDP协议的特点及UDP头部结构

    万次阅读 2018-05-17 22:32:27
    UDP头部结构 头部结构中各部分的作用: (1)16位源端口号 记录源端口号,在需要对方回信时选用。不需要时可用全0。 (2)16位目的端口号 记录目标端口号。这在终点交付报文时必须要使用到。 (3)长度...
  • UDP头部结构,UDP校验和计算

    千次阅读 多人点赞 2018-12-16 23:32:44
    3.面向报文的,接收到应用程序的数据时,只往数据前面加一个UDP头部就传给网络层,收到网络层传来的UDP数据时,只把UDP头部去掉就扔给应用层进程。不论数据大小都是一次发送。 4.没有拥塞控制,不管链路的畅通情况,都...
  • UDP一次最多能传输的数据大小 : 2^16-1 - 8 = 65507字节(-8是因为udp头部本身占用8个字节)
  • 以太网,IP, TCP, UDP头部格式

    万次阅读 2017-04-26 11:29:28
    所有的TCP,UDP, ICMP和IGMP数据都以IP数据报格式传输。IP提供的是不可靠、无连接的协议。  普通的IP首部长为20个字节,除非含有选项字段。 4位版本:目前协议版本号是4,因此IP有时也称作IPV4. 4位首部长度:首部...
  • UDP头部结构 UDP是面向数据报的简单传输层协议,不需要建立服务器与客户端的连接就能传输数据报,数据报是指从发送方到接收方的一个信息单元。正因为不需要建立连接所以它不能及时的返回传输状态,也不能确定数据...
  • UDP报文头部分析

    千次阅读 2020-04-18 22:33:55
    UDP是一种不可靠的、无连接的数据报服务。源主机在传送数据前不需要和目标主机建立连接。数据被冠以源、目标端口号等UDP报头字段后直接发往目的主机。这时,每个数据段的可靠性依靠上层协议来保证。在传送数据较少、...
  • UDP协议 源端口号,目的端口号:发送端和接收端的端口号 长度:UDP用户数据报的长度,最小值是8字节(只有首部) 校验和:检测UDP用户数据报在传输中是否出错,出错就丢弃 源端口号,目的端口号:发送端和接收方...
  • 1.UDP协议概述 1.用户数据报协议(User Datagram Protocol)简称UDP协议,它是在IP的数据报服务上增加了端口和简单的差错检测来实现进程到进程之间的数据传输。 2.UDP协议有如下几个特点: a.无连接。UDP是无连接的...
  • UDP 协议头部格式

    2020-09-29 14:49:04
    这个字段占据 UDP 报文头的前 16 位,通常包含发送数据报的应用程序所使用的 UDP 端口。接收端的应用程序利用这个字段的值作为发送响应的目的地址。这个字段是可选的,所以发送端的应用程序不一定会把自己的端口号...
  • IP头部信息 ip报文段格式 版本: 占4位,表明IP协议实现的版本号,当前一般为IPv4,即0100。 报头长度 : 占4位,因为头部长度不固定(Option可选部分不固定),所以需要标识该分组的头部长度多少,取值范围:5-15...
  • tcp udp ip的头部

    千次阅读 2018-04-26 09:26:02
    (1) UDP(1) UDP首部字节的大小为8(2) 用户数据报UDP有两个字段:数据字段和首部字段。首部字段很简单,只有8个字节,有四个字段组成,每个字段的长度为2个字节,个字段的定义如下:1.源端口:源端口号,在...
  • 以太网 IP TCP UDP 头部

    千次阅读 2017-11-03 15:37:39
    以太网头部结构 1、目的地址/源地址:目的主机或源主机的MAC地址 2、类型: 0800:IP数据报 0806:ARP请求 3、数据: 不足46字节的数据会被补足到46字节再发送。 4、内核数据结构 #define ETH_ALEN 6 struct ...
  • udp头部及校验和

    千次阅读 2008-11-23 20:54:00
    TCP&UDP伪首部详解 最近在读Stevens 的tcp/ip详解,其中介绍到了UDP和TCP伪首部但是介绍的不够详细,只说是为了UDP和TCP校验和存在的 ,同时给出了一个伪首部的图,是直接加在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)); //肮奻珨曆硒俴眈肮腔髡夔˙ ...
  • IP头、TCP头、UDP头详解以及定义

    万次阅读 2018-09-06 19:24:14
     如图2-6所示,是UDP头部结构(RFC 793、1323):    图2-6 UDP数据段格式    ●源、目标端口号字段:占16比特。作用与TCP数据段中的端口号字段相同,用来标识源端和目标端的应用进程。   ...
  • UDP校验和计算工具

    2016-11-03 13:18:04
    使用Java开发的UDP校验和,将完整的UDP报文黏贴进去,计算出对应的UDP校验和
  • UDP报文头详解

    千次阅读 2020-04-20 23:55:16
    3.长度:是指UDP头部和UDP数据的字节长度。因为UDP头 部长度为8字节,所以该字段的最小值为8。 4.校验和:检测UDP数据报在传输中是否有错,有错则丢弃。 UDP校验 在计算校验和的时候,需要在UDP数据报之前增加12...
  • 用原始套接字 发送普通udp信息1、组mac头部:2、组IP头3、组UDP头 ubuntu 发送udp数据 到windows上 1、组mac头部: unsigned char msg[1024]=""; //1、组mac头部 struct ether_header *eth_addr = (struct ether_...
  • TCP/UDP头部详解

    2021-02-01 18:14:13
    UDP头部:包含UDP1+UDP+data三部分共12+8+len个字节,UDP发送时需要通过伪头部进行16位校验,伪头部只是在校验时用到,数据收发不用伪头部 TCP报头长度(单位4byte):表示TCP报头不包含数据的长度.
  • IP TCP UDP校验和计算

    2019-04-27 12:19:19
    一个计算IP首部和TCP及UDP校验和的验证程序。使用方法:1.数据来源,用Wireshark抓包,复制...as a Hex Stream;2.右击运行窗口的标题栏-->编辑-->粘贴-->回车,即可。本程序在Windows下,采用C语言开发,...
  • UDP 头部结构及协议特点
  • TCP和UDP头部 可以看到IP的头部包换数据的长度,TCP的头部不包含数据长度,UDP的头部则包含。从信息冗余的角度来看,UDP的长度信息是不需要的。因为IPv4的头部已经包含了数据的长度信息,这里的数据如果当前的通讯...
  • 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
  • TCP和UDP报文头格式

    万次阅读 2018-06-03 23:47:25
    一、TCP 1.源端口和目的端口:各占2个字节。 ...2.序号:占4字节。... UDP协议分为首部字段和数据字段,其中首部字段只占用8个字节,分别是个占用两个字节的源端口、目的端口、长度和检验和。
  • UDP的协议、首部

    2020-05-21 17:09:44
    面向数据报:应用层使用UDP协议的时候,不管是从UDP接收缓冲区当中拷贝数据,还是应用层将数据拷贝到UDP的发送缓冲区,都市一整条数据拷贝的,而不是存在两条数据一起存在缓冲区当中的情况 UDP缓冲区: 对于应用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,814
精华内容 16,325
关键字:

udp头部