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?…

MMS协议

MMS格式解析 简介: MMS是微软的私有流媒体协议。 它的最初目的是通过网络传输多媒体广播、视频、音轨、现场直播和一系列的实时或实况材料。 MMS建立在UDP或TCP传输/网络层上,是属于应用层的。使用TCP的MMS上URL是MMS://或者MMST://&#x…

【HDU - 6118】度度熊的交易计划(最小费用可行流,网络流费用流变形 )

题干: 度度熊参与了喵哈哈村的商业大会,但是这次商业大会遇到了一个难题: 喵哈哈村以及周围的村庄可以看做是一共由n个片区,m条公路组成的地区。 由于生产能力的区别,第i个片区能够花费a[i]元生产1个商品&#xff0…

老王说ros的tf库

ros的tf库 为了这个题目,我是拿出了挤沟的精神挤时间,是下了功夫的,线性代数、矩阵论复习了,惯性导航里的dcm、四元数也了解了,刚体力学也翻了,wiki里的欧拉角也读了,tf的tutorial、paper、sou…

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

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

python 问题集

打开文件是报:UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xe9 in position 0: unexpected end of data UnicodeDecodeError:“utf-8”编解码器无法解码位置0中的字节0xe9:unex 在open中加入encodingunicode_escape 如: with open(file_n…

【HDU - 6447】YJJ's Salesman(降维dp,树状数组优化dp)

题干: YJJ is a salesman who has traveled through western country. YJJ is always on journey. Either is he at the destination, or on the way to destination. One day, he is going to travel from city A to southeastern city B. Let us assume that A …

由浅到深理解ROS(5.1)- roslaunch 学习

oslaunch 用处&#xff1a;将多个rosnode 结合起来&#xff0c;一起运行。这样就不需要一个个的运行。 roslaunch格式 &#xff08;add_two.launch&#xff09; <launch> <arg name"a" default"1" /> <arg name"b&q…

CS231n Convolutional Neural Networks for Visual Recognition------Numpy Tutorial

源链接为&#xff1a;http://cs231n.github.io/python-numpy-tutorial/。 这篇指导书是由Justin Johnson编写的。 在这门课程中我们将使用Python语言完成所有变成任务&#xff01;Python本身就是一种很棒的通用编程语言&#xff0c;但是在一些流行的库帮助下&#xff08;numpy&…

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

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

TS解析文档

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

ROS入门之——浅谈launch

0.何为launch&#xff1f; launch&#xff0c;中文含义是启动&#xff0c;launch文件顾名思义就是启动文件&#xff0c;要说这launch文件啊&#xff0c;那还得从roslaunch说起。 相传&#xff0c;在程序猿们还没有使用roslaunch之前&#xff0c;需要手动rosrun逐个启动node&am…

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

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

【CodeForces - 616C】The Labyrinth(bfs,并查集,STLset)

题干&#xff1a; 求每个*能够到达的格子数量&#xff0c;只有.可以走&#xff08;四个方向扩展&#xff09;&#xff0c;结果mod 10&#xff0c;替换 * 后输出。 Input The first line contains two integers n, m (1 ≤ n, m ≤ 1000) — the number of rows and co…

scapy和dpkt使用

scapy官方文档 Scapy 下载 # (临时换pip源) pip install scapy (-i https://pypi.tuna.tsinghua.edu.cn/simple/)导入 from scapy.all import *读取pcap文件&#xff0c;进行相关操作 # 读取文件 # 整个文件&#xff1a;packets&#xff1a;scapy.plist.PacketList对象 &…

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

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

javaBean和Servlet的区别

可以像使用一般的类一样使用JavaBean,Bean只是一种特殊的类。特殊在可以通过<jsp:useBean />调用JavaBean。而其他类,可以和一般java中一样使用。 Bean的参数中还可以指定范围, <jsp:useBean scope"application" />该Bean在服务器的JVM中将只有一个…

pyecharts简单使用

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

【POJ - 2373】Dividing the Path(单调队列优化dp)

题干&#xff1a; Farmer Johns cows have discovered that the clover growing along the ridge of the hill in his field is particularly good. To keep the clover watered, Farmer John is installing water sprinklers along the ridge of the hill. To make installa…