IP、TCP、UDP、HTTP头部信息

IP头部信息

ip报文段格式
在这里插入图片描述

版本:
占4位,表明IP协议实现的版本号,当前一般为IPv4,即0100。
报头长度 :
占4位,因为头部长度不固定(Option可选部分不固定),所以需要标识该分组的头部长度多少,取值范围:5-15即20-60字节。
服务类型:
占8位,其中前3位为优先权子字段(Precedence,现已被忽略)。第4至第7比特分别代表延迟、吞吐量、可靠性和花费。当它们取值为1时分别代表要求最小时延、最大吞吐量、最高可靠性和最小费用。这4比特的服务类型中只能置其中1比特为1。可以全为0,若全为0则表示一般服务。第8比特保留未用。
总长度:
占16位,指明整个数据报的长度(以字节为单位)。最大长度为65535字节。
标识:
占16位。用来唯一标识主机发送的每一份数据报。通常每发一份报文,它的值会加1。
标志:
占3位。标志一份数据报是否要求分段。
片偏移:
占13位。如果一份数据报要求分段,此字段指明该片偏移距原始数据报开始的位置。
生存时间:
占8位。用来设置数据报最多可以经过的路由器数。由发送数据的源主机设置,通常为32、64、128等。每经过一个路由器,其值减1,直到0时该数据报被丢弃。
协议:
占8位。指明IP层所封装的上层协议类型,如ICMP(1)、IGMP(2) 、TCP(6)、UDP(17)等。
头部校验和:
占16位。内容是根据IP头部计算得到的校验和码。计算方法是:对头部中每个16比特进行二进制反码求和。(和ICMP、IGMP、TCP、UDP不同,IP不对头部后的数据进行校验)。
源IP地址、目标IP地址:
各占32位。用来标明发送IP数据报文的源主机地址和接收IP报文的目标主机地址。
可选项:
占32位。用来定义一些任选项:如记录路径、时间戳等。这些选项很少被使用,同时并不是所有主机和路由器都支持这些选项。可选项字段的长度必须是32比特的整数倍,如果不足,必须填充0以达到此长度要求。

TCP头部信息

tcp报文段格式
在这里插入图片描述

源端口号、目的端口号:
各占2字节,端口是传输层和应用层的服务接口,用于寻找发送端街接收端的进程。
序号:
占4字节,用来标识从TCP发送端向TCP接收端发送的数据字节流。
确认序号:
占4字节,上次成功接收到的TCP另一端序号+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报文段格式
在这里插入图片描述

16位源端口号和16位目的端口号:
代表出发端口和目的地端口,这个可以类比TCP的源端口和目的端口。
16位UDP长度:
代表整个UDP的长度,包括UDP数据,最小的UDP长度就是8字节。
16位UDP校验和:
用于检验UDP数据包
IPv4中,校验和可以为0,意味着不使用校验和。IPv6要求必须进行校验

HTTP头部信息

http请求报文段格式
在这里插入图片描述

开始行:
方法有GET、HEAD、POST、PUT、DELETE。
URL:统一资源定位符
版本:表明HTTP协议实现的版本号
CRLF:回车换行
首部行:
在开始行之后,这是添加http头部的字段名,注:冒号后有空格。如果要结束首部信息的时候,要添加一个换行。所以最后一个首部行要有两个换行。
Accept:可通知服务器用户代理能够处理的媒体类型以及该媒体类型对应的优先级。
Accept-Encoding:告知服务器,客户端可支持的内容编码以及相应内容编码的优先级。
Accept-Language:告知服务器,客户端可处理的自然语言集,以及对应语言集的优先级。
Authorization:告知服务器用户端的认证信息。
If-Match 与If-None-Match:If-Match的请求是如果后方的字符串与ETag相等则服务器端进行请求,否则不进行处理。If-None-Match是If-Match的非操作,同样是匹配ETag, 如果Etag没有匹配成功就处理请求,否则不处理。
Referer:值是一个URI, 该URI就是发起请求的页面URI
User-Agent:请求方的浏览器和用户代理名称等信息。
Cookie:本地存储的Cookie信息(包括登陆状态等)。
实体主体:
一般只有上传才有实体主体,请求没有主体实体。

http响应报文段格式
在这里插入图片描述

开始行:
版本:表明HTTP协议实现的版本号
状态码 短语:1XX(信息响应):100 Continue:服务器通知浏览器之前一切正常,请客户端继续请求,如果请求结束,可忽略。2XX(成功响应):200 OK: 请求成功、201 Created: 常用于POST,PUT 请求,表明请求已经成功,并新建了一个资源。3XX(重定向消息):300 Multiple Choice: 返回多个响应,需要浏览器或者用户选择;4XX(客户端错误响应):400 Bad Request: 请求语法有问题,服务器无法识别。403 Forbidden: 服务器拒绝响应。权限不足。404 Not Found: URL无效或者URL有效但是没有资源。5XX(服务器错误响应):500 Internal Server Error: 服务器内部错误,未捕获。503 Service Unavailable: 无法服务。一般发生在因维护而停机或者服务过载。
CRLF:回车换行
首部行:
Accept-Ranges:告知客户端服务器那边是否支持范围请求。
Age:告知客户端,源服务器在多久前创建了该响应。
Etag:服务器当前请求的服务器资源(图片,HTML页面等)所对应的一个独有的字符串。
Server:表明了服务器端使用的服务器型号。
Vary :源服务器会向代理服务器传达关于本地缓存使用方法的命令。
WWW-Authenticate:在状态码401 Unauthorized中肯定带有此字段,该字段用来指定客户端的认证方案(Basic或者Digest)。
Set-Cookie:管理客户端所要设置的Cookie信息。
实体主体:
Content-Encoding:说明报文实体的编码方式。
Content-Language:表示报文实体使用的自然语言。
Content-Length:指定报文实体的字节长度。
Content-Type:定义响应数据的类型和编码。
通用首部行字段:
Cache-Control:用来操作缓存的工作机制。
Connection:控制不转发给代理服务器的首部字段以及管理持久连接。
Transfer-Encoding:表示报文在传输过程中采用的编码方式。
Via:追踪请求和响应报文测传输路径,报文经过代理或者网关是会在Via字段添加该服务器的信息,然后再进行转发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/440010.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ROS技术点滴 —— MoveIt!中的运动学插件

MoveIt!是ROS中一个重要的集成化开发平台,由一系列移动操作的功能包组成,提供运动规划、操作控制、3D感知、运动学等功能模块,是ROS社区中使用度排名前三的功能包,目前已经支持众多机器人硬件平台。 MoveIt!中的众多功能都使用插件…

1)机器学习基石笔记Lecture1:The Learning Problem

网上关于机器学习的课程有很多,其中最著名的是吴恩达老师的课程,最近又发现了NTU林轩田老师的《机器学习基石》课程,这门课也很好。课程总共分为4部分,总共分为16节课,今天来记录第一节课。 When Can Machines Learn?…

Apollo进阶课程 ③ | 开源模块讲解(中)

目录 1)ISO-26262概述 2)ISO-26262认证流程 3)ISO-26262优点与缺陷 原文链接:Apollo进阶课程 ③ | 开源模块讲解(中) Apollo自动驾驶进阶课程是由百度Apollo联合北京大学共同开设的课程,邀请…

【CodeForces - 1047C】Enlarge GCD(数学,枚举,预处理打表,思维)

题干: F先生有n个正整数,a1,a2,...,an 他认为这些整数的最大公约数太小了,所以他想通过删除一些整数来扩大它 您的任务是计算需要删除的最小整数数,以便剩余整数的最大公约数大于所有整数的公约数. Input 3 1 2 4…

TS解析文档

TS格式解析 简介: ts文件为传输流文件,视频编码主要格式h264/mpeg4,音频为acc/MP3。 ts的包是一个一个188字节的包组成,这188字节里面由一个0x47开头的包作为同步。 也就是说,如果你找到了0x47,如果与它相…

2)机器学习基石笔记Lecture2:Learning to Answer Yes/No

目录 0.上节回顾 1. Perceptron Hypothesis Set 2. Perceptron Learning Algorithm(PLA)(重点) 3. Guarantee of PLA(难点) 4. Non-Separable Data 0.上节回顾 第一节课主要讲述了机器学习的定义及机器学习的过程&#xff0…

Google Colab——谷歌免费GPU使用教程

Google Colab简介 Google Colaboratory是谷歌开放的一款研究工具,主要用于机器学习的开发和研究。这款工具现在可以免费使用。Google Colab最大的好处是给广大的AI开发者提供了免费的GPU使用!GPU型号是Tesla K80!你可以在上面轻松地跑例如&am…

pyecharts简单使用

pyecharts 是一个用于生成 Echarts 图表的类库。 Echarts 是百度开源的一个数据可视化 JS 库。可以生成很多效果很棒的图表。 pycharts文档 |分割| echarts官网 本文主要介绍pycharts的简单使用 安装 # 安装 1.0.x 以上版本 (需要python3.6及以上) $ …

Ubuntu16.4(64位)下gcc-linaro-arm-linux-gnueabihf交叉编译环境安装

1. 下载压缩包 文件分享 2. 新建目录并解压 3. 配置环境变量 sudo gedit /etc/bash.bashrc 添加路径并更新路径:(PATH$PATH之间无空格) PATH$PATH://linaro-arm/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/binexport P…

Apollo进阶课程 ④ | 开源模块讲解(下)

目录 1)Apollo平台技术框架 2)Apollo版本迭代 原文链接:​Apollo进阶课程 ④ | 开源模块讲解(下) 上周,阿波君与大家讨论了自动驾驶的核心问题——安全性。本期,我们将为大家具体介绍百度Apo…

SM4 简介

SM4 我国国家密码管理局在20012年公布了无线局域网产品使用的SM4密码算法——商用密码算法。它是分组算法当中的一种,算法特点是设计简沽,结构有特点,安全高效。数据分组长度为128比特,密钥长度为128 比特。加密算法与密钥扩展算法…

九大内置对象

指在JSP的<%%> 和<% %>中可以直接使用的对象&#xff1a;没有特别说明可以开关的默认是开启的 一servlet理论上可以处理多种形式的请求响应形式http只是其中之一所以HttpServletRequest HttpServletResponse分别是ServletRequest和ServletResponse的之类 二 Http…

3)机器学习基石笔记 Lecture3:Types of Learning

目录 1&#xff09;Learning with Different Output Space Y 2&#xff09;Learning with Different Data Label 3&#xff09;Learning with Different Protocol 4&#xff09;Learning with Different Input Space X 在上一节课中&#xff0c;我们学到了第一个机器学习…

【BZOJ - 3436】小K的农场(差分约束)

题干&#xff1a; 背景 小K是个特么喜欢玩MC的孩纸。。。 描述 小K在MC里面建立很多很多的农场&#xff0c;总共n个&#xff0c;以至于他自己都忘记了每个农场中种植作物的具体数量了&#xff0c;他只记得 一些含糊的信息&#xff08;共m个&#xff09;&#xff0c;以下列…

分组密码简介和五大分组模式

分组密码 分组密码&#xff08;blockcipher&#xff09;是每次只能处理特定长度的一块数据的一类密码算法&#xff0c;这里的一块"就称为分组&#xff08;block&#xff09;。此外&#xff0c;一个分组的比特数就称为分组长度&#xff08;blocklength&#xff09;。例如&…

Java Web(五) JSP详解(四大作用域九大内置对象等)

前面讲解了Servlet&#xff0c;了解了Servlet的继承结构&#xff0c;生命周期等&#xff0c;并且在其中的ServletConfig和ServletContext对象有了一些比较详细的了解&#xff0c;但是我们会发现在Servlet中编写一些HTML代码&#xff0c;是很不方便的一件事情&#xff0c;每次都…

Apollo进阶课程 ⑤ | Apollo硬件开发平台介绍

目录 1&#xff09;Uber事故原因分析 2&#xff09;自动驾驶的第一天条-----安全 3&#xff09;自动驾驶汽车的硬件系统 4&#xff09;自动驾驶汽车感知类传感器介绍 5&#xff09;自动驾驶汽车的传感器 6&#xff09;自动驾驶的计算单元 7&#xff09;自动驾驶的线控系…

使用tcpdump,adb进行手机抓包

准备 手机 root PC安装ADB 下载压缩包&#xff0c;解压即可 链接&#xff1a;https://pan.baidu.com/s/1Hv-IqpQutBVTHuriakQUTg 提取码&#xff1a;q57q 配置环境变量 在系统环境Path中添加 adb.exe 的地址 验证安装 adb version 出现版本&#xff0c;即为成功 开启adb服…

依赖注入和控制反转的理解,写的太好了。

学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念&#xff0c;对于初学Spring的人来说&#xff0c;总觉得IoC 、DI这两个概念是模糊不清的&#xff0c;是很难理解的&#xff0c;今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及…

Apollo进阶课程 ⑥ | 高精地图与自动驾驶的关系

目录 1&#xff09;高精地图与自动驾驶 2&#xff09;什么是高精地图 3&#xff09;高精地图与导航地图 4&#xff09;高精地图---无人驾驶的核心基础模块 5&#xff09;高精地图与定位模块的关系 6&#xff09;高精地图与感知模块的关系 7&#xff09;高精地图与规划、…