数据通信 路由交换
数据通信 路由交换
ISP :运营商提供
设备 device
介质 Media
消息/报文 message/data
协议 protocol
发送方/信息源 sender/source
接收方/信息方 receiver/destination
PDU 协议数据单元
分为 (传输层)段 (网络层)包 (数据链路层)帧 (物理层)比特
数据字段的以太网数据包的最小大小为64字节,不足的部分为64字节。 以太网数据包的最大长度为1518字节,最小为64字节,数据字段的长度为46~1500
链路层的数据交互是基于数据帧, 一帧数据包的最大长度1518(以太网帧最大长度)-18(以太网帧头帧尾) = 1500字节。
传输层对于TCP数据包最大长度1480-20(TCP包首部)=1460字节,大于该长度数据在经过IP层时就会进行分包。
传输层对于UDP数据包最大长度1480-8(UDP包首部)=1472字节,大于该长度数据在经过IP层时就会进行分包,某一些路由器设置允许通过的最小以太网数据帧为576字节,如果考虑到这一限制,那么允许发送的最大UDP数据包长度为 576 - 20(IP包首部) - 18(UDP包首部) = 548字节。
TCP/IP四层协议
应用层 (HTTP、FTP、TFTP、SMTP、SNMP、DNS)
传输层 (TCP、UDP)
网络层 (ICMP、IP、ARP)
数据链路层
物理层
DNS 域名解析服务
建立IP地址与域名之间的映射关系
使用了TCP也使用了UDP的服务
端口 53
SNMP 简单网络管理协议
使用了TCP也使用了UDP的服务
用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议
端口161
HTTP 超文本传输协议
WEB指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应
端口 80
HTTPS 安全的HTTP 带有SSL
端口 443
STMP POP3 邮件服务
STMP邮件发送服务 端口25
POP3邮件接收服务 端口110
Telnet 远程终端协议
连接远程服务器
telnet只能探测tcp端口
端口23
FTP 文件传输协议
通过客户机程序向(从)远程主机上传(下载)文件
TCP端口 21 传输控制信息 端口20 传输数据
TFTP 简单文件传输协议使用的是UDP端口 69
RIP 路由信息协议
路由信息协议RIP(Routing Information Protocol)是基于距离矢量算法的路由协议,利用跳数来作为计量标准。在带宽、配置和管理方面要求较低,主要适合于规模较小的网络中。动态路由协议
UDP端口 520
传输层
TCP 端口
2的16次方 0-65535
0-1023 公认端口 服务的默认端口
1024-49151 注册端口
49152-65535 私有端口
端口号相当于是对上层应用的标识,协议号是ip报头的一个字段,用来标识上层协议
TCP/IP技术回顾(3)—网际层_嗣音047的博客-CSDN博客_网际层
TCP确保可靠性的机制
- 确认机制
- 重传机制
- 排序机制
- 流控机制
滑动窗口机制
TCP 会话
建立连接三次握手
客户端发送SYN包(seq=i) 并进入SYN_SENT状态,等待服务器确认;
服务器收到SYN包,确认客户端SYN(ack=i+1),发送SYN包(SYN+ACK)(seq=j)给客户端
客户端收到SYN包(SYN+ACK),向服务器发送确认包(ACK=j+1),客户端和服务器进入ESTABLISHED(TCP连接成功)状态
SYN:同步序列编号(Synchronize Sequence Numbers)
建立连接后 之后的SYN和ACK是数据传输确认大小
滑动窗口 窗口大小确认可以发送的字节数
TCP 会话断开有四次挥手
客户端向服务器发送带有fin标记的报文
服务器收到后不立刻回复fin报文,而是向客户端发送确认ack,同时通知自己程序,客户端要求关闭连接(先发送ACK的目的是为了防止在这段时间内,对方重传FIN报文段)
服务器彻底关闭连接,向客户端发送fin报文段
客户端收到fin报文段,向服务器发送ack表示连接释放
数据链路层
以太网:Ethernet 当今局域网组网技术
数据链路层分为两个子层 LLC子层和MAC子层
LLC子层:逻辑链路控制 ,负责识别网络层的协议类型,接收上层数据包封装成帧,向下传递
MAC子层:介质访问控制,负责控制与连接物理层的物理介质,处理硬件设备的物理寻址、定义网络拓扑及数据帧的传递顺序
帧的数据结构是先目标地址后源地址
目的地址|源地址|类型|数据|帧校验序列
6字节|6字节|2字节|46~1500字节|4字节
协议类型:代表上层协议 数据链路层上层协议是网络层 比如ip、ipv6、ARP等协议
帧大小范围:64-1518
MTU:最大传输单元,默认1500字节
帧校验:通过公式对数据包进行计算
MAC:网络接口物理地址
ARP
arp会先广播局域网然后根据arp回应 会建立MAC地址与ip地址的arp表
免费arp可以通过询问自己ip的mac检测是否ip冲突
ARP欺骗
通过修改ARP回应包中网络层的源IP地址、源mac 让计算机与错误的源mac进行绑定,数据链路层的目标mac是欺骗的对象
ICMP
类型 编号
0 0 回显请求 echo reply
8 0 回显应答 echo request
当使用icmp 会先有arp请求
请求超时 原因可能是主机不在线或者屏蔽,可以ping但没有回应
传输失败 原因可能本身没有配置网关
无法访问 原因可能是网关没有路由、没有获取到mac地址
ping 基于icmp
icmp报文头有8字节
报文头有 :类型(1字节) 代码(1字节) 校验和(2字节) 其他内容(4字节)
类型:用于定义报文类型
代码:占一字节,标识对应ICMP报文的代码。它与类型字段一起共同标识了ICMP报文的详细类型
校验和:这是对包括 ICMP 报文数据部分在内的整个 ICMP 数据报的校验和,以检验报文在传输过程中是否出现了差错
127环回地址
VRP远程登录命令配置 HUAWEI
Telnet 端口23 前提确保网络连通性
系统视图模式下
telnet server enable 开启telnet服务
display telnet server status 查看telnet服务
进入VTY配置模式
user-interface vty 0 4
authentication-mode password/aaa 配置认证模式,认证模式有两种分别为password(只有密码)/aaa(用户名和密码)
set authentication password cipher password 配置认证密码
user privilege level 15 配置用户级别 0级,参观级、1级,监控级、2级,配置级、3级,管理级 、4-15级为划分级别都属于3级级别
user-interface maximum-vty 15 配置最大vty连接数
aaa配置模式
aaa
local-user username password cipher password 创建用户和密码
local-user username privilege level 15 配置用户级别
local-user username service-type telnet 配置用户可用服务
user-interface console 0 console口配置 服务terminal
VRP文件系统
fixdisk 修复文件系统异常的存储设备
format 格式化存储设备
undelete 恢复删除文件
mkdir 创建目录
execute 执行批处理文件
more 显示文件内容
zip 压缩文件
delete 删除文件
reset 彻底删除回收站文件
dir flash: 查看闪存
save 保存配置文件
reset saved-configuration 清除下次启动加载的配置文件
compare configuration 比对配置文件是否更改
display startup 查看启动配置
display version 查看版本
ftp上传下载文件到设备
终端开启ftp服务
配置端口地址测试连通性
ftp enable
ftp [ipaddr]
get filename 下载文件到设备
put filename 上传文件到终端
设备升级降级 更改配置
dis startup 查看设备配置文件
startup system-software sd1:/filename.cc 设备更新系统
startup saved-configuration 设备更新配置
startup patch 设备更新补丁
reboot 设备重启
路由器
处在不同的网络中,使用路由器连接不同的网络之间的数据转发
routing 路由
routing table 路由表
router 路由器
default gateway 默认网关
destination 目标
mask 掩码
nextHop 下一跳
interface 出接口
protocol 协议
preference 优先级,相同网络下越低越优先
cost 度量值,优先级相同和网络相同情况下越低越优先
display ip routing-table 查看路由表
等价路由
当达到一个目标网络有几条相同的度量值的路由时,路由都会被加入到路由表中,数据包会在这几个链路上进行负载分担
最长匹配原则
当网段相同,优先选择匹配最长掩码
静态路由
配置简单,开销小
适用于组网小的场景
ip route-static [ip] [mask] [nextip/port]
尽量设置下一跳ip地址
相当于当下一跳的路由表有目标地址让下一跳的路由器去寻找目标地址
通讯是双向,需要配置往返路由
当一方有路由ping通另一方路由时,反方向没有路由ping不通,因为ping通后回包是接口的地址不是目标的汇包地址
默认路由/缺省路由
ip route-static 0.0.0.0 0.0.0.0 出口地址
回环接口 逻辑接口
int loopback 0
ip addr 1.1.1.1 32
网关即是缺省路由
动态路由
RIP OSPF BGP ISIS
自动学习
路由协议分类:
IGP (Interior Gateway Protocol)用于一个AS内部交换路由信息内部网关协议 RIP 、OSPF、IS-IS
EGP(Ecterior Gateway Protocol)用于多个AS之间交换路由信息 BGP
AS(Autonomous system)自治系统 处于单个管理机制下的网络 企业、 电信、移动、联通
DV(distancce-vector)基于距离矢量算法,RIP EIGRP
LS(Link-State)基于SPF最短路径优先算法,OSPF、IS-IS
LSA 链路宣告
建立邻居、同步数据库、计算路由表
OSPF 看带宽计算路径
路由协议根据发送的更新是否带掩码
classful 有类,不携带掩码 ripv1 、igrp
classless 无类,携带掩码 ripv2、eigrp、ospf、is-is、bgp
携带掩码可以确定网段,避免走向错误网段
业务应用
单播路由协议rip、eigrp、ospf、bgp、is-is
组播路由协议dvmrp、pim-sm、pim-dm
路由协议规则
协议是在接口上运行
只能学习和发布相同协议已知路由信息
如果不同路由协议间需要交换路由信息,需要注入(import)路由表有多种协议类型
import-route
路由收敛,当所有路由表包含相同网络可达信息,进入稳定状态,在未达到收敛前无法正常工作
RIP
协议号520
rip只知道相近路由的路由表及跳数
RIP最大跳数为15跳 16跳丢弃
180秒rip路由自动失效并广播,rip更新周期时间为30秒
1:水平分割(Split Horizon)指的是RIP从某个接口接收到的路由信息,不会从该接口再发给邻居设备。这样不但减少了带宽消耗,还可以防止路由环路。在华为设备上,水平分割功能默认情况下是开启的。rip split-horizon
2:触发更新(Triggered Updates)的原理是,当路由信息发生变化时,运行RIP的设备会立即向邻居设备发送更新报文,而不必等待定时更新,从而缩短了网络的收敛时间,在华为设备上没有命令能主动关闭触发更新的功能。
3:毒性逆转(Poison Reverse)指的是RIP从某个接口接收路由信息后,将该路由的开销值设置为16(即该路由不可达),并从原接口发回邻居设备。利用这种方式,可以清除对方路由表中的无用路由。如果同时都配置了毒性逆转和水平分割,水平分割行为会被毒性逆转行为代替。在华为设备上,毒性逆转功能默认情况下是关闭的,需要手动打开此功能。 rip replay-protect
network [主类网络地址]
无论掩码是多少只需要输入主类网络地址,
[rip] silent-cnterface g0/0/0 抑制接口,表示只接收rip报文
优先于rip inpput 和rip output
OSPF
协议号89
基于链路状态的内部网关路由协议
无类
组播(224.0.0.5、224.0.0.6)
根据cost开销为度量值
触发式更新(或30分钟周期更新)
区域设计使得ospf支持更大规模网络
通过LSA形式发布路由 (链路状态
不支持自动汇总,支持手动汇总
区域
减少路由表条目
每个ospf路由器只维护所在区域的完整链路状态信息
使拓扑变化仅影响本区域内部
即在这个网段的接口为单位属于这个区域,一个网段不能同时存在2个区域
每个常规区域必须和骨干区域相连,否则需要使用虚链路vlink,不然无法完全学习到另外区域的路由信息
如果是单区域area 0不是必须的
其他边界路由非OSPF路由协议接入的称为ASBR
ospf路由类型
IR 内部路由器所有接口属于同一区域
BR 骨干路由器至少有一个接口属于骨干区域
ABR 区域边界路由器连接一个或多个区域到骨干区域,至少有一个接口属于骨干区域
ASBR 自治系统边界路由器把其他路由协议学习到路由以引入的方式到OSPF进程
PS 一台路由器可以同时属于多种类型
AR1<——>AR2<——>AR3<——>AR4
area1 area0 area2
AR2 属于BR、IR
AR1、AR3属于ABR
AR4属于ASBR
一台路由器也可以属于多种类型
当有其他路由协议接入某台路由那么那台路由也可以是ASBR
OSPF工作流程
发现建立连接
- 发送hello包
传播LSA(路由表更新)
-
Link State Advertisement 链路状态宣告
-
链路:路由器接口
-
状态:接口信息(地址、掩码、开销、网络类型、邻居关系等)
通知区域内所有OSPF路由器
收集LSA创建LSDB(链路状态数据库、地图)
使用SPF算法计算每个目标网络的最短距离、并置于路由表中
邻居表:记录所有邻居关系
链路状态数据库: 记录所有链路状态信息
路由表:记录最佳路由 由路由器自己计算并加入到路由表
Router ID
运行ospf需要选取一个RID
作为唯一标识一台OSPF路由器
RID可以手动配置也可以自动生成
选取规则(自动):活动回环接口上选取ip地址最高的、没有回环选活动物理接口上选取ip地址最高的。选举具有非抢占性,选定后不会更改除非重启
ospf数据报
hello 建立邻居 如果在同一个区域内2个router-id相同会冲突导致建立不了邻居
DD LSDB摘要 (lsa头部)对比链路数据库(只在建立邻居时发送)
LSR 请求LSA
LSU 发送LSA(更新LSA)
LSACK 确认LSU
OSPF链路状态
NeighborPreviousState 邻居先前状态
NeighborCurrentState 邻居当前状态
down(关闭)->Init(初始化)->ExStart(初始交换状态决定主从关系)->Exchange(交换状态发送DD数据包)->Loading(加载状态LSR和LSU交换)->Full(LSDB同步完成邻接)
2-way(双向通信形成邻居)
2-way和Full是稳定状态
选举DR、BDR
DR 广播
BDR 非广播多路访问
为了减少邻接关系的数量,从而减少数据包交换,节省宽带降低对路由器的处理压力选举DR和BDR
当多个路由器互连时,为了减少链路之间的数据交换,选举一个路由器和备用路由器作为代表分发数据包,其他路由器除了建立邻居关系外只需和这两个路由器建立邻接关系,其他路由器之间的链路状态保持为2-way
Hell0报文携带优先级,优先级最高选举为DR,优先级次高选举为BDR,优先级为0不参与选举
优先级一致的情况比较RID,越大越优先
选举具有非抢占性
当拓扑变更,会向组播224.0.0.6发送LSU,DR和BDR会监听224.0.0.6这组播地址,再由224.0.0.5发送给所有路由器确认
PS:选举是根据端口参加选举
Cost 开销(度量值):每一个运行ospf的接口上都维护一个接口cost
cost=10^8/BW(bps)=100Mbps/BW=接口带宽参考值/接口带宽 (最小为1)
源至目标网络度量值=从源到目标所有出站接口的cost值累加(数据方向)
从源到本地路由器沿途所有入站接口的cost值累加(路由方向)
一般前面服务名称开头的命令可能在接口下输入
配置命令
ospf 1 router-id 1.1.1.1 //创建ospf进程,设置routerid
area 0 //创建区域 area 0为骨干区域
network ip mask //设置区域网段宣告网络,指定ospf接口,反掩码匹配
import-route rip 1 //将rip重发布加入ospf ,[rip-1]import-route ospf 1 也可将ospf重发布加入到rip中
[interf]ospf dr-priority 100 //接口优先级
reset ospf process //重启ospf进程
default-route-advertise OSPF发布默认路由命令
查询命令
dis ospf peer //查看邻居表
-
1)Area:邻居所属的区域。
2)Interface:与邻居相连的接口。
3)Router ID:邻居的Router ID。
4)Address:邻居接口的IP地址。
5)State:邻居状态。
6)Mode: DD交换进程中协商的主从状态。
- Nbr is Master,邻居是Master,主动发送DD报文。
- Nbr is Slave,邻居是Slave,配合Master发送DD报文。
7)Priority:邻居的DR优先级。
8)DR:邻居间指定路由器的IP地址。
9)BDR:邻居间备份指定路由器的IP地址。
10)Dead timer : 邻居失效定时器。如果在超时时间内,还没有收到邻居发来的Hello报文,说明邻居已失效。
11)Retrans timer interval:重传LSA的时间间隔。如果在这个间隔内,没有收到邻居的LSA已经收到的确认报文,LSA会进行重传。
12)Authentication Sequence: 认证序列号。
dis ospf lsdb //查看ospf链路状态数据库
-
Type 类型:表示是几类 LSA
Linkstate ID :链路状态标识符 即 LSA的名称,不同的LSA是不同的;
列如:
一类 LSA 的 Linkstate ID 指得是 产生这条路由的路由器的router-ID
二类 LSA 的 Linkstate ID 指得是:DR的ip地址 、
三类 LSA 的 Linkstate ID 指得是:传递路由的网络号
四类 LSA 的 Linkstate ID 指得是:ASBR 的 router ID
五类 LSA 的 Linkstate ID 指得是:传递外部路由的网络号
七类 LSA 的 Linkstate ID 指得是:外部路由
Adv Router:通告路由器 adv(表示通告) 即:产生该条LSA的,路由器的 router ID
age : LSA 的存活时间
len : LSA 的大小
LSA中存在3个参数用于LSA的新旧比较;1、序列号 2、校验和 3、LSA的老化时间(相同比较LSA age)
dis ospf int g0/0/0 //查看ospf端口信息 (查看ospf端口状况选举等信息)
dis ospf lsdb router 1.0.0.1 //查看router-id为1.0.0.1路由器上的一类LSA
交换机
交换看mac地址,建立mac地址表,隔离冲突域
原理:
- 学习 learn
- 当从一个接口收到帧,把帧内的源mac与该接口绑定存入mac地址表中
- 一个mac只能关联一个接口
- 一个接口可以学习到多个mac
- 泛洪 flood
- 当接口收到广播帧、组播帧和单播帧并且不存在mac地址表中,把该帧从所有其他接口转发出去除了接收口
- 转发 forward
- 从一个接口收到已知单播帧,
- 立刻从相应的接口转发出去
- 更新 update
- 默认每条记录保存300秒
- 交换机重启清空所有接口学习记录
- 接口关闭会清空该接口学习到的记录
- 一个源mac出现在另一个接口会删除旧记录并添加新记录
以太网接口工作模式:
半双工 half-duplex:通信双方能发送和接收数据,但不能同时进行
全双工 full-duplex:通信双方能同时收发数据
速率 speed:接口连接两端进行协商,失败无法正常通信
接入 中继 混杂模式 —配置权限不同:
access接口 配置权限 可以修改PVID,可以修改允许列表,但PVID和允许列表均仅为同一个vlan, 出口的封装为不封装;
trunk中继接口 配置权限 可以修改PVID 可以修改允许列表, PVID仅一个,允许列表可以多个, 出口的封装仅为封装
hybrid混杂接口 配置权限 可以修改PVID 可以修改允许列表 pvid仅一个,允许列表多个 出口的封装方式可以修改
port hybrid untagged和 port hybrid tagged主要区别在于发送数据的时候是否剥离标签。
因为不带标签的vlan1默认允许通过
交换机主要进行数据转发,在转发过程中会因为端口模式进行Tag比对
untagged相当于允许这个数据通过该接口并脱下标签并打上pvid,tagged则直接通过该接口不脱下tag交由下一个交换机进行处理
缺省VLAN概念
Access端口只属于1个VLAN,所以它的缺省VLAN就是它所在的VLAN,不用设置;
Hybrid端口和Trunk端口属于多个VLAN,所以需要设置缺省VLAN ID。缺省情况下, Hybrid端口和Trunk端口的缺省VLAN为VLAN 1
如果设置了端口的缺省VLAN ID,当端口接收到不带VLAN Tag的报文后,则将报文转发到属于缺省VLAN的端口; 当端口发送带有VLAN Tag的报文时,如果该报文的VLAN ID与端口缺省的VLAN ID相同,则系统将去掉报文的VLAN Tag,然后再发送该报文。
注:对于华为交换机缺省VLAN被称为“Pvid Vlan”, 对于思科交换机缺省VLAN被称为“Native Vlan”
交换机接口出入数据处理过程:
Acess端口收报文:
收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则直接丢弃(缺省)
Acess端口发报文:
将报文的VLAN信息剥离,直接发送出去
trunk端口收报文:
收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有判断该trunk端口是否允许该 VLAN的数据进入:如果可以则转发,否则丢弃
trunk端口发报文:
比较端口的PVID和将要发送报文的VLAN信息,如果两者相等则剥离VLAN信息,再发送,如果不相等则直接发送
hybrid端口收报文:
收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则判断该hybrid端口是否允许该VLAN的数据进入:如果可以则转发,否则丢弃(此时端口上的untag配置是不用考虑的,(untag配置只对发送报文时起作用)
hybrid端口发报文:
1、判断该VLAN在本端口的属性(disp interface 即可看到该端口对哪些VLAN是untag, 哪些VLAN是tag)
2、如果是untag则剥离VLAN信息,再发送,如果是tag则直接发送
总结:
vlan id指的是发送数据带的tag,而pvid指的是交换机端口对应的vlan
终端不能识别vlan tag标签,终端收到的必须是脱标签的数据包
在于操作标签 pvid相当于端口标识,判断是否携带标签vlan id通过
access 对端口 vlanid相同 脱标签并发送否则丢弃
trunk 对端口判断是否允许通过,允许判断是否vlanid相同,相同脱标签发送,不相同则带标签发送,没有允许标签通过则丢弃,
hybrid 对端口可操作是否带vlanid标签,没有vlanid则打上pvid标签并转发