计算机网络介绍
概述
网络概述
传输控制协议/因特网互联协议TCP/IP(Transmission Control Protocol/Internet Protocol),
又名网络通讯协议,是Internet最基本的协议。它起源于60年代末美国政府资助的一个分
组交换网络研究项目,到90年代已发展成为计算机之间最常应用的组网形式。
从协议分层模型方面来讲,TCP/IP通常被认为由链路层、网络层、传输层、应用层这四
个层次组成.
基础理论部分按照这四个层次,对网络类涉及的知识点进行分类介绍。若一个知识点涉
及到多个层次,则优先考虑放在最为主要或常用的层次中介绍。若无法确定重要性或常
用性,则放在其中最低的层次介绍。
其中所涉及的各协议之间大致的层级关系如下图所示。
相关硬件
网络设备与网络通信介质共同构成网络的硬件基础设施,是网络的重要组成部分。相关
硬件部分将分别介绍LAN switch、路由器等常用的重要网络设备。
链路层
VLAN
概念
虚拟局域网VLAN(Virtual Local Area Network)是一种将局域网(LAN)设备从逻辑上
划分成多个网段,从而实现虚拟工作组的数据交换技术。VLAN可以应用于交换机和路
由器中,其中主要用在交换机中。
VLAN技术允许网络管理者将一个物理的LAN逻辑地划分成不同的广播域(即VLAN),
每一个VLAN都包含一组有着相同需求的计算机。由于VLAN是逻辑地而不是物理地划
分,所以同一个VLAN内的各个计算机无须被放置在同一个物理空间里,即这些计算机
不一定属于同一个物理LAN网段。
VLAN 特点
VLAN具有如下优点:
- 控制网络风暴
VLAN内部的广播和单播流量不会被转发到其他VLAN中,从而有助于控制网络流
量。 - 提高网络安全性
可以控制用户访问权限和逻辑网段大小,将不同用户群划分在不同VLAN,从而提
高网络安全性。 - 方便网络管理
可以根据部门职能、对象组或应用将不同地理位置的网络用户划分为一个逻辑网
段,以便网络管理和维护,降低维护费用。
VLAN 的划分
可以从不同的纬度,对VLAN进行划分:
- 根据端口划分
根据交换机的端口来划分,被设定的端口都在同一个广播域中。该方式是最常见的
划分方式,灵活性较强,不受终端物理位置的限制。 - 根据MAC地址划分
根据主机的MAC地址来划分。该方式受物理位置的限制。 - 根据网络层划分
根据每个主机的网络层地址或协议类型划分。该方式优点是物理位置的改变不影响
VLAN的归属,方便管理,且不需要附加的帧标签来识别VLAN,可减少网络的通
信量。 - 根据IP组播划分
一个组播组即为一个VLAN。该方式将VLAN扩大到了广域网,灵活性较强,容易
通过路由器进行扩展,但由于效率不高,所以不适合局域网。 - 根据规则划分
根据一定规则划分,将相关用户连成一体。在已配置好划分规则的情况下,可对站
点的加入或移动、改变进行自动配置。该方式比较有效和方便。 - 根据用户定义、非用户授权划分
为了适应特别的VLAN网络,根据具体网络用户的特别要求来定义和设计VLAN,
并可让非VLAN群体用户访问VLAN,但需要提供用户密码,在得到VLAN管理的
认证后才可以加入一个VLAN。该方式安全性比较高。
帧格式
VLAN基于IEEE 802.1Q标准,在普通帧的原MAC地址和类型字段之间插入了4字节的
802.1Q Tag标记。VLAN的帧格式如下图所示:
802.1Q Tag标记各字段含义如下:
- TYPE:表示帧的类型,0x8100表示802.1Q Tag帧,不支持该类型帧的设备将丢弃
该帧。 - PRI:表示优先级,取值范围为0~7,值越大优先级越高。
- CFI:值为0代表以太网的帧,值为1代表是FDDI、令牌环网的帧。
- VID:表示帧所属的VLAN,取值为0~4095。其中0用于识别帧优先级,4095作为
预留值,所以VLAN配置的最大可能值为4094。
端口类型
根据端口接入设备的类型,VLAN的端口分为几种(默认的情况下所有的端口属于
VLAN1):
- Access端口:配置了Access类型的端口,只能属于1个VLAN,一般用于连接计算
机。VID与端口的PVID(Port Default VLAN ID)相同。 - Trunk端口:配置了Trunk类型的端口,可以属于多个VLAN,可以接收和发送多个
VLAN的报文,一般用于交换机之间的连接。 - Hybrid端口:配置了Hybrid类型的端口,可以属于多个VLAN,可以接收和发送多
个VLAN的报文,可以用于交换机之间的连接,也可以用于连接计算机。
各类型端口示意图如下图所示。
原理
VLAN传输帧的基本原理是使用Tag对帧进行标记,并根据Tag的内容进行相应的转发。
VLAN帧在网络中的简化传输过程如下图所示。
流程简单说明如下:
- 源计算机广播不带特定VLAN标记的以太网帧。
- 源交换机识别到源计算机发出的帧需要转发后,会在帧中加入特定的VLAN标记,
再进行转发广播。 - 目的交换机收到该帧并识别到该帧需要自己转发后,会对VLAN标记进行识别,并
在将其拆除后在特定的VLAN进行广播。 - 目的计算机收到该以太网帧,判断其中目的MAC地址为自己的MAC地址,对该帧
进行进一步处理。其他计算机丢弃该帧。
STP
概念
生成树协议STP(Spanning Tree Protocol)是一种链路层协议(在IEEE802.1D文档中定
义),它利用STA(Spanning Tree Algorithm),在存在交换环路的网络中生成一个没有
环路的树形网络,避免由于环路的存在而造成广播风暴问题。STP将交换网络冗余的备
份链路从逻辑上断开,当主要链路出现故障时,能够自动的切换到备份链路(逻辑上接
通),保证数据的正常转发。
STP主要有两个功能:
- 在以太网络中创建一个以某台LAN switch的某个端口为根的生成树,避免环路。
- 在以太网络拓扑发生变化时,进行收敛保护,使所有交换机能对最佳路径的判断达
成一致。
几个常见概念: - 网桥:一种在链路层实现中继,常用于连接两个或更多个局域网的网络互连设备。
交换机具有网桥的功能。 - 根桥:网桥ID最小的网桥。网桥ID由网桥的优先级(2字节)和网桥的MAC(6字
节)组成。任意时刻只能有一个根桥。 - 根端口:该端口到达根桥的路径是该端口所在网桥到达根桥的最佳(路径开销最
小)路径。全网中只有根桥没有根端口。 - 指定网桥:每个网段到根桥最近(路径开销最小)的网桥。
- 指定端口:指定网桥到其所在网段的端口。
- 可选端口:非根端口和指定端口的端口。
bash
说明:路径开销用来衡量到达目标位置的代价,其值是两点之间某条路径上所有链路开销的总和。
IEEE给出了不同标准(速率)链路的路径开销。
特点
STP具有以下特点:
- 冗余:当一个链路或交换机故障时,会有另一个链路或交换机替代。
- 无环路:可避免产生广播风暴。
- 收敛时间长:当主要链路出现故障以后,从切换到备份链路需要50秒的时间。
原理
STP的基本原理是,通过在交换机之间定期传递BPDU(Bridge Protocol Data Unit)报文
来对网络的拓扑、花费或优先级的变化做出及时的响应。该报文中包含了足够的信息来
保证交换机完成生成树计算。
BPDU分为配置BPDU和拓扑变化通知BPDU两种类型。配置BPDU包含配置信息;拓扑
变化通知BPDU在交换机检测到网络拓扑结构变化时发送。BPDU报文在直连的两个或
多个网桥间交换,不能被转发。没有运行STP协议的网桥将把BPDU报文当作普通报文
转发。
STP的实现过程主要分为以下几个环节:
-
选择根桥。
根桥的选择如下图所示。
简单说明如下:
a. 各交换机最初均认为自己为根桥。
b. 各交换机均向与其直连的交换机(可能为多个)发送配置BPDU报文,告知对
端自己的网桥ID。
c. 各交换机收到配置BPDU报文(可能为多个)后,比较配置BPDU报文中网桥
ID和自己网桥ID的大小,并记录自己的网桥ID为其中较小的值。网桥ID小者被
认为是根桥。上图中,A、B、C交换机认为A交换机为根桥,D交换机认为自
己为根桥。
d. 若仍存在多个网桥被认为是根桥,则重复发送配置BPDU报文,并进行比较和
记录。直至网络中只存在一个根桥。上图中,各交换机均认为A交换机为根
桥。
网桥ID应为唯一的。若两个网桥具有相同的最小ID,则MAC地址小的网桥被选作
根桥。
-
选择根端口。
根据如下方式选择根端口:
a. 选择到根桥的路径开销最小的端口。
b. 当到根桥的路径开销相同时,选择最高优先级的端口。
c. 当到根桥的路径开销和端口优先级均相同时,选择端口号最小的端口。
根端口的选择如下图所示。
以B交换机的3个端口为例,根端口的选择简单说明如下:
- 端口1到A交换机的路径开销为:18(路径为B->A)
- 端口2到A交换机的路径开销为:4+3=7(路径为B->C->A)
- 端口3到A交换机的路径开销为:6+6+4+3=19(路径为B->D->B->C->A)
因此,将选择端口2作为B交换机的根端口。同理可选出C、D交换机各自的根端
口。由于A、B交换机间和C、D交换机间的端口均没有被选中,因此其对应的两条
链路可以看成是冗余链路,会从逻辑上被断开。
- 选择指定网桥。
根据如下方式选择指定网桥:
a. 选择到根桥的路径开销最小的网桥。
b. 当到根桥的路径开销相同时,选择最高优先级的网桥。
以上图为例,对于B交换机和D交换机之间的网段,指定网桥的选择简单说明如
下:
- B交换机到A交换机的路径开销为:4+3=7(路径为B->C->A)
- D交换机到A交换机的路径开销为:6+4+3=13(路径为D->B->C->A)
因此,将选择B交换机作为B交换机和D交换机之间网段的指定网桥。
- 选择指定端口。
根据如下方式选择指定端口:
a. 选择指定网桥到其所在的网段的端口。
b. 当指定网桥到其所在的网段有多个端口时,选择端口号最小的端口。
仍以上图为例,对于B交换机和D交换机之间的网段,由于B交换机与该网段之间
仅有端口3这一个端口,因此端口3为指定端口。
在正常稳定状态下,根桥定期发送配置BPDU以保证拓扑信息不超时。当某个端口长时
间不能接收到配置BPDU报文的时候,交换机认为端口的配置超时,网络拓扑可能已经
改变,此时重新计算网络拓扑,重新生成一棵树。拓扑改变消息的传播如下图所示。
简单说明如下:
- D交换机检测到其与F交换机间的链路断开,则发送拓扑改变通知BPDU给B交换机。
- B交换机向D交换机回送拓扑改变确认消息(配置BPDU),其中拓扑变化标志位被
置位。 - B交换机发送拓扑改变通知BPDU给A交换机。
- A交换机向B交换机回送拓扑改变确认消息。
- A交换机向B、C交换机重复发送一段时间拓扑改变消息(配置BPDU),其中拓扑
变化标志位被置位。 - B交换机向D、E交换机发送拓扑改变消息。
Smart Link
概念
Smart Link是一种在双上行组网中用于实现主备链路的冗余备份及故障快速迁移的链路
技术。
特点
Smart Link具有以下特点:
- 专用于双上行组网。
- 主用链路故障后流量切换到备用链路的速度快。
- 配置简单,便于用户操作。
组网
Smart Link的组网如下图所示。
具体说明:
- C、E交换机分别同时连到B、D交换机,构成双上行组网。
- 正常情况下,只使用2条主用的链路进行报文转发。
- 当主用链路(如B、C交换机间的链路)发生故障时,会自动使用备用链路(如D、
C交换机间的链路)来转发报文。 - 当主用链路故障恢复时,可以根据实际的策略来选择是使用主用还是仍使用备用链
路转发报文。默认情况下,为保证网络稳定,仍使用备用链路转发报文,直至备用
链路发生故障。
网络层
ARP
概念
地址解析协议ARP(Address Resolution Protocol)是一个网络层协议,用于将目标网络
层地址转换成目标物理地址。在使用TCP/IP协议的以太网中,ARP负责将IP地址映射到
MAC地址,主机使用ARP协议通过目标设备的IP地址,查询目标设备的MAC地址,以
保证通信的顺利进行。
原理
ARP缓存
在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,记录着已经获取的MAC地址和
IP地址的映射关系。如下图所示。
ARP缓存表采用了老化机制,在一段时间(一般15到20分钟)内如果表中的某一行没有
使用,就会被删除,从而减少ARP缓存表的长度,加快查询速度。
ARP工作过程
- 发送方在ARP缓存表中查找是否存在目标方MAC地址。
- 是:直接使用此MAC地址发送IP报文。
- 否:2
- 发送方创建一个ARP请求报文,该报文包含发送方MAC地址、发送方IP地址和目标
方IP地址。目标方MAC地址用0填充。 - 该报文被传递到链路层,并在该层中用发送方MAC地址作为源地址,用物理广播
地址作为目的地址,将其封装在一个帧中。 - 同一链路中的每个主机或路由器都接收到该帧,并对帧中的IP地址信息进行识别。
- 除了目标方以外的所有机器都丢弃该帧。目标方创建一个ARP响应报文,该报文包
含目标方MAC地址。 - 目标方向发送方发送ARP响应报文。
- 发送方接收到该ARP响应报文,获取到目标方MAC地址,并记录到ARP缓存表中供
以后使用。 - 发送放使用目标方MAC地址向目标方发送IP报文。
ARP代理
ARP本身无法跨越不同网段。因此当数据要发往外部网络时,需要使用ARP代理来进行
通信。ARP代理的作用是使网络内的主机误认为目标主机与自己处于同一网段内,从而
达到透明化子网划分的目的。
ARP代理的工作原理:
当ARP请求从一个网络的主机发往另一个网络的主机时,启用了ARP代理的、连接这两
个网络的路由器将回答该请求,使请求的发送者误以为此路由器就是目标主机,而将所
有数据帧发送到此路由器。路由器在收到数据帧后,再将其转发到真正的目标主机。
IP
概念
互联网协议IP(Internet Protocol)是为计算机网络相互连接并进行通信而设计的协议,
规定了计算机在Internet上进行通信时应当遵守的规则。
IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数
据报格式传输。IP协议提供不可靠、无连接的数据报传送服务,即它对数据进行"尽力
传输",只负责将分组发送到目的主机,不管传输正确与否,不作验证,不发确认,也
不保证IP数据报到达顺序,它将纠错重传问题交由传输层来解决。
版本
IP版本分为:
- IPv4:IP的第四版,是第一个被广泛使用,构成现今Internet技术基石的协议。它使
用32bit表示IP地址。 - IPv6:IP的第六版,是由IETF小组设计的用来替代现行的IPv4协议的一种新的IP协
议,是未来发展的趋势。它使用128bit表示IP地址。
IP 地址
IP地址是在计算机网络中被用来唯一标识一台设备的一组数字,各个节点(设备)之间
使用IP协议进行通信。IP地址的层次是按网络结构进行划分。
IP地址分配
IP地址分配方式主要有以下两种:
- 手工分配IP地址。
- 使用DHCP服务分配IP地址。
IP地址借用
IP地址借用是指在本接口没有IP地址的情况下,可以使用其他接口的IP地址。其主要目
的是节省IP地址资源。有时某个接口只是偶尔使用,这种情况也可配置该接口借用其他
接口的IP地址,而不必让其一直占用一个单独的IP地址。
IP地址解析
由DNS服务器将主机名解析为IP地址,由ARP将IP地址解析为MAC地址。
IPv4
IP 地址
表示形式
IPv4中IP地址由32位二进制数值组成,通常采用"点分十进制表示法"表示。采用了这
种表示法的IP地址由4个由点分隔的十进制整数来表示,每个十进制整数对应一个字
节。例如,A主机的IP地址使用二进制的表示形式为00001010 00000001 00000001
00000010,采用点分十进制表示法表示为10.1.1.2。
结构
IPv4地址由如下两部分组成:
- 网络号码字段:用于区分不同网络。其中前几位称为类别字段,用来区分IP地址的
类型。 - 主机号码字段:用于区分一个网络内的不同主机。
为了方便IP地址的管理及组网,IP地址分成5类,如下图所示。
通过网络号码字段的前几个比特就可以判断IP地址属于哪一类,这是区分各类地址最简
单的方法。目前大量使用中的IP地址属于A、B、C三类IP地址中的一种。D类地址是组
播地址,E类地址保留。
在使用IP地址时要注意,一些IP地址是保留作为特殊用途的,一般的用户不能使用。各
类IP地址的范围如下图所示。
特殊IP地址
- 网络地址:主机号码为全0的IP地址作为网络本身的标识,用于网络路由。
- 直接广播地址:主机号码为全1的IP地址用作广播地址,该网络上所有的主机进行
广播。 - 当前主机地址:网络号码为0的IP地址表示当前网络的主机,可以让机器引用自己
的网络而不必知道其网络号。 - 有限广播地址:32位为全1的IP地址(255.255.255.255)通常由无盘工作站启动时使
用,希望从网络IP地址服务器处获得一个IP地址。 - 主机本身地址:32位全0的IP地址(0.0.0.0)仅在采用DHCP方式的系统启动时允许
本主机利用它进行临时的通信,并且永远不是有效目的地址。 - 回送地址:所有形如127.X.Y.Z的地址都保留作环回测试,发送到这个地址的分组
不会输出到线路上,它们被内部处理并当作输入分组。
私有IP地址
为了解决IP地址短缺的问题,提出了私有地址的概念。私有地址是指内部网络或主机地
址,这些地址只能用于某个内部网络,不能用于公共网络。
私有IP地址范围如下图所示。
** 子网划分**
IP地址的网络部分称为网络地址,网络地址用于唯一的标识一个网段。通过将网络地址
进一步划分为若干个子网,实现在不同子网之间隔离广播报文。
现在所有的主机都要求支持子网编址。从地址分配的角度来看,子网是网段地址的扩
充。为了使IP地址的使用更加灵活,主机号码再分成一个子网号码和一个主机号码。例
如,把一个B类网络地址的16位主机号分成8位子网号和8位主机号,允许有254个子网,
每个子网可以有254台主机。如下图所示。
子网掩码(32bit)用于表示IP地址中有多少bit用于网络号码(包括子网号码),多少bit
用于主机号码。其中值为1的bit对应网络号码(包括子网号码),为0的bit对应主机号
码。下图是一个B类地址的两种不同的子网掩码。
给定目的IP地址和子网掩码以后,主机就可以确定IP数据报的目的地是本子网上的主
机、本网络中其他子网中的主机或者其他网络上的主机。
因此,若知道了本机的IP地址,则就可以知道它为哪类地址,也就知道网络号和子网号
之间的分界线。而根据子网掩码就可知道子网号与主机号之间的分界线。
子网掩码除了可以用"点分十进制"方式表示外,还可以在IP地址后用一个斜线(/)后
面写明子网掩码的位数的方法来表示。例如,192.168.1.25/24表示IP地址192.168.1.25的
掩码为255.255.255.0。
数据报格式
IPv4数据报由IPv4首部和数据组成。普通的IPv4首部长度为20个字节(若没有可选项字
段)至60字节。IPv4数据报的格式如下图所示。
IP数据报中各字段的含义如下表所示。
字段 | 含义 |
---|---|
版本 | 4,代表IPv4。 |
首部长度 | 将该值乘以4可以得到用字节表示的长度。 |
服务类型 | 由3bit优先域、4bit服务类型域和1bit未用位(必须为0)组成。优先域目前已被忽略。服务类型域分别代表最小时延、最大吞吐量、最高可靠性和最小费用。在一个IP数据报中该4bit只能有一位被置为1。 |
总长度 | 以字节为单位定义IP数据报的总长度(首部加上数据)。 |
标识 | 唯一地标识主机发送的每一份数据报。若数据报必须被分割成碎片以适应支持小型数据包的网络,则每个碎片中都设置相同的ID值。 |
标志 | 由3位组成。第1位保留。第2位为不分片标志,表示此数据报不可以被分片。第3位为更多分片标志,值为1表示此分片包不是最后分片,在其之后还有分片。 |
片偏移 | 若数据报被分片,则该域指明了当前分片在原始数据报中相对开始处的位置。该域的值单位为8字节。若数据报没有分片,则该值为0。 |
生存时间 | 设置了数据报可以经过的最多路由器数。指定了数据报的生存时间。TTL(Time to Live)的初始值由源主机设置(通常为32或64),一旦经过一个处理它的路由器,它的值就减去1。当该字段的值为0时,数据报就被丢弃,并发送ICMP报文通知源主机。 |
协议类型 | 表示使用IP层服务的更高层协议。一个IP数据报能封装来自诸如TCP(6)、UDP(17)、ICMP(1)等较高层协议的数据。 |
首部校验和 | 只对头部内容(不包含本字段)进行错误检测,不包括数据报的其他内容。校验和使用16位反码求和算法。 |
源IP地址 | 定义了源主机的IP地址。 |
目的IP地址 | 定义了源主机的IP地址。 |
源IP地址 | 定义了目的主机的IP地址。在IP数据报从源主机传送到目的主机期间,该字段必须保持不变。 |
可选项 | 通常用于网络测试和调试。虽然不是IP头部必需的部分,但要求IP软件能处理它们。目前,这些任选项定义如下: 安全和处理限制(用于军事领域) 记录路径(让每个路由器都记下它的IP地址) 时间戳(让每个路由器都记下它的IP地址和时间) 宽松的源站选路(为数据报指定一系列必须经过的IP地址) 严格的源站选路(与宽松的源站选路类似,但是要求只能经过指定的 这些地址,不能经过其他的地址) |
数据 | 内容根据实际情况填充。 |
IPv6
特点
** IPv6的特点包括:**
- 层次化的地址结构
IPv6的地址空间采用了层次化的地址结构,利于路由快速查找,同时借助路由聚
合,可减少IPv6路由表的大小,提高路由设备的转发效率。 - 地址自动配置
IPv6支持有状态地址配置和无状态地址配置,简化了主机配置。
-- 对于有状态地址配置,主机通过服务器获取地址信息和配置信息。
-- 对于无状态地址配置,主机自动配置地址信息,地址中带有本地路由设备通告
的前缀和主机的接口标识。如果链路上没有路由设备,主机只能自动配置链路
本地地址,实现与本地节点的互通。 - 支持QoS
IPv6报头的新字段定义了流量应该被如何标识和处理。通过报文头里的流标记字段
完成流量标识,允许路由设备对某一流中的报文进行识别并提供特殊处理。由于
IPv6报头可对流量进行识别,即使是带有IPSec加密的报文载荷也可对其QoS进行保
证。 - 内置安全性
IPv6将IPSec作为它的扩展报头实现,提供端到端的安全特性。这一特性为解决网络
安全问题提供了标准。 - 灵活的扩展报文头
IPv6取消了IPv4报文头的选项字段,并引入了多种扩展报文头,在提高处理效率的
同时还增强了IPv6的灵活性,为IP协议提供了良好的扩展能力。
IP 地址
表示形式
IPv6的128位IP地址有以下两种表示形式:
- X:X:X:X:X:X:X:X
地址被分为8组,每组的16位用4个十六进制字符(0~9,A~F)来表示,组和组
之间用冒号(:)隔开。其中每个"X"代表一组十六进制数值。例如,
2031:0000:130F:0000:0000:09C0:876A:130B。有两种简写形式:
-- 省略每组中的前导"0",上述地址可写为2031:0:130F:0:0:9C0:876A:130B。
-- 可用双冒号"::"代替地址中包含的连续两个或多个均为0的组,上述地址可写
为2031:0:130F::9C0:876A:130B。
在一个IPv6地址中只能使用一次双冒号"::",否则当计算机将压缩后的地址恢复
成128位时,无法确定每段中0的个数。 - X:X:X:X:X:X:d.d.d.d
"X"代表高阶的六组数字,用十六进制数来表示每组的16比特。"d"代表低阶的
四组数字,用十进制数表示每组的8比特。后边的部分(d.d.d.d)其实就是一个标准
的IPv4地址。具体又分为如下两种类型:
-- IPv4的兼容IPv6地址。
地址格式为:0:0:0:0:0:0:IPv4-address,其高阶96bits均为0,其低阶32bits是一个
IPv4地址。该IPv4地址必须是IPv4网络中可达的IPv4地址,且不能是组播地址、
广播地址、环回地址或未指定的地址(0.0.0.0)。
-- IPv4的映射IPv6地址。
地址格式为:0:0:0:0:0:FFFF:IPv4-address。该地址用于将IPv4节点的地址表示为
IPv6地址。
** 结构**
IPv6地址由如下两部分组成:
l 网络前缀:n比特,相当于IPv4地址中的网络号码。
l 接口标识:128-n比特,相当于IPv4地址中的主机号码。
地址2001:A304:6101:1:0000:E0:F726:4E58/64(其中/64表示网络前缀为64位)的构成如
下图所示。
** 分类 **
IPv6主要有三种地址:
- 单播地址(Unicast)
唯一标识一个接口,类似于IPv4的单播地址。发送到单播地址的数据包将被传输到
此地址所标识的唯一接口。单播地址还可以分为四种,如下图所示。
- 任播地址(Anycast)
用来标识一组接口(通常这组接口属于不同的节点)。发送到任播地址的数据包被
传输给此地址所标识的一组接口中距离源节点最近的一个接口(最"近"的一个,
是指根据路由协议的距离度量)。任播地址提供了很多潜在的重要服务。 例如,一
个任播地址可以用来允许节点访问提供某种已知服务的服务器集合中的一个服务
器,而不需要在每个节点手工配置服务器列表。
任播地址没有独立的地址空间,它们可使用任何单播地址的格式。因此,需要一种
语法来区别任播地址和单播地址。 - 组播地址(Multicast)
用来标识属于不同节点的一组接口,类似IPv4的组播地址。发送到组播地址的数据
包被传输给此地址所标识的所有接口。IPv6不包括广播地址,广播地址的功能均由
组播地址来提供。
数据报格式
扩展包头不是必选部分。仅当需要路由器或目的节点做某些特殊处理时,才由发送方添
加一个或多个IPv6扩展包头。IPv6数据报的格式如下图所示。
IP数据报中各字段的含义如下图所示。
ICMP
概念
Internet控制报文协议ICMP(Internet Control Message Protocol)是一种面向无连接的协
议(在RFC792文档中定义),是TCP/IP协议族的一个子协议,使用IP做为底层支持。用
于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路
由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数
据的传递起着重要的作用。因此ICMP是一个非常重要的协议,对于网络安全具有极其
重要的意义。
ICMP的功能主要有:
- 主机选择
- 路由维护
- 路由选择
- 流量控制
分类
ICMP报文一般可分为:
- ICMP差错报文:用于报告处理数据报过程中的错误,如目的不可达、超时等。
ICMP差错报文会返回给发送源数据的设备。发送源数据的设备随后可根据ICMP差
错报文确定发生错误的类型,并确定如何才能更好地重发失败的数据包。
ICMP的功能仅是报告问题,由发送方完成纠正错误的任务。 - ICMP查询报文:用于查询网络中的基本信息,如回显、时间戳、地址掩码等。
源设备向目的设备发送ICMP查询报文。目的设备将ICMP差错报文或携带查询结果
的ICMP查询报文返回给源设备。源设备可根据返回的报文获知网络信息,并进行
可能的、相应的处理。
每类ICMP报文又可细分为多种类型,不同类型由报文中的类型字段和代码字段来共同
决定。详细分类请参见RFC792。
报文格式
IP首部中的协议类型字段为1时表明其IP数据是ICMP报文。
ICMP报文的格式如下图所示。所有报文的前4个字节都是一样的,剩下的其他字节则
互不相同。
ICMP报文中各字段的含义如下表所示。
VRRP
概念
虚拟路由器冗余协议VRRP(Virtual Router Redundancy Protocol)是一种选择协议(在
RFC2338文档中定义),可以通过使用VRRP把虚拟路由器的任务分配给LAN上的VRRP
路由器中的一台。控制虚拟路由器IP地址的VRRP路由器称为主路由器,它负责转发数
据包到这些虚拟IP地址。当主路由器不可用时,VRRP提供了动态的故障转移机制,允
许将任意一个虚拟路由器的IP地址作为终端主机的默认第一跳路由器地址。在无需要求
每台终端主机都配置动态路由或路由发现协议的情况下,使用VRRP可以获得高可用性
的默认路由。
原理
VRRP协议的实现有VRRPv2和VRRPv3两个版本。其中,VRRPv2基于IPv4,VRRPv3基
于IPv6。VRRPv2和VRRPv3在功能实现上并没有区别,只是应用的网络环境不同。
VRRP将LAN的一组路由器(包括一个主路由器和若干个备份路由器)组织成一个虚拟
路由器,称之为一个备份组。在备份组中,只有主路由器负责为网络内的主机提供路由
服务。如果备份组内的主路由器坏掉,备份路由器将会通过选举策略选出一个新的主路
由器,继续向网络内的主机提供路由服务。从而实现网络内的主机不间断地与外部网络
进行通信。
虚拟路由器拥有自己的IP地址(可以和备份组内的某个路由器的接口地址相同),备份
组内的路由器也有各自的IP地址。LAN内的主机仅知道虚拟路由器的IP地址,它们将自
己的缺省路由下一跳地址设置为该虚拟路由器的IP地址。于是,LAN内的主机就通过虚
拟路由器与其他网络进行通信。用VRRP实现虚拟路由器的示意图如下图所示。
说明如下:
- 路由器1、2、3组成了虚拟路由器,其中路由器1为主路由器,路由器2、3为备份路
由器。 - 虚拟路由器的IP地址为10.1.1.23,路由器1的IP地址为10.1.1.42,路由器2的IP地址为
10.1.1.29,路由器3的IP地址为10.1.1.6。 - LAN内的主机将自己的缺省路由下一跳地址设置为10.1.1.23。
- LAN内的主机通过虚拟路由器(实际使用的是路由器1,但主机并不清楚)与其他
网络进行通信。 - 路由器1出现故障后,根据选举策略,路由器2成为主路由器,继续为LAN内的主机
提供路由服务。
由于在备份组中,只有主路由器为网络中的主机提供路由服务,而备份路由器和对应的
链路均处于闲置状态。这样造成了负载不均衡,当网络负载较大时此问题更加突出。因
此,通常使用双或多备份组来避免或减少此问题。例如,上图中设置两个备份组A和
B。A和B均包含路由器1~3。在备份组A中路由器1为主路由器,在备份组B中路由器2
为主路由器。主机1、2的缺省路由下一跳为路由器1,主机3、4的缺省路由下一跳为路
由器2。这样,既分担了设备负载和网络流量,又提高了网络可靠性。
报文格式
VRRPv2的报文格式如下图所示。
VRRPv3的报文格式如下图所示。
报文中各字段的含义如下图所示。
OSPF
概念
开放最短路由优先OSPF(Open Shortest Path First)是一种基于链路状态的AS
(Autonomous System)内部路由协议。在IP网络上,它通过收集和传递AS的链路状态来
动态地发现并传播路由。OSPF属于IGP(Interior Gateway Protocol)。目前IPv4协议使
用的OSPF版本2在RFC2328中定义。
AS是为了便于网络的管理,人为地将Internet划分成的若干区域。每一个AS由一组在统
一的机构管理下的路由器组成,AS对外呈现统一的路由机制,并被看成独立的网络组成
单元。
特点
在OSPF出现前,网络上广泛使用RIP(Routing Information Protocol)作为内部网关协
议。由于RIP是基于距离矢量算法的路由协议,存在着收敛慢、路由环路、可扩展性差
等问题,所以逐渐被OSPF取代。
OSPF具有如下特点:
- 适应范围广
支持各种规模的网络,最多可支持几百台路由器。 - 收敛快速
当网络的拓扑结构发生变化时,立即发送更新报文,使这一变化在AS中同步。 - 无自环
通过收集到的链路状态用最小生成树算法计算路由,从算法本身保证了不会生成自
环路由。 - 支持区域划分
允许AS的网络被划分成区域来管理,区域间传送的路由信息被进一步抽象,从而
减少了占用网络的带宽。 - 支持等值路由
支持到同一目的地址的最多三条等值路由。 - 支持验证
支持基于接口的报文验证以保证路由计算的安全性。 - 支持以组播地址发送协议报文
OSPF报文封装在IP报文内,可以采用单播或组播的形式发送。 - 提供路由分级管理
使用4类不同的路由,按从高到低的优先顺序排列如下:
- 区域内路由
描述AS内区域内的网络结构。 - 区域间路由
描述AS内区域间的网络结构。 - 第一类外部路由
对应于OSPF从其他IGP所引入的路由信息,这些路由的开销和OSPF自身路由
的开销具有可比性。 - 第二类外部路由
对应于OSPF从EGP(Exterior Gateway Protocol)所引入的路由信息,这些路由
的开销远大于OSPF自身路由的开销,因而在计算时只考虑外部开销。
原理
路由计算过程
采用OSPF协议时,每个路由器主动测试与其邻站相连链路的状态,并将这些信息发送
给它的其他邻站,而邻站将这些信息在AS中传播出去。每个路由器接收这些链路状态信
息,并建立起完整的路由表。每个路由器再根据SPF(Shortest Path First)计算出到网络
中各个节点的路由表。
通过OSPF协议计算路由的过程如下图所示。
通过OSPF协议计算路由的过程如下:
- 路由器A、B、C、D组成网络。连线旁边的数字表示路径开销。假定两台路由器相
互之间发送报文所需花费是相同的。 - 每台路由器都得到相同的LSDB(Link State DataBase)。LSDB是对整个网络的拓
扑结构的描述。
a. 每台路由器都根据自己周围的网络拓扑结构生成一条LSA(Link State
Advertisement)。
b. 每台路由器都将LSA发送给网络中其他所有的路由器。
c. 每台路由器都收到了其他路由器的LSA,所有的LSA放在一起称作LSDB。 - 各路由器都将LSDB转换成一张带权有向图,这张图是对整个网络拓扑结构的真实
反映。各路由器得到的是一张完全相同的图。 - 每台路由器在图中以自己为根节点,使用SPF算法计算出一棵最小生成树,由这棵
树得到了到网络中各个节点的路由表。
区域划分
OSPF允许AS的网络被划分成区域来管理,区域间传送的路由信息被进一步抽象,从而
减少了占用网络的带宽。区域划分如下图所示。
AS 1内运行OSPF协议。AS 1被划分为三个不同的区域(Area 0、Area 1、Area 2)。其
中Area 0称作"骨干区域"。
bash
说明:
如果AS被划分成一个以上的区域,则必须有一个区域是骨干区域,并且保证其他区域与骨干区域直接
相连或逻辑上相连,且骨干区域自身也必须是连通的。
报文格式
OSPF的报文格式如下图所示。
报文中各字段的含义如下图所示。
传输层
TCP
概念
传输控制协议TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字
节流的传输层通信协议(在RFC793中定义)。
特点
TCP具有以下特点:
- 面向连接的传输。
- 端到端的通信。
- 高可靠性,确保传输数据的正确性,不出现丢失或乱序。
- 全双工方式传输。
- 采用字节流方式,即以字节为单位传输字节序列。
- 紧急数据传送功能。
- 使用缓冲区。
- 提供重传机制。
原理
可靠性保障
TCP通过下列方式来保障数据传输的可靠性:
- 数据被分割成TCP最适合发送的数据块,也就是最大报文段长度。当一个连接建立
时,连接的双方都要通告各自的最大报文段长度。 - 当TCP发出一个报文段后,它启动一个定时器,等待目的端确认收到这个报文段。
如果不能及时收到一个确认将重发这个报文段。 - 当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认通常将推迟
几分之一秒发送,以便将ACK与需要沿该方向发送的数据一起发送。绝大多数实现
采用的时延为200ms。 - TCP通过端到端的首部和数据的检验和,检测数据在传输过程中的任何变化。如果
收到段的检验和有差错,TCP将丢弃这个报文段并不确认收到此报文段,希望发送
端超时并重发。 - 如果TCP报文段的到达顺序错误,TCP会对收到的数据进行重新排序,将数据以正
确顺序交给应用层。 - TCP接收端会丢弃重复的数据。
- TCP可提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端
只允许另一端发送接收端缓冲区所能接纳的数据,从而防止缓冲区溢出。
建立TCP连接
TCP通过三次握手完成连接的建立,如下图所示。
TCP连接建立的过程:
- 客户端执行主动打开:客户端发送SYN包给服务器,其中包含序列号X。
- 服务器收到SYN(SEQ=X)包后,向客户端回SYN(SEQ=Y)+ACK(SEQ=X+1)包作为应
答以及对客户端SYN(SEQ=X)包的确认。 - 客户端向服务器发送ACK(SEQ=Y+1)包,对服务器SYN(SEQ=Y)包进行确认。
同时打开:在很偶然的情况下,TCP连接的两方会同时彼此执行主动打开。这种情况
下,每一方必须发送一个SYN,且这些SYN必须传递给对方。每一方均使用一个对方熟
知的端口作为本地端口。例如,主机A中的一个应用程序使用本地端口7000,并与主机
B的端口8000执行主动打开。主机B的一个应用程序则使用本地端口8000,并与主机A的
端口7000执行主动打开。它们仅建立一条连接而不两条连接,且每一端既是客户机又是
服务器。
终止TCP连接
由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。TCP通过四次握手完成
连接的终止,如下图所示。
TCP连接终止的过程:
- 客户端执行主动关闭:客户端发送FIN包给服务器,其中包含序列号X。
- 服务器收到FIN(SEQ=X)包后,向客户端回ACK(SEQ=X+1)包作为对客户端FIN
(SEQ=X)包的确认。从客户端到服务器的传送被关闭。 - 服务器执行被动关闭:服务器向客户端发送FIN(SEQ=Y) ACK(SEQ=X+1)包。
- 客户端向服务器发送ACK(SEQ=Y+1)包,对服务器FIN(SEQ=Y)包进行确认。从服
务器到客户端的传送被关闭。
同时关闭:TCP连接的两方都可以执行主动关闭。
异常释放:通常情况下,TCP通过发送FIN包关闭连接。若使用的是复位报文来结束连
接,则称为异常释放。使用异常释放,可以使复位报文的发送方立即丢弃待发数据,减
少资源浪费,而接受方可以判断出发送方是正常关闭还是异常关闭。
流量控制
为了实现流量控制,TCP使用一种滑动窗口协议。TCP连接的双方为每个连接使用一个
窗口。窗口区间是缓冲区的一部分,包含一方在等待另一方的确认期间所能发送的字节
数据。该窗口之所以称为滑动窗口,是因为它能随着数据的发送、确认的接收,在整个
缓冲区内滑动。
TCP的滑动窗口是面向字节的。滑动窗口的使用使传输效率更高,同时也能控制数据流
量,使接收端不被数据所淹没。
拥塞控制
TCP提供4种拥塞控制机制来确保有效的利用带宽,并快速修复拥塞和错误:
- 慢速启动
新建立的连接不在一开始就大量发送数据包,而是根据网络情况逐步增加每次发送
的数据量。当新建连接时,拥塞窗口大小初始化为1个最大报文段长度(以字节为
单位),发送端开始按照拥塞窗口大小发送数据。每当有一个报文段被确认,拥塞
窗口大小就增加1个最大报文段长度。拥塞窗口大小的值随着网络往返时间呈指数
级增长。 - 拥塞避免
当拥塞窗口大小超过慢启动门限(通常是65536字节)后,慢速启动过程结束,进
入拥塞避免阶段。拥塞避免的主要思想是加法增大,即拥塞窗口大小的值不再指数
级往上升,而是开始加法增加。当窗口中所有的报文段都被确认时,拥塞窗口大小
加1。拥塞窗口大小的值随着网络往返时间的增加而线性增加,从而避免增长过快
导致网络拥塞,逐渐增加调整到网络的最佳值。 - 快速重传
TCP在收到乱序到达包时会立即发送ACK,TCP利用3个相同的ACK来判定数据包
的丢失。此时进行快速重传,包括把慢启动门限值设置为拥塞窗口大小的一半,把
拥塞窗口大小重新设置为慢启动门限的值(具体实现有些为慢启动门限的值+3),
并重新进入拥塞避免阶段。 - 快速恢复
快速恢复与快速重传类似,但当收到3个重复ACK时,TCP最后进入的不是拥塞避
免阶段,而是快速恢复阶段。快速恢复的思想是"数据包守恒"原则,即同一个时
刻在网络中的数据包数量是恒定的,只有当"老"数据包离开了网络后,才能向网
络中发送一个"新"的数据包。如果发送方收到一个重复的ACK,根据TCP的ACK
重传机制,就表明有一个数据包离开了网络,于是拥塞窗口大小加1。
报文格式
TCP的报文格式如下图所示。
报文中各字段的含义如下表所示。
UDP
概念
用户数据报协议UDP(User Datagram Protocol)是一种在因特网传输层提供用户进程,
并负责在应用程序之间无连接传递数据的协议(在RFC768文档中定义)。UDP不对传
送数据包进行可靠的保证,适合于传输少量数据,可靠性则由应用层来负责。UDP协议
位于IP协议之上。
特点
UDP具有如下特点:
- 传输数据之前源端和终端不建立连接。
- 不需要维护连接状态,包括收发状态等,一台服务机可同时向多个客户机传输相同
的消息。 - UDP信息包的包头很短,只有8个字节,相对于TCP的20个字节信息包的额外开销
很小。 - 吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端
和终端主机性能的限制。 - UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状
态表。 - UDP面向报文,不对报文拆分和合并,只在添加首部后交付给IP层。因此,应用程
序需要选择合适的报文大小。 - 控制选项较少,数据传输过程中,延迟较小,数据传输效率较高。
应用
UDP协议适合于对可靠性要求并不高的应用程序,或者可以保障可靠性的应用程序,像
DNS、TFTP、SNMP等;UDP协议也可以用于传输链路可靠的网络。
UDP排除了信息可靠传递机制,将安全和排序等功能移交给上层应用来完成,极大降低
了执行时间,使速度得到了保证。UDP的典型应用包括流媒体、实时多媒体游戏和IP电
话等,这些应用不需要可靠机制,但更加注重实际性能的应用。
报文格式
UDP的报文格式如下图所示。
UDP报文中各字段的含义如下表所示。
校验和
UDP校验和覆盖的内容超出了UDP数据报本身的范围。为了计算校验和,UDP把伪首部
(PSEUDO-HEADER)引入数据报中。在伪首部中有一个值为0的填充八位组,用于保证
整个数据报的长度为16比特的整数倍。使用伪首部的目的是检验UDP数据报已达到正确
的目的地。
在UDP校验和的计算过程中用到的伪首部长度为12字节,如下图所示。
UDP校验和使用的各字段的含义如下表所示。
应用层
HTTP
超文本传输协议HTTP(HyperText Transfer Protocol)是一种详细规定了浏览器和万维网
WWW(World Wide Web)服务器之间互相通信的规则,通过因特网传送万维网文档的
数据传送协议(HTTP/1.1由RFC 2616定义)。
HTTP可以以普通文本、超文本、音频、视频等格式传输数据。称为超文本协议的原因
是在应用环境中,它可以快速的在文档之间跳转。HTTP通常在公认端口80上使用TCP
或其他可靠传输协议服务。
在实际应用中,客户端通常需要配置HTTP代理服务器。HTTP代理服务器用于保存对最
近请求的响应的拷贝。在其存在的情况下,当客户端访问网页时,客户端会向代理发出
请求,代理检查高速缓存,如果缓存中不存在响应报文,代理才会向相应的服务器发送
请求,从而降低了原服务器的负载,减少了通信量并降低了延迟。使用代理服务器,客
户端必须配置为访问代理服务器而不是目标服务器。
HTTP的工作过程如下图所示。
HTTP工作过程可分为:
- 使用TCP的三次握手在客户端与服务器之间建立连接。
- 客户端向服务器发送请求,其格式为统一资源标识符(URL)、协议版本号、MIME
信息(包括请求修饰符、客户机信息和可能的内容)。 - 服务器接收到请求后,向客户端发送响应信息,其格式为信息的协议版本号、一个
成功或错误的代码、MIME信息(包括服务器信息、实体信息和可能的内容)。 - 客户端通过浏览器,将接收到的服务器所返回的信息显示在用户的显示屏上。
- 使用TCP的四次握手断开客户端与服务器之间的连接。客户端与服务器均可发起断
开过程。
如果在以上过程中的某一步出现错误,产生错误的信息将返回到客户端,由显示屏输
出。
HTTP/1.1默认的连接是持续连接,服务器在发送响应以后会保持连接状态,等待更多的
请求。
相关硬件
LAN switch
局域网交换机LAN switch是一种在局域网中完成信息交换功能的网络设备。
LAN switch主要有如下几个特点:
- 自动建立和维护地址表。
- 每一端口独享带宽,保障传输速率。
- 同一时刻支持多对端口之间进行数据传输。
- 只向目标地址发送数据,不易产生网络堵塞,同时保证数据传输安全。
- 可以把网络分成若干个VLAN,隔离广播风暴,避免共享冲突。
按照不同标准,LAN switch可分为不同种类。
- 根据传输速度划分
交换机分为以太网交换机、快速以太网交换机、吉比特以太网交换机和10吉比特以
太网交换机。它们分别用于带宽100Mb/s以下、100Mb/s、1Gb/s、10Gb/s、25Gb/s、40Gb/s、100Gb/s的以太网。 - 根据应用层次划分
-- 企业级交换机
作为骨干交换机,通常支持500个信息点以上大型企业应用。
-- 部门级交换机
通常支持300个信息点以下中型企业应用。
-- 工作组交换机
通常支持100个信息点以下中小型企业应用。 - 根据工作的协议层次划分
-- 二层交换机
工作在OSI模型的第二层(数据链路层)。交换机根据MAC地址转发数据,交换
速度快,但控制功能弱,没有路由选择功能。
-- 三层交换机
工作在OSI模型的第三层(网络层)。交换机根据IP地址转发数据,具有路由功
能,是二层交换与路由功能的有机组合。三层交换机也称为路由交换机。
-- 四层交换机
工作在OSI模型的第四层(传输层)。交换机根据传输层数据包的包头信息转发
数据,同时实现传输层的访问控制和服务质量保证。
二层交换机工作原理
交换机拥有一条高带宽的背部总线和内部交换矩阵。交换机的所有端口都挂接在背部总
线上。
二层交换机的组网如下图所示,二层交换机划分了两个VLAN,每个VLAN
连三台设备。
VLAN内通信
当A1需要向A3发送信息,交换机工作过程如下:
- 交换机收到A1发来的数据帧。
- 交换机分析数据帧的报头信息,获取目标MAC地址。
- 交换机在内部存储的MAC地址表中查找相应的端口。
- 如果MAC地址表中记录目标MAC地址对应A3,交换机把数据帧发给A3。
- 如果MAC地址表中没有目标MAC地址对应的端口,交换机向VLAN1内所有端口
(A2、A3、路由器)进行广播。A3回应后,交换机记录目标MAC地址与A3对
应,把A3的MAC地址加入MAC地址表中,并把数据帧发给A3。
bash
交换机通过不断记录网络的MAC地址信息,建立和维护MAC地址表。这也称为交换机学
习能力。
VLAN间通信
当A1需要向B3发送信息,交换机工作过程如下:
- 交换机收到A1发来的数据帧。
- 交换机分析数据帧的包头信息,获取目标MAC地址。
- 交换机在内部存储的MAC地址表中查找相应的端口。
- 如果MAC地址表中记录目标MAC地址对应路由器,交换机把数据帧发给路由
器。 - 如果MAC地址表中没有目标MAC地址对应的端口,交换机向VLAN1内所有端口
(A2、A3、路由器)进行广播。路由器收到广播后,分析B3属于VLAN2,需要
路由转发,回应交换机。交换机学习目标MAC地址与路由器对应,把MAC地址
加入MAC地址表中,并把数据帧发给路由器。
- 路由器通过交换机VLAN2把数据帧发给B3。
三层交换机工作原理
三层交换机的组网如下图所示。
网络内通信
当A1需要向A2发送信息,通信过程如下:
- A1使用A2的IP地址和子网掩码,取得A2的网络地址,确定A2与自己在同一网段。
c
网络地址是IP地址的网络部分,用于唯一标识一个网段。网络地址可以通过IP地址的二进制
与子网掩码的二进制进行与运算取得。例如,A2的IP地址为"192.168.0.1",子网掩码为
"255.255.255.0",则网络地址为"192.168.0.0"。
- A1给A2发送ARP请求,A2返回其MAC地址。
- A1用A2的MAC封装数据包,发送给交换机。
- 交换机起用二层交换模块,查找MAC地址表,转发数据包。
具体工作过程,请参见二层交换机工作原理。
网络间通信
当A1需要向B1发送信息,通信过程如下:
- A1使用B1的IP地址和子网掩码,取得B1的网络地址,确定B1与自己不在同一网段。
- A1把第一个数据包发向缺省网关。
缺省网关对应交换机的三层路由模块。 - 交换机的三层路由模块接收数据包后,查询路由表确定到达B1的路由,构造一个新
的帧头。
新帧头中,以缺省网关的MAC地址为源MAC地址,以B1的MAC地址为目标MAC
地址。 - 三层路由模块通过一定的识别触发机制,确定A1与B1的MAC地址及转发端口的对
应关系,产生并保存一个地址映射表,记录A1、B1的MAC地址与IP地址对应关系。 - 后续,A1发给B1的数据,交换机根据地址映射表,直接从二层交换模块由源地址
传输到目标地址,不再经过三层路由模块。
bash
这就是通常说的一次路由多次转发。它可消除路由选择造成的网络延迟,提高数据包转发效
率。
四层交换机主要技术
IP网络中,普遍使用的传输层协议是TCP和UDP。他们数据包的包头不仅包括端口号,
还指明数据包是什么类型的网络数据。四层交换机使用传输层数据包的包头信息进行信
息交换和传输处理,就可以进行与网络数据相关的服务质量和流量控制。下面介绍四层
交换机的主要技术:
- 包过滤/安全控制
四层交换机能够配置允许或禁止IP子网间的连接,也可以控制指定TCP/UDP端口的
通信。而且,它采用ASIC专用高速芯片实现过滤,提高了包过滤速率。 - 服务质量
四层交换机允许使用基于目的地址、目的端口号(应用服务)的组合来区分优先
级,使紧急应用获得网络的高级别服务。 - 服务器负载均衡
四层交换机所支持的服务器负载均衡方式,是将不同的物理服务器组成一个集,共
同提供相同的服务,并将其定义为虚拟服务器。虚拟服务器是一个有单独IP地址的
逻辑服务器。用户数据流指向虚拟服务器的IP地址,通过四层交换机进行网络地址
转换,与真实的物理服务器通信。虚拟服务器可以隐藏物理服务器的实际IP地址,
防止非授权访问。
四层交换机可以使用多种协议进行负载均衡,如OSPF、RIP、VRRP协议。它还可
以针对流量特性遏制或拒绝不同应用类型服务,控制指定时间内允许的连接数以保
障QoS,或指定符合TCP协议的合法连接才可查询网络服务。 - 主机备用连接
主机备用连接为端口设备提供冗余连接,在交换机发生故障时能有效保护系统,这
种服务允许定义主备交换机。四层交换机支持共享相同的MAC地址,主备交换机
可以接收相同数据,使备份交换机能够监视主交换机服务的通信内容。而且,主交
换机会持续地通知备份交换机第四层的有关数据、MAC数据以及它的电源状况。
当主交换机故障时,备份交换机就会自动接管,不会中断对话或连接。 - 统计
通过查询第四层数据包,四层交换机能够提供详细的统计记录。管理员可收集到哪
一个IP地址正在通信的信息,也可根据通信中涉及到哪一个应用层服务来收集通信
信息。当服务器支持多个服务时,这些统计信息对于考察服务器上每个应用的负载
很有效。当交换机提供服务器负载均衡服务时,这些统计信息有助于交换机确定连
接哪台真实服务器。
交换方式
- 存储转发
交换机把接收到的整个数据帧缓存,进行循环冗余码校验,对错误包处理后取出目
标地址,查询地址表进行转发。存储转发方式对数据帧进行错误检测,提高可靠
性,可让错误数据帧提前过滤掉,但数据处理延时大。 - 直通方式
交换机接收数据帧时,接收完头信息,马上取出目标地址,查询地址表进行转发。
直通方式无需存储,延时小,交换速度快,但可能转发一些错误数据帧。 - 碎片隔离
交换机接收数据帧时,检查数据帧长度,如果小于64字节,说明是假包,丢弃该
包;如果大于64字节,则根据头信息取出目标地址,查询地址表进行转发。碎片隔
离方式结合了前两者的优点,但不提供数据校验。
相关技术
交换机相关技术主要包括: - 级联
级联可以实现多台交换机之间的互连,增加端口密度。级联结构一般是总线型、树
型或星型。级联采用普通用户端口或级联端口。普通用户端口采用交叉电缆连接。
级联端口采用直通电缆连接。可以使用不同厂家、不同型号的交换机进行级联。 - 堆叠
堆叠是将多台支持堆叠特性的交换机,通过堆叠电缆或高速上行口,以环型或链型
组合在一起,从逻辑上合为一个整体设备。堆叠可以提高交换机端口密度和性能,
实现交换机的集中管理和维护。一般相同类型的交换机才能进行堆叠。
堆叠中,交换机主要分三种角色。
-- 主交换机:根据堆叠协议由交换机自动确定。它负责管理整个堆叠系统,包括
分配堆叠成员编号,收集堆叠拓扑信息,将拓扑信息通告给所有堆叠成员。堆
叠中只有一台主交换机。
-- 备份交换机:由主交换机指定。它是主交换机的备份,当主交换机发生故障
时,接替主交换机的工作。堆叠中只有一台备份交换机。
-- 从交换机:除主交换机和备份交换机外所有的交换机。从交换机会定期检测相
邻交换机,当发现相邻交换机没有回应,会向主交换机发送拓扑变化的报告。
堆叠可看作级联的一种特殊形式。堆叠与级联的关系:
-- 级联的交换机可以相距很远。堆叠的交换机距离非常近,一般不超过几米。
-- 级联一般采用普通用户端口。堆叠一般采用专用的堆叠模块和堆叠电缆。
-- 级联是交换机之间的简单连接。堆叠是将多台交换机从逻辑上合为一台交换机
使用。 - 集群
集群可以将相互连接(级联或堆叠)的多台交换机作为一个逻辑设备进行管理,降
低网络管理成本,简化管理操作。集群中,一般只有一台交换机起管理作用,称为
命令交换机。它可以管理其他交换机。在命令交换机统一管理下,集群中多台交换
机协同工作。由于不同厂家对集群有不同的实现方案,一般同一厂家指定型号的交
换机才能实现集群。
集群与级联、堆叠的关系:级联和堆叠基于硬件实现,集群基于软件实现;级联和
堆叠是实现集群的前提,集群是级联和堆叠的目的。 - 端口镜像
端口镜像是指交换机把某一个或多个端口接收或发送的数据帧完全相同的复制给另
一个端口。其中,被复制的端口称为镜像源端口,复制的端口称为镜像目的端口。
端口镜像的目的是实现对网络的监听。 - Trunk
端口汇聚Trunk是指两台设备之间通过两个以上的同种类型端口并行连接,同时传
输数据,提供更高的带宽、更好的冗余度以及实现负载均衡。它由IEEE802.3ad标
准定义。端口汇聚可以为交换机之间提供高速连接,也可以为交换机和服务器之间
提供高速通道。 - Eth-Trunk
以太网端口汇聚Eth-Trunk是指将多个以太网端口汇聚成1个汇聚组,以实现各以太
网端口的负荷分担,同时提供更高的连接可靠性。 - Smart Link
Smart Link是一种在双上行组网中用于实现主备链路的冗余备份及故障快速迁移的
链路技术。
技术参数
交换机主要技术参数如下表所示。
路由器
概念
路由器是连接因特网中各局域网、广域网的设备。
路由器会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。路
由器工作在OSI七层模型的网络层,是互联网络的枢纽。路由器主要使用PPP协议、OSPF
协议和VRRP协议。路由器技术主要包括VPN和IPv6。
路由器的主要工作是为经过的每个数据包寻找一条最佳传输路径。为此,路由器中保存
着各种传输路径的相关数据,即路径表,供路由选择时使用。路径表中保存着子网的标
志信息、网上路由器的个数和下一个路由器的名字等内容。路径表主要分为如下两种。
- 静态路径表:由系统管理员事先设置好,固定的路径表。一般是在系统安装时,根
据网络配置情况预先设定,它不会随未来网络结构的改变而改变。 - 动态路径表:路由器根据网络系统的运行情况而自动调整的路径表。路由器根据路
由选择协议提供的功能,自动学习和记忆网络运行情况,在需要时自动计算数据传
输的最佳路径并调整路径表。
特点
路由器主要特点包括:
- 连通异种网络。相连的各个子网可以采用不同拓扑结构、传输介质或网络协议。
- 适配速率。路由器可以利用自己的缓冲区、队列等能力实现对不同速率网络的适
配。 - 隔离网络,防止广播风暴。路由器根据网段划分不同的广播域,广播数据只能在广
播域中广播,不能穿透路由器进行广播。 - 选择最佳路径。路由器能根据路径表自动为数据包选择最佳路径,提高通信速度,
减轻网络系统通信负荷。
分类
按照不同维度,路由器可分为不同种类。
- 按处理能力划分
路由器分为高端路由器和中低端路由器。通常将背板交换能力大于40GB的路由器
称为高端路由器,背板交换能力40GB及以下的路由器称为中低端路由器。 - 按结构划分
路由器分为模块化结构和非模块化结构。模块化结构可以灵活地配置路由器,以适
应企业不断增加的业务需求;非模块化结构只能提供固定的端口。通常中高端路由
器为模块化结构,低端路由器为非模块化结构。 - 按所处网络位置划分
路由器分为核心路由器和接入路由器。核心路由器位于网络中心,具有快速的包交
换能力和高速的网络接口,通常是高端路由器,采用模块化结构。接入路由器位于
网络边缘,具有相对低速的端口和较强的接入控制能力,通常是中低端路由器。 - 按功能划分
路由器分为通用路由器和专用路由器。一般所说的路由器为通用路由器。专用路由
器通常为实现某种特定功能,对路由器接口、硬件等作专门优化。例如,宽带接入
路由器用作接入用户,需要增强宽带接口数量及种类;VPN路由器用于为远程VPN
访问用户提供路由,需要增强隧道处理能力以及硬件加密能力。
工作原理
路由器通过IP地址中的网络号识别不同的网络,进行路由选择。路由器的组网如下图
所示。
假设用户A1要向用户D2发送信息,信息传送过程如下。
- 用户A1将目的用户D2的IP地址连同数据信息,以数据帧的形式,发给交换机A。
- 交换机A查MAC地址表,发现D2不在MAC地址表中,向网络中所有节点(A2、
R1)发广播。 - 路由器R1侦听到后,从数据帧包头中取出目的用户D2的IP地址,根据IP地址中的网
络号发现D2不在本网段,需要路由转发。路由器R1接收数据帧,根据路径表确定
发往D2的最佳路径为:R1->R2->D->D2。 - 路由器R1把去除帧头的数据包发给路由器R2。
- 路由器R2从数据包包头中取出目的用户D2的IP地址,根据IP地址中的网络号发现
D2在它所连接的网段上,而且D2的网络号与交换机D的网络号相同。 - 路由器R2给数据包加帧头后发给交换机D。
- 交换机D查MAC地址表,把数据帧发给用户D2。
路由器与交换机的区别
路由器从交换机发展过来,它具有交换机的一些基本功能,同时克服了交换机不能路由
转发数据包的不足。路由器与交换机的主要区别如下表所示。