网络基础知识汇总(持续更新)

1.网络模型

常见的网络层次划分有OSI七层协议、TCP/IP四层协议以及TCP/IP五层协议,它们之间的对应关系如下图所示:
图片来自网络
由于工作偏向于底层网络,主要讨论的TCP/IP五层模型 即:

  • 应用层 直接为用户的应用进程提供服务如:文件传输,电子邮件,文件服务,虚拟终端
    协议:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet

  • 运输层 负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题
    协议: TCP,UDP

  • 网络层 路径选择、路由及逻辑寻址,具体功能包括寻址和路由选择、连接的建立、保持和终止等
    协议:IP,ICMP,RIP,OSPF,BGP,IGMP

  • 数据链路层 作用:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等,
    协议:SLIP,CSLIP,PPP,ARP,RARP,MTU

  • 物理层 物理层的任务就是透明地传送比特流,以二进制数据形式在物理媒体上传输数据 。
    协议:ISO2110,IEEE802,IEEE802.2
    在这里插入图片描述

2.二三层转发

分层转发模型:
在这里插入图片描述
二层转发
在一层即物理层可以采用中继设备对物理信号进行中继,如HUB集线器,但是HUB对所连接的LAN只做信号的中继,所有的物理设备构成了一个冲突域和广播域。

在主机数目较多的情况下,冲突严重,广播泛滥,为了避免冲突遂在二层使用交换机进行转发。

设备模型:
常见的有ATM交换机、X.25交换机、以太网二层交换机等

二层转发过程:

  • 查MAC转发表处理转发
  • 对于表中不包含的地址,通过广播的方式转发
  • 使用地址自动学习(根据以太帧的源MAC)和老化机制进行地址表维护
  • 转发过程不对帧内数据进行修改

例如:

port1上的PCA要与port2上的PCB通信时,A发到交换机上,交换机收到信息后,

先记录port1所对应的A机器的MAC地址,

然后再查找目的机器B的MAC是否在表中。

如果在表中,直接转发给B所应该的port2。

如果不在表中,则向所有端口广播出去,当B收到后,会回应交换机转发到A,

在回应过程中,交换机就会把B的MAC记录到表中,达到双方通信功能。

依此类推,交换机都是从发端学习到MAC地址的,并在每5分钟后,如果端口上连接的计算机的MAC地址没有信息交换,就把该端口对应的MAC地址从表中清除。以此来保障地址表的空间容量。

二层转发帧格式如下:

在这里插入图片描述

以太二层交换机限制了冲突域的大小,但是无法限制广播域的大小,链接交换机主机过多的情况下依然影响性能。需要使用vlan进一步限制广播域。
VLAN(Virtual Local Area Network),相同VLAN内主机可以任意通信,不同VLAN间二层流量完全隔离,可以有效阻断广播包,减小广播域,同时提高了网络安全性,之后会单独介绍。

支持VLAN的以太二层交换基本过程

  • 根据帧内Tag Header的VLAN ID查找MAC表,确定查找的范围
  • 根据目的MAC查找出端口
  • 如果在MAC表中查找不到该目的MAC,则该报文将通过广播的方式在该VLAN内所有端口转发
  • 同时该以太网帧的源MAC将被学习到接收到报文的端口上
  • MAC表中的MAC地址通过老化机制更新
  • 转发过程不对帧内数据进行修改
    vlan标准:
    802.10,Cisco在1995年提出--------802.1Q,IEEE于1996 制定
    支持vlan的二层转发帧格式如下:
    比以太网多了4个字节的vlan tag
  • TPID:协议标志,通常是0x8100
  • Priority:优先级
  • CFI:规范指示为,总设为0
  • VLAN ID:VLAN号

三层转发
当数据到达网络层时,路由器先检查目的IP是否和自己是同一网段。
如果是,则进行二层转发,交由数据链路层进行ARP过程请求目的主机的MAC地址;
如果不是,则进入三层转发进行路由的递归查找,找到下一跳路由并将数据包进行转发,在三层转发的过程中,还要进行二层的封装。
若经过反复的递归查找都没有找到匹配的路由,将发送ICMP包给发送主机告知目的主机不可达。
三层转发设备主要用于异构网络的互联和跨网段转发
在这里插入图片描述
三层转发举例

在这里插入图片描述

PC1准备向PC2发送数据包

  1. PC1检查报文的目的IP地址,发现和自己不在同一网段,则需要进行三层转发,通过网关转发报文信息;
  2. PC1检查自己的ARP表,发现网关的MAC地址不在自己的ARP表里;
  3. PC1——>Router(网关)发出ARP请求报文;
  4. Router将PC1的MAC地址学习到自己的ARP表;
  5. Router(网关)——>PC1发出ARP应答报文;
  6. PC1学习到Router(网关)的mac地址,发出报文,此时源ip、目的ip不变,目的mac为Router(网关)的mac
  7. PC1——> Router(网关)发出报文。
  8. Router(网关)收到报文,发现是三层报文(原因是报文的目的mac是自己的mac)
  9. Router(网关)检查自己的路由表(FIB),发现目的ip在自己的直连网段
  10. Router检查自己的arp表,如果发现有与目的ip对应的mac地址则直接封装报文(目的ip、源ip不变,目的mac为查arp表所得mac)发送给PC2
  11. 如果查ARP表没有得到与目的ip对应MAC,则重复(3)发arp请求
  12. PC2收到ARP广播报文,发现目的IP是自己的IP,于是给Router发送ARP应答报文。报文中会附上自己的mac地址。
  13. Router收到应答报文后,目的mac改为PC2的mac,然后向PC2发送数据帧。

三层ip报文格式:
IP数据包由报头和数据两部分组成。报头的前一部分是固定长度,共20字节。在报头的固定部分的后面是可选部分——IP选项和填充域。
在这里插入图片描述

首部各字段的含义如下

  1. 版本
    占4位,指IP协议的版本。占4位,指IP协议的版本。
  2. 报头长度
    占4位,该字段的单位是32位字(1个32位字长是4字节),因此当IP报头长度为1111时,报头长度就达到最大值60字节。当IP分组的首部长度不是4字节的整数倍是,就需要对填充域加以填充。最常用的报头长度为20位(报头长度值为0101),这时不使用任何选项。
  3. 区分服务(服务类型)
    占8位,在一般情况下都不使用这个字段。
  4. 总长度
    指报头和数据之和的长度,单位是字节。总长度字段为16位,故IP数据报的最大长度为65535。
    每一种数据链路层都有其自己的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传送单元MTU。当IP数据报封装成链路层的帧时,此数据报的总长度不能超过对应MTU的值。若数据报长度超过对于MTU的值,就将数据报进行分片处理,此时数据报首部中的“总长度“字段是指分片后的每一个分片的报头长度和数据长度之和。
  5. 标识
    占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并赋给标识字段。当数据报进行分片处理后,每个分片的标识值都与原数据报的标识值相同,则在接收端具有相同标识值的分片就能最终正确的重装成为原来的数据报。
  6. 标志
    占3位,但目前只有两位有意义。
    最低位记为MF。MF=1即表示后面”还有分片“的数据包。MF=0表示这已是若干数据包片中的最后一个。
    中间位记为DF,意思是”不能分片“。只有当DF=0时才允许分片。
  7. 片偏移
    占13位。表示每个数据报的分片在原数据报中的相对位置。片偏移以8个字节为偏移单位,即每个分片的长度一定是8字节的整数倍。
  8. 生存时间
    占8位。表示数据报在网络中的寿命。最初以秒为TTL值为单位,现在以跳数为单位,则目前的最大数据为255.
  9. 协议
    占8位,指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给那个处理过程。
    TCP对应协议字段值6;UDP对应协议字段值17
  10. 首部校验和
    占16位,该字段只校验数据报的报头,但不包括数据部分。
  11. 源地址
    占32位
  12. 目的地址
    占32位

三层交换机下VLAN实现

2层交换机下的VLAN之间不可以访问,需要通过3层协议来实现互通。

实现:

  1. 添加一个VLAN虚接口表,记录VLAN ID、虚拟IP地址、虚拟MAC地址
    每个VLAN只能对应一组
    在这里插入图片描述
  2. 添加arp支持:
    对于VLAN ID虚拟IP地址的arp请求,发送包含对应虚拟MAC地址arp回应
  3. 在MAC表中添加ip地址一列
    在这里插入图片描述
    转发过程:
  • 根据包内目的IP地址是否在VLAN虚接口表中,如果不存在则查找路由表;如果存在,确定目的VLAN ID ,修改VLAN ID ;
  • 根据VLAN ID在MAC表查找出端口
  • 如果不存在目的IP对应的MAC地址,发送arp请求
  • 如果在MAC表中查找不到该目的IP,则该报文将通过广播的方式在该VLAN内所有端口转发
  • 同时该以太网帧的源IP将被学习到接收到报文的端口上
  • MAC表中的MAC地址通过老化机制更新
  • 转发过程不对帧内数据进行修改

三层交换机与路由器

相同点:
根据报文IP地址进行三层选路,提供三层转发功能支持路由协议,具备路由学习功能

差异点:
三层交换机采用ASIC硬件进行包转发,硬件识别的报文格式比较有限,一般只支持以太网帧,因此支持的接口类型比较有限,但由于采用硬件进行转发,转发效率很高
传统路由器采用CPU进行包转发,转发均靠软件实现,可以提供非常丰富的业务处理能力,可以支持所有接口类型,但转发效率较低

在这里插入图片描述

3.IP路由

路由就是报文从源端到目的端的路径,当报文从路由器到目的网段有多条路由可达时,路由器可以根据路由表中最佳路由进行转发,最佳路由的选取与发现此路由的路由协议的优先级、路由的度量有关。

静态路由与动态路由

路由协议是路由器之间维护路由表的规则,用于发现路由,生成路由表,并指导报文转发。依据来源的不同,路由可以分为三类:

  1. 通过链路层协议发现的路由称为直连路由。
  2. 通过网络管理员手动配置的路由称为静态路由。
  3. 通过动态路由协议发现的路由称为动态路由。

静态路由配置方便,对系统要求低,适用于拓扑结构简单并且稳定的小型网络。
缺点:不能自动适应网络拓扑的变化,需要人工干预。

动态路由协议有自己的路由算法,能够自动适应网络拓扑的变化,适用于具有一定数量三层设备的网络。
缺点:配置对用户要求比较高,对系统的要求高于静态路由,并将占用一定的网络资源和系统资源。

动态路由的分类

根据作用范围不同,路由协议可分为:

  1. 内部网关协议IGP(Interior Gateway Protocol):
    在一个自治系统内部运行。常见的IGP协议包括RIP、OSPF和IS-IS。
  2. 外部网关协议EGP(Exterior Gateway Protocol):
    运行于不同自治系统之间。BGP是目前最常用的EGP协议。

根据使用算法不同,路由协议可分为:

  • 距离矢量协议(Distance-Vector Protocol):
    包括RIP和BGP。其中,BGP也被称为路径矢量协议(Path-Vector Protocol)。
  • 链路状态协议(Link-State Protocol)
    包括OSPF和IS-IS。

各种协议在协议栈中的位置:
在这里插入图片描述

  • RIP协议是最早的路由协议,其设计思想是为小型网络中提供简单易用的动态路由,其算法简单,对CPU和内存资源要求低。RIP采用广播(RIP-1)或组播(RIP-2)方式来在邻居间传送协议报文,传输层采用UDP封装,端口号是520.由于UDP是不可靠的传输层协议,所以RIP设计成为周期性的广播全部路由表,如果邻居超过3次无法接收到路由更新,则认为路由失效。RIP-1不支持验证,其安全性较低;RIP-2对其进行了改进,从而能够支持验证,安全性提高了。
  • OSPF是目前应用最广泛的IGP协议。OSPF设计思想是为大中型网络提供分层次的、可划分区域的路由协议。其算法复杂,但能够保证无域内环路。OSPF采用IP来进行承载,所有的协议报文都有IP封装后进行传输,端口号89.IP是尽力而为的网络层协议,本身是不可靠的;所以为了保证协议报文传输的可靠性,OSPF采用了确认机制,在邻居发现阶段,交互LSA的阶段,OSPF都采用确认机制来保证传输可靠。OSPF支持验证,使OSPF的安全性得到了保证。
  • IS-IS是另外一种链路状态型的路由协议,其同样采用SPF算法,支持路由分组管理与划分区域,同样可应用在大中型网络中,可扩展性好。与OSPF不同的是,IS-IS的运行直接基本链路层,其所有协议报文通过链路层来承载,所以IS-IS也可以运行在无IP的网络中,如OSI网络中。为了保证协议报文传输的可靠性,IS-IS同样设计了确认机制来保证协议报文在传输过程中没有丢失。IS-IS也支持验证,安全性到了保证
  • BGP协议是唯一的EGP协议,与其他协议不同,BGP采用TCP来保证协议传输的可靠性,TCP端口号是179.TCP本身有三方握手的确认机制,运行BGP的路由器首先建立可靠的TCP连接,然后通过TCP连接来交互BGP协议报文,这样BGP协议不需要自己设计可靠地传输机制,降低了协议报文的复杂度和开销。另外,BGP安全性也可以由TCP来保证,TCP支持验证功能,通过验证双方才能够建立TCP连接。

路由表和FIB(转发)表

  • 路由表项记录指导报文发送的路径信息,一般包括:目的地、下一跳地址、下一跳出接口,路由表是所有路由协议路由表项的集合。
  • 转发表项是真正用于指导报文发送的路径信息,一般包括:目的地、下一跳地址、下一跳出接口,是路由表中所有路由表项根据优先级选举之后产生的所有激活路由的集合。

转发表项查找过程:

提取报文的目的IP地址,将目的地址和转发表中转发表项的掩码按位“与”操作,如果与该转发表项的目的网段相等则表示匹配,如果匹配上多条转发表项则根据掩码选择最长匹配的转发表项进行转发
在这里插入图片描述

4.VLAN

猜你喜欢

转载自blog.csdn.net/cliveliugeer/article/details/84564999