首页 > 其他分享 >IP包头解析

IP包头解析

时间:2023-04-14 18:31:51浏览次数:40  
标签:优先级 字节 IP 1480 分片 类型 包头 解析 数据包

IP包头解析_首部

  1. 版本(4)

确定是ipv4,还是ipv6

如果为0100表示IPv4

如果为0110表示IPv6

2.首部长度(4)(20-60字节)

是否包括可选项,ip包头的长度

3.优先级与服务类型

优先级就是是区分数据包服务类型:

类型7:网络协议保留使用

类型6:网络协议保留使用

类型5:音频流量

类型4:振铃流量

类型3:视频流量

类型2:高优先级

类型1:中优先级

类型0:BE(尽力而为)

4.总长度(16)

总长度:是指IP包的总长度(ip包头+所有数据的长度,最大长度65535)

表示整个IP数据报(三层+四层+五层)的⻓度,以字节为单位。

5.标识符

区分是不是同一种数据

6.标志

一共3各二进制,第一个二进制一般情况保留,第二个二进制(0分片了,1未分片元数据未超过1480字节),第三个二 进制为表明是不是最后一个分片(0表示最后一个分片,1表示后续还有分片)

7.段偏移量

用来标志重组的号,第一个帧为0的,第二个帧为1480,第三个为2960,第四个为1480*3…等等

8.TTL(TIME TO LIVE )

记录包的存活时间,每经过一个路由器就减1,微软的系统默认值为256

生命周期字段,经过一个路由器值减1,为0时,数据包丢弃。为了防止一个数据包在网络中无限的循环下去

Time To Live :0~255

9.协议号

为传输层服务,选择解析协议是(TCP(6))或者UDP(17)或者ICMP(1))

ICMP 协议号:1

tcp 协议号:6

udp 协议号:17

10.首部校验和

使用CRC进行校验, 来鉴别头部是否损坏,校验的位置:首部20个字节

11.源地址和目标地址

表示发送端和接收端的地址

12.可选项

不定长,最多40字节

标签:优先级,字节,IP,1480,分片,类型,包头,解析,数据包
From: https://blog.51cto.com/u_13560030/6190790

相关文章

  • Spring很常用的@Conditional注解的使用场景和源码解析
    你好,我是刘牌!介绍今天要分享的是Spring的注解@Conditional,@Conditional是一个条件注解,它的作用是判断Bean是否满足条件,如果满足条件,则将Bean注册进IOC中,如果不满足条件,则不进行注册,这个注解在SpringBoot中衍生出很多注解,比如@ConditionalOnProperty,@ConditionalOnBean,@Conditi......
  • eclipse把非标准类型的html加进去
    把非标准的html类型加进去......
  • eclipse的properties插件的安装
    首先,在eclipse中点击“help”-"InstallNewSoftware"点击右侧的“Add”按钮。输入Name:properties。Location:http://propedit.sourceforge.jp/eclipse/updates/然后点击OK。稍等两分钟,就会出现插件列表,选择PropertiesEditor,然后Next. 继续Next。 点击“Iaccept……”,然后Fi......
  • JavaScript 中 new Date().getTime() 方法在 iOS 中的兼容性问题
    JavaScript中newDate(time).getTime()获取时间戳方法在iOS中的兼容性问题在iOS系统的H5页面中获取时间戳方法newDate(time).getTime()存在返回NaN或结果不准确的情况在iPhone8中iOS11.03系统下的H5页面测试newDate(time).getTime()方法测试代码:测试结......
  • Spring自定义参数解析器设计
    作者:京东零售 王鹏超1.什么是参数解析器@RequstBody、@RequstParam这些注解是不是很熟悉?我们在开发Controller接口时经常会用到此类参数注解,那这些注解的作用是什么?我们真的了解吗?简单来说,这些注解就是帮我们将前端传递的参数直接解析成直接可以在代码逻辑中使用的javaBean,......
  • TypeScript:高级类型
    class类型class类型,和Java差不多。classPerson{name:string;age:number=0;}letperson=newPerson();构造函数classPerson{name:string;age:number=0;constructor(name:string,age:number){this.name=name;this.age=age;......
  • TypeScript:函数兼容性问题
    函数兼容性大家在JS中经常可以看到这样的代码:lisr.forEach((item)=>{});lisr.forEach((item,index)=>{});就是()的参数有时是可以省略的,而这个正式函数的兼容性性质。说白了就是:多的函数=少的函数;参数少的函数可以赋值给参数多的举个下面例子:typeFun1=(num1......
  • pipeline 将命令执行的结果赋值给全局变量
    在CI/CD中,使用pipeline脚本,遇到的一个小知识。pipeline{agentanyenvironment{#自定义一个变量,然后通过shell命令去执行一个获取时间的结果,并赋值给变量。time=sh(script:"date+%Y%m%d%H%M%S",returnStdout:true).trim()}stages{......
  • JavaScript 使用 reduce 方法实现简单的 i18n 功能
    JavaScript使用reduce方法实现简单的i18n功能i18n:国际化(Internationalization)的缩写使用Array.prototype.reduce()方法实现简单的i18n功能reduce()方法对数组中的每个元素按序执行一个由您提供的reducer函数,每一次运行reducer会将先前元素的计算结果作为参......
  • 在使用pip遇到的一些问题
    一、因为pip安装速度太慢,设置镜像源pip3configlist或则pip configlist这里根据你设定的命令名称查看,有时候pip说没有命令,有时候说pip3没有命令,如果两个都报没有此命令,那就得看看你python是不是没安装好。 一般是会显示你的配置信息,如果没有,那......