文档章节

数据包一些概念解释说明

Ryan-瑞恩
 Ryan-瑞恩
发布于 2015/10/15 15:22
字数 2278
阅读 54
收藏 0
点赞 0
评论 0
简称 全称 说明
RTT round-trip time 确认一个数据包已被成功接收所需的时间。双向时间就是你的数据包抵达目的地和这个数据包抵达所发送的确认返回到你的时间之和。
ARP Address Resolution Protocol 在TCP/IP网络中,用来将IP地址解析为Mac地址的过程,称为地址解析协议。解析过程只使用两种数据包:一个ARP请求与一个ARP响应
RFC Request for Comments

  


header length 协议 头的长度

type of service 服务类型:优先级标志位和服务类型标志位,被路由器用来进行流量的优先排序
FO fragment offset
一个数据包是一个分片,这个域中的值就会被用来将数据包以正确的顺序重新组装
TTL time to live 数据包的生存周期,以经过路由器的跳数/描述进行描述。该值定义了数据包被丢弃之前,所能经历的时间,或者能够经过的最大路由数目。它通常每次被发往一个路由器的时候减1.

Header Checksum 首部校验和:一个错误检测机制,用来确认IP头的内容有没有被损坏或者篡改
MTU Maximum Transmission Unit
最大传输单元。以太网的默认MUT是1500,也就是说,以太网的网络上所能传输的最大数据包大小是1500字节(并不包括14字节的以太网头本身)。此值可修改!超过这个值,会将数据包进行分片

sequence numbe 序号:这个数字用来表示一个TCP片段。这个域用来保证能够数据流中的部分没有缺少

acknowledgment number 确认号:这个数字是通信中希望从另一个设备得到的下一个数据包的序号

Flags

标记:URG, ACK, PSH, RST, SYN 和 FIN 标记都是用来表示所传输的TCP数据包的类型

或DHCP客户端能够接受的流量类型(单播、广播以及其他)


window size 窗口大小:TCP 接收者缓冲的字节大小

Urgent Pointer 紧急指针:如果设置了UG位,这个域将被检查作为额外的指令,告诉CPU从数据包的哪里开始读取数据。
ICMP Internet control message protocol

换联网控制消息协议:是TCP/IP协议族中的一个效用协议,负责提供在TCP/IP网络上的设备、服务以及路由器可用性的消息。大多数网络检修技巧都是基于常用的ICMP消息类型。

ICMP是IP的一部分并依赖IP来传递消息,ICMP头相对较小并根据用途而改变。

BOOTP协议 Bootstrap Protocol 给链接到网络的设备自动分配地址
DHCP Dynamic host Configuration Potocol 应用层协议,能够让设备自动获取IP地址(以及其他重要的网络资源,比如DNS服务器和路由器网关的地址)。

OpCode 操作代码:用来指出这个数据包是DHCP请求还是DHCP回复。

Hadware Type 硬件地址类型

Hardware Length 硬件地址长度

Hops 跳数:中继代理用来帮助寻找DHCP服务器

Transaction ID 事务ID:用来匹配请求和响应的一个随机数。

Seconds Elasped 消耗时间:客户端第一次向DHCP服务器发出地址请求后的时间

Client Hardware Address 客户端硬件地址
QR Query/Response

查询/响应:用来指明这个数据包是DNS查询还是响应

AA Authoritative Answer 权威应答:如果响应数据包设定了这个值,则说明这个响应是由于内权威域名服务器发出
TC Truncation 截断:用来指明这个响应由于太长,无法装入数据包而被截断
RD Recursion Desired 期望递归:当请求中设定了这个值,则说明DNS客户端在目标域名服务器不含有所请求信息的情况下,要求进行递归查询。
RA Recurision Available
可用递归:当响应中设定了这个值,说明域名服务器支持递归查询

Question Count 问题计数:在问题区段中的条目数

Answer Count 回答计数:在回答区段中的条目数

Name Server Count 域名服务器计数:在权威区域段的域名资源记录数

Additional Records Count

额外记录计数:在额外信息区段中其他资源记录数


Question section 问题区段:大小壳边,包含有被发送到DNS服务器的一条或多条的信息查询的部分

Answer section 回答区段:大小可变,含有用来回答查询的一条或多条资源记录

Authority section 权威区段:大小可变,包含指向权威域名服务器的资源记录,泳衣继续解析过程

Additional Information section 额外信息区段:包含资源记录且大小可变的区段,这些资源记录用来村粗完全没有必要回答的查询相关的额外信息。
RTO
Retransmission  timeout 重传超时:当使用TCP传输一个数据包时,就启动重传计时器。当接收到这个数据包的ACK时,计时器停止。
RTT Round-trip time 往返时间:从发送数据包到接受ACK确认之间的时间称为往返时间,将若干个这样的时间平均下来,可算出最终的RTO的值。
ISN Initial Sequence Number 初始序号:握手过程中交换数据的最要信息,传输每一个数据都将按照数据载荷的大小增长序号








DHCP消息类型

类型号                消息类型                                描述

1                            发现                        客户端用来定位可用的DHCP服务器

2                            提供                        服务器用来给客户端发送发现数据包的响应

3                            请求                        客户端用来请求服务器所提供的参数

4                            拒绝                        客户端向服务器指明数据包的无效参数

5                            ACK                        服务器向客户端发送所请求的配置参数

6                            NAK                        客户端向服务器拒绝其配置参数的请求

7                            释放                        客户端向服务器通过取消配置参数来取消租约

8                            通知                            当客户端已经有IP地址时,客户端向服务器请求配置参数




TCP流控制

滑动窗口:接受窗口是数据接收方指定的值,存储在TCP头部中(以字节为单位),它告诉发送设备自己希望在TCP缓冲空间中存储多少数据。这个缓冲空间上数据中可以向上传递到等待处理数据的应用层协议之前的临时存储空间。因此,发送方一次只能发送 Window size域指定的数据量。

窗口重设过程是双向工作的。当服务器能更快的处理数据时,它可以发送一个ACK数据包,指明更大的窗口大小。



TCP 协议的6个标志位说明:

URG             紧急指针,告诉接收TCP模块紧要指针域指着紧要数据。

ACK             置1时表示确认号(为合法,为0的时候表示数据段不包含确认信息,确认号被忽略。 

PSH             置1时请求的数据段在接收方得到后就可直接送到应用程序,而不必等到缓冲区满时才传送。 

RST             置1时重建连接。如果接收到RST位时候,通常发生了某些错误。 

SYN             置1时用来发起一个连接。 

FIN             置1时表示发端完成发送任务。用来释放连接,表明发送方已经没有数据发送了。


其中URG不能和PSH标志位同时使用。

URG为紧急数据标志,如果URG为1,表示本数据包中包含紧急数据。此时紧急数据指针表示的值有效,它表示在紧急数据之后的第一个字节的偏移值(即紧急数据的总长度)。

ACK为确认标志位。如果ACK为1,表示数据包中的确认号有效。

PSH位,表示强迫数据传输。

RST标志位用来复位一条连接。当RST=1时,表示出现严重错误,必须释放连接,然后再重新建立。

SYN标志位用来建立连接,如果SYN=1而ACK=0,表明它是一个连接请求;如果SYN=1且ACK=1,则表示同意建立一个连接。

FIN为1时,表示数据已经发送完毕,希望释放连接。


不合法的标志位组合。

1、所有标志位都为0。

2、SYN和FIN同时被置1。

3、SYN和RST同时被置1。

4、FIN和RST同时被置1。

5、FIN位被置1,但ACK位没有被置1。

6、PSH位被置1,但ACK位没有被置1。

7、URG位被置1,但ACK位没有被置1。

© 著作权归作者所有

共有 人打赏支持
Ryan-瑞恩
粉丝 134
博文 216
码字总数 168028
作品 0
西安
后端工程师
分布式系统部署方案

分布式系统的部署   平常我们都说三层架构,我认为它是一个广义的模型,更多层的设计可以合并相邻几层的方式最终回归到三层这个宽泛的概念上来,我的意思是:这些都只是概念,忘记这些概念...

HI曲奇饼干
2016/06/03
168
2
分布式系统设计原理与方案

一直在思考分布式系统设计的问题,业务对象原封不动的情况下部署在客户端和服务器端,可以根据配置文件选择是连接服务器还是连接本地的数据库,这个问题让我绞尽脑汁,我总是设想的客户端与服...

HI曲奇饼干
2016/08/05
164
2
分布式系统设计原理与方案Dubbo+Zookeeper+Spring整合

一直在思考分布式系统设计的问题,业务对象原封不动的情况下部署在客户端和服务器端,可以根据配置文件选择是连接服务器还是连接本地的数据库,这个问题让我绞尽脑汁,我总是设想的客户端与服...

HI曲奇饼干
2016/07/12
374
1
【书单】18本数据科学家必读的R语言和Python相关书籍

原文来自 Analytics Vidhya 编译 CDA 编译团队 本文为 CDA 数据分析师原创作品,转载需授权 前言 “这就是阅读。即将新软件安装到大脑里的过程。” 就我个人而言,我从视频和在线教程中所学到...

Data Analyst
2017/06/01
0
0
C语言指针变量的概念

1、指针与指针变量的区别: 指针变量的概念是存放指针的变量; 指针的概念其实就是内存地址的概念。 吐槽一下: (不知道哪个傻逼最开始把指针变量说成指针,害的好多的人到最后都不知道这两...

Sheamus
2016/05/12
21
0
八招提升你的 R 语言编程能力

引言 这个世界每天都在源源不断地生产数据,而人们尤其是商界往往希望从这些数据中获取到有价值的信息。而这一点也促使很多试图从数据中提取有用信息的数据科学家们(或被叫做数据分析师、数...

Datartisan
2017/07/06
0
0
ElasticSearch学习笔记1

es 的来源 问题拆解 如果用数据库来实现会怎么样? 什么是全文检索? 什么是 Lucene? 数据库实现 先看第一个问题,如果我们用数据来实现搜索功能,可能的语句就是对 string 建立索引,或者直...

超级个体颛顼
2017/09/06
0
0
SpringBoot 2.0 系列006 --启动实战之注解使用

SpringBoot 2.0 系列006 --启动实战之注解使用 一些误区说明 网上很多教程默认使用SpringBootApplcation注解,且只用这个即可扫描启动类包下所有的bean。 而官方默认教程使用的是@EnableAuto...

路上有你0314
05/18
0
0
《Nodejs开发加密货币》之六:Commander介绍

关于 《Nodejs开发加密货币》,是一个加密货币产品的详细开发文档,涉及到使用Nodejs开发产品的方方面面,从前端到后台、从服务器到客户端、从PC到移动、加密解密、区款链等各个环节。代码完...

imfly
2016/05/02
0
0
OSI参考模型

OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互联模型。该体系结构标准定义了网络互连的七层框架(物理层、数...

bengozhong
2016/09/06
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

HTML5和CSS3新特性一览

HTML5和CSS3新特性一览 HTML5 1.HTML5 新元素 HTML5提供了新的元素来创建更好的页面结构: 标签 描述 <article> 定义页面独立的内容区域。 <aside> 定义页面的侧边栏内容。 <bdi> 允许您设置...

全部原谅
7分钟前
0
0
编程开发进阶更重要的是掌握的核心设计思维[图]

编程开发进阶更重要的是掌握的核心设计思维[图]: “单独写一个琐碎的代码块就等同于弹奏音阶一样,不幸的是,弹奏音阶并不能教会你任何关于音乐的东西,并且非常枯燥” 这是 Eric S. Raymon...

原创小博客
9分钟前
0
0
怎样确保java代码在抛出异常时都回滚,而不只是运行时异常

/** TransactionAspectSupport手动回滚事务:*/ @Transactional(rollbackFor = { Exception.class }) public boolean test() { try { ......

gulf
10分钟前
0
0
TCP-Keepalive作用

TCP交互在三次握手确定连接之后,后续可能不会一直有数据在通讯,但此时双方的连接是保持的,如果在这段时间内没有数据,客户端(或服务端)突然关掉了,或者客户端到服务端之间的网络突然断...

sensy
10分钟前
0
0
Hive学习之Hive CLI

Hive命令行接口(CLI)提供了执行Hive QL、设置参数等功能,要启用CLI只需要在命令行下执行$HIVE_HOME/bin/hive命令。在命令下执行hive –H可以查看CLI选项,如下表所示: -d,--define <key...

舒运
13分钟前
0
0
hadoop新手学习笔记之hadoop产品大全

大数据这个词也许几年前你听着还会觉得陌生,但我相信你现在听到hadoop这个词的时候你应该都会觉得“熟悉”!越来越发现身边从事hadoop开发或者是正在学习hadoop的人变多了。作为一个hadoop入...

左手的倒影
14分钟前
0
0
MySQL5.7之开启远程连接

参考这个https://blog.csdn.net/qiyueqinglian/article/details/52778230

汉斯-冯-拉特
15分钟前
0
0
FileUtils API

一、概述 这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的类FilenameUtils跟FileUtils,其中FilenameUtils是对文件名操作的封装;FileUtils是文件封装,开...

如风达
15分钟前
0
0
详解机器学习中的梯度消失、爆炸原因及其解决方法

前言 本文主要深入介绍深度学习中的梯度消失和梯度爆炸的问题以及解决方案。本文分为三部分,第一部分主要直观的介绍深度学习中为什么使用梯度更新,第二部分主要介绍深度学习中梯度消失及爆...

tantexian
20分钟前
0
0
JavaMail 发送邮件

参考 https://www.cnblogs.com/xdp-gacl/p/4216311.html 发送html格式邮件 package com.example.stumgr;import java.util.Properties;import javax.mail.Message;import javax.mail......

阿豪boy
21分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部