- 网络协议和网络分层 OSI TCP/IP 二层、三层和四层
- IP地址 IPv4和IPv6 网络的划分(VLSM)和网络的汇总(CIDR)
- IP路由原理:
connect 直连
static 静态
dynamic 动态 IGP: eigrp和ospf
EGP: bgpv4 - 以太交换原理:
vlan
pvst+
rapid-pvst+
Port-channel - Ppp ppp-authentication
- acl
- 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地址来填充。(这个是默认行为)
- 在frame中,S-MAC和D-MAC这两个字段的内容填充,都是基于软件实现的。既然是基于软件实现的,就可以修改。
- 在网卡的芯片中,被烧制进去的MAC地址,是不可以被修改的!
对等通信: peer to peer communication
其本质就是同层级之间相互通信!
基于对等通信原则,咱们得出一个推论:
身为发送端发送数据时,必须得先完成frame的封装,才有资格被发送出去。(成帧)
若要成帧,必须得有一个完整的二层头部。以ethernet-II为例,那么这个完整的二层头部中必须具备如下三个字段的信息:
- D-MAC
- S-MAC
- 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之后,会做两件事(这两件事并非先后关系):
- 基于获得的B的MAC地址,去执行刚刚挂起的ping进程
- 基于获得的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 载波监听多路访问/冲突检测
- 先听后发
- 边发边听
- 一旦冲突,立即退避
冲突域的边界在交换机的端口上
广播域的边界在路由器的接口上
不同设备互联使用直通线
相同设备互联使用交叉线
注意:其中PC和router被视为相同设备
双绞线线序:
568B:
568A:
双绞线两端线序一致,则是直通线。
双绞线两端线序不一致,则是交叉线。
tab键可以自动补全命令:
Router>enable
Router#configure terminal
Router(config)#
基础命令介绍:
- 修改设备的名称:
Router(config)#hostname R1
R1(config)# - 接口下配置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 - ping测试:
R1#ping 12.1.1.2 (请注意ping要在#模式下进行) - 查看arp表:
R1#show arp
注意:
show 命令是非常重要的命令,用来查看各种信息。但是show命令只能在#模式下生效。
例如:show running-config. 查看内存中的所有配置。
设备启动的基本流程:
- 开机自检
- 文件解压
- 加载系统文件
- 加载配置文件 | 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报文呢?