1. 网络协议和网络分层 OSI TCP/IP 二层、三层和四层
  2. IP地址 IPv4和IPv6 网络的划分(VLSM)和网络的汇总(CIDR)
  3. IP路由原理:
    connect 直连
    static 静态
    dynamic 动态 IGP: eigrp和ospf
    EGP: bgpv4
  4. 以太交换原理:
    vlan
    pvst+
    rapid-pvst+
    Port-channel
  5. Ppp ppp-authentication
  6. acl
  7. Nat

哑终端

full mesh 全互联 任意两点之间都会互联

交换和路由不太一样

如果只是简单的交换机串联,通过交换技术就可以实现互通

但是如果是跨越广播域,则需要路由!

复用同一个物理链路 会不会产生拥塞?

QoS服务质量

协议和模型:

协议层面:先有的TCP/IP后有的OSI

模型层面:先有的OSI后有的TCP/IP

民科

OSI模型:首先提出了分层结构

TCP/IP:

PDU:protocol data unit

封装:encapsulate

由发送端完成,在发送端,由上到下

解封装:

由接收端完成,在接收端,由下到上

提问:

在接收端,收到一个frame,解封装frame头部之后,需要将packet向自己的上层运送。

但是应该交付给上层的哪个协议呢?接收端是如何知道的呢?

这个需要二层头部信息中的type字段来完成!type被称为“上层信息索引”

注意:

任何会被解封装的头部中,都会存在“上层信息索引”!

以太二层头部:

IEEE802.3

Ethernet-II:|D-MAC|S-MAC|type|

MAC地址:3c:97:0e:0c:9a:42

使用十六进制方式表达。表发方式可能是:分,也可能是-分。

3c:97:0e:0c:9a:42

3c-97-0e-0c-9a-42

其长度为48bit

1Byte=8bits

1个十六进制位对应4个bit,那么MAC地址中的每个段都是1个Byte!

MAC地址分为前24bit和后24bit。

前24bit被称为:OUI organization unique ID IANA

后24bit就是厂商自主定义。

提问:MAC地址是否可以修改?

一个网卡接口向外发送一个以太数据帧,那么这个以太数据帧的S-MAC字段会被该网卡接口的MAC地址来填充。(这个是默认行为)

  1. 在frame中,S-MAC和D-MAC这两个字段的内容填充,都是基于软件实现的。既然是基于软件实现的,就可以修改。
  2. 在网卡的芯片中,被烧制进去的MAC地址,是不可以被修改的!

对等通信: peer to peer communication

其本质就是同层级之间相互通信!

基于对等通信原则,咱们得出一个推论:

身为发送端发送数据时,必须得先完成frame的封装,才有资格被发送出去。(成帧)

若要成帧,必须得有一个完整的二层头部。以ethernet-II为例,那么这个完整的二层头部中必须具备如下三个字段的信息:

  1. D-MAC
  2. S-MAC
  3. type

以上三个字段,缺一不可!

是否会收到和是否会理睬,是两回事!

极有可能存在的情况是:收到了,但是不理睬(不回复)。这种情况千万不要简单的认为是没收到!

ARP 地址解析协议:

动态:

A需要知道B的MAC

A会向外发送ARP-request(broadcast frame)

=========================

D-MAC:FF-FF-FF-FF-FF-FF

S-MAC:a-a-a

type:0x0806

=========================

sender-mac:a-a-a

sender-ip:12.1.1.1

target-mac:00-00-00-00-00-00(FF-FF-FF-FF-FF-FF)

target-ip:12.1.1.2

=========================

B会向外回复ARP-reply(unicast)

=========================

D-MAC:a-a-a

S-MAC:b-b-b

type:0x0806

=========================

sender-mac:b-b-b

sender-ip:12.1.1.2

target-mac:a-a-a

target-ip:12.1.1.1

=========================

A收到B的ARP-reply之后,会做两件事(这两件事并非先后关系):

  1. 基于获得的B的MAC地址,去执行刚刚挂起的ping进程
  2. 基于获得的B的MAC地址,将其存入到自己的(A的)ARP表中。下次通信时就不需要再执行解析动作,直接从自己的ARP表中获取信息,直接封装。
    注:ARP表实际上记录的就是MAC地址和IP地址之间的对应关系!

免费ARP:在设备接口up起来的一刹那,该接口会向外发送免费ARP。

用来进行冲突IP地址探测!

=========================

D-MAC:FF-FF-FF-FF-FF-FF

S-MAC:a-a-a

type:0x0806

=========================

sender-mac:a-a-a

sender-ip:12.1.1.1

target-mac:00-00-00-00-00-00(FF-FF-FF-FF-FF-FF)

target-ip:12.1.1.1

=========================

提问:正常情况下,会有人理睬他吗?

正常情况下,肯定是没人理我。

但是如果有人理睬我了呢?说明那个人和我IP地址冲突了!

老而不死是为贼。凡事都应该有个寿命!

TTL是IP数据包的寿命,IP数据包每跨越一跳,则TTL值减一。(跨越一跳的含义是指跨越一台路由器)

当一台路由器收到TTL值为0的IP数据包时,则将该数据包直接丢弃掉。

TCP:现代社会的谦谦君子,有涵养,懂谦让

UDP:原始社会的野蛮人,不管这么多。只要争抢资源!

关于网关的理解:

什么是网关呢?gateway?

数据帧在跨越路由器转发时,默认情况下,三层地址不发生变化,二层地址会逐链路(每跨越一台路由器)发生变化!

CSMA/CD 载波监听多路访问/冲突检测

  1. 先听后发
  2. 边发边听
  3. 一旦冲突,立即退避

冲突域的边界在交换机的端口上

广播域的边界在路由器的接口上

不同设备互联使用直通线

相同设备互联使用交叉线

注意:其中PC和router被视为相同设备

双绞线线序:

568B:

568A:

双绞线两端线序一致,则是直通线。

双绞线两端线序不一致,则是交叉线。

tab键可以自动补全命令:

Router>enable

Router#configure terminal

Router(config)#

基础命令介绍:

  1. 修改设备的名称:
    Router(config)#hostname R1
    R1(config)#
  2. 接口下配置IP地址:
    R1(config)#interface fastEthernet 0/0
    R1(config-if)#ip address 12.1.1.1 255.255.255.0
    R1(config-if)#no shutdown
  3. ping测试:
    R1#ping 12.1.1.2 (请注意ping要在#模式下进行)
  4. 查看arp表:
    R1#show arp

注意:

show 命令是非常重要的命令,用来查看各种信息。但是show命令只能在#模式下生效。

例如:show running-config. 查看内存中的所有配置。

设备启动的基本流程:

  1. 开机自检
  2. 文件解压
  3. 加载系统文件
  4. 加载配置文件 | Show running-config | show startup-config | | —- | —- | | Memory/RAM(类似于内存) | FLASH/ROM(类似于硬盘) |

若要保存配置文件需要如下操作:

R1#write (请注意write要在#模式下进行)

R1#copy running-config startup-config

以上两个命令,效果一致。

R1#erase startup-config 擦掉被保存的配置(清空已保存配置)

BIN

DEC:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

HEX:0 1 2 3 4 5 6 7 8 9 A B C D E F

DEC: 10 10

HEX: 10 16

Homework:

Lab01:

实现R1和R2互通。

需求,在能通的前提下,必须捕捉到ARP报文!

思考:如果已经ping通之后,再进行报文捕捉的话,是否还可以捕捉到ARP报文呢?