IP包头分析
• IP包头是IP协议(网络层,第三层)为数据包添加的头部。
○ 格式:
○ 
○ 拆开看,每行是4+4+8+16=32bit=4Byte
○ ip协议最短20字节,最长60字节(可选项40字节)。
○ 先看第一行
⚀ 版本:
□ ip协议有IPv4和IPv6
□ 在IP包头4bit表示:0100 0110
⚀ 首部长度
□ 因为IP包头长度是可变的所以首部长度标明了IP包头是多长 单位是 4字节也就是32bit,每个1都代表32bit,最常见0101,即这IP包头20字节,要和总长度区分开来。
⚀ 服务与优先级
□ 前3位 代表优先级
□ 中间4位 代表服务类型
□ 最后1位 没有被启用(保留)
✦ 一般很难用到,在服务运营商那用的多
□ QOS就是对这儿进行标记
⚀ 总长度
□ 表示了到这层为止的长度(5层数据+4层包头+3层包头的长度)
□ 超过1500就分片
⚀ 标识符
□ 是发送端随机生成的,用来表示同一个IP包
✦ 同一个IP包?
◊ 因为数据过大会切成多个数据发送
◊ 最后目标机组装的时候同一个ip包的就拼接在一起,就通过标识符识别是否是同一个IP包。
⚀ 标志
□ 标志位有3bit,目前只启用的两个,第一个bit位没有启用
□ 第一位
✦ 没有用(保留)
□ 第二位
✦ 如果第二个bit为1,则代表这个数据包没有被分片
✦ 如果第二个bit为0,则代表这个数据包进行了分片
□ 第三位
✦ 拼接的时候用来表示这个帧是不是最后一个分片
✦ 为1说明还有后续的分片
✦ 为0说明这是最后一个分片啦
□ 目前主流防火墙都不允许分片通过
✦ 因为可以不停的伪造段偏移量,导致重组失败,占用服务器内存。
◊ 所以就不在网络层进行分片了,而是在应用层,应用层直接分成1460字节,+20传输层协议,网络层一看刚好1480,自己再加20字节的ip协议正好1500MTU,省的自己再切片了,直接扔给数据链路层了,到数据链路层就加个首尾然后直接发出去了。
◊ 对方收到后相应的到应用层才开始重组。
⚀ 段偏移量
□ 众所周知一个帧最大长度是1518,去掉目标和源mac地址12B,去掉类型2B,去掉FCS 4B,中间MTU最大1500,这1500B中包含了所有的上三层协议,顶层数据很大,上三层流下来会超过1500,那么就要对数据进行切片,将数据通过多个帧发送出去,目标机收到之后进行拆封,拼接,但是互联网是瞬息万变的,第一个发出去的帧不一定是第一个到达的,那么拼接的顺序依据就是段位偏移量。
□ 段位偏移量:0,1480,2960…..累加1480
✦ 为什么累计1480呢而不是1500呢?不是说MTU最多1500吗?
◊ MTU1500其中还包含了20字节的IP协议,用来当导游呢,所以有效字节只能是1480,目标机收到之后先把0拆开放在第一位,此时数据就拼出来1480个了,接着把偏移量位1480的帧拆开并拼在第一个帧的的后面,依次类推。
○ 第二行
⚀ TTl
□ time to live
□ 生存时间,用来剔除垃圾包
□ 可以大概判断出对方是什么主机
✦ 100以上的一般是windos主机
✦ 100以下的一般是linux主机
✦ 255代表网络设备
□ 每被转发一次就减1
□ ttl使用完,改包就被丢弃了
□ tracert www.baidu.com
✦ 查看到达百度要经过几跳
⚀ 协议号
□ 识别上层协议(ICMP也包括)
✦ TCP
✦ UDP
✦ ICMP(这个是同层)
□ 6代表是TCP
□ 17代表UDP
□ 1代表同层ICMP
⚀ 首部校验和
□ 校验头部内容是否完整(只校验头部的20-60字节)
IP包头分析的更多相关文章
- TCP/IP协议栈概述及各层包头分析
TCP/IP协议栈中各层包头的分析 Protocol列表示的是该数据包最高层对应的协议,Length列表示该包的长度(包括从底层的协议到最高层的协议,其中包头一般是,链路层14字节,IP20字节,TC ...
- TCP、UDP、IP 协议分析
http://rabbit.xttc.edu.cn/rabbit/htm/artical/201091145609.shtml http://bhsc881114.github.io/2015/06 ...
- TCP、UDP、IP协议分析
此篇文章的原创作者是:草根老师博客(程姚根) chengyaogen.blog.chinaunix.net 感谢原作者! 互连网早期的时候,主机间的互连使用的是NCP协议.这种协议本身有很多缺陷,如: ...
- TCP、UDP、IP包头结构分析(转)
1.TCP数据段格式 TCP是一种可靠的.面向连接的字节流服务.源主机在传送数据前需要先和目标主机建立连接.然后,在此连接上,被编号的数据段按序收发.同时,要求对每个数据段进行确认,保证了可靠性.如果 ...
- IP包头
上图为IP报头的结构图,下图为捕捉的IP数据包
- IP包头结构详解
版本号(Version):长度4比特.标识目前采用的IP协议的版本号.一般的值为0100(IPv4),0110(IPv6) IP包头长度(Header Length):长度4比特.这个字段的作用是为了 ...
- IP包头部格式解析
IPv4首部一般是20字节长.在以太网帧中,IPv4包首部紧跟着以太网帧首部,同时以太网帧首部中的协议类型值设置为080016. IPv4提供不同,大部分是很少用的选项,使得IPv4包首部最长可扩展到 ...
- IP包头结构
版本号(Version): 长度4比特.标识目前采用的IP协议的版本号.一般的值为0100(IPv4),0110(IPv6) IP包头长度(Header Length): 长度4比特.这个字段的作用是 ...
- tcpdump使用和TCP/IP包分析
关于tcpdump如何抓包,本文不再总结,可以查看 tcpdump的官方地址查看http://www.tcpdump.org 本文重点记录两个部分: 第一部分:tcpdump所抓包 ...
随机推荐
- Day2 【Scrum 冲刺博客】
每日会议总结 昨天已完成的工作 方晓莹(PIPIYing) 新增人员管理页面的开发 静态页面的进一步完善 方子茵(Laa-L) 完成车辆查询接口 黄芯悦(Sheaxx) 新增社区通知页面 新增社区活动 ...
- Day6 Scrum 冲刺博客
一.站立式会议# 1. 会议照片 2. 工作进度+燃尽图 团队成员 昨日完成工作 今日工作计划 遇到的困难 周梓波 将方块旋转变形 添加键盘监听事件 不熟悉监听事件的操作 纪昂学 左右 ...
- 在Linux中使用Dbeaver等GTK3界面的软件出现频繁闪烁的问题解决
问题复现 复现环境LinuxMint 19 Dbeaver: 7.3 输入法: ibus + ibus-table-wubi 如图,当光标移动到Sql Editor中会不停的闪-- 解决过程 先百度. ...
- ubuntu18.04 登录界面循环,已解决
按照百度的方法,要卸载重装nvidia,遇到如下问题 1.进入Ubuntu字符界面,出现乱码,猜测是sudo命令出现问题,果然 解决方案:$ PATH=/usr/kerberos/sbin:/usr/ ...
- 算法——K 个一组翻转链表
给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序. 示例: 给你这个 ...
- PB级大规模Elasticsearch集群运维与调优实践【>>戳文章免费体验Elasticsearch服务30天】
[活动]Elasticsearch Service免费体验馆>> Elasticsearch Service自建迁移特惠政策>>Elasticsearch Service新用户 ...
- 移动端 canvas基础1
一.canvas画布 Canvas是HTML5中新出的一个元素,开发者可以通过JS脚本动态绘制图像. #1. 创建canvas画布 在页面中创建canvas标签,并设置其id和宽高 (不要通过css设 ...
- Flink连接器-批处理-读写Hbase
Flink批处理与hbase的读写 source-hbase 父类 是模仿官方写的. import org.apache.flink.api.common.io.LocatableInputSplit ...
- Linux系列之makefile的简单入门
什么是makefile呢? 一个工程中的源文件不计其数,其按类型.功能.模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译, ...
- 行业动态 | 每日处理2500万事务数据的IoT解决方案
借助DataStax Enterprise和其他开源的解决方案,Locstat为它的用户提供了创新的IoT解决方案,并将数据分析时间由2-3周降至数分钟内,从而快速生成用于分析的图数据.不仅如此,现在 ...