OSI模型 | 作用 |
---|---|
应用层 | 人机交互的接口 |
表示层 | 将自然语言转换为二进制语言 |
会话层 | 建立,管理,维持,终止一条虚链路会话 |
传输层 | 选择传输方式,区分不同的流量 |
网络层 | 编址,寻址 |
数据链路层 | 根据不同的物理链路定义二层的封装协议 |
物理层 | 将二进制以电信号的形式转发 |
三次握手
客户端向服务端发送一个标志位SYN置1,随机序列号seq=x的连接建立请求报文
服务端收到客户端的连接建立请求报文,如果同意连接,则发送一个标志位SYN=1,ACK=1,确认序列号ack=x+1,随机序列号为seq=y的连接建立请求确认报文
客户端再次向服务端发送一个标志位ACK=1,确认序列号ackeq=y+1,随机序列号seq=x+1的确认报文
TCP握手为什么需要三次
三次握手是为了防止已失效的连接请求报文传到服务器,造成双发的不一致,导致资源的浪费。
已失效的连接是指在客户端发送一个连接建立请求报文后,由于网络阻塞或其他原因在网络中滞留,而客户端认为产生了丢包,会重新发送一个连接建立请求报文,假设在客户端发送连接建立请求报文后,与服务端建立连接之前,之前在网络中的报文传输到了服务端,双方建立连接,会将客户端发送的第二个报文丢弃。此时,服务器认为双方已经建立了连接,并进行数据传输了,但是客户端实际上处于close状态,这些传输的数据包将会被丢弃,造成浪费。
DHCP:动态主机配置协议,是一个基于c/s架构的网络层协议,采用udp格式进行封装,端口号为67、68,其中68用于客户端,67用于服务端
工作过程:
客户端采用广播的形式发送DHCP discover报文,用于发现当前网络在的DHCP服务器
服务端单播发送DHCP offer报文,携带即将分配给客户端的IP地址,掩码,网关,dns
客户端采用广播的形式发送DHCP request报文,向服务器请求该IP
服务端向客户端单播发送DHCP ack报文,用于确认,告知客户端运行使用该IP地址
ARP:地址解析协议,通过目标设备的IP地址查询目标设备的MAC地址
ARP | 功能 |
---|---|
正向ARP | 通过IP地址获取MAC地址 |
反向ARP | 通过MAC地址获取IP地址 |
逆向ARP | 用于帧中继 |
免费ARP | 用于地址冲突检测,发送ARP包,请求地址为自己的IP地址 |
代理ARP | 本地PBR,三层设备收到ARP请求 |
一个集线器或者若干个集线器所连接的网络叫冲突域,交换机、网桥具有隔离冲突域的功能,交换机或网桥的一个接口就是一个独立的冲突域,交换机或网桥的所有接口默认在同一个广播域内,路由器具有隔离广播域的功能,一个路由器的一个接口是一个独立的广播域
NAT:网络地址转换协议,私网地址想要进入公网必须进行地址转换,将私网地址转换为公网地址,因为IP地址具有全球唯一性,NAT的出现就是解决IP v4地址不够用的情况,NAT还有一个作用就是有效阻挡攻击
NAT类型 | 方式 | 作用 |
---|---|---|
静态NAT | 一对一 | 将一个内网地址转换为公网地址 |
动态NAT | 多对多 | 将多个内网地址转换为公网地址 |
端口映射 | 将多个内网地址转换为同一个外网接口地址,将某些服务映射到外网接口,如HTTP、DNS等 | |
版本(4bit):ipv4:0100 ipv6:0110
IHL(4bit):IP的头部长度
TOS(8bit):服务类型,与QS有关,做流量标记,标记方法
总长度(16bit):IP数据包的总大小,单位bit
标识符(16bit):作用相当于序号,假设第一个分片的报文序号随机为X,则后续的每个报文+1
标记位(3bit):
分片偏移(13):表示该数据位于完整数据的偏移值
TTL值(8bit):生存时间
协议号(8bit):描述上层使用的协议
首部校验(16bit):检验数据包的完整性
水平分割:通过一个接口所接收到的路由不能从这个接口转发出去
毒性逆转:当一条路由不可达时,发送该路由时将开销值设置为16,删除路由条目,打破水平分割,将毒化路由通过其他接口扩散
最大跳数
抑制计时器:180s
触发更新:
更新计时器:周期更新,30s
无效计时器:180s,当计时器为0时,则认为该路由项无效,会将开销值设置为16
垃圾收集计时器:120s,当一个路由项变为无效路由项时,虽然cost值会被设置为16,但是路由项本身不会被立刻删除,而是启动垃圾收集计时器,在这个计时器倒计时为0前,该路由器周期更新时仍然会携带该无效路由项,一旦该计时器为0,则删除该路由项(包括之前与之对应的无效计时器,垃圾收集计时器),垃圾收集计时器为0前的某一时刻,该路由项被更新,则该路由项可以正常加表使用,cost值恢复,删除垃圾收集计时器,恢复无效计时器
OSPF:开放式最短路径优先协议,是一种典型的链路状态型协议,基于IP封装,协议号89,传递网络掩码
route id唯一
区域id必须一致
认证类型(0,明文–1,MD5—2)和认证数据
hello,dead
特殊区域标识相同(E代表是否支持5类LSA,N是否支持7类LSA,P代表是否支持7转5)
可以产生3类LSA的设备成为ABR,可以产生5类和7类LSA的设备称为ASBR
hello包:发现,建立,维持邻居关系,周期性保活
DBD包(数据库描述报文):1、主从关系选举;2、携带LSA的目录信息 //DBD包进行确认
LSR(链路状态请求):请求LSA信息 //LSU确认
LSU(链路状态更新报文):发送LSA信息 //LSack确认
LSack(链路状态确认报文):进行确认时使用 //隐性确认
OSPF状态机:
down:关闭,在邻居关系建立的过程中出现问题,邻居关系无法建立,邻居关系断开,在down状态下也发送hello报文,轮询时间120s发送hello报文,收到对方的hello后,正常发送hello
init:初始化,发送hello报文后进入init,没有接收到hello包等待dead time,不稳定状态
two-way:双向通信,收到的hello报文包含自己的rid,则立即进入two-way
在two-way状态下进行DR,BDR选举
Exstart:预启动,发送DBD报文就标志进入exstart状态。DBD协商mtu(思科默认携带,需要协商,华为默认不携带,所以华为默认不检测mtu)主从关系选举 ??????
exchange:预交换,主从选举完成,最后一个DBD中包含LSA的目录信息,发送LSR链路状态请求
loading:加载,LSR,LSU,LSack双方学习到对方的所有LSA时,进入full(请求列表,重传列表清空后)
full
一旦发送hello包则进入init状态,收到hello包含自己的rid进入two-way状态,在two-way状态下进行DR,BDR的选举,选举完成后,一旦发生DBD包,将进入exstart状态,进行主从关系选举,选举完成后,发送LSA的目录信息,进入exchange状态,进行链路状态请求,发送LSU,一旦开始发送LSU,就进入loading状态,在加载状态下进行LSA信息的学习,当请求列表和重传列表清空,代表LSA同步完成,进入full状态
减少LSA的数量
限制LSA的传播范围
类型1永远优于类型2
正常区域中产生1、2、3类,如果存在ASBR设备还有4、5类LSA,如果是NSSA区域还有7类LSA,在NSSA区域中除去了4、5类LSA,增加了7类LSA
OSPF中的p2p网络和p2mp网络都是不用选举DR/BDR的,但是二者的hello时间不一样,要建立邻接状态就需要修改二者的hello时间一致即可。
非广播多路访问网络,不能发送广播和组播报文,需要手工建立邻居
不是,单区域时是纯的链路状态协议,而多区域时,传递的是路由信息,区域间路由使用的时距离矢量算法
解决IBGP的水平分割问题
配置路由反射器或联邦
在最后一个BGP router id之前
反射器收到两个或者两个以上到达同一目标的路径时,需要判断出最优的路由,然后反射给客户端,这样会导致这些设备丧失多条路径判断最优路径的权力
Originator-id和cluster-id。RR可以通过这两种属性防止环路
Originator_ID属性用于防止路由在反射器和客户机/非客户机之间产生环路。Originator_ID属是由路由反射器(RR)产生的,携带了本地AS内部路由发起者的Router ID,当一条路由第一次被RR反射的时候,RR将originator_lD属性加入这条路由,标识这条路由的始发路由器。如果一条路由中已经存在了originator_ID属性,则RR将不会创建新的Originator_ID。当其它BGP Speaker接收到这条路由的时候,将比较收到的originator ID和本地的RouterID,如果两个ID相同,BGP Speaker会忽略掉这条路由,不做处理。
2.CLuster_LIST有路由反射器RR产生,当RR在它的客户机与非客户机之间反射路由时,RR会把本地Cluster_ID添加到Cluter_ID添加到Cluster_ID前面。当RR接受到一条更新路由时,RR会检查Cluster_List。如果Cluster_list中已经有本地的Cluster_ID,则丢弃该路由,否则将本地Cluster_ID加入该更新路由Cluster_List中,然后发送该更新路由
BGP是AS之间的路由协议,IGP是AS内的路由协议
BGP基于TCP,可以与非直连建立邻居
BGP侧重于路由管理,不负责拓扑发现
BGP除每一次以外只做增量更新,无定期更新
BGP侧重于路由控制,IGP侧重于路由互通
Originator-id和cluster-id。RR可以通过这两种属性防止环路
Originator_ID属性用于防止路由在反射器和客户机/非客户机之间产生环路。Originator_ID属是由路由反射器(RR)产生的,携带了本地AS内部路由发起者的Router ID,当一条路由第一次被RR反射的时候,RR将originator_lD属性加入这条路由,标识这条路由的始发路由器。如果一条路由中已经存在了originator_ID属性,则RR将不会创建新的Originator_ID。当其它BGP Speaker接收到这条路由的时候,将比较收到的originator ID和本地的RouterID,如果两个ID相同,BGP Speaker会忽略掉这条路由,不做处理。
2.CLuster_LIST有路由反射器RR产生,当RR在它的客户机与非客户机之间反射路由时,RR会把本地Cluster_ID添加到Cluter_ID添加到Cluster_ID前面。当RR接受到一条更新路由时,RR会检查Cluster_List。如果Cluster_list中已经有本地的Cluster_ID,则丢弃该路由,否则将本地Cluster_ID加入该更新路由Cluster_List中,然后发送该更新路由
CLUSTER_LIST是另外一种BGP属性,它 记录了路由穿越的簇。如果列表中发现了本地CLUSTER_ID,路由就会被丢弃。
与ORIGINATOR_ID作为AS内部防环机制不同,CLUSTER_LIST只用于RR的防环,因为客户机和非客户机不了解它属于哪个簇。
RR在反射路由时会创建或更新CLUSTER_LIST。比如:RR从客户机反射路由到非客户机,或从非客户机反射路由到客户机,或从客户机反射路由到另一个客户机时,它都会把本地的CLUSTER_ID添加到CLUSTER_LIST里。
主认证方发起挑战,携带主认证方的用户名和随机数
被认证方根据用户名查用户数据库,找到对应密码与随机数进行HASH,发送用户名和HASH值
主认证方根据用户名查用户数据库,找到对应的密码和随机数进行HASH,对比两个HASH,一致则认证通过,不一致则认证失败。