首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux数据报文的来龙去脉

作者:gfree.wind@gmail.com 作为网络领域的开发人员,我们经常要与Linux的数据报文打交道,一定要搞清楚数据报文是从何而来,又是如何离去。...注:驱动对interface执行poll操作时,会尝试循环检查网卡是否有接收完毕的报文,直到设置的budget上限,或者已经就绪报文。 二、接收软中断将报文分发给协议栈的示意图 ? 图2....如果网卡没有vlan offload,则需要软件剥掉vlan头,以便后面的报文处理。 5. 在分发报文时,可能会有多个handler关心此报文。所以在分发时,都是增加引用计数,然后给对应的处理函数。...通过以太网报文的协议,将数据报文分发给该协议的handler,如IPv4,IPv6,PPPoE等。 三、协议栈将数据报文发给套接字(以IPv4为例)的流程图 ? 图3....通过以上四个分解的流程图,相信大家对于Linux数据报文的来龙去脉,有了一定的了解。如在文章开头所云,这些流程图都做了必要的简化。在很多步骤都可以进行展开,也涉及了更多细节。

1.7K30

Linux数据报文的来龙去脉

作者:gfree.wind@gmail.com 作为网络领域的开发人员,我们经常要与Linux的数据报文打交道,一定要搞清楚数据报文是从何而来,又是如何离去。...如果网卡没有vlan offload,则需要软件剥掉vlan头,以便后面的报文处理。 5. 在分发报文时,可能会有多个handler关心此报文。...通过以太网报文的协议,将数据报文分发给该协议的handler,如IPv4,IPv6,PPPoE等。...将skb报文加入套接字的接收队列。 四、报文从应用层到网卡的流程图 app_to_nic.jpg 1....通过以上四个分解的流程图,相信大家对于Linux数据报文的来龙去脉,有了一定的了解。如在文章开头所云,这些流程图都做了必要的简化。在很多步骤都可以进行展开,也涉及了更多细节。

3.8K91
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux下调试1588单步时间戳报文

    如果对1588报文单步时间戳不了解,可以查看我之前的文章“IEEE 1588 Sync报文单步时间戳”。 平台和工具 我用的平台就不透露了,测试使用两块板子,网口直连。...用到的软件包括, Linux:这是我板子的OS,包含我要验证的驱动。 tcpdump:抓包工具,位于板子的文件系统。 linuxptp:开源PTP软件,位于板子的文件系统。...调试方法 两个板子网口直连,启动Linux。 配置IP地址,确保两个网口能ping通。 一个板子做接收,运行tcpdump抓包,可直接查看,也可以保存成pcap文件在Wireshark中打开查看。...另一个板子做发送,运行ptp4l做master,发送单步Sync报文。...# tcpdump -i eth0 -xx 可以看到对L2 Ethernet报文和UDP/IPv4报文,PTP消息的correctionField和originTimestamp字段的数值,直接就解析出来了

    3.3K20

    HTTP请求报文和响应报文

    HTTP报文 HTTP报文是由一行一行的简单字符串组成的。HTTP报文都是纯文本,不是二进制代码,所以人们可以很方便地对其进行读写。...下图是一个例子: 从Web客户端发往Web服务器的HTTP报文称为请求报文(request message)。...从服务器发往客户端的报文称为响应报文(response message),此外没有其他类型的HTTP报文。HTTP请求和响应报文的格式很类似。...HTTP 报文包括以下三个部分: 起始行 报文的第一行就是起始行,在请求报文中用来说明要做些什么,在响应报文中说明出现了什么情况。 首部字段 起始行后面有零个或多个首部字段。...主体 空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括 了要发送给 Web 服务器的数据;响应主体中装载了要返回给客户端的数据。

    82740

    HTTP请求报文和响应报文

    请求报文 一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成。...响应报文 HTTP响应报文和请求报文的结构差不多,也是由四个部分组成: <status-line> //状态行 <headers> //消息报头 <blank line> //空行 <...响应报文中包含Content-Range指定范围的实体内容 3xx:重定向 301 Moved Permanently:永久重定向,表示请求的资源已经永久的搬到了其他位置。...POST不会变成GET 304 Not Modified:表示客户端发送附带条件的请求(GET方法请求报文中的IF…)时,条件不满足。返回304时,不包含任何响应主体。...假设这个资源没有被修改,那么服务器返回一个响应报文: HTTP/1.1 304 Not Modified Date:Sat, 15 Oct 2011 15:39:29 (空行

    2K30

    icmp回复报文_ICMP报文和ping命令

    在Unix/Linux,序列号从0开始计数,依次递增。而Windows ping程序的ICMP序列号是没有规律。...查询报文:基于查询的额外信息) 2、ICMP(网络控制报文协议)分为:差错报告报文和查询报文 (1)差错报告报文: ICMP不能纠错,只能检查错误,发现错误报告给最初的数据源。...即时没有终点不可达差错报文也不能代表数据报交付成功。 2)源点抑制:类型=4,缺乏流量控制和拥塞控制。当路由器或主机丢弃数据报时,向源数据端口发送源点抑制差错报文。...该报文两个作用:第一通知源点数据报已经丢弃,二通知源点慢点发数据。...每个数据报通过一个路由器生存时间就-1,当生存时间为0时,就向源点发送一个超时差错报告报文。如果报文的一个分片超时也发送差错报告报文

    2.3K10

    HTTP 报文

    HTTP 报文分为请求报文与响应报文。 当客户端发出一个请求,服务器就会做出响应,返回一个响应报文。无论是请求报文还是响应报文都是由三部分组成:Line ,header,body。...比如:Header有的只能用在响应报文中,有的只能用在请求报文中,有的两者皆可用。 响应正文 又称之为响应体,就是客户端请求服务器返回的结果内容,可以是文本、音频、视频等等。...通用首部字段:请求报文与响应报文都会使用的首部; 请求首部字段:从客户端向服务器发送报文使用的首部。...补充请求的附加信息,客户端信息,响应内容等相关优先级信息; 响应首部字段:从服务器向客户端返回响应报文的首部,补充了响应的附加内容,也会要求客户端附加额外信息; 实体首部字段:针对请求报文与响应报文实体使用的首部..."Transfer-Encoding: chunked"和"Content-Length"这两个字段是互斥的,也就是说响应报文里这两个字段不能同时出现,一个响应报文的传输要么是长度已知,要么是长度未知。

    1.4K10

    解析HTTP报文

    本期我们接着上期聊,说说HTTP报文。...报文概要在说报文之前,我们先来了解一下报文(message),它是HTTP通信中的基本单位,由8位组字节流(octetsequence,其中octet为8个比特)组成,通过HTTP通信传输。...通常情况下,报文主体指的就是实体,只有当传输中进行编码操作时,实体主体的内容发生变化,才导致它和报文主体产生差异。一个完整的HTTP报文包括报文首部和报文主体两部分。报文首部有请求报文和响应报文。...另外,对于多重范围的范围请求,响应会在首部字段 Content-Type 标明 multipart/byteranges 后返回响应报文。...本期我们主要讲了,HTTP协议报文的组成,传输方式,支持的数据格式,如何获取部分内容、以及返回内容的协商。下期我们继续。END

    1.6K30

    HTTP报文详解

    HTTP报文详解 目录 1、HTTP请求报文 2、HTTP响应报文 3、请求方法 4、消息头 4.1、请求消息头 4.2、响应消息头 5、状态码 5.1、1XX消息 5.2、2XX成功 5.3、3XX...1、HTTP请求报文 HTTP请求报文由3部分组成(请求行+请求头+请求体) 请求报文: ①是请求方法,GET和POST是最常见的HTTP方法,除此以外还有DELETE、HEAD、OPTIONS、PUT...②是请求对应的URL地址,它和报文头的Host属性组成完整的请求URL。 ③是协议名称及版本号。 ④是HTTP的报文头,报文头包含若干个属性,格式为“属性名:属性值”,服务端据此获取客户端的信息。...请求结构图: 2、HTTP响应报文 HTTP响应报文由3部分组成(响应行+响应头+响应体) 响应报文: ①报文协议及版本。 ②状态码及状态描述。 ③响应报文头,也是由多个属性组成。...示例:User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/21.0 Upgrade 要求服务器升级到另一个协议

    94010

    icmp报文(1)

    ICMP报文包含在IP数据报中,IP报头在ICMP报文的最前面。一个ICMP报文包括IP报头(至少20字节)、ICMP报头(至少八字节)和ICMP报文(属于ICMP报文的数据部分)。...当IP报头中的协议字段值为1时,就说明这是一个ICMP报文。ICMP报头如下图所示。 各字段说明 类型:占一字节,标识ICMP报文的类型,目前已定义了14种,从类型值来看ICMP报文可以分为两大类。...第一类是取值为1~127的差错报文,第2类是取值128以上的信息报文。 代码:占一字节,标识对应ICMP报文的代码。它与类型字段一起共同标识了ICMP报文的详细类型。...校验和:这是对包括ICMP报文数据部分在内的整个ICMP数据报的校验和,以检验报文在传输过程中是否出现了差错。其计算方法与在我们介绍IP报头中的校验和计算方法是一样的。...标识:占两字节,用于标识本ICMP进程,但仅适用于回显请求和应答ICMP报文,对于目标不可达ICMP报文和超时ICMP报文等,该字段的值为0。

    1.5K20

    http报文详解

    http报文 http报文是http协议的核心所在,http客户端和http服务端正是通过交换http报文进行通信的。...http报文以一些文本形式的元信息(meta-information)开头,这些信息描述了报文的内容及含义,后面跟着可选的数据部分。 http报文总是向下游流动的。...所有的 HTTP 报文都可以分为两类:请求 报文(request message)和响应报文(response message)。请求报文会向 Web 服务器请求一个动作。...响应报文会将请求的结果返回给客户端。请求和响应报文的基本报文结构相同。...下面对请求报文和响应报文中各部分做一个描述。 起始行 所有的 HTTP 报文都以一个起始行作为开始。请求报文的起始行说明了要做些什么。响应报文的起始行说明发生了什么。

    67310

    OPC报文详解

    常见的OPC UA报文主要分为两类 OPC UA over TCP、OPC UA Secure Conversation2.1 OPC UA over TCP报文结构OPC UA over TCP报文包括消息头和消息体...UA链接协议支持的值之一,则设置为“F”的ACSII码整个消息头+消息体的长度,单位为字节消息类型部分共分四类:HEL:表示消息体为Hello报文ACK:表示消息体为Acknowledge报文ERR:表示消息体为...Error报文RHE:表示消息体为ReverseHello报文2.1.2 消息体2.1.2.1 Hello报文当消息类型为HEL时,代表消息体部分为一个Hello报文,具体格式如下:用途 长度 描述...2.2 OPC UA Secure Conversation报文结构OPC UA Secure Conversation(OPC UA 安全会话)的报文格式设计用于在客户端与服务器之间建立和维护一个加密和签名的通信通道...(可选)如果报文被签名,这部分包含签名。不是所有的安全策略都需要签名。

    84610

    HTTP协议报文结构及抓包报文分析示例

    HTTP报文结构 请求报文 HTTP请求报文由请求行、请求头、空行和请求内容4个部分构成。 如下图所示: ?...请求内容 请求内容主要用于POST请求,与POST请求方法配套的请求头一般有Content-Type(标识请求内容的类型)和Content-Length(标识请求内容的长度) 响应报文 HTTP响应报文由状态行...下面对响应报文格式进行简要的分析说明: 状态行 由HTTP协议版本、状态码、状态码描述三部分构成,它们之间由空格隔开。...表示客户端请求成功 400 Bad Request: 表示客户端请求有语法错误,不能被服务器端解析 401 Unauthonzed: 表示请求未经授权,该状态码必须与WWW-Authenticate报文头一起使用...HTTP报文示例 在这里我们在Firefox下用firebug随意抓取一个HTTP包和上文的报文结构做下一一对应关系图,以便大家了解实际的包和标准报文结构的对应关系。 ?

    88861

    Modbus报文详解

    1.2报文格式一个典型的Modbus RTU报文结构如下:用途设备地址 功能码...2.从机收到了报文,但是报文错误(CRC校验不通过),从机将丢弃报文,主机将按照超时进行处理。...3.从机接收到了报文,但是报文要求的操作无法实现(如功能码不存在、寄存器范围不对等),从机将会返回包含异常码的响应报文。...当接收方收到报文时,会对整个报文(包括CRC校验码)使用相同的CRC计算流程。如果报文未被篡改,计算结果应为0x0000(考虑到了CRC码的加入和计算规则)。...Modbus TCP 报文格式相较于Modbus RTU,主要是在报文的前面增加了一个MBAP头(Modbus Application Protocol header),用于在TCP/IP网络中传输。

    68800
    领券