文章目录

  • 1 交换机
    • 1.1 基本的架构图
    • 1.2 交换机的工作原理
    • 1.3 交换机以太网接口的工作模式
    • 1.4 交换机使用命令行进行配置管理
  • 2 IP数据报格式
  • 3 ICMP协议
  • 4 ARP协议
    • 4.1 ARP协议概念
    • 4.2 工作原理(结合交换机原理)
    • 4.3 ARP原理演示
    • 4.4 Windows查看ARP缓存表(静态ARP和动态ARP)
    • 4.5 华为系统中的ARP命令
    • 4.6 ARP攻击与欺骗
    • 4.7 ARP报文(抓包分析)

1 交换机

1.1 基本的架构图

1.2 交换机的工作原理

以太网MAC地址
用来识别一个以太网上的某个单独的设备或一组设备

以太网帧格式

1)主机A会将一个源MAC地址为自己,目标MAC地址为主机B的数据帧发送给交换机。
2)交换机收到此数据帧后,首先将数据帧中的源MAC地址和对应的接口(接口为1) 记录到MAC地址表中。
3)然后交换机会检查自己的MAC地址表中是否有数据帧中的目的MAC地址的信息,如果有,则从MAC地址表中记录的接口发送出去,如果没有,则会将此数据帧从非接收接口的所有接口发送出去(也就是除了1接口)。
4)这时,局域网的所有主机都会收到此数据帧,但是只有主机B收到此数据帧时会响应这个广播,并回应一个数据帧,此数据帧中包括主机B的MAC地址。如果没有主机相应这个广播,则会继续向下一个交换机或路由器传播。
5)当交换机收到主机B回应的数据帧后,也会记录数据帧中的源MAC地址(也就是主机B的MAC地址),这时,再当主机A和主机B通信时,交换机根据MAC地址表中的记录,实现单播了。
总的来说
当A要和B通信时,会发送一个数据帧(自己的MAC地址和B的MAC地址,即源地址和目的地址);
A将这个数据帧发给交换机,交换机知道了A的MAC地址,并记录到MAC表中,但是交换机不知道B的MAC地址是谁;
这个时候就需要给主机B和主机C广播,主机B接收到数据之后,看到是自己的,这个时候就会给交换机一个回应;
交换机收到B的回应之后,把主机B的MAC地址记录到MAC表中,主机A和主机下次再进行通信,实现单播传播。



1.3 交换机以太网接口的工作模式

单工

  • 两个数据站之间只能沿单一方向传输数据

    半双工
  • 两个数据站之间可以双向数据传输,但不能同时进行
    全双工
  • 两个数据站之间可双向且同时进行数据传输

交换机以太网接口速率

  • 接口连接时进行协商 (低速率为准)
  • 协商失败则无法正常通信

配置前的连接

  • Console电缆
  • 物理连接
    计算机COM口
    交换机/路由器Console口
  • 软件连接
    超级终端
    其他软件

1.4 交换机使用命令行进行配置管理

  • 用户视图:基本操作,查看基本信息
  • 系统视图:进阶操作,配置静态路由,动态路由:rip,ospf,BGP
  • 接口模式:配置ip地址等操作

用户视图模式切换至系统视图模式[Huawei]

<Huawei>system-view
<Huawei>sys
退回用户视图
ctrl+z
[Huawei] quit


1、历史命令查询

[Huawei] display history-command

2、配置主机名

<Huawei> system-view
[Huawei] sysname Router1


3、状态信息查询

<Huawei> display version   ####查看VRP版本
<Huawei> display users    ####查看用户终端信息


4、进入接口模式并查看信息

<Huawei> sys
[Huawei]int e0/0/1
[Huawei-GigabitEthernet0/0/1]dis this   ####查看当前视图下的配置信息


5、配置文件管理命令

[Huawei]display saved-configuration     ###查看设备保存的信息
[Huawei]display current-configuration   ###查看设备当前配置的信息
<SW1>save                             ###保存配置
<Huawei>reset saved-configuration      ###擦除存储设备中的配置文件(初始化)
<Huawei>compare configuration          ###比较当前配置信息与存储设备中的保存文件是否一致


6、关闭华为的信息提示中心

[Huawei]undo info-center enable
或者
<Huawei>undo terminal monitor


7、永不超时

[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0

8、配置双工及速率命令

<Huawei>sys
[Huawei]int g0/0/1
[SW1-Ethernet0/0/1]undo negotiation auto    ###关闭自动协商
[SW1-Ethernet0/0/1]speed 100                ###调至速率100M
[SW1-Ethernet0/0/1]duplex full              ###调至全双工模式, 解释:full:Full-Duplex(全双工模式)   half:Half-Duplex(半双工模式)

9、保存配置

<Huawei>save

CRT一种远程连接设备 交换机在北京 工位在南京 CRT通过网络可以远程和真实交换机相连
10、设置远程登录密码

[Huawei]user-interface vty 0 4           #0是初始值,4是结束值。表示可同时打开5个会话进入交换机去配置命令
[Huawei-ui-vty0-4]authentication-mode password
[Huawei-ui-vty0-4]set authentication password simple 222
[Huawei-ui-vty0-4]user privilege level 3
[Huawei-ui-vty0-4]dis this

用SecureCRT链接eNSP
●双击打开某台设备有【视图】和【配置】,打开【配置】—窗口配置:串口号:2000 ###这个是端口号
●打开SecureCRT 点击【链接】—【Protocol】Telnet----【Hostname】127.0.0.1----【Prot】2000
●当前终端被打开—断开【disconnect】----会话【session options】-----强制每次一个字符模式【Force charater at atime mode】—保存【OK】
●右击当前终端—链接【reconnect】




2 IP数据报格式

TCP/IP协议定义了一个在因特网上传输的包,称为IP数据报(IP Datagram)。这是一个与硬件无关的虚拟包,由首部和数据两部分组成,其格式如图所示。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。首部中的源地址和目的地址都是IP协议地址

IP数据包格式(分为20字节的固定部分,表示每个ip数据包必须包含的部分,和40字节的可变长部分)

  • 版本号(4bit):指IP协议版本。并且通信双方使用的版本必须一致,目前广泛使用的IP协议版本号为4(即IPv4,表示为0100(用来确定是IPv4还是IPv6)

  • 首部长度:IP数据包的包头长度,首部长度占4位,最常用的首部长度就是20字节(即首部长度为0101)(数据包不包括数据的长度)

  • 优先级与服务类型(8):该字段用于表示数据包的优先级和服务类型。通过在数据包中划分一定的优先级,用于实现 QoS(服务质量)的要求。

  • 总长度(16):总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为2^16-1=65535字节。

  • 标识符(16):该字段用于表示IP数据包的标识符。当IP对上层数据进行分片时,它将给所有的分片分配一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误地重组。标识符字段用于标志一个数据包,以便接收节点可以重组被分片的数据包

  • 标志:标志(flag)占3位,但目前只有2位有意义。
    1)标志字段中的最低位记为MF(More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。
    2)标志字段中间的一位记为DF(Don’tFragment),意思是“不能分片”。只有当DF=0时才允许分片。

  • 片偏移量:片偏移占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。
    这就是说,每个分片的长度一定是8字节(64位)的整数倍。

  • 生命周期:生存周期占8位,生存周期字段常用的的英文缩写是TTL(Time To Live),可以防止一个数据包在网络中无限循环的转发下去,若数据报在路由器消耗的时间小于1秒,就把TTL值减1。当TTL值为0时,就丢弃这个数据报。
    TTL通常是32或者64,scapy中默认是64

  • 首部校验和:首部检验和占16位。这个字段只检验数据报的首部,不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。

  • 协议号:协议占8位,封装的上层哪个协议,ICMP:1 TCP:6 UDP:17

  • 源地址:源地址占32位。ip地址,表示发送端的IP地址

  • 目标地址:目的地址占32位。目标ip地址,表示接收端的IP地址

  • 可选项:选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据
    注:根据实际情况可变长,例如创建时间等 上层数据

ping选项:

-t             Ping 指定的主机,直到停止。若要查看统计信息并继续操作,请键入 Ctrl+Break;若要停止,请键入 Ctrl+C。-a             将地址解析为主机名。-n count       要发送的回显请求数。-l size        发送缓冲区大小。-f             在数据包中设置“不分段”标记(仅适用于 IPv4)。-i TTL         生存时间。-v TOS         服务类型(仅适用于 IPv4。该设置已被弃用,对 IP 标头中的服务类型字段没有任何影响)。-r count       记录计数跃点的路由(仅适用于 IPv4)。-s count       计数跃点的时间戳(仅适用于 IPv4)。-j host-list   与主机列表一起使用的松散源路由(仅适用于 IPv4)。-k host-list    与主机列表一起使用的严格源路由(仅适用于 IPv4)。-w timeout     等待每次回复的超时时间(毫秒)。-R             同样使用路由标头测试反向路由(仅适用于 IPv6)。根据 RFC 5095,已弃用此路由标头。如果使用此标头,某些系统可能丢弃回显请求。-S srcaddr     要使用的源地址。-c compartment 路由隔离舱标识符。-p             Ping Hyper-V 网络虚拟化提供程序地址。-4             强制使用 IPv4。-6             强制使用 IPv6。

3 ICMP协议

Internet控制消息协议ICMP (Internet Control Message Protocol)是IP协议的辅助协议

ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。

  • ICMP是一个“错误侦测与回馈机制"
  • 通过IP数据包封装的
  • 用来发送错误和控制消息
Type Code 描述
0 0 Echo Reply
3 0 网络不可达
3 1 主机不可达
3 2 协议不可达
3 3 端口不可达
5 0 重定向
8 0 Echo Request

功能:Ping
Ping是网络设备、Windows、Unix和Linux平台上的一个命令,其实是一个小巧而实用的应用程序,该应用基于ICMP协议。
Ping常用于探测到达目的节点的网络可达性。
ping命令的基本格式

C: \>ping [-t] [-l 字节数] [-a] [-i] IP_Address| target_name

ping命令的返回信息



-t参数会一直不停的执行pingWindows系统和Linux系统对比

  • 调试故障或需进行持续连通性测试时应用
  • Ctrl+C可以中断命令


-nWindows系统和Linux系统对比

4 ARP协议

4.1 ARP协议概念

ARP协议是地址解析协议(Address Resolution Protocol)是通过解析IP地址得到MAC地址的,是一个在网络协议包中极其重要的网络传输协议,它与网卡有着极其密切的关系。
在TCP/IP分层结构中,把ARP划分为网络层,所有ARP协议在网络层被应用,它是网络层与链路层连接的重要枢纽,每当有一个数据要发送的时候都需要在通过ARP协议将IP地址转换成MAC地址,在IP层及其以上的层次看来,他们只标识IP地址,从不跟硬件打交道

arp协议如何工作的

为了实现IP地址与MAC地址的查询与转换,ARP协议引入了ARP缓存表的概念,每台主机或路由器在维护着一个ARP缓存表(ARP table),这个表包含IP地址到MAC地址的映射关系,表中记录了<IP地址,MAC地址>对,我称之为ARP表项。他们是主机最近运行时获得关于其他主机的IP地址到MAC地址的映射,当需要发送数据的时候,主机就会根据数据报中的目标IP地址信息,然后在ARP缓存表中进行查找对应的MAC地址,最后通过网卡将数据发送出去。ARP缓存表包含一个寿命值(TTL,也称作生存时间),它将记录每个ARP表项的生存时间,生存时间到了就会从缓存表中删除。从一个表项放置到ARP缓存表中开始,一个表项通常的生存时间一般是10分钟吗,当然,这些生存时间是可以任意设置的,我们一般使用默认即可。

4.2 工作原理(结合交换机原理)

1、两台局域网主机互相通信为例讲解原理

ARP解析过程

  1. 当PC1想发送数据给PC2,首先在自己的本地ARP缓存表中检查主机PC2的MAC地址是否存在?
  2. 如果PC1缓存中没有找到响应的条目,它将询问主机PC2的MAC地址,从而将ARP请求帧广播到本地网络的所有主机。 该帧中包括源主机PC1的IP、MAC地址,本地网络中的所有主机都接收到ARP请求,并且检查是否与自己的IP地址相匹配。如果发现请求中IP地址与自己IP不匹配,则丢弃ARP请求。
  3. 主机PC2确定ARP请求中得IP地址与自己的IP地址匹配,则将主机PC1的地址和MAC地址添加到本地缓存表中。
  4. 主机PC2将包含其MAC地址的ARP回复消息直接发送回主机PC1(数据帧为单播)。
  5. 主机PC1收到PC2发的ARP回复消息,将PC2的IP和MAC地址添加至自己ARP缓存表中,本机缓存是有生存期的,默认ARP缓存表有效期120s。当超过该有效期后,则将重复上面过程。主机PC2的MAC地址一旦确定,主机PC1就能向主机PC2发送IP信息

精简版

ARP工作原理:

  • PC1想发送数据给PC2, 会先检查自己的ARP缓存表。 只在终端设备上
  • 如果发现要查找的MAC地址不在表中,就会发送一个ARP请求广播,用于发现目的地的MAC地址。
    ARP请求消息中包括PC1的IP地址和MAC地址以及PC2的IP地址和目的MAC地址(此时为广播MAC地址FF-FF-FF-FF-FF-FF)
  • 交换机收到广播后做泛洪处理,除PC1外所有主机收到ARP请求消息,PC2以单播方式发送ARP应答, 并在自己的ARP表中缓存PC1的IP地址和MAC地址的对应关系,而其他主机则丢弃这个ARP请求消息。
  • PC1在自己的ARP表中添加PC2的IP地址和MAC地址的对应关系,以单播方式与PC2通信。

4.3 ARP原理演示

需求分析

  • 对等网的环境
  • PC1和PC2第一次通信

    实现步骤
  • 使用ipconfig/all查看PC1和PC2的MAC地址
  • 用“arp-a”查看ARP缓存
  • 在PC1上ping PC2后,再用“arp-a”查看ARP缓存表

4.4 Windows查看ARP缓存表(静态ARP和动态ARP)

arp -a          ###查看arp缓存表
arp -d [IP]     ###删除arp缓存表
arp -s IP MAC   ###删除arp静态绑定

如提示ARP项添加失败,解决方案:
a、用管理员模式:电脑左下角“开始”按钮右键,点击"Windows PowerShell (管理员) (A)”或者
进入C盘windows \system32文件夹找到cmd.exe, 右键“以管理员身份运行”再执行arp -s命令:

绑定arp(win10)
cmd中输入
netsh -c i i show in
#查看网络连接准确名称,如:本地连接、无线网络连接
netsh -c “i i” add neighbors 19 “IP” “Mac”,这里19是idx号。//绑定
netsh -c “i i” delete neighbors 19,这里19是idx号。  //解绑
netsh interface ipv4 set neighbors <接口序号> <IP> <MAC>

动态ARP表项老化:在一段时间内(默认180s)如果表项中的ARP映射关系始终没有使用,则会被删除。通过及时删除不活跃表项,从而提升ARP响应效率

4.5 华为系统中的ARP命令

[Huawei]dis mac- address ## #查看mac地址信息
[Huawei]arp static <IP> <MAC> ## #绑定ARP
[Huawei]undo arp static <IP> <MAC>  ###解绑定
<Huawei>reset arp all ###清除mac地址表

4.6 ARP攻击与欺骗

ARP攻击发送的是ARP应答,但是ARP应答中的MAC地址为虚假地址,所以在其他主机想要进行通信时,会将目的MAC地址设置成此虚假MAC地址导致无法正常通信。
例如:如果希望被攻击主机无法访问互联网,就需要对网关发送或被攻击主机发送虚假的ARP应答。当网关接收到虚假的ARP应答更新ARP条目后,如果网关再发生数据给PC1时,就会发送到虚假的MAC地址导致通信故障。

举例说明,例如张三要给李四打电话,他首先要知道李四的电话号码,这时有人告诉他李四的电话号码是12345678(不存在的号码),于是张三就把电话打到12345678,这样就无法找到李四了。

ARP欺骗的原理和ARP攻击基本相同,但是效果不一样。ARP攻击最终的结果是导致网络中断,而ARP欺骗的最终结果是使得流量通过自身达到监控或控制的目的。

4.7 ARP报文(抓包分析)

重点有源ip目标ip和源mac和目标mac
目的MAC地址: 54:89:98:0F:2B:BE
源MAC地址: 54:89:98:5B:5B:8A
帧类型: 0x0806 --长度为2字节,0x0806代表为ARP packe
硬件类型:0x0001 --长度为2字节,表示网络类型;以太网取值为1
协议类型:0x0800 --长度为2字节,表示要映射的协议地址类型。取值为0x0800,表示根据IP地址来进行映射
硬件地址长度:0x06 --长度为1字节,表示硬件地址长度;取值为0x06,以太网中表示MAC地址长度为6字节
协议地址长度:0x04 --长度为1字节,表示协议地址长度;取值为0x04,以太网中表示IP地址长度为4字节
op: 0x0002 --长度为2个字节,表示ARP报文的种类;取值为1,表示请求报文;取值为2,表示ARP应答报文
发送端MAC地址: 54:89:98:5B:5B:8A (信息体的发起端)
发送端IP地址: 0A:00:00:02 (转换即为10.0.0.2)
目的端 MAC地址:54:89:98:0F:2B:BE
目的端IP地址:0A:00:00:01 (转换即为10.0.0.1)

交换机与IP数据报、ICMP协议、ARP协议相关推荐

  1. TCP/IP网络协议栈:ARP协议详解

    <TCP/IP网络协议栈:以太网数据包结构.802.3> <TCP/IP网络协议栈:ARP协议详解> <TCP / IP攻击:ARP缓存中毒的基本原理.TCP序列号预测和 ...

  2. Linux_网络_数据链路层协议 MAC帧/ARP协议 (以太网通信原理,MAC地址与IP地址的区分,MTU对IP/TCP/IP的影响,ARP协议及其通信过程)

    文章目录 1. 以太网(基于碰撞区与碰撞检测的局域网通信标准) 2. 以太网的帧格式(MAC帧) MAC地址,IP地址的区分 MTU MTU对IP协议的影响 MTU对TCP/UDP协议的影响 3.AR ...

  3. 网络基础链路层--eth协议arp协议mtu

    网络基础链路层--eth协议&arp协议&mtu 一.链路层 二.eth-以太网协议 (一)mac地址 三.arp-地址解析协议 (一)解析流程 (二)arp缓存为什么只有很短的一段时 ...

  4. 网络层ICMP和ARP协议介绍

    第四章.网络层协议介绍 文章目录 第四章.网络层协议介绍 一.IP数据包格式 二.ICMP协议介绍(Internet控制报文协议) ping命令的用法:结合具体在什么场景使用什么选项 三.ARP协议介 ...

  5. gns3中两个路由器分别连接主机然后分析ip数据转发报文arp协议_TCP/IP协议知识总结...

    总体 首先,展示下总体的思维导图.接下来,按照每个点解释. OSI七层模型 开放式系统互联模型(英语:Open System Interconnection Model,缩写:OSI:简称为OSI模型 ...

  6. gns3中两个路由器分别连接主机然后分析ip数据转发报文arp协议_关于TCP/IP,必知必会的十个问题!...

    本文整理了一些TCP/IP协议簇中需要必知必会的十大问题,既是面试高频问题,又是程序员必备基础素养. TCP/IP十个问题 TCP/IP十个问题 一.TCP/IP模型 TCP/IP协议模型(Trans ...

  7. 简单聊聊常用的ICMP、ARP协议

    文章目录 拓扑 ARP的工作原理 ICMP原理描述 拓扑 [Huawei]sysname AR1 [AR1]int g0/0/0 [AR1-GigabitEthernet0/0/0]ip addres ...

  8. gns3中两个路由器分别连接主机然后分析ip数据转发报文arp协议_ARP协议在同网段及跨网段下的工作原理...

    前言:ARP协议是在链路层通讯中,已知目标IP地址,但是,仅有IP 地址是不够的,因为IP数据报必须封装成帧才能通过数据链路进行发送,而数据帧必须要有目的MAC地址,每一个网络设备在数据封装前都需要获 ...

  9. TCP/IP协议--ARP协议(有了IP地址为什么还需要ARP协议)

    首先我们需要先大致了解一下MAC地址,MAC(Media Access Control, 介质访问控制)地址是烧录在Network Interface Card(网卡,NIC)里的,也叫硬件地址,是由 ...

最新文章

  1. MySql库中所有表的属性_SQL查询某库所有的表所有的字段及字段的属性
  2. JavaScript的数据访问总结
  3. stringstream精度问题
  4. Netty实战 IM即时通讯系统(二)Netty简介
  5. mysql 存储 事务_MYSQL 可以在存储过程里实现事务控制吗
  6. 医学图像分析最新综述:走向深度
  7. mysql+php+模板+条目_PHP.MVC的模板标签系统(四)
  8. Day24-Ajax文件上传
  9. java软件工程师自我评价_电子技术研发工程师简历自我评价填写样本
  10. 台式计算机无故重启,台式电脑突然自动重启是怎么回事
  11. 数据字典的作用和定义(软件工程)
  12. Dubbo 线上 Thread pool is EXHAUSTED 问题跟踪
  13. 测试用例的设计-提高测试覆盖率
  14. [动态系统的建模与分析]15_伯德图,bode图,为什么是20logM?分贝又是什么?
  15. 影响因子,计算机科学,影响因子最高计算机科学期刊(前50种).doc
  16. 时间t与时间管理——柳比歇夫、德鲁…
  17. Linux一键安装xrdp,如何在Linux系统Ubuntu 20.04中安装xrdp实现远程桌面连接RDP
  18. C#自学42一抽象类和接口
  19. 微信小程序checkbox被挤压变形解决办法
  20. Java计算两个时间的小时差

热门文章

  1. 高中数学教科书选修系列介绍
  2. 爬虫+可视化——链家杭州二手房房源信息
  3. 无穷积分的符号计算及其MATLAB程序
  4. 组态王与三菱PLC编程软件GXWorks2通过OPC数据库进行动态仿真
  5. ida pro 反汇编 Android so 库后修改 arm 汇编指令的方法总结
  6. Jenkins SonarQube Quality Gate质量门禁检查
  7. (转载)(官方)UE4--图像编程----着色器开发----HLSL 交叉编译器
  8. MTK方案上基于Android N拦截黑名单中的短/彩信的方法
  9. php curl模拟wss,使用Poco C++库创建websocket安全访问(wss)客户端
  10. matlab分形曼德勃罗,曼德勃罗集合分形图案