前言

简单介绍一下ip协议。

正文

先来看下ip协议在网络层的哪一层:

  1. 应用层
  2. 表示层
  3. 会话层
  4. 传输层
  5. 网络层
  6. 数据链路层
  7. 物理层

ip 层就在网络层:

其实很好想象哈,就是因为每台机器起码有一个ip地址,形成了这样一个网络。

ip 层的功能就是:

ip 寻址

选路

封装打包

分片

数据链路层功能:

  1. 逻辑链路控制
  2. 媒体访问控制
  3. 封装链路层帧
  4. mac 寻址
  5. 差错检测与处理
  6. 定义物理层标准

ip地址:

我们知道ip地址一共4个字节。

那么理论上有2的32次方个地址,也就是43亿多,现在来看肯定不够用了。

如果只是这样分类的话,那么有一个问题,什么问题呢?

那就是不满足一个需求,比如有一个社区是800台ip地址,这个时候分一个c类地址肯定不够,分一个b类地址又太大,这样会浪费的。

那么怎么破呢?

这个时候就要使用cidr 无分类地址:

cidr, classess inter-domain routing 这个意思。

表示方法就是a.b.c.d/b n 范围[0,32]

这样就可以根据n的范围然后进行划分了。

比如800台需要ip的,那么分的就是n是22(32-10)了,1024个ip了。

这个时候也很好判断一个ip是否在某个网络下。

比如某个网络的子网掩码是10.10.1.32/27。

那么这个网络为:00001010.00001010.00000001.00100000

这样的。 那么判断10.10.1.44 是否在这个网络中呢?

那么判断前27位是否一样,如果一样的话,那么就是在同一网络了。

另一个例子:10.10.1.90 前27位就不一样,那么这个时候就不在一个网络中。

那么他们的寻址方式是怎么样的呢?

比如MCI 分配了 208.128.0.0/11

MCI 将 208.130.28.0/22 分配给ars

ars 将 208.130.29.0/22 分配给publish servers 使用。

那么www.freesoft.org 使用208.130.29.33 地址。

那么先找到mci,然后找到了ars,然后ars 找到了publish servers,然后找到了这个地址。

然后有一些特殊的ip,全0或者全1的特殊含义。

这里就解释了,ip的一个分类,并且非常简单说了一下ip是怎么寻址的。

那么为什么有mac 地址呢? 不是说ip地址就可以找到机器了吗? 为什么还有这个mac地址呢?

有些人就说啊,有很多台机器共享一个ip,如果根据ip是找不到机器的。

这个怎么说呢? 其实是本末倒置了。因为ip层基于链路层,链路层是只有ip的,也就是你必须通过mac才能传输。

比如 a 要往 b发送信息,那么a必须知道b的mac地址,这样交换机才能知道发送给b。

为什么有ip这个东西呢?

想想一下这个时候,a 是将信息第一个交换机呢?还是将发给第二个交换机呢?对吧,如果有ip协议的话,那么就知道在那个子网,就知道发给哪个了,这就是ip的网络能力。

那就有人又问了,为什么不将mac 废除,然后直接使用ip呢?

这个时候可能有人回答ip没有那么多啊,而且又很多局域网,很难每台机器一个独立ip呢?

这的确是一个很大的问题,个人认为最大的原因是ip是动态的,而mac 是不变的。假如一台机器的a 通过几个网络访问到b,然后有一台机器c替换了b的ip,那么和a对话的就是b了。这样复杂度就很高了。

无论如何ip协议和链路层协议是相符的。

这个就是动态地址解析协议ARP (address resolution protocal).

动态解析广播。

那么比如a要发送到b,a 只能到b的ip地址,那么是如何获取b的mac地址呢?

首先a向交换机1发送广播,那么b收到了相应后,那么就会发送mac地址给a了。

a知道了b的mac地址就可以通信了。

但是如果每次都这样广播一次的话,那么实在性能太低了,这不是一般的低。

那么这个时候一般当a知道了 ip 的 mac 后就会进行缓存,下次对这个ip发送消息的时候拿下mac就好了。

那么查看一下本地缓存:

windows: arp -a
linux: arp -nv
mac: arp -nla

这里说明一下交换机的作用哈。

交换机的主要功能包括:学习功能、转发过滤和消除回路。

学习功能:以太网交换机知道连接到每个端口的设备的MAC地址,将该地址与相应的端口进行映射,并存储在交换机缓存的MAC地址表中。

转发过滤:当数据帧的目的地址在MAC地址表中被映射时,它被转发到与目的节点相连的端口,而不是所有端口。

消除环路:当交换机包括一个冗余环路时,以太网交换机通过生成树协议避免环路,同时允许备份路径。

现在一般是路由器了,路由器包含了交换机的功能,如果交换机1是路由器的话,那么直接这个路由器也是有arp的缓存的,如果有对应ip的mac地址直接发给了a了。

那么来看一下arp的报文格式。

arp 报文格式:

硬件类型: 如1 表示以太网

协议类型,如0*0800 表示ipv4

硬件地址长度,如6

协议地址长度: 如4表示ipv4

操作码:1 表示请求,2表示应答

发送方硬件地址

发送方协议地址

目标硬件地址

目标协议地址

这里抓个包看下哈:

看下请求的哈:

这里opcode 为1,那么就是请求的了。

如果protocol size是4,protocol type 是0x0800,那么就是ipv4了。

然后请求的地址是192.168.0.100。

然后随便找一个响应的:

然后有一个非常关键的问题得说明一下,那就是arp协议是存在局域网中,而不是广域网。

1、arp是地址解析协议,根据IP地址获取物理地址的一个TCP与IP协议。

2、arp协议工作的解析范围只限于本地网络也就是局域网之中,arp协议工作的范围是不能用于广域网的。

所以不要想通过arp找到百度的mac地址。

怎么说呢? 如果是广域网的话,你的包首先发送给了网关,网关会修改你包中的mac地址。

抓个百度的包看下:

看到了吧目标的mac地址是你的网关地址。

然后看下百度给你的,到你手里的包是怎么样的?

这个发送给你的mac地址是网关。

那么有ip解析成mac,自然就有mac解析成ip了,这个就是rarp。

这个怎么说呢?就是如果你电脑启动的时候是没有分配ip的,那么你就得问啊,我的mac地址是这个,那么我的ip地址是怎么样的呢?

协议如下:

硬件类型: 如1 表示以太网

协议类型,如0*0800 表示ipv4

硬件地址长度,如6

协议地址长度: 如4表示ipv4

操作码:3 表示请求,4表示应答

发送方硬件地址

发送方协议地址

目标硬件地址

目标协议地址

然后介绍一个arp攻击,这个攻击很简单。

比如,a b c 机器的mac地址分别是aa,bb,cc

当a要发信息给b192.168.0.2的时候,那么c 回答 192.168.0.2 的mac地址是cc。

同样c要发消息给192.168.0.3 的时候,c也回答a的地址是cc。那么a b 直接的通信都到了c。

先到这里,后续继续补充ip相关协议。

抓包整理————ip 协议一[十二]的更多相关文章

  1. wireshark 抓包分析 TCPIP协议的握手

    wireshark 抓包分析 TCPIP协议的握手 原网址:http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html 之前写过一篇 ...

  2. Wireshark数据抓包分析——网络协议篇

                   Wireshark数据抓包分析--网络协议篇     watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGF4dWViYQ==/ ...

  3. SMB协议利用之ms17-010-永恒之蓝漏洞抓包分析SMB协议

    SMB协议利用之ms17-010-永恒之蓝漏洞抓包分析SMB协议 实验环境: Kali msf以及wireshark Win7开启网络共享(SMB协议) 实验步骤: 1.查看本机数据库是否开启,发现数 ...

  4. 网络协议抓包分析——IP互联网协议

    前言 IP协议是位于OSI模型的第三层协议,其主要目的就是使得网络间可以相互通信.在这一层上运行的协议不止IP协议,但是使用最为广泛的就是互联网协议. 什么是IP数据报 TCP/IP协议定义了一个在因 ...

  5. 抓包整理外篇fiddler———— 会话栏与过滤器[二]

    前言 简单介绍一下会话栏和过滤器 正文 在抓包的时候这两个可以说是必用吧. 会话栏: 会话栏我这里介绍根据左边部分和右边部分. 左边部分是一些图标,有些人发现有个习惯,不习惯看图标. 其实说白了,我们 ...

  6. Wireshark网络抓包(三)——网络协议

    一.ARP协议 ARP(Address Resolution Protocol)地址解析协议,将IP地址解析成MAC地址. IP地址在OSI模型第三层,MAC地址在OSI第二层,彼此不直接通信: 在通 ...

  7. tcpdump抓包二进制tcp协议详细分析

    1.tcpdump -i eth0 port 11751 and src host 192.168.1.34 -x -s0 tcpdump: verbose output suppressed, us ...

  8. Ubuntu 12.04 LTS 下配置 apache支持SPDY, 使用wireshark 抓包分析SPDY 协议

    1.安装apache sudo apt-get install apache2 root@ubuntu:/etc/apache2/mods-enabled# apache2 -v Server ver ...

  9. IP协议解读(二)

    IP协议是TCP协议栈中的核心协议,也是网络编程的基础之中的一个. 我们接着在IP协议解读(一)继续学习 网络层作用 IP分片: IP数据报的长度超过帧的MTU时,将会被分片传输. 分片可能发生在发送 ...

随机推荐

  1. 第九十三篇:ESLint:可组装的javaScript和JSX检查工具

    好家伙, 1.什么是ESLint? 代码检查工具,用来检查你的代码是否符合指定的规范 2.ESLint有什么用? 统一JavaScript代码风格的工具 在合作开发的时候, 每个成员的代码风格都有可能 ...

  2. rh358 004 bind反向,转发,主从,各种资源记录 unbound ansible部署bind unbound

    通过bind实现正向,反向,转发,主从,各种资源记录 7> 部署反向解析 从ip解析到fqdn vim /etc/named.conf zone "250.25.172.in-addr ...

  3. 【读书笔记】C#高级编程 第三章 对象和类型

    (一)类和结构 类和结构实际上都是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法. 类和结构的区别:内存中的存储方式.访问方式(类是存储在堆上的引用类型,结构是存储在栈的值类型)和它 ...

  4. 华南理工大学 Python第5章课后小测-1

    1.(单选)以下哪个函数的定义是错误的?(本题分数:2)A) def vfunc(a,b=2):B) def vfunc(a,b):C) def vfunc(a,*b):D) def vfunc(*a ...

  5. 坚守自主创新,璞华HawkEye IETM系统惠及国计民生

    可上九天揽月,可下五洋捉鳖,这是我们很多年的梦想.而要实现这样的梦想,不仅需要安全可靠的技术装备,还需要让这些技术装备处于良好的维保状态.于是,作为装备维保过程中必须的知识创作.管理.发布.浏览工具, ...

  6. 【微服务】- 配置中心 - Nacos

    微服务 - 配置中心 - Nacos 一个有梦有戏的人 @怒放吧德德 分享学习心得,欢迎指正,大家一起学习成长! 今天的学习任务就是学习使用Nacos作为配置中心. 努力克制自己,拒绝摆烂! 什么是配 ...

  7. Java SpringBoot 项目构建 Docker 镜像调优实践

    PS:已经在生产实践中验证,解决在生产环境下,网速带宽小,每次推拉镜像影响线上服务问题,按本文方式构建镜像,除了第一次拉取.推送.构建镜像慢,第二.三-次都是几百K大小传输,速度非常快,构建.打包.推 ...

  8. 论文解读(FedGAT)《Federated Graph Attention Network for Rumor Detection》

    论文信息 论文标题:Federated Graph Attention Network for Rumor Detection论文作者:Huidong Wang, Chuanzheng Bai, Ji ...

  9. sql 中HAVING函数

    select * from <表名> group by<过滤的数据> having <晒选的列名>=<条件> 例 select * from villa ...

  10. 基于Netty的TCP服务框架

    19年写的一个基础的TCP服务框架,内置了一个简单IOC容器,当时的目标是一方面能作为组件供第三方集成实现TCP通讯相关功能,另一方面作为提供一种服务框架范式.所以框架核心点主要还是通过适度的封装,隐 ...