OFSP路由与传输层协议

一、OSPF 路由协议

1、OSPF 路由协议概述

相关概念

  • 自治系统(AS):一组在同一管理机构下,使用相同路由策略的路由器的集合。
  • 内部网关协议(IGP):在自治系统内部运行的路由协议,用于实现自治系统内路由器之间的路由信息交换,如 RIP、OSPF 等。
  • 外部网关协议(EGP):用于不同自治系统之间交换路由信息的协议,如 BGP 等。
  • 协议类型:OSPF 是链路状态路由协议,通过维护链路状态数据库,计算最短路径来生成路由表。

2、OSPF 的工作过程

  1. 建立邻接关系:路由器通过发送 Hello 包发现邻居,并完成 DR(指定路由器)和 BDR(备份指定路由器)的选举,建立稳定的邻接关系。
  2. 学习链路状态信息:邻接路由器之间通过交换数据库描述包(DBD)、链路状态请求包(LSR)、链路状态更新包(LSU)和链路状态确认包(LSAck),共享各自的链路状态信息。
  3. 构建链路状态数据库:路由器将收集到的所有链路状态信息存储在链路状态数据库中,该数据库包含了整个区域内的网络拓扑信息。
  4. 计算最短路径:使用 Dijkstra 算法,以自身为根节点,根据链路状态数据库中的信息计算到各个目标网络的最短路径,形成最短路径树。
  5. 生成路由表:根据最短路径树,生成路由表,用于指导数据包的转发。

在整个过程中,路由器会维护三张关键表:

  • 邻居列表:记录已发现的邻居路由器的相关信息,如邻居的 Router ID、接口地址、邻接状态等。
  • 链路状态数据库:存储整个区域内的链路状态信息,是计算最短路径的基础。
  • 路由表:记录到各个目标网络的最优路由信息,包括目标网络地址、子网掩码、下一跳地址、出接口、度量值(Cost)等。

3.OSPF 的基本概念

OSPF 区域

  • 作用:为适应大型网络,OSPF 在 AS 内划分多个区域,每个 OSPF 路由器只维护所在区域的完整链路状态信息,减少路由器的资源消耗,提高网络的收敛速度。
  • 区域 ID:可表示为十进制数字(如 1、0)或 IP 地址(如 192.168.0.0)。
  • 骨干区域(Area 0):负责区域间路由信息的传播,所有非骨干区域都必须直接或间接与骨干区域相连。
  • 非骨干区域:除骨干区域外的其他区域,依赖骨干区域实现与其他区域的路由互通。

Router ID

  • 作用:在 OSPF 区域内唯一标识一台路由器,用于在 OSPF 协议报文中标识发送者和接收者。
  • 选取规则
    1. 优先选取路由器 loopback 接口上数值最高的 IP 地址。
    2. 如果没有 loopback 接口,在物理端口中选取 IP 地址最高的。
    3. 也可使用router-id命令手动指定 Router ID。
  1. DR 和 BDR
    • 作用:在广播网络(如以太网)和非广播多路访问网络(NBMA)中,通过选举 DR 和 BDR,减少邻接关系的数量,降低路由信息交换的开销。所有其他路由器(DRothers)只需与 DR 和 BDR 建立邻接关系,并通过 DR 和 BDR 交换路由信息,而无需与所有邻居建立邻接关系。例如,在一个有 n 台路由器的广播网络中,若不选举 DR 和 BDR,需要建立 n (n-1)/2 个邻接关系,选举 DR 和 BDR 后,只需建立 2 (n-2)+1 个邻接关系(DR 与 BDR 之间 1 个,DR、BDR 与每个 DRothers 之间各 1 个)。
    • 选举方法
      • 自动选举:网段上 Router ID 最大的路由器被选举为 DR,第二大的被选举为 BDR。
      • 手工选择:通过设置接口优先级(范围 0-255,数值越大优先级越高,默认为 1)影响选举结果。优先级相同则比较 Router ID;优先级为 0 的路由器不参与 DR 和 BDR 的选举。
    • 选举过程:路由器的优先级会影响选举过程,但不能强制更换已存在的 DR 或 BDR。只有当 DR 故障时,BDR 会自动成为新的 DR,同时重新选举新的 BDR;如果 BDR 故障,也会重新选举新的 BDR

4.OSPF的命令设置

启动OSPFL路由进程

router opsf +具体的id号(从1开始)

指定OSPF协议运行的接口所在的区域

network IP地址 反区域地址 区域号

修改接口的优先级

先进入指定接口后输入: ip ospf priority 具体的数字(数值越大优先级越高)

查看路由表

show ip route

查看邻居列表及其状态

show ip ospf neighbor

查看OSPF的配置

查看OSPF接口的数据结构

show ip ospf interface 接口号

5、实验

按照下图对连线 对各个路由器配置IP地址

对R0的每个接口设置最大优先级 如 100使其竞选成为DR

对R2的每个接口设置优先级为 50 使其竞选成为BDR

对R1 与R3的每个接口设置优先级为0 使其放弃竞选成为DR 与BDR

之后启动每个路由器的OSFP

后结果如下

按下图配置好IP地址

打开每个路由器的OSPF协议

即可实现全网络通信

传输层协议

1、TCP 和 UDP 协议

在 TCP/IP 协议族的传输层,主要有两大核心协议,分别是 TCP(Transmission Control Protocol,传输控制协议)和 UDP(User Datagram Protocol,用户数据报协议),它们位于 TCP/IP 五层模型(物理层、数据链路层、网络层、传输层、应用层)中的传输层,负责实现进程到进程的通信,为应用层提供数据传输服务。

2、TCP 协议

  1. 核心特性

    • 面向连接:在数据传输前,必须通过 "三次握手" 建立可靠的连接;数据传输结束后,需通过 "四次握手" 断开连接。
    • 可靠传输:通过序号、确认号、校验和、重传机制等确保数据准确、完整地到达接收端,无丢失、无重复、无乱序。
    • 全双工服务:数据可在同一时间双向传输,即通信双方可同时发送和接收数据。

3、TCO字段

4、TCP连接建立与断开

  • 三次握手(建立连接) :TCP 建立连接的过程称为三次握手,目的是同步双方的序号和确认号,确保双方都具备发送和接收数据的能力,具体流程如下:
    1. 第一次握手 :客户端(如 PC1)向服务器(如 PC2)发送 SYN 报文段,报文中SYN=1,序号Seq=x(随机生成),此时客户端处于 SYN-SENT 状态。
    2. 第二次握手 :服务器收到 SYN 报文段后,向客户端发送 SYN+ACK 报文段,报文中SYN=1ACK=1,序号Seq=y(随机生成),确认号Ack=x+1(表示已收到客户端序号为 x 的字节,期望下一个字节序号为 x+1),此时服务器处于 SYN-RCVD 状态。
    3. 第三次握手 :客户端收到 SYN+ACK 报文段后,向服务器发送 ACK 报文段,报文中ACK=1,序号Seq=x+1,确认号Ack=y+1,此时客户端和服务器均进入 ESTABLISHED 状态,连接建立完成,可开始传输数据。
  • 四次握手(断开连接) :TCP 断开连接需要四次握手,因为 TCP 是全双工通信,双方需分别关闭各自的发送通道,具体流程如下:
    1. 第一次握手 :客户端(如 PC1)向服务器(如 PC2)发送 FIN+ACK 报文段,报文中FIN=1ACK=1,序号Seq=u(客户端已发送数据的最后一个字节序号),确认号Ack=v(确认已收到服务器的数据),表示客户端已无数据可发送,请求关闭发送通道,此时客户端处于 FIN-WAIT-1 状态。
    2. 第二次握手 :服务器收到 FIN+ACK 报文段后,向客户端发送 ACK 报文段,报文中ACK=1,序号Seq=v,确认号Ack=u+1,表示已收到客户端的关闭请求,此时服务器处于 CLOSE-WAIT 状态,客户端收到 ACK 后进入 FIN-WAIT-2 状态(半关闭状态,客户端可接收服务器数据,但不能发送数据)。
    3. 第三次握手 :当服务器也无数据可发送时,向客户端发送 FIN+ACK 报文段,报文中FIN=1ACK=1,序号Seq=w(服务器已发送数据的最后一个字节序号),确认号Ack=u+1,表示服务器请求关闭发送通道,此时服务器处于 LAST-ACK 状态。
    4. 第四次握手 :客户端收到 FIN+ACK 报文段后,向服务器发送 ACK 报文段,报文中ACK=1,序号Seq=u+1,确认号Ack=w+1,此时客户端处于 TIME-WAIT 状态(等待 2MSL 时间,确保服务器收到 ACK),服务器收到 ACK 后进入 CLOSED 状态,客户端等待超时后也进入 CLOSED 状态,连接彻底断开。
  • 半关闭概念:在 TCP 断开连接的第二次握手后,客户端进入 FIN-WAIT-2 状态,此时客户端已关闭发送通道,不能向服务器发送数据,但仍能接收服务器发送的数据,这种一方关闭发送通道、另一方仍可发送数据的状态称为半关闭。