ict学习笔记


数据通信网络基础

概念

通信:人与人,人与物,物与物之间通过某种媒介和行为进行的信息传递与交流

网络通信:终端设备之间通过计算机网络进行的通信

信息传递过程

image-20220124122207098

数据被打包成原始的数据载荷,并添加一定信息(目的地址)的头部和尾部形成报文(封装),报文通过网线到达网关,网关对报文进行"解封装",读取目的地址,再重新封装,根据不同的目的地址送往不同的路由器,报文由此离开本地网络,进入internet的干道进行传输,后进入目的地址所在的本地链路,由本地链路的网关或路由器再进行解封装和封装,并根据目的地址觉得发往相应的下一台路由器,最终到达目的计算机所在的网络的网关,再进行解封装和封装,根据目的地址发往相应的计算机。计算机收到报文后对其进行校验处理,校验无误后,接收报文,并将其中的数据载荷交由相应的应用程序进行处理。

常见术语

image-20220124122239944

• 数据载荷:可以理解为最终想要传递的信息,但实际上,在具有层次化结构的通信过程中, 上一层协议传递给下一层协议的数据单元(报文)都可以称之为下一层协议的数据载荷。

• 报文:网络中交换与传输的数据单元,具有一定的内在格式,通常都具有头部+数据载荷+ 尾部的基本结构。传输过程中,报文的格式和内容可能发生改变。

• 头部:为了更好的传递信息,在组装报文时,在数据载荷的前面添加的信息段统称为报文 的头部。

• 尾部:为了更好的传递信息,在组装报文时,在数据载荷的后面添加的信息段统称为报文 的尾部。注意,很多报文是没有尾部的。

• 封装:分层协议所采用的一种技术,底层协议收到来自上层协议的消息时,将该消息附加 到底层帧的数据部分。 • 解封装:是封装的逆过程,也就是去掉报文的头部和尾部,获取数据载荷的过程。

• 网关:是在采用不同体系结构或协议的网络之间进行互通时,用于提供协议转换、路由选 择、数据交换等功能的网络设备。网关是一种根据其部署位置和功能而命名的术语,而不 是一种特定的设备类型。

• 路由器:为报文选择传递路径的网络设备。

• 终端设备:数据通信系统的端设备,作为数据的发送者或接收者,提供用户接入协议操作 所需必要功能,可以是计算机、服务器、VoIP、手机等。

基本概念

数据通信网络:由路由器,交换机,防火墙,无线控制器,无线接入点,以及个人电脑,网络打印机,服务器等设备构成的通信网络。

功能:实现数据互通

网络设备

交换机:距离终端用户最近的设备,用于终端用户接入网络、对数据帧进行交换

  • 终端设备(pc,服务器等)的网络接入
  • 二层交换

在园区网络中,交换机一般来说是距离终端用户最近的设备,接入层的交换机一般为 二层交换机,又称为以太网交换机,二层是指TCP/IP参考模型的数据链路层

以太网交换机可以实现:数据帧的交换终端用户设备的接入基本的接入安全功能二层链路的冗余等;

广播域:一个节点发送一个广播报文其余节点都能够收到的节点的集合

路由器:网络层设备,可以在因特网中进行数据的转发

  • 实现同类型网络或异种网络之间的通信
  • 隔离广播域
  • 维护路由表、运行路由协议
  • 路径(路由信息)选择、IP报文的转发
  • 广域网接入、网络地址转换
  • 连接通过交换机组建的二层网络

路由器工作在TCP/IP参考模型的网络层; 路由器可以实现:维护路由表和路由信息、路由发现及路径 选择、数据转发、隔离广 播域、广域网接入和网络地址转换及特定的安全功能

防火墙:网络安全设备,用于控制两个网络之间的安全通信。通过监测、限制、更改跨越防火墙的数据流,尽可能地对外部屏蔽网络内部的信息、结构和运行状况,以此来实现对网络的安全保护

  • 隔离不同安全级别的网络
  • 实现不同安全级别的网络之间的访问控制(安全策略)
  • 用户身份认真
  • 实现远程接入功能
  • 实现数据加密及虚拟专用网业务
  • 执行网络地址转换
  • 其他安全功能

是位于两个信任程度不同的网络之间(如企业内部网络和Internet之间)的设备,它 对两个网络之间的通信进行控制,通过强制实施统一的安全策略,防止对重要信息资 源的非法存取和访问,以达到保护系统安全的目的。

无线网络:

  • ​ 无线局域网WLAN广义上是指以无线电波、激光、红外线等无线信号来代替有线局域网中 的部分或全部传输介质所构成的网络。而常见的Wi-Fi是指IEEE 802.11标准上的无线局域网 技术。

  • ​ 在WLAN中,常见的设备有胖AP、瘦AP和无线控制器AC。

    • 无线接入点 (AP, Access Point)

      • ​ 一般支持FAT AP、FIT AP和云管理工作模式,根据网络规划的需求,可以灵活地在各种模式下切换。
      • ​ FAT AP:适用于家庭,独立工作,需单独配置,功能较为单一,成本低。
      • ​ FIT AP:适用于大中型企业,需要配合AC使用,由AC统一管理和配置,功能丰富。
      • ​ 云管理:适用于中小型企业,需要配合云管理平台使用,由云管理平台统一管
        理和配置,功能丰富,即插即用。
    • 无线接入控制器 (AC, Access Controller)

      • ​ 一般位于整个网络的汇聚层,提供高速、安全、可靠的WLAN业务。
      • ​ 提供大容量、高性能、高可靠性、易安装、易维护的无线数据控制业务,具有 组网灵活、绿色节能等优势

局域网、城域网、广域网

局域网:覆盖范围在几公里之内。主要作用是把分布较近的若干终端电脑连接起来,使用以太网、wi-fi等技术

城域网:较大型的局域网,成本高,传输速率快。改进了局域网的传输介质,扩大了访问范围。主要作用是将同一城市内不同地点的主机、数据库以及局域网等连接起来;与广域网作用相似,但实现方式和性能不同。基于大型的局域网,与局域网技术相似,如:以太网 (10Gbps/100Gbps)、 WiMAX (全球互通微波访问)

广域网:覆盖范围一般在几公里以上,可大至几十、几百或几千公里。主要作用是把分布较远 (如: 跨越城市、跨越国家, 等等) 的若干局域网或城域 网连接起来;会用到电信运营商的通信线路。使用HDLC、PPP等技术

网络拓扑

是指用传输介质(如双绞线、光纤等)互联各种设备所呈现的结构化布局。

形态

image-20220124181356966

星型网络:

  • 所有节点通过一个中心节点连接在一起。
  • 优点:容易在网络中增加新的节点。通信数据必须经过中心节点中转,易于实现网络 监控。
  • 缺点:中心节点的故障会影响到整个网络的通信。

总线型网络:

  • 所有节点通过一条总线(如同轴电缆)连接在一起。
  • 优点:安装简便,节省线缆。某一节点的故障一般不会影响到整个网络的通信。
  • 缺点:总线故障会影响到整个网络的通信。某一节点发出的信息可以被所有其他节点 收到,安全性低。

环形网络:

  • 所有节点连成一个封闭的环形。
  • 优点:节省线缆。
  • 缺点:增加新的节点比较麻烦,必须先中断原来的环,才能插入新节点以形成新环。

树形网络:

  • 树型结构实际上是一种层次化的星型结构。
  • 优点:能够快速将多个星型网络连接在一起,易于扩充网络规模。
  • 缺点:层级越高的节点故障导致的网络问题越严重

全网状网络:

  • 所有节点都通过线缆两两互联。
  • 优点:具有高可靠性和高通信效率。
  • 缺点:每个节点都需要大量的物理端口,同时还需要大量的互连线缆。成本高,不易 扩展。

部分网状网络:

  • 只是重点节点之间才两两互连。
  • 优点:成本低于全网状网络。
  • 缺点:可靠性比全网状网络有所降低。

在实际组网中,通常都会根据成本、通信效率、可靠性等具体需求而采用多种拓扑形态相 结合的方法。

网络工程

网络工程,就是围绕着网络进行的一系列的活动,包括:网络规划、设计、实施、调试、 排错等。

网络工程设计的知识领域很宽广,其中路由和交换是计算机网络的基本

网络工程师:

image-20220124182016579

网络参考模型

应用和数据

应用:应用的存在是为了满足人们的各种需求,伴随着应用会有信息的产生。比如文本,图片,视频等都是信息的不同呈现方式

数据:数据是各种信息的载体,大部分应用程序所产生的数据需要在不同的设备之间传递。

• 计算机只能识别0和1的组成的电子数据(digital data)。它不具备读取各种信息的能力,所 以信息需要通过一定的规则翻译成数据。

• 而对人来说,我们不具备读取电子数据的能力,所以在读取信息的时候,需要将数据转成 人能理解的信息。

• 对于一名网络工程师来说,需要更关注数据的端到端传递的过程。

OSI参考模型

OSI 模型(Open Systems Interconnection Model),由国际化标准组织ISO (The International Organization for Standardization ) 收录在ISO 7489标准中并于1984年发布。

OSI参考模型又被称为七层模型,由下至上依次为:

  • 物理层:在设备之间传输比特流,规定了电平、速度和电缆针脚等物理特性。
  • 物理层:在设备之间传输比特流,规定了电平、速度和电缆针脚等物理特性。
  • 网络层:定义逻辑地址,供路由器确定路径,负责将数据从源网络传输到目的网络。
  • 传输层:提供面向连接或非面向连接的数据传递以及进行重传前的差错检测。
  • 会话层:负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备 中的应用程序之间的服务请求和响应组成。
  • 表示层:提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的 数据能被另一个系统的应用层识别。
  • 应用层:OSI参考模型中最靠近用户的一层,为应用程序提供网络服务。

TCP/IP参考模型

image-20220124182840485

结构上与OSI模型类似,采用分层架构,同时层与层之间联系紧密。

TCP/IP标准参考模型将OSI中的数据链路层和物理层合并为网络接入层,这种划分方式其实 是有悖于现实协议制定情况的,故融合了TCP/IP标准模型和OSI模型的TCP/IP对等模型被提出

TCP/IP常见协议

image-20220124183002339

应用层

  • HTTP(Hypertext Transfer Protocol,超文本传输协议):用来访问在网页服务器上 的各种页面。
  • FTP(File Transfer Protocol,文件传输协议):为文件传输提供了途径,它允许数据从一台主机传送到另一台主机上,用于文件的下载和上传,采用C/S(Client/Server)结构。
  • DNS(Domain Name Service,域名称解析服务):用于实现从主机域名到IP地址之 间的转换。
  • Telnet:是数据网络中提供远程登录服务的标准协议。Telnet为用户提供了在本地计算机上完成远程设备工作的能力。

传输层

  • TCP (Transmission Control Protocol,传输控制协议) :为应用程序提供可靠的面向连接的通信服务。目前,许多流行的应用程序都使用TCP。
  • UDP(User Datagram Protocol,用户数据报协议):提供了无连接通信,且不对传 送数据包进行可靠性的保证。

网络层

  • IP(Internet Protocol,互联网协议):将传输层的数据封装成数据包并完成源站点 到目的站点的转发,提供无连接的、不可靠的服务。
  • IGMP(Internet Group Management Protocol,因特网组管理协议):负责IP组播 成员管理的协议。它用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播 组成员关系。
  • ICMP(Internet Control Message Protocol,网际报文控制协议):基于IP协议在网 络中发送控制消息,提供可能发生在通信环境中的各种问题反馈。通过这些信息,使 管理者可以对所发生的问题作出诊断,然后采取适当的措施解决。

数据链路层

  • PPP(Point-to-Point Protocol,点对点协议):一种点对点模式的数据链路层协议, 多用于广域网。
  • Ethernet( 以太网协议 ):一种多路访问广播型数据链路层协议,是当前应用最为广 泛的局域网技术。
  • PPPoE(Point-to-Point Protocol over Ethernet,以太网承载PPP协议):PPPoE提 供通过简单桥接访问设备(接入设备)把一个网络的多个主机连接到远程访问集中器 的功能。常见的应用有家庭宽带拨号上网。

常见协议标准化组织

IETF:负责开发和推广互联网协议(特别是TCP/IP协议族的协议)的志愿组织

IEEE:制定了全世界电子,电气和计算机科学领域30%左右的标准,如IEEE802.3(Ethernet)、IEEE802.11(WiFi)等。

ISO:指定计算机网络标准,如OSI模型

应用层

应用层为应用软件提供接口,使应用程序能够使用网络服务。应用层协议会指定使用相应的传输层协议,以及传输层所使用的端口等。

应用层的PDU被称为Data(数据)。

image-20220124184248517

TCP/IP每一层都让数据得以通过网络进行传输,这些层之间使用PDU(Packet Data Unit, 协议数据单元)彼此交换信息,确保网络设备之间能够通信。

不同层的PDU中包含有不同的信息,因此PDU在不同层被赋予了不同的名称

FTP:

FTP客户端提供本地设备对远程服务器的文件进行操作的命令,用户在PC上通过应用程序作为FTP Client,并与FTP服务器建立连接后,可以对FTP Server上的文件进行操作

FTP服务器是运行FTP服务的设备,提供远程客户端访问和操作的功能,用户可以通过FTP客户端程序登录到服务器上,访问设备上的文件。

Telnet:

用户通过Telnet客户端程序连接到Telnet服务器。用户在Telnet客户端中输入命令,这些命令会在服务器端运行,就像直接在服务端的控制台输入一样

传输层

传输层协议接收来自应用层的数据baoz,封装上相应的传输层头部,帮助其建立“端到端”的连接。

传输层的PDU被称为Segment(段)。

image-20220124185652699

TCP和UDP

报文格式

image-20220124185736705

TCP报文头部:

  • Source Port:源端口,标识哪个应用程序发送。长度为16比特。
  • Destination Port:目的端口,标识哪个应用程序接收。长度为16比特。
  • Sequence Number:序号字段。TCP链接中传输的数据流每个字节都编上一个序号。 序号字段的值指的是本报文段所发送数据的第一个字节的序号。长度为32比特。
  • Acknowledgment Number:确认序列号,是期望收到对方下一个报文段数据的第1 个字节的序号,即上次已成功接收到的数据段的最后一个字节数据的序号加1。只有 Ack标识为1,此字段有效。长度为32比特。
  • Header Length:头部长度,指出TCP报文头部长度,以32比特(4字节)为计算单位。 若无选项内容,则该字段为5,即头部为20字节。
  • Reserved:保留,必须填0。长度为6比特。
  • Control bits:控制位,包含FIN、ACK、SYN等标志位,代表不同状态下的TCP数据 段。
  • Window:窗口TCP的流量控制,这个值表明当前接收端可接受的最大的数据总数 (以字节为单位)。窗口最大为65535字节。长度为16比特。
  • Checksum:校验字段,是一个强制性的字段,由发端计算和存储,并由收端进行验 证。在计算检验和时,要包括TCP头部和TCP数据,同时在TCP报文段的前面加上12 字节的伪头部。长度为16比特。
  • Urgent:紧急指针,只有当URG标志置1时紧急指针才有效。TCP的紧急方式是发送端 向另一端发送紧急数据的一种方式。紧急指针指出在本报文段中紧急数据共有多少个 字节(紧急数据放在本报文段数据的最前面)。长度为16比特。
  • Options:选项字段(可选),长度为0-40字节。

UDP报文头部

  • Source Port:源端口,标识哪个应用程序发送。长度为16比特。
  • Source Port:源端口,标识哪个应用程序发送。长度为16比特。
  • Length:该字段指定UDP报头和数据总共占用的长度。可能的最小长度是8字节,因为 UDP报头已经占用了8字节。由于这个字段的存在,UDP报文总长不可能超过65535 字节(包括8字节的报头,和65527字节的数据)。
  • Checksum:覆盖UDP头部和UDP数据的校验和,长度为16比特

端口号

image-20220124190431491

TCP的建立-三次握手

▫由TCP连接发起方(图中PC1),发送第一个SYN位置1的TCP报文。初始序列号a为一 个随机生成的数字,因为没收到过来自PC2的任何报文,所以确认序列号为0 ;

▫ 接收方(图中PC2)接收到合法的SYN报文之后,回复一个SYN和ACK置1的TCP报文。 初始序列号b为一个随机生成的数字,同时因为此报文是回复给PC1的报文,所以确 认序列号为a+1;

▫ PC1接收到PC2发送的SYN和ACK置位的TCP报文后,回复一个ACK置位的报文,此时 序列号为a+1,确认序列号为b+1。PC2收到之后,TCP双向连接建立

image-20220124193244163

TCP的序列号与确认序列号:

TCP使用序列号和确认序列号字段实现数据的可靠和有序传输。

• 假设PC1要给PC2发送一段数据,传输过程如下:

​ ▫ 1. PC1将全部待TCP发送的数据按照字节为单位编上号。假设第一个字节的编号为 “a+1”,第二个字节的序号为“a+2”,依次类推。

​ ▫ 2. PC1会把每一段数据的第一个字节的编号作为序列号(Sequence number),然后将TCP报文发送出去。

​ ▫ 3. PC2在收到PC1发送来的TCP报文后,需要给予确认同时请求下一段数据,如何确 定下一段数据呢?序列号( a+1 )+载荷长度=下一段数据的第一个字节的序号 (a+1+12)

​ ▫ 4. PC1在收到PC2发送的TCP报文之后,发现确认序列号为“a+1+12” ,说明“a+1” 到“a+12”这一段的数据已经被接受,需要从“a+1+12”开始发送。

• 为了提升发送效率,也可以一次性发送多段数据,由接收方统一确认。

TCP的窗口滑动机制

• 1. 在TCP三次握手建立连接时,双方都会通过Window字段告诉对方本端最大能够接受的字 节数(也就是缓冲区大小)。

• 2. 连接建立成功之后,发送方会根据接受方宣告的Window大小发送相应字节数的数据。

• 3. 接受方接受到数据之后会放在缓冲区内,等待上层应用来取走缓冲的数据。若数据被上 层取走,则相应的缓冲空间将被释放。

• 4. 接收方根据自身的缓存空间大小通告当前的可以接受的数据大小( Window )。

• 5. 发送方根据接收方当前的Window大小发送相应数量的数据

TCP的关闭-四次挥手

▫ 1. 由PC1发出一个FIN字段置”1 ”的不带数据的TCP段;

▫ 2. PC2收到PC1发来的FIN置位的TCP报文后,会回复一个ACK置位的TCP报文。

▫ 3. 若PC2也没有需要发送的数据,则直接发送FIN置位的TCP报文。假设此时PC2还有 数据要发送,那么当PC2发送完这些数据之后会发送一个FIN置位的TCP报文去关闭连 接。

▫ 4. PC1收到FIN置位的TCP报文,回复ACK报文,TCP双向连接断开

image-20220124202101704

网络层

传输层负责建立主机之间进程与进程之间的连接,而网络层则负责数据从一台主机到另一台主机之间的传递。

网络层的PDU被称为包

image-20220124202325984

网络层协议工作过程

  • 当采用IP作为网络层协议时,通信的双方都会被分配到一个“独一无二”的IP地址来标识自 己。IP地址可被写成32位的二进制整数值形式,但为了方便人们阅读和分析,它通常被写 成点分十进制的形式,即四个字节被分开用十进制表示,中间用点分隔,比如192.168.1.1。
  • IP数据包的封装与转发:
    • 网络层收到上层(如传输层)协议传来的数据时候,会封装一个IP报文头部,并且把 源和目的IP地址都添加到该头部中。
    • 中间经过的网络设备(如路由器),会维护一张指导IP报文转发的“地图”——路由 表,通过读取IP数据包的目的地址,查找本地路由表后转发IP数据包。
    • IP数据包最终到达目的主机,目的主机通过读取目的IP地址确定是否接受并做下一步 处理。
  • IP协议工作时,需要如OSPF、IS-IS、BGP等各种路由协议帮助路由器建立路由表,ICMP帮 忙进行网络的控制和状态诊断。

image-20220124202532079

数据链路层

数据链路层位于网络层和物理层之间,可以向网络层的IP、IPV6等协议提供服务,数据链路层的PDU被称为Frame(帧)。

image-20220124202733379

以太网与MAC地址

以太网:是一种支持多点接入的广播式数据链路层协议。个人电脑的网络接口遵循的就是以太网标准。一般情况下,一个广播域对应一个IP网段。

以太网MAC地址:MAC地址在网络中唯一标识一个网卡,每个网卡都需要且会有唯一的一个MAC地址,MAC地址用于在一个IP网段内,寻址找到具体的物理设备。工作在数据链路层的设备,例如以太网交换机,会维护一张MAC地址表,用于指导数据帧转发。MAC地址由48比特(6个字节)长,12位的16进制数字组成。例如:48-A4-72-1C-8F-4F

地址解析协议(ARP)

ARP(Address Resolution Protocol,地址解析协议)是根据IP地址获取数据链路层地址的 一个TCP/IP协议。

ARP是IPv4中必不可少的一种协议,它的主要功能是:

  • 将IP地址解析为MAC地址;
  • 维护IP地址与MAC地址的映射关系的缓存,即ARP表项;
  • 实现网段内重复IP地址的检测。

ARP的工作原理

image-20220124203445209

  • 网络设备一般都有一个ARP缓存(ARP Cache)。ARP缓存用来存放IP地址和MAC地址的关联信息。
  • 在发送数据前,设备会先查找ARP缓存表。如果缓存表中存在对方设备的ARP表项,则直接 采用该表项中的MAC地址来封装帧,然后将帧发送出去。如果缓存表中不存在相应信息, 则通过发送ARP Request报文来获得它。
  • 学习到的IP地址和MAC地址的映射关系会被放入ARP缓存表中存放一段时间。在有效期内 (缺省:180s),设备可以直接从这个表中查找目的MAC地址来进行数据封装,而无需进 行ARP查询。过了这段有效期,ARP表项会被自动删除。
  • 如果目标设备位于其他网络,则源设备会在ARP缓存表中查找网关的MAC地址。然后将数 据发送给网关。最后网关再把数据转发给目的设备

image-20220124203752805

  • 主机1的ARP缓存表中不存在主机2的MAC地址,所以主机1会发送ARP Request来获取目的 MAC地址。
  • ARP Request报文封装在以太帧里。帧头中的源MAC地址为发送端主机1的MAC地址。此时, 由于主机1不知道主机2的MAC地址,所以目的MAC地址为广播地址FF-FF-FF-FF-FF-FF。
  • ARP Request报文中包含发送端MAC地址、发送端IP地址、目的端MAC地址、目的端IP地 址,其中目的端MAC地址的值为0。ARP Request报文会在整个网络上传播,该网络中所有 主机包括网关都会接收到此ARP Request报文。

image-20220124203834076

若不匹配则不会响应,若匹配则则该主机会 将ARP请求报文中的发送端MAC地址和发送端IP地址信息记录到自己的ARP缓存表中,然后 通过ARP Reply报文进行响应

image-20220124203926268

  • 主机2会向主机1回应ARP Reply报文。
  • ARP Reply报文中的发送端IP地址是主机2自己的IP地址,目的端IP地址是主机1的IP地址, 目的端MAC地址是主机1的MAC地址,发送端MAC地址是自己的MAC地址,同时操作类型 被设置为Reply。
  • ARP Reply报文通过单播传送

image-20220124204003680

物理层

数据到达物理层之后,物理层会根据物理介质的不同,将数字信号转换为光信号、电信号或者是电磁波信号

物理层的PDU被称为比特流

image-20220124204140328

常见传输介质

  • 双绞线:当今以太网最常见的传输介质,按照抗电磁干扰能力还可以分为: STP-屏蔽双绞线和UTP-非屏蔽双绞线
  • 光纤传输,按照功能部件可分为:
    • 光纤传输,按照功能部件可分为:
    • 光模块:将电信号与光信号互转的器件,产生光信号。
  • 串口电缆在WAN(Wide Area Network,广域网)中大规模使用,根据WAN线路类型不同, 串口电缆在设备上连接的接口类型也不同:异/同步串口、ATM接口、POS接口、CE1/PRI 接口等。
  • 无线信号的传输可以通过电磁波进行,例如:无线路由器将数据通过调制以电磁波发送出 去,移动终端的无线网卡将电磁波解调,得到数据,完成从无线路由器到移动终端的数据 传输。

数据通信过程

发送方数据封装->中间网络数据传输->接收方数据解封装

发送方数据封装

image-20220124204458566

image-20220124204507478

中间网络数据传输

封装好的完整数据,会在网络中被传递

一般情况下:

  • 网络中的二层设备(如以太网交换机)只会解封装数据的二层头部,根据二层头部的 信息进行相应的“交换”操作。
  • 网络中的三层设备(如路由器)只会解封装到三层头部,并且根据三层头部的信息进 行相应的“路由”操作。

image-20220124204629644

接收方数据解封装

image-20220124204656862

经过中间网络传递之后,数据最终到达目的服务器。根据不同的协议头部的信息,数据将 被一层层的解封装并做相应的处理和传递,最终交由WEB服务器上的应用程序进行处理。

分层模型的概念的优势

  • 各个层次之间分工、界限明确,有助于各个部件的开发、设计和故障排除。
  • 通过定义在模型的每一层实现什么功能,鼓励产业的标准化。
  • 通过提供接口的方式,使得各种类型的网络硬件和软件能够相互通信,提高兼容性。

网络层协议及IP编址

网络层协议

网络层协议包括IP协议,ICMP协议,IPX协议等

image-20220127163103508

IP协议

ip是Internet Protocol的缩写。Internet Protocol本身是一个协议文件的名称,该协议文件的内容非常少,主要是定义并阐述了IP报文的格式

经常被提及的IP,一般不是特指Internet Protocol这个协议本身,而是泛指直接或间接与IP协议相关的任何内容。

作用:为网络层的设备提供逻辑地址,负责数据包的寻址和转发。

IPv4(Internet Protocol Version 4)协议族是TCP/IP协议族中最为核心的协议族。它工作在TCP/IP协议栈的网络层,该层与OSI参考模型的网络层相对应。

IPv6(Internet Protocol Version 6)是网络层协议的第二代标准协议,也被称为IPng (IP Next Generation)。它是Internet工程任务组IETF(Internet Engineering Task Force)设计的一套规范,是IPv4(Internet Protocol Version 4)的升级版本。

数据封装

image-20220127163557973

应用数据需要经过TCP/IP每一层处理之后才能通过网络传输到目的端,每一层上都使用该 层的协议数据单元PDU(Protocol Data Unit)彼此交换信息。

如上层数据传输层添加TCP报头后得到的PDU被称为Segment(数据段);数据段被传递给网络层,网络层添加IP报头得到的PDU被称为Packet(数据包);数据包被传递到数据链路层,封装数据链路层报头和尾部得到的PDU被称为Frame(数据帧); 最后,帧被转换为比特,通过网络介质传输。

IPV4报文格式

image-20220127163943203

  • Version:4 bit,4:表示为IPv4;6:表示为IPv6。
  • Header Length:4 bit,首部长度,如果不带Option字段,则为20,最长为60。
  • Type of Service:8 bit,服务类型。只有在有QoS差分服务要求时,这个字段才起作用
  • Total Length:16 bit,总长度,整个IP数据包的长度。
  • Identification:16 bit,标识,分片重组时会用到该字段。
  • Flags:3 bit,标志位。
    • 保留段位:0,保留。
    • 不分段位:1,表示“不能分片”;0,表示“能分片”。
    • 更多段位:1,表示“后面还有分片”;0,表示“最后一个数据片”。
  • Fragment Offset:12 bit,片偏移,分片重组时会用到该字段。指出较长的分组在分片后, 该片在原分组中的相对位置,与更多段位组合,帮助接收方组合分段的报文。
  • Time to Live:8 bit,生存时间。可经过的最多路由数,即数据包在网络中可通过的路由器数的最大值。
  • Protocol:8 bit,协议:下一层协议。指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个进程处理。
    • 1: ICMP, Internet Control Message;
    • 2: IGMP, Internet Group Management;
    • 6: TCP , Transmission Control Protocol;
    • 17: UDP, User Datagram Protocol。
  • Header Checksum:16 bit,首部检验和。
  • Source IP Address:32 bit,源IP地址。
  • Destination IP Address:32 bit,目的IP地址。
  • Options:可变,选项字段。
  • Padding:可变,填充字段,全填0

数据包分片

将报文分割成多个片段的过程叫分片

网络中转发的ip报文的长度可以不同,但若报文长度超过了数据链路所支持的最大长度,则报文就要分割成若干个较小的片段才能在链路上传输

与IP数据包包头中的Identification,Flags,Fragment Offset三部分内容有关

生存时间(Time to Live,TTL)

TTL字段设置了数据包可以经过的路由器数目,一旦经过一个路由器,TTL值减一,当为0时,数据包被丢弃

报文在网段间转发时,如果网络设备上的路由规划不合理,就可能会出现环路,导致报文在网络中无限循环,无法到达目的端。环路发生后,所有发往这个目的地的报文都会被循环转发,随着这种报文逐渐增多,网络将会发生拥塞。

为避免环路导致的网络拥塞,IP报文头中包含一个生存时间TTL(Time To Live)字段。 报文每经过一台三层设备,TTL值减1。初始TTL值由源端设备设置。当报文中的TTL 降为0时,报文会被丢弃。同时,丢弃报文的设备会根据报文头中的源IP地址向源端 发送ICMP错误消息。(注意:网络设备也可被配置为不向源端发送ICMP错误消息。)

协议号

目的端的网络层在接收并处理报文以后,需要决定下一步对报文如何处理。IP报文头中的协 议字段标识了将会继续处理报文的协议。

该字段可以标识网络层协议,如ICMP(Internet Control Message Protocol,因特网控制 报文协议,对应值0x01);也可以标识上层协议,如TCP(Transmission Control Protocol, 传输控制协议,对应值0x06)、UDP(User Datagram Protocol,用户数据包协议,对应 值0x11)

IPV4地址介绍

IP地址是网络中用于标识一个节点(或者网络设备的接口)

ip地址用于ip报文在网络中的寻址

在IP网络上,如果用户要将一台计算机连接到Internet上,就需要申请一个IP地址。IP地址 就像现实中的地址,可以标识网络中的一个节点,数据就是通过它来找到目的地的。即我 们通过IP地址实现全球范围内的网络通信。

IP地址是网络设备接口的属性,不是网络设备本身的属性。当我们说给某台设备分配一个IP 地址时,实质上是指给这台设备的某个接口分配一个IP地址。如果设备有多个接口,通常每 个接口都至少需要一个IP地址。

IPV4地址的表示

P地址是长度是32 bit,由4个字节组成。为了阅读和书写方便,IP地址通常采用点分 十进制数来表示。

IPV4地址通常采用点分十进制表示

IPV4地址范围00000000.00000000.00000000.0000000011111111.11111111.11111111.1111111 1,即0.0.0.0255.255.255.255

IPV4地址构成

网络部分(网络号):用于标识一个网络

  • IP地址不能反映任何有关主机位置的地理信息,只能通过网络号码字段判断出 主机属于哪个网络。
  • 对于网络号相同的设备,无论实际所处的物理位置如何,它们都是处在同一个 网络中。

主机部分(主机号):用来区分一个网络内的不同主机

网络掩码(子网掩码):区分一个ip地址中的网络部分和主机部分

  • 网络掩码为32 bit,与IP地址的位数一样,通常也以点分十进制数来表示。
  • 网络掩码不是一个IP地址,在二进制的表示上是一堆连续的1、后面接一堆连续的0。
  • 通常将网络掩码中1的个数称为这个网络掩码的长度。如:掩码0.0.0.0的长度是0,掩 码252.0.0.0的长度是6。
  • 网络掩码一般与IP地址结合使用,其中值为1的比特对应IP地址中的网络位;值为0的 比特对应IP地址中的主机位,以此来辅助我们识别一个IP地址中的网络位与主机位。 即网络掩码中1的个数就是IP地址的网络号的位数,0的个数就是IP地址的主机号的位 数

IP地址寻址

网络号用于表示主机所在的网络,,类似于“XX省XX市XX区XX小区”的作用。

主机号用于表示网络号所定义的网络范围内某个特定的主机接口,类似于门牌号“XX栋XX 号”的作用。

网络寻址:

  • 二层网络寻址:可直接通过IP地址,找到对应的主机接口。
  • 三层网络寻址:利用网关转发来自不同网段之间的数据包。

网关:

  • 报文转发过程中,首先需要确定转发路径以及通往目的网段的接口。如果目的主机与 源主机不在同一网段,报文需要先转发到网关,然后通过网关将报文转发到目的网段。
  • 网关是指接收并处理本地网段主机发送的报文并转发到目的网段的设备。为实现此功能,网关必须知道目的网段的路由。网关设备上连接本地网段的接口地址即为该网段 的网关地址。

IP地址分类(有类编址)

image-20220130100808354

  • A、B、C、D、E类的类别字段分别是二进制数0、10、110、1110、1111,通过网络 号码字段的前几个比特就可以判断IP地址属于哪一类,这是区分各类地址最简单的方 法。
  • A、B、C三类地址是单播IP地址 (除一些特殊地址外),只有这三类地址才能分配给主 机接口使用。
  • D类地址属于组播IP地址。
  • E类地址专门用于特殊的实验目的。

A,B,C类地址比较

  • 使用A类地址的网络称为A类网络;使用B类地址的网络称为B类网络;使用C类地址的 网络称为C类网络。
  • 使用A类地址的网络称为A类网络;使用B类地址的网络称为B类网络;使用C类地址的 网络称为C类网络。
  • B类网络的网络号为16 bit,介于A类和C类网络之间;首两位恒定为10,地址空间为: 128.0.0.0~191.255.255.255。
  • C类网络的网络号为24 bit,个数很多,但所允许的主机接口的个数就很少;首三位恒 定为110,地址空间为:192.0.0.0~223.255.255.255。

组播地址:组播能实现一对多传递消息。

IP地址类型

网段:一个网络号所定义的网络范围

网络地址:用于标识一个网络

  • 网络号为X,主机号的每个比特都为0。
  • 不能分配给具体的主机接口使用。

广播地址:用于向该网络中的所有主机发送数据的特殊地址

  • 网络号为X,主机号的每个比特都为1。
  • 不能分配给具体的主机接口使用。

可用地址:又称主机地址,可用分配给具体的主机接口使用。

一个网段的主机位为n位,则IP地址数为:2ⁿ,可用IP地址数为:2ⁿ-2 (减去网络地址 和广播地址)。

私网IP地址

公网IP地址:由IANA统一分配,以保证任何一个IP地址在Internet上的唯一性,这里的IP地址是指公网IP地址。

私网IP地址:私网IP地址的使用使得网络可以得到更为自由地扩展,因为同一个私网 IP地址是可以在不同的私有网络中重复使用的。在IP地址空间中,A,B,C三类地址各预留了一些地址专门用于私网IP地址

image-20220130104358434

私有网络连接到Internet:私有网络由于使用了私网IP地址,是不允许连接到Internet的。 后来在实际需求的驱动下,许多私有网络也希望能够连接到Internet上,从而实现私网与 Internet之间的通信,以及通过Internet实现私网与私网之间的通信。私网与Internet的互联, 必须使用网络地址转换 (NAT)技术实现。

NAT (Network Address Translation),网络地址转换,其基本作用是实现私网IP地址 与公网IP地址之间的转换。

特殊IP地址

255.255.255.255:可作为目的地址发往网段所有主机(受限于网关)

  • 这个地址称为有限广播地址,它可以作为一个IP报文的目的IP地址使用。
  • 路由器接收到目的IP地址为有限广播地址的IP报文后,会停止对该IP报文的转发。

0.0.0.0:

  • 如果把这个地址作为网络地址,它的意思就是“任何网络”的网络地址;如果把这个 地址作为主机接口地址,它的意思就是“这个网络上主机接口”的IP地址。
  • 如果把这个地址作为网络地址,它的意思就是“任何网络”的网络地址;如果把这个 地址作为主机接口地址,它的意思就是“这个网络上主机接口”的IP地址。

127.0.0.1/8:

  • 这个地址为环回地址,它可以作为一个IP报文的目的IP地址使用。其作用是测试设备 自身的软件系统。
  • 一个设备产生的、目的IP地址为环回地址的IP报文是不可能离开这个设备本身的

169.254.0.0/16:

  • 如果一个网络设备获取IP地址的方式被设置成了自动获取方式,但是该设备在网络上又没有找到可用的DHCP(动态主机配置协议,用于动态分配网络配置参数,如IP地址)服务器,那么该设备就会使用169.254.0.0/16网段的某个地 址来进行临时通信。

IPV4与IPV6

image-20220130105012576

子网划分

“有类编址”的地址划分过于死板,划分的颗粒度太大,会有大量的主机号不能被充分利 用,从而造成了大量的IP地址资源浪费。因此可以利用子网划分来减少地址浪费,即VLSM (Variable Length Subnet Mask),可变 长子网掩码。将一个大的有类网络,划分成若干个小的子网,使得IP地址的使用更为科学。

如何进行子网划分

原网段分析

假设有一个C类网段地址:192.168.10.0;默认情况下,网络掩码为24位,包括24位网络位, 8位主机位。通过计算可知,这样的网络中,有256个IP地址(2的8次方)。

向主机借位,形成子网

现在,将原有的24位网络位向主机位去“借”1位,这样网络位就扩充到了25位,相对的主 机位就减少到了7位,而借过来的这1位就是子网位,此时网络掩码就变成了25位,即 255.255.255.128,或/25。

子网位:可取值0或取值1,则得到了两个新的子网。

通过计算可知,现在网络中,有128个IP地址

计算子网网络地址

计算网络地址,主机位全为0:

  • 计算网络地址,主机位全为0:
  • 如果子网位取值1,则网络地址为192.168.10.128/25

计算子网广播地址

计算广播地址,主机位全为1:

  • 如果子网位取值0,则网络地址为192.168.10.127/25。
  • 如果子网位取值1,则网络地址为192.168.10.255/25。

ICMP协议

是IP协议的辅助协议,用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。

  • 为了更有效地转发IP数据报文和提高数据报文交互成功的机会,在网络层使用ICMP协议。 ICMP允许主机或设备报告差错情况和提供有关异常情况的报告。
  • ICMP消息:

    • ICMP消息封装在IP报文中,IP报文头部Protocol值为1时表示ICMP协议。
    • 字段解释:
      • ICMP消息的格式取决于Type和Code字段,其中Type字段为消息类型,Code字 段包含该消息类型的具体参数。
      • 校验和字段用于检查消息是否完整。
      • 消息中包含32 bit的可变参数,这个字段一般不使用,通常设置为0。
        • 在ICMP重定向消息中,这个字段用来指定网关IP地址,主机根据这个地 址将报文重定向到指定网关。
        • 在Echo请求消息中,这个字段包含标识符和序号,源端根据这两个参数 将收到的回复消息与本端发送的Echo请求消息进行关联。尤其是当源端 向目的端发送了多个Echo请求消息时,需要根据标识符和序号将Echo请 求和回复消息进行一一对应

image-20220130202630726

ICMP重定向

ICMP重定向报文是ICMP控制报文中的一种。在特定的情况下,当路由器检测到一台机器使用非最优路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由

过程:

  • 主机A希望发送报文到服务器A,于是根据配置的默认网关地址向网关RTB发送报文。
  • 网关RTB收到报文后,检查报文信息,发现报文应该转发到与源主机在同一网段的另 一个网关设备RTA,此转发路径是更优的路径,所以RTB会向主机发送一个Redirect 消息,通知主机直接向另一个网关RTA发送该报文。
  • 主机收到Redirect消息后,会向RTA发送报文,然后RTA会将该报文再转发给服务器 A

image-20220130205207831

ICMP差错检测

ICMP Echo消息常用于诊断源和目的地之间的网络连通性,同时还可以提供其他信息,如报文往返时间等

ICMP的一个典型应用是Ping。Ping是检测网络连通性的常用工具,同时也能够收集其他相 关信息。用户可以在Ping命令中指定不同参数,如ICMP报文长度、发送的ICMP报文个数、 等待回复响应的超时时间等,设备根据配置的参数来构造并发送ICMP报文,进行Ping测试。ping常用于探测到达目的节点的网络可达性

ICMP错误报告

ICMP定义了各种错误消息,用于诊断网络连接性问题;根据这些错误消息,源设备可以判 断出数据传输失败的原因。

  • 如果网络中发生了环路,导致报文在网络中循环,且最终TTL超时,这种情况下网络 设备会发送TTL超时消息给发送端设备。
  • 如果目的地不可达,则中间的网络设备会发送目的不可达消息给发送端设备。目的不 可达的情况有多种,如果是网络设备无法找到目的网络,则发送目的网络不可达消息; 如果网络设备无法找到目的网络中的目的主机,则发送目的主机不可达消息。

ICMP的另一个典型应用是Tracert。Tracert基于报文头中的TTL值来逐跳跟踪报文的转发路径。为了跟踪到达某特定目的地址的路径,源端首先将报文的TTL值设置为1。该报文到达第一个节点后,TTL超时,于是该节点向源端发送TTL超时消息,消息中携带时间戳。然后 源端将报文的TTL值设置为2,报文到达第二个节点后超时,该节点同样返回TTL超时消息, 以此类推,直到报文到达目的地。这样,源端根据返回的报文中的信息可以跟踪到报文经 过的每一个节点,并根据时间戳信息计算往返时间。Tracert是检测网络丢包和时延的有效手段,同时可以帮助管理源发现网络中的路由环路

IPV4地址配置及基本应用

IP地址的基础配置命令

进入接口视图:

interface interface-type interface-number

*interface-type interface-number:*指定接口类型和接口编号。接口类型和接口编号之间可以输入空格也可以不输

配置接口的IP地址

ip address ip-address{mask|mask-length}

在接口视图下,通过此命令来给网络设备上的接口配置ip地址,实现网络的互连。

ip-address:指定接口的ip地址,点分十进制形式

mask:指定子网掩码,点分十进制形式

mask-length:指定掩码长度,整数形式,取值范围是0-32.

案例:配置接口ip地址

image-20220130214110005

  • 物理接口:物理接口是指网络设备上实际存在的接口,分为负责承担业务传输的业务接口 和负责管理设备的管理接口,例如GE业务接口和MEth管理接口。
  • 逻辑接口:逻辑接口是指能够实现数据交换功能但物理上不存在、需要通过配置建立的接 口,需要承担业务传输,例如VLANIF接口、Loopback接口。
    • Loopback接口:用户需要一个接口状态永远是Up的接口的IP地址时,可以选择 Loopback接口的IP地址。
      • Loopback接口:用户需要一个接口状态永远是Up的接口的IP地址时,可以选择 Loopback接口的IP地址。
      • Loopback接口配置IP地址后,就可以对外发布。Loopback接口上可以配置32位 掩码的IP地址,达到节省地址空间的目的。
      • Loopback接口不能封装任何链路层协议,数据链路层也就不存在协商问题,其 协议状态永远都是Up。
      • 对于目的地址不是本地IP地址,出接口是本地Loopback接口的报文,设备会将 其直接丢弃。

网络IP地址规划

规划目标:易管理、易扩展、利用率高。

规划原则:

  • 唯一性:一个IP网络中不能有两个主机采用相同的IP地址。
  • 连续性:连续地址在层次结构网络中易于进行路由汇总,大大缩减路由表,提高路由 计算的效率、加速路由收敛。
  • 扩展性:地址分配在每一层次上都要有合理的预留,在网络规模扩展时能保证路由汇 总所需的连续性。避免网络扩展造成的地址、路由重新规划。
  • 结构化、业务相关性:地址规划与网络拓扑结构和网络承载业务结合起来,便于路由 规划和QoS部署。好的IP地址规划使得每个地址都具有实际含义,看到一个地址就可 以大致判断出该地址所属的设备和对应的业务。

IP路由基础

路由概述

  • 当路由器从多种不同的途径获知到达同一个目的网段的路由(这些路由的目的网络地址及网络掩码均相同)时,会优先路由优先级值最小的路由;如果这些路由学习自相同的路由协议,则优选度量值最优的。总之,最优的路由加入路由表
  • 当路由器收到一个数据包时,会在自己的路由表里查询数据包的目的IP地址,如果能够找到匹配的路由表项,则依据表项所指示的出接口及下一跳来转发数据;如果没有匹配的表现则丢弃该数据包
  • 路由器的行为是逐级跳的,数据包从源到目的地沿路径每个路由器都必须有关于目标网段的路由,否则就会造成丢包
  • 数据通信往往是双向的,因此要关注流量的往返(往返路由)

路由基本概念

通过IP地址能够寻找到一个唯一的网络节点,每个IP都有自己所属的网段,这些网络可能分 布在世界各地,共同组成了全球的网络。

为了实现不同网段之间的相互通信,网络设备需要能够转发来自不同网段的IP报文,将其送 达不同的IP网段

路由

  • 路由是指导报文转发的路径信息,通过路由可以确认转发IP报文的路径
  • 路由设备是依据路由转发报文到目的网段的网络设备,最常见的路由设备:路由器
  • 路由设备维护着一张路由表,保存着路由信息
  • 网关以及中间节点(路由器)根据收到的IP报文其目的地址选择一条合适的路径,并将报文 转发到下一个路由器。在路径中的最后一跳路由器二层寻址将报文转发给目的主机。这个 过程被称为路由转发。
  • 中间节点选择路径所依赖的表项为称为路由表。
  • 路由条目包含明确的出接口以及下一跳,这两项信息指导IP报文转发到相应的下一跳设备上

路由信息

目的网络:标识目的网段

掩码:与目的地址共同标识一个网段

出接口:数据包被路由后离开本路由的接口

下一跳:路由器转发到达目的网段的数据包所使用的下一跳地址

这些信息标识了目的网段、明确了转发ip报文的路径

  • 通过路由中包含的信息,路由设备可以转发IP报文到相应的路径。
  • 目的地址、掩码用于识别IP报文目的地址,路由设备将IP报文匹配到相应的路由之后,根据 路由的出接口、下一跳确认转发的路径。
  • 只有出接口并不能够确认转发IP报文的下一跳设备,还需要明确的下一跳设备地址。

路由表

  • 路由器通过各种方式发现路由
  • 路由器选择最优的路由条目放入路由表中
  • 路由器指导设备对ip报文的转发
  • 路由器通过对路由表的管理实现对路径的信息管理
  • 路由器依据路由表转发报文。
  • 路由表由一条条详细的路由条目组成。
  • 路由表由路由条目组成,但不代表路由表中保存了所有路由,路由表中只会保存“最优的” 路由。
  • 对路由表中的路由条目的管理实际上就是路由器维护、管理路由信息的具体实现

路由条目生成

路由信息获取方式

路由器依据路由表进行路由转发,为实现路由转发,路由器需要发现路由。常见的有直连路由、静态路由和动态路由

image-20220206223048985

直连接口所在网段的路由,由设备自动生成。

直连接口所在网段的路由,由设备自动生成。

动态路由:路由器通过动态路由协议(如OSPF、IS-IS、BGP等)学习到的路由

直连路由

直连路由指向本地直连网络的路由,由设备自动生成

当路由器为路由转发的最后一跳路由器时,IP报文匹配直连路由,路由器转发IP报文到目的主机

使用直连路由进行路由转发时,报文的目的IP和路由器接口IP在一个网段内

当匹配中直连路由进行转发时,此时路由器会查看ARP表项,将报文直接转到目的地址,此 时该路由器为路由转发的最后一跳路由器。

直连路由的下一跳地址并不是其他设备上的接口地址,因为该路由的目的网段为接口所在 网段,本接口就是最后一跳,不需要再转发给下一跳,所以在路由表中的下一跳地址就是 接口自身地址。

使用直连路由进行路由转发时,转发的动作不是交给下一跳,而是查询ARP表项,根据ARP 表项封装报文,将报文发送到目的IP。

并不是所有接口生成的直连路由都会出现在路由表中,直连路由出现在路由表中的前提是该接口的物理状态、协议状态都为up

最优路由条目优选

ip路由表:

image-20220206224832828

image-20220206224847226

Preference用于不同路由协议间路由优先级的比较,Cost用于同一种路由协议内部不同路由的优先级的比较。在业界,Cost也被称为路由度量值(Metric)。

路由优先级 - 常见默认值

image-20220206230417214

优先级值(Preference)越小代表加入路由表的优先级越高

拥有最高优先级的路由将被添加进路由表

度量值 (cost)- 基本概念

当路由器通过某种协议发现了多条到达同一个目的网络的路由时(拥有相同的路由优先级),度量值将作为路由优选的依据之一。

路由度量值表示到达这条路由所指目的地址的代价。

一些常用的度量值有:跳数、带宽、时延、代价、负载、可靠性等

度量数值越小越优先,度量值最小路由将会被添加到路由表中

路由转发

最长匹配原则

当路由器收到一个IP数据包时,会将数据包的目的IP地址与自己本地路由表中的所有路由表项进行逐位比对,直到找到匹配度最长的条目,这就是最长前缀匹配机制。

image-20220206231244641

示例:

image-20220206231409791

image-20220206231416129

路由转发流程

image-20220206231523631

来自10.0.1.0/24网段的IP报文想要去往40.0.1.0/24网段,首先到达网关,网关查找路由表项, 确定转发的下一跳、出接口,之后报文转发给R2。报文到达R2之后,R2通过查找路由表项转发给R3,R3收到后查找路由表项,发现IP报文目的IP属于本地接口所在网段,直接本地转发。

静态路由

应用场景

静态路由由网络管理员手动配置,配置方便,对系统要求低,适用于拓扑结构简单并且稳定的小型网络

缺点是不能自动适应网络拓扑的变化,需要人工干预。

配置

image-20220206234934320

image-20220206234942785

缺省路由

缺省路由是一种特殊的路由,当报文没有在路由表中找到匹配的具体路由表项时才使用的路由。如果报文的目的地址不能与路由表的任何目的地址相匹配,那么该报文将选取缺省路由进行转发

缺省路由在路由表中的形式为0.0.0.0/0,缺省路由也叫做默认路由

缺省路由一般用于企业网络出口,配置一条缺省路由让出口设备能够转发前往internet上任意地址的ip报文。

image-20220206235235695

动态路由

当网络规模越来越大时,使用手动配置静态路由的方式获取路由条目将变得越发复杂,同时在拓扑发生变化时不能及时、灵活响应

动态路由协议有自己的路由算法,能够自动适应网络拓扑的变化,可以有效减少管理人员的工作量,适用于具有一定数量三层设备的网络。

分类

根据路由信息传递的内容、计算路由的算法,可以将动态路由协议分为两大类

  • 距离矢量协议(Distance-Vector Protocol)
  • RIP
  • 链路状态协议(Link-State Protocol)
    • OSPF
    • IS-IS
  • BGP使用一种基于距离矢量算法修改后的算法,该算法被称为路径矢量(Path Vector) 算法。因此在某些场合下,BGP也被称为路径矢量路由协议。

根据工作范围不同,又可以分为

  • 内部网关协议IGP(Interior Gateway Protocol):在一个自治系统内部运行。RIP、 OSPF、ISIS为常见的IGP协议。
  • 外部网关协议EGP(Exterior Gateway Protocol):运行于不同自治系统之间。BGP 是目前最常用的EGP协议。

路由高级特性

路由递归

路由必须有直连的下一跳才能够指导转发,但是路由生成时下一跳可能不是直连的,因此需要计算出一个直连的下一跳和对应的出接口,这个过程叫做路由递归,也被称为路由迭代。

image-20220207173411303

image-20220207173455073

等价路由

路由表中存在等价路由之后,前往该目的网段的IP报文路由器会通过所有有效的接口、下一跳转发,这种转发行为被称为负载分担

image-20220207174156599

浮动路由

静态路由支持配置时手动指定优先级,可以通过配置目的地址/掩码相同、优先级不同、下一跳不同的静态路由,实现转发路径的备份。

浮动路由是主用路由的备份,保证链路故障时提供备份路由。主用路由下一跳可达时该备份路由不会出现在路由表中

示例

image-20220207174423411

RTA-RTB之间的链路正常时,20.0.0.0/30的两条路由条目都是有效的条目,此时比较优先 级,下一跳为10.1.1.2的优先级60,下一跳为10.1.2.2的优先级70,因此下一跳为10.1.1.2的 加入路由表。

RTA-RTB之间的链路故障时,10.1.1.2不可达,因此下一跳为10.1.1.2的路由失效,此时前 往20.0.0.0/30的路由就只存在一条,该条路由将会被选入路由表。前往20.0.0.1的流量将会 被转发到10.1.2.2

路由汇总

CIDR(无类别域间路由)

采用ip地址加掩码长度来标识网络和子网,而不是按照穿透的A、B、C等类型对网络地址进行划分

CIDR容许任意长度的掩码长度,将ip地址看出连续的地址空间,可以使用任意长度的前缀分配,多个连续的前缀可以聚合成一个网络,该特性可以有效减少路由表条目数量

路由汇总需求

子网划分、VLSM解决了地址空间浪费的问题,但同时也带来了新的问题:路由表中的路由条目数量增加。

为减少路由条目数量可以使用路由汇总

image-20220213164244240

对于一个大规模的网络来说,路由器或其他具备路由功能的设备势必需要维护大量的路由表项,为了维护臃肿的路由表,这些设备就不得不耗费大量的资源。同时,由于路由表的规模变大,会导致路由器在查表转发时效率降低。因此在保证网络中的路由器到各网段都具备IP可达性的同时,需要减小设备的路由表规模。一个网络如果具备科学的IP编址,并且进行合理的规划,是可以利用多种手段减小设备路由表规模的。一个非常常见而又有效的办法就是使用路由汇总(Route Summarization)。路由汇总又被称为路由聚合(Route Aggregation),是将一组有规律的路由汇聚成一条路由,从而达到减小路由表规模以及优 化设备资源利用率的目的,我们把汇聚之前的这组路由称为精细路由或明细路由,把汇聚 之后的这条路由称为汇总路由或聚合路由

简介

image-20220213164554367

RTA上为了能够前往远端地址,需要为每一个远端网段配置一条明细路由。去往10.1.1.0/24、10.1.2.0/24、10.1.3.0/24…拥有相同下一跳。将拥有相同下一跳,一组有规律的路由汇总成 一条路由,这叫做路由汇总。

计算

将明细路由的目的网络都换算成二进制,然后排列起来,找出所有目的网络地址中"相同的比特位"

汇总引发的问题

路由汇总会造成环路问题

image-20220213165436927

解决方法:

在RTB上增加一条指向NULL0的路由

一般来说一条路由,无论是静态的或者是动态的,都需要关联到一个出接口,路由的出接口指的是设备要到达一个目的网络时的出站接口。路由的出接口可以是该设备的物理接口, 例如百兆、千兆以太网接口,也可以是逻辑接口,例如VLAN接口(VLAN Interface),或者隧道(Tunnel)接口等。在众多类型的出接口中,有一种接口非常特殊,那就是Null (无效)接口,这种类型的接口只有一个编号,也就是0。Null0是一个系统保留的逻辑接 口,当网络设备在转发某些数据包时,如果使用出接口为Null0的路由,那么这些报文将被 直接丢弃,就像被扔进了一个黑洞里,因此出接口为Null0的路由又被称为黑洞路由

精确汇总

当配置的静态汇总路由范围太广时可能会将流量发送到其他的网段导致数据包丢失,这种路由为不精确路由。为此配置汇总路由时要尽量精确,刚好包括所有的明细路由

image-20220213165937684

思考

路由器如何优选路由条目?

首先根据preference选择,如果preference相同则继续比较度量值,如果度量值也相同, 则都会被加入路由表形成等价路由。

如何配置实现浮动路由?

首先根据preference选择,如果preference相同则继续比较度量值,如果度量值也相同, 则都会被加入路由表形成等价路由。

将10.1.1.0/24、10.1.3.0/24、10.1.9.0/24汇总之后的网段是?

10.1.0.0/20

OSPF基础

静态路由由网络管理员手工配置,因此当网络变化时,静态路由需要手工调整,制约了静态路由在现网的大规模应用。因此动态路由因其灵活性高、可靠性好,易于扩展等特点被广泛应用于现网。

而在动态路由协议中,OSPF(开放式最短路径优先)协议是使用场景非常广泛的动态路由协议之一,是一种基于链路状态算法的路由协议

OSPF协议概述

为什么需要动态路由

静态路由由网络管理员手动配置和维护,适用于小型或稳定的网络

但无法适应规模较大的网络,无法动态响应网络变化。

随着设备数量增加,配置量急剧增加,静态路由已无法适应

动态路由协议的分类

image-20220228200522599

BGP使用一种基于距离矢量算法修改后的算法,该算法被称为路径矢量(Path Vector)算法。因此在某些场合下,BGP也被称为路径矢量路由协议。

距离矢量路由协议

  • 运行矢量路由协议的路由器周期性的泛洪自己的路由表。通过路由交互,每台路由器都从相邻的路由器学习到路由,并且加载进自己的路由表中
  • 对于网络中的所有路由器而言,路由器并不清楚网络的拓扑,只是简单的知道要去往某个目的方向在哪里,距离有多远。这就是距离矢量算法的本质。

链路状态路由协议

链路状态路由协议-LSA泛洪

与距离矢量协议不同,链路状态由协议通告的是链路状态而不是路由表。运行链路状态路由协议的路由器之间首先会建立一个协议的邻居关系,然后彼此之间开始交互LSA(Link State Advertisement,链路状态通告)

不再通告路由信息,而是LSA

链路状态通告,可以简单的理解为每台路由器都产生一个描述自己直连接口状态(包括接口的开销、与邻居路由器之间的关系等)的通告

链路状态路由协议-LSDB泛洪

每台路由器都会产生LSAs,路由器将接收到的LSAs放入自己的LSDB(Link State DataBase,链路状态数据库)。LSDB汇总了网络中路由器对于自己接口的描述,包含全网拓扑的描述。路由器通过LSDB,掌握了全网的拓扑

链路状态路由协议-SPF计算

每台路由器基于LSDB,使用SPF(Shortest Path First,最短路径优先)算法进行计算,每台路由器都计算出一颗以自己为根的、无环的、拥有最短路径的“树”。有了这颗“树”,路由器就以及知道了到达网络各个角落的优选路径

SPF是OSPF路由协议的一个核心算法,用来在一个复杂的网络中做出路由优选的决策。

链路状态路由协议-路由表生成

路由器将根据SPF计算出来的优选路径,加载进自己的路由表

链路状态路由协议总结

  • 第一步是建立相邻路由器之间的邻居关系。
  • 第二步是邻居之间交互链路状态信息和同步LSDB。
  • 第三步是进行优选路径计算。
  • 第四步是根据最短路径树生成路由表项加载到路由表

image-20220228202547086

OSPF简介

image-20220228202917315

OSPF基础术语

区域

OSPF Area用于标识一个OSPF的区域

区域是从逻辑上将设备划分为不同的组,每个组用区域号(Area ID)来标识

Router-ID

Router-ID(Router Identifier,路由器标识符),用于在一个OSPF域中唯一地标识一台路由器。

Router-ID的设定可以通过手工配置的方式,或使用系统自动配置的方式。

在实际项目中,通常会通过手工配置方式为设备指定OSPF Router-ID。请注意必须保证在OSPF域中任意两台设备的Router-ID都不相同。通常的做法是将Router-ID配置为与该设备某个接口(通常为Loopback接口)的IP地址一致

度量值

OSPF使用Colongtst(开销)作为路由的度量值。每一个激活了OSPF的接口都会维护一个接口的Cost值,缺省时接口Cost值=100 Mbit/s/接口带宽。其中100 Mbit/s为OSPF指定的缺省参考值,该值是可以配置的。

笼统地说,一条OSPF路由的Cost值可以理解为是从目的网段到本路由器沿途所有入接口的Cost值累加。

image-20220228203750713

OSPF协议报文类型

OSPF有五种类型的协议报文,这些报文在OSPF路由器之间交互中起不同的作用

image-20220228203915191

OSPF三大表项

OSPF有三张重要的表项,OSPF邻居表、LSDB表和OSPF路由表

OSPF邻居表

OSPF在传递链路状态信息之前,需先建立OSPF邻居关系

OSPF的邻居关系通过交互Hello报文建立

OSPF邻居表显示了OSPF路由器之间的邻居状态,使用display ospf peer查看

LSDB表

LSDB会保存自己产生的及从邻居收到的LSA信息

Type标识LSA的类型,AdvRouter标识发送LSA的路由器

使用命令行display ospf lsdb查看LSDB表

OSPF路由表

OSPF路由表和路由器路由表是两张不同的表项

OSPF路由表包含Destination、Cost和NextHop等指导转发的信息。

使用display ospf routing查看OSPF路由表

OSPF协议工作原理

OSPF路由器之间的关系

  • OSPF路由器之间的关系有两个重要的概念,邻居关系和邻接关系
  • 假设两台路由器直连,在双方互联接口上激活OSPF,路由器开始发送及侦听Hello报文,在通过Hello报文发现彼此后,这两台路由器便形成了邻居关系
  • 邻居关系的建立只是开始,后续会进行一系列的报文交互,例如前文提到的DD、LSR、LSU和LS ACK等,当两台路由器LSDB同步完成,并开始独立计算路由时,这两台路由器形成了邻接关系

OSPF邻接关系建立过程

OSPF完成邻接关系的建立有四个步骤,建立邻居关系、协商主/从、交互LSDB信息,同步LSDB。

image-20220228205756827

流程1

image-20220228205823933

  • 当一台OSPF路由器收到其他路由器发来的首个Hello报文时会从初始Down状态切换为Init 状态。
  • 当OSPF路由器收到的Hello报文中的邻居字段包含自己的Router ID时,从Init切换2-way状 态

流程2&3

image-20220228205912512

  • 邻居状态机从2-way转为Exstart状态后开始主从关系选举:
    • R1向R2发送的第一个DD报文内容为空,其Seq序列号假设为X。
    • R2也向R1发出第一个DD报文,其Seq序列号假设为Y。
    • 选举主从关系的规则是比较Router ID,越大越优。R2的Router ID比R1大,因此R2成 为真正的主设备。主从关系比较结束后,R1的状态从Exstart转变为Exchange。
  • R1邻居状态变为Exchange后,R1发送一个新的DD报文,包含自己LSDB的描述信息,其序 列号采用主设备R2的序列号。R2收到后邻居状态从Exstart转变为Exchange。
  • R2向R1发送一个新的DD报文,包含自己LSDB的描述信息,序列号为Y+1。
  • R1作为从路由器需要对主路由R2发送的每个DD报文进行确认,回复报文的序列号与主路由 R2一致。
  • 发送完最后一个DD报文后,R1将邻居状态切换为Loading。

流程4

image-20220228210119658

  • 邻居状态转变为Loading后,R1向R2发送LSR报文,请求那些在Exchange状态下通过DD报 文发现的,但是在本地LSDB中没有的LSA。
  • R2收到后向R1回复LSU。在LSU报文中包含被请求的LSA的详细信息。
  • R1收到LSU报文后,向R2回复LS ACK报文,确认已接收到,确保信息传输的可靠性。
  • 此过程中R2也会向R1发送LSA请求。当两端LSDB完全一致时,邻居状态变为Full,表示成 功建立邻接关系。

OSPF网络类型简介

OSPF网络类型是一个非常重要的接口变量,这个变量将影响OSPF在接口上的操作,例如采用什么方式发送OSPF协议报文,以及是否需要选举DR、BDR等。

接口默认的OSPF网络类型取决于接口所使用的数据链路层封装

OSPF有四种网络类型 Broadcast、NBMA、P2MP和P2P

OSPF网络类型(1)

一般情况下,链路两端的OSPF接口网络类型必须一致,否则双方无法建立邻居关系

OSPF网络类型可以在接口下通过命令手动修改以适应不同网络场景

image-20220228210759910

OSPF网络类型(2)

image-20220228210824072

DR与BDR

背景:

  • MA(Multi-Access)多路访问网络有两种类型:广播型多路访问网络(BMA)及非广播类多路访问网络(NBMA)。以太网(Ethernet)是一种典型的广播型多路访问网络
  • 在MA网络中,如果每台OSPF路由器都与其他的路由器建立OSPF邻接关系,便会导致网络中存在过多的OSPF邻接关系,增加设备负担,也增加了网络中泛洪的OSPF报文数量
  • 当拓扑出现变更,网络中的LSA泛洪可能会造成带宽的浪费和设备资源的损耗

为优化MA网络中OSPF邻接关系,OSPF指定了三种OSPF路由器身份,DR(Designated Router,指定路由器)、BDR(Backup Designated Router,备用指定路由器)和DRother路由器。

只允许DR、BDR与其他OSPF路由器建立邻接关系。DRother之间不会建立全毗邻的OSPF邻接关系,双方停滞在2-way状态

BDR会监控DR的状态,并在当前DR发生故障时接替其角色

选举规则:OSPF DR优先级更高的接口成为该MA的DR,如果优先级相等(默认为1),则 具有更高的OSPF Router-ID的路由器(的接口)被选举成DR,并且DR具有非抢占性。

OSPF域与单区域

OSPF域(Domain):一系列使用相同策略的连续OSPF网络设备所构成的网络。

OSPF路由器在同一个区域内网络中泛洪LSA。为了确保每台路由器都拥有对网络拓扑的一致认知,LSDB需要在区域内进行同步。

如果OSPF域仅有一个区域,随着网络规模越来越大,OSPF路由器的数量越来越多,这将会导致诸多问题:

  • LSDB越来越庞大,同时导致OSPF路由表规模增加,路由器资源消耗多,设备性能下降,影响数据转发
  • 基于庞大的LSDB进行路由计算变得困难
  • 当网络拓扑变更时,LSA全域泛洪和全网SPF重计算带来巨大负担

OSPF多区域

OSPF引入区域的概念,将一个OSPF域划分成多个区域,可以使OSPF支撑更大规模组网。

OSPF多区域的设计减小了LSA泛洪的范围,有效的把拓扑变化的影响控制在区域内,达到网络优化的目的。

在区域边界可以做路由汇总,减小了路由表规模。

多区域提高了网络扩展性,有利于组建大规模的网络。

  • 区域的分类:区域可以分为骨干区域与非骨干区域。骨干区域即Area0,除Area0以外其他 区域都称为非骨干区域。
  • 多区域互联原则:基于防止区域间环路的考虑,非骨干区域与非骨干区域不能直接相连, 所有非骨干区域必须与骨干区域相连

OSPF路由器类型

OSPF路由器根据其位置或功能不同,分为

  • 区域内路由器(Internal Router):该类路由器的所有接口都属于同一个OSPF区域。
  • 区域边界路由器ABR(Area Border Router):该类路由器的接口同时属于两个以上的区域, 但至少有一个接口属于骨干区域。
  • 骨干路由器(Backbone Router):该类路由器至少有一个接口属于骨干区域。
  • 自治系统边界路由器ASBR(AS Boundary Router):该类路由器与其他AS交换路由信息。 只要一台OSPF路由器引入了外部路由的信息,它就成为ASBR。

OSPF单区域&多区域典型组网

中小型企业网络规模不大,路由设备数量有限,可以考虑将所有设备都放在同一个OSPF区 域。

大型企业网络规模大,路由设备数量很多,网络层次分明,建议采用OSPF多区域的方式部 署。


文章作者: Ethe
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Ethe !
评论
  目录