OSI七层模型,TCP/IP,静态和rip路由
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OSI七层模型,TCP/IP,静态和rip路由相关的知识,希望对你有一定的参考价值。
一、OSI七层参考模型
应用层:
将抽象语言(文字、图像、声音)->编码
表示层:
编码->二进制
会话层:
应用程序提供会话地址(应用程序会话地址),如qq号;不是所有应用程序都需要这个地址
*上三层是应用程序对信息进行加工处理直到可以被传输
传输层:
传输层用于流量分段(基于MTU);
提供端口号;
传输层使用TCP/UDP完成传输层的工作,其中UDP仅完成以上两个任务;
TCP会提供额外服务(保证可靠性),这样会增加带宽消耗
MTU:最大传输单元,以太网默认1500;
端口号:0-655335,1-1023为注明端口,1024-65535为高端口(动态端口);假如一个用户同时登录qq、查看网页、听在线音乐,则该用户同时登录了三台服务器,此时三台服务器与用户通信时源目ip和源目mac都一样,为区分不同服务的进程,计算机为每个运行的进程临时分配一个随机高端口号区分本地不同进程,服务器上不同的服务对应一个注明端口号,此对应关系通常固定
UDP:用户数据报文协议
非面向连接,不可靠,仅完成传输层基本工作-分段、端口;
对带宽占用较低,常用于实时流量传输;
支持单播、组播、广播
TCP:传输控制协议
面向连接、可靠,除完成上述基本工作外,还保障数据的可靠传输;
面向连接:三次握手-建立端到端的虚链路(先打招呼明确对方的存在)
可靠传输:确认、重传、排序、流控(滑动窗口机制);
滑动窗口机制:每次发送包的数量由滑动窗口号决定,窗口号为500没有丢包,则继续增大窗口号,当窗口号为1000时产生丢包,则降低窗口号,不断尝试当前能够传输的极限,保持对带宽较高的利用率;
对带宽占用较高,cpu利用率较高,不建议实时流量;
仅支持单播
网络层:
IPV4/IPV6
主要用于逻辑寻址(IP寻址)
IPV4报头:
一般ipv4包头部长度20字节,最长可达到60字节;
Ver:协议版本号 IHL:包头大小(20字节)
Service type:服务类型,常用于QOS,QOS可以通过修改该字段实现优先转发
Packet length:包长度,一个数据包的总长度
TTL:最大生存时间 header checksum:头部校验和
Source address:源ip
Destination address:目标ip
数据链路层:
核心作用是控制物理层工作;
数据链路层协议:以太网、PPP、HDLC、帧中继…
数据经过上三层加工变为计算机能识别的二进制,然后来到传输层为数据分段、分配端口号,加上传输层头部后来到网络层,网络层为数据添加ip报头,然后来到数据链路层,添加相关二层协议的报头,再在整个数据的最后加上校验和,这样的数据包经过信号转换等处理后会交给物理层传输;
数据包来到交换机,此时交换机先查看数据包源mac然后在mac地址表中记录mac地址与端口对应关系,再查看目标mac,如果mac地址表中有目标mac的对应关系则将数据包从相应端口发出,如果mac地址表中没有记录,则将该数据包从其他端口洪泛该数据包,数据包从交换机给到路由器
洪泛:数据包不认识该mac(未知单播),从所有其他端口转发
广播:终端发出的数据包目标mac为全f,数据包来到交换机,从所有端口转发
路由器收到数据包后检查二层mac,如果是路由器该端口mac则向上检查三层报头,否则丢弃,三层查看路由表查找下一跳地址,再使用arp解析下一跳mac或直接在arp缓存中查找,然后数据包的三层头部不变,二层的源mac被修改成路由器发出数据包的端口的mac地址,目标mac变为接受数据的电脑的mac,再发给电脑
源ip目标ip不变,源mac、目标mac每路由一次就会修改一次
Arp:地址解析协议
Aarp:正向arp,已知对端ip,通过广播arp查询对端mac
Rarp:反向arp,已知对端mac,二层单播获取对端ip
Farp:无故arp,对将要使用的ip地址,进行正向arp查询,确定网络中没有ip地址重复
所有arp行为仅能在同一广播域内进行
二、TCP/IP和OSI模型的区别
1. 层数不同:TCP/IP(5或4层),OSI(7层);
2. 网络层:TCP/IP仅支持ip协议,OSI支持所有网络层协议;
OSI支持多种网络层协议(包括ip协议),TCP/IP在网络层仅支持ip协议
3. 跨层封装
跨层协议:ospf、icmp、arp、eigrp
大多数跨层封装协议的流量仅在该广播域内传播(远距离传输不可以跨层封装,icmp除外),去掉不必要的头部可以提高转发效率;
一般仅设备间沟通的流量会跨层,应用程序间沟通流量一般不跨层;
当4层被取消,无法进行分段和标记时,3层将完成该工作;若3/4层均被取消,2层会完成分段和进程标记的功能;
五层跨到三层:
Identification、flag、frag offset、options、padding对流量进行分片;
当ip协议分片时,ip会将分片的数据内容填充到padding中,ip头部为20-60字节,证明padding最多可以填充40字节内容;
3层的协议号会逐一对应跨层封装的上一层的协议(0/6/17除外)
1 icmp、88 eigrp、89 ospf
五层跨到二层:
以太网2代封装技术,仅存在类型号可标记进程,但无分片功能;
需要跨层封装到二层时,会使用以太网第一代帧(802.2和802.3标准,使用LLC和MAC两个子层构成);
LLC(逻辑链路控制层):负责分片、标记
MAC(介质访问控制层):负责硬件控制
stp
传输层使用端口号,网络层使用协议号,数据链路层使用类型号标记上层信息
三、ipv4地址
子网划分-VLSM可变长子网掩码,通过延长掩码长度,将主机位借位到网络位,可以将一个网络划分为多个网络,便于管理、减少地址浪费;
子网汇总-取相同位,去不同位;
分类:
1. 超网:汇总后的掩码长度小于主类的掩码长度
192.168.1.0/24
192.168.2.0/24
192.168.0.0/22 C类地址24位
2. CIDR:大于等于
172.16.1.0/24
172.16.2.0/24
172.16.0.0/22 B类地址16位
四、静态路由
1 出接口
适用于点到点网络
点到点:网段内只能存在两个节点,强制增加节点将无法正常通信
在MA网络中使用出接口写法,路由器为获取正确下一跳mac地址,将使用代理ARP和icmp重定向:
若路由器收到不属于该广播域内地址的arp请求时,将查询本地路由表,若可达,则代理回复本地mac地址,帮助转发流量(代理arp)
路由器收到arp请求后查看路由表,发现转发流量的端口和接收流量的端口为同一端口,说明本地不是最佳路径,将告知上一跳最佳路径(重定向)
2 下一跳
适用于MA网络,网络中节点数量不限制
所有路由最终都要匹配到一个出接口,所有下一跳写法都至少会被递归一次;出接口写法不需要递归查表,速度快
路由器查表规则:
1. 最长匹配
2. 递归查找
3 汇总
1.1.1.0/24
1.1.2.0/24
1.1.0.0/22 汇总后的网络
4 黑洞
1.1.0.0/22中包含:
1.1.0.0/24
1.1.1.0/24
1.1.2.0/24
1.1.3.0/24
此时0.0和3.0属于路由黑洞
当原来的1.0/2.0网段断网,此时1.0和2.0也会成为路由黑洞
5 缺省
6 空接口
黑洞与缺省相遇必然出环,此时可用空接口避免
方法:在黑洞源路由器上配置到达汇总地址的空接口路由,此时空接口路由为1.1.0.0/22网段,这样如果1.0或2.0断电则到达1.0和2.0的数据会被直接丢弃,不会出环
7 浮动静态路由
修改默认管理距离,起到路径备份的作用
五、动态路由
基于AS:IGP/EGP
IGP:
1. 更新时是否携带子网掩码
携带-无类别 不携带-有类别
特点:DV距离矢量-邻居间直接共享路由表,邻居告知路由(riip、eigrp)
LS链路状态-邻居间共享拓扑,本地通过拓扑信息自己计算(ospf、isis)
基于拓扑选路不容易出环
2. Rip
版本:v1、v2、ng(ng在ipv6下使用)
邻居间共享路由表,使用周期(30s一次)和触发更新,跳数作为度量;
基于UDP520端口工作,支持等开销负载均衡(默认4条,最大6条,ios版本12.4以上支持16条);
管理距离120;
结构突变需要触发更新,更新慢可能导致路由器间信息不对称;
周期更新原因:
1 没有ack确认,需要周期发送保证邻居收到信息
2 保活,rip没有其他包来确认邻居状态
防环:
1 水平分割:从此口进不从此口出,仅用于直线拓扑防环,最大的作用是减少MA网络的重复更新
2 最大跳数:<16跳
3 毒性逆转水平分割:即触发更新,毒性即发送16跳路由信息,逆转会为了确认将从一台路由器收到的16跳路由信息发回给该路由器即为打破水平分割规则(从此口进不从此口出)
4 抑制计时器
V1、v2的区别
V1有类别,v2无类别;
v1无法支持子网划分和子网汇总,支持连续子网;
v2支持子网划分和CIDR,只支持VLSM,不支持超网;
受限广播地址:255.255.255.255
255.255.255.255:不知道目标ip,发送广播目标ip为255.255.255.255,路由器无法帮助转发受限广播地址;不知道目标mac时发广播目标mac地址为全F
192.168.1.255:直接广播地址,2.0网段的主机转发192.168.1.255,首先将单播到路由器,路由器再从对应接口发出广播到1.0网段,在2.0网段时目标mac是2.0网段的网关,路由器默认关闭对这种流量转发的支持
V1使用广播(255.255.255.255)更新,v2使用组播(224.0.0.9)更新
在未部署组播的网络组播和广播没有区别,224.0.0.9仅可以帮助路由器在三层明白该数据为rip路由信息
V2支持认证
配置
V1:
r1(config)#router rip 启动rip
r1(config-router)#ver 1 选择版本1,不选则默认为升级版本1
宣告:激活端口,发送路由信息
r1(config-router)#network 12.0.0.0 版本1仅发主类路由
r1(config-router)#network 1.0.0.0
所有需要被rip学习到的路由均需宣告,但宣告后路由信息所在的端口也会被激活,rip会周期向这些网段发送路由信息,但可能存在部分连接终端的网段不希望接受这些路由信息,此时可将对应的端口调成被动接口
v2
r1(config)#router rip
r1(config-router)#ver 2
r1(config-router)#no auto-summary 不敲的话路由信息仍将携带主类掩码
r1(config-router)#network 12.0.0.0
r1(config-router)#network 1.0.0.0
扩展配置:
1 v2的认证-用于身份核实,确保更新安全
r1(config)#key chain xx 先定义秘钥
r1(config-keychain)#key 1
r1(config-keychain-key)#key-string cisco123
r1(config-keychain-key)#exit
r1(config-keychain)#exit
r1(config)#int s1/0 再在连接邻居的接口上调用
r1(config-if)#ip rip authentication key-chain xx
r1(config-if)#ip rip authentication mode md5
r1#debug ip rip events 动态查看rip发生的事件
2 v2的手工汇总:更新源路由器所有更新发出的接口上配置
r2(config)#int s1/0
r2(config-if)#ip summary-address rip 2.2.2.0 255.255.254.0
r2(config-if)#int s1/1
r2(config-if)#ip summary-address rip 2.2.2.0 255.255.254.0
3 被动接口:只接受不发送路由协议信息,只能用于连接用户pc的接口,不得用于连接邻居的接口,否则邻居间无法收发路由信息
r2(config)#router rip
r2(config-router)#passive-interface loop 0
r2(config-router)#passive-interface loop 1
4 加快收敛
计时器:30s更新,180s失效,180s抑制,240s刷新;
按比例修改计时器可以加快收敛速度,但不要修改过小;
30s以内更新则路由没有问题,180s以内都认为路由可达,超过180s则认为路由不可达,到240s仍未更新计时器则路由将被彻底删除;
抑制计时器通常不工作,用于防环,当接受的路由条目度量无征兆的变大,可能出环,在抑制时间内跳数变大的路由条目不得加表
r2#show ip protocols
r2(config-router)#timers basic 15 90 90 120 一般全网设备要一致
5 缺省路由:边界路由器上配置命令后,将向内网所有设备发送缺省路由条目,之后本地需要管理员手工配置静态缺省指向ISP
r1(config)#router rip
r1(config-router)#default-information originate
6 干涉选路:偏移列表,在控制层面流量进或出的接口上,人为的加大度量,来干涉选路
控制层面:路由条目传递的方向
数据层面:用户流量传递的方向
偏移列表只能使度量变大;
r1(config)#access-list 1 permit 1.1.1.0 使用acl抓路由(不加host也不加反掩码则默认为0.0.0.0,相当于加了host)
r1(config)#router rip
r1(config-router)#offset-list 1 out 1 s1/0 调用编号1的acl出向增加1跳(跳数可叠加)
7 v1和v2兼容
V1 | 升级v1 | V2 |
发送版本1,不携带掩码 | 发送版本1,不携带掩码 | 发送版本2,携带掩码 |
接收版本1 | 接收版本1和2 | 接收版本2 |
配置ver1 | 不配版本,默认为升级v1 | 配置ver2 |
*接口收发的版本可被修改
手动修改收发的版本:
r1(config-if)#ip rip send ver 2
r1(config-if)#ip rip receive ver 2
1 v2设备被修改为发送版本1时,路由将和普通v1路由一致(使用主类掩码)
2 v1设备被修改为发送v2时,可使用组播224.0.0.9为目标,但仍无法携带掩码
8 v1的连续子网问题
V1版本下1和2路由器的发出的环回端口路由信息一样,导致无法向对方发出自己的环回路由信息
解决办法:构造连续子网
在两台路由器连接的链路两端接口配置连续子网地址,路由器要传给邻居的网段和路由器与邻居直连的网段若为连续性子网,则向邻居传递1.1.1.0(无掩码),邻居收到后会知道传过来的网段与中间链路为连续性子网,此时会给传过来的路由加上和中间链路相同的掩码
注:若由于客观原因导致无法修改中间链路的接口地址,此时可以为中间链路配置第二地址实现连续性子网
r2(config)#int s1/0
r2(config-if)#ip address 1.1.3.1 255.255.255.0 secondary
ipv4下一个接口最多配2个地址
连续子网:1 母网相同; 2 掩码相同
以上是关于OSI七层模型,TCP/IP,静态和rip路由的主要内容,如果未能解决你的问题,请参考以下文章