网络互联基础和互联模型
冲突域( collision domain): 在同一个冲突域内的每一个节点都能收到所发送的帧,基于物理层的. Hub的所有端口都在同一冲突域中. 两个机器同时发生通信会发生冲突.
广播域: 一台交换机只能有一个广播域, 他的每个端口下是一个冲突域. 交换机可以隔离冲突域. 路由器隔离广播域.
单播, 组播, 广播: 单播 1 to 1 组播 1 to 1 group 广播 1 to all
OSI: 开放系统互联模型 open system interconnection. 七层: 应用层, 表示层, 会话层, 传输层, 网络层, 数据链路层, 物理层. All people seems to need data processing.
OSI 七层模型
前三层:
应用层: 提供用户界面和操作接口, offer UI or API 例如 HTTP FTP Telnet
表示层: 表示数据, 加密或者压缩. 数据以何种方式表示, 对数据进行转码格式化,例如 ACSII, MPEG
会话层. 将不同的程序的数据分离. 负责表示层实体之间的管理会话, 对不同类型的数据进行分离. 提供半工, 半双工, 全双工, 例如 NetBios, SAP, SDP.
后四层:
传输层: 提供一个可靠(TCP)或不可靠(UDP)的数据传输和重传,纠错.
- TCP 可靠的传输协议 发送数据前 Three ways handshaking SYN SYN/ACK ACK TCP 有个window size. TCP 会重传.
- TCP headder 格式
- 16bit source port 16 bit dest port
- 32 bit sequence number: for fragmentation using 分片用 表示顺序的
- 32 bit acknowledge number: next sequence number 代发送的序列号.
- 4 bit header length 1 bit offset reserve 总为0 code bit编码位建立和终止会话控制用. window size
- 16 bit CRC checksum: check header
- 16 bit urgent pointer
- option 0 或 32 的整数倍 如果option 不是32的整数倍 也要添0弄成整数倍
- DATA
- UDP 不用握手 不可靠的传输协议.
网络层: 提供IP 地在,路由器通过他们来选择路径
IP 地址 32 bit
路由 routing 用路由表来确定路线.
数据链路层: 数据分组拆分成字节合并为数据帧
MAC 地址 48 bit
ARP 协议
物理层: 物理链接
静态路由选择
什么是路由: 选路的一个过程.
构建路由表 选取最优路径 每个路由器的路由表标识next hop用来知道数据包的下一跳朝哪.
路由来源: 静态路由(手动添加的), 直连路由, 动态路由.
动态路由选择
OSPF
Open Shortest Path First 开放式最短路径优先
OSPF是一个开源的IGP链路状态协议, 它采用spf算法. 相比与距离矢量路由协议(RIP)存在优点也有缺点.
OSPF 工作过程:
- 互相转发LSA link state advertisement 链路状态
- 生成链路数据库 LSDB
- 根据LSDB执行SPF 算法生成路由表
OSPF 优点:
- 构建的是拓扑表
- 快速收敛
- 事件驱动更新(并且每30s 泛洪一次LSA 链路刷新)
- 层次设计, 有区域概念.
OSPF 缺点:
对资源要求大, 需要支持LSA 泛洪.
OSPF 术语:
- 链路状态: 链路的一些花费和邻居状态.
- 路由器ID: 有选举规则.
- 邻居
- 邻接: 邻接才交换数据.
- 区域
- 指定路由器(DR) 多路访问时候
- 备用路由器(BDR)
- 花费(cost) 根据链路带宽计算
OSPF支持的网络类型:
- P2P 串行
- broadcast multiaccess 广播多路访问
OSPF 包类型
- hello 建立邻居关系
- DBD database description 数据库状态描述 书本的目录
- LSR 链路状态请求包
- LSU 链路状态更新包 对应LSR
- LSAck 链路确认 LSU的确认
邻居状态机:
- Down
- Init
- Two-way
- Exstart 准备开始交换 选DR和 BDR
- EXchange 开始交换
- Loading 加载状态
- Full 完全邻接状态
OSPF度量值计算
cost计算公式 默认带宽(100M) / 实际带宽
DR BDR 选举
先看优先级, 再看route id
Route id 选举
- 手工最高
- up的loopback
- up的接口
- 选择IP地址最大的, 有loopback 则用loopback, 回环接口也选最大的
缺省情况下, 普通区域内,是不会有缺省路由的,即便有也不用.
OSPF 默认路由: 写一个默认路由 ip route 0.0.0.0 0.0.0.0 dest ip 然后用命令下发 route ospf default-information originate
NAT地址转发和DHCP服务
NAT network address translate 地址转发
NAT 地址转发简介
NAT 为什么会出现?
解决IPv4地址短缺.
共有地址和私有地址: 私有地址10.0.0.0-10.255.255.255 172.16.0.0-172.31.255.255 192.168.0.0-192.168.255.255
DHCP工作过程:
- DHCP Discover 发现
- DHCP Offer 提供
- DHCP Request 请求
- DHCP Ack 确认
VLSM子网划分:
- A 类: 0-127
- B 类: 128-191
- C 类: 192-223
- D 类: 224-239 multicast
- E 类: 240-255
私有地址: private address
- A: 10.0.0.0 - 10.255.255.255
- B: 172.16.0.0- 172.31.255.255.255
- C; 192.168.0.0 - 192.168.255.255
255.255.255.128 128=10000000
2的一次幂 两个子网 0 和 128
126个主机
最后两个地址一个为广播地址一个为子网地址
二层协议
Truck:
encapsulate 802.1q so two vlans on two switches can talk to each other
单臂路由:
不同网段且不同vlan间的通信, 在一个链路上创建两个网关. 在一个接口上创建子接口并封装802.1q 对应不同的vlan 号
STP spanning tree protocol 生成树协议
STP 协议简介
这样的拓扑会产生一个环路 LOOP。广播风暴问题。但是这个拓扑确实真实的可能在现实生活中存在的,而且有一定的存在的道理的。这个问题可以靠 STP 解决。
通过阻塞冗余网络路径中的一些端口,确保到达任何一个目的地只有一条逻辑链路。
STP 算法
STA 生成树算法 决定哪些端口被阻止。
STA 选择一个交换机作为root bridge(跟桥),以跟桥来参照计算所有路径, 所有交换机交换BPDU.
BPDU 中包含 BID , BID 用来标示这是那台交换机发出的BPDU。
STP 如何选举跟桥:
- 桥优先级由三部分组成:
- 优先级
- 发送交换机的mac地址
- 拓展系统ID
- 先对比优先级
- 在对比mac 地址
端口花费和路径花费:
跟桥选举之后,计算其他交换机到跟桥的花费, STA 会优先考量端口花费。 端口花费和接口带宽有关,路径花费为从跟交换机到最终交换机前进方向上端口花费总和。
端口花费参考:
速度 | 花费IEEE | 花费 |
10GB/s | 2 | 1 |
1G/s | 4 | 1 |
100Mb/s | 19 | 10 |
10Mb/s | 100 | 100 |
端口角色:
跟端口 Root Port RP 非跟交换机上离跟最近的端口。
指派端口 Designated Port DP 到达跟交换机上所有的端口都是DP。
非指派端口 Blocking Port BP 处于阻塞状态
STP 选举:
- 选举规则
- 每个广播域内只能有一个跟交换机。
- 每个非根交换机上面必须有一个跟端口
- 每个网段有且只有一个指派端口
- 既不是根端口,也不是指派端口的被阻塞
- 选举跟交换机: 交换机发送BPDU来选举,拥有最小的BID的交换机成为跟交换机。
- 选举跟端口:
- 最低花费的端口成为跟端口。
- 花费相同, 比较发送者的BID。
- BID 相同, 比较PID(Port ID 端口优先级+ 端口号)
- 选举指派端口 DP:
- 比较花费
- 比较自身BID