认识IPv4分组
强化一下记忆;以免忘记。
图就不放了。
首部20B (4B的整数倍) 的固定部分12个域,的确很麻烦的;IPv6才8个域,首部长度8B的整数倍
20B分5行吧,每行4B,即32位。第一行,第二行,第三行,第四行,第五行
ip地址就是32位4B 最大的数 255.255.255.255
所以第四行,第五行,就放源地址和目的地址了。
一般吧,目标地址放在特殊位置,要么在首部的最开始(如MAC帧),要么在首部最末,这样才能体现目的
用到的单位:首部长4位的单位为 行 即4B 即32位
总长度16位,单位为字节 即1B 8位
片偏移13位,单位为 2行 即8B 64位
第一行:个人称其为总体基本信息
第一个字节8位放两个信息,0100 0101
前四位放IP协议的版本,0100 即4 IPv4
后四位放首部长度 0101 即 5 可以理解5行(每行4B,也即单位是4B)吧,5*4B=20B
最大的是1111即15行 15*4B=60B 因此 首部最大为60B
一般情况看到 45H 时,就要条件反射的考虑有没有可能此处时IP分组的开始
第二字节 8位放服务类型 0000 0000
在OSFP路由协议中,对不同的链路可根据IP分组的不同服务类型(TOS)设置成不同的代价
第三个和第四个字节 总长度 0000 0000 0000 0000 单位是字节B
第二行:个人称其为分片信息
第一个字节和第二个字节:标识 0000 0000 0000 0000
第三个字节:中的前三位 000
0 DF MF 当DF=0 允许分片
MF=1表示还有分片
MF=0表示最后一个分片
第三个字节后五位和第四个字节 0 0000 0000 0000 片偏移8字节为单位
因此分片的长度是8B的整数被,即两行两行的分,行数是偶数
因此一般看到 xx xx 4x xx H 其中的4是 0100 DF=1不允许分片
或者 xx xx 2x xx H 其中2是 0010 DF=0 MF=1 表示还有分片
或者 xx xx 0x xx H 其中的0是 0000 DF=0 MF=0 最后一个分片
看到上述数字要敏感
第三行:个人称之为安全控制信息
第一个字节生存时间:0000 0000 可通过路由器的最大值;每通过一个减1
第二个字节:协议 TCP 为 06H 即 0000 0110 即 6
UDP为11H 即0001 0001 即17
IGMP为02H 即0000 0010 即 2
第三个字节和第四个字节: 首部检验和
综上: 看到45 要提高敏感 ,考虑是不是IP分组
06 11 02 等。。。。。。
最新文章
- C#的访问级别
- SPX Instant Screen Capture
- MS SQL执行大脚本文件时,提示“内存不足”的解决办法()
- windows svn 配置以及iis同步传送
- Android SQLite (三 ) 全面详解(一)
- jquery表单验证使用插件formValidator
- JENKINS的远程API调用,然后用PYTHON解析出最新的版本及稳定成功的版本
- 浅谈Hash函数
- git版本控制的笔记
- 转:设置HtmlUnitDriver代理及处理用户验证有关问题
- 转自知乎(JAVA后台开发可以纯粹用JAVA SE吗?)
- JavaWeb连接SQLServer数据库并完成一个登录界面及其功能设计。
- if 结构语句
- Android 状态栏开发
- vue2.*初体验
- iOS开发中的 ARC
- js如何判断不同的操作系统
- ovs加dpdk出现EAL No free hugepages reported in hugepages-1048576kB
- 算法笔记_146:TarJan算法的应用(Java)
- SRM708 div1 PalindromicSubseq(动态规划+容斥原理)