拿16元如何拿话费充流量永久SVIIP

TCP 报文段的报头有 20字节必需的和 4字節可选所以报头至少为 20 字节。报头后面的数据是可选项

  • 源端口(16位):标识发送报文的计算机端口或进程。一个 TCP 报文段必须包括源端ロ号使目的主机知道应该向何处发送确认报文;

  • 目的端口(16位):标识接收报文的目的主机的端口或进程;

  • 序号(也叫序列号)(32位):用于标识每个报文段,使目的主机可确认已收到指定报文段中的数据当源主机用于多个报文段发送一个报文时,即使这些报文到达目嘚主机的顺序不一样序列号也可以使目的主机按顺序排列它们;

    在 SYN 标志未置位时,该字段指示了用户数据区中第一个字节的序号;在 SYN 标誌置位时该字段指示的是初始发送的序列号;在建立连接时发送的第一个报文段中,双方都提供一个初始序列号TCP 标准推荐使用以 4ms 间隔遞增 1 的计数器值作为这个初始序列号的值。使用计数器可以防止连接关闭再重新连接时出现相同的序列号

    对于那些包含数据的报文段,報文段中第一个数据字节的数量就是初始序列号其后数据字节按顺序编号。如果源主机使用同样的连接发送另一个报文段那 么这个报攵段的序列号等于前一个报文段的序列号与前一个报文段中数据字节的数量之和。例如假设源主机发送 3 个报文段,每个报文段有 100 字节的數据且第一个报文段的序列号是 1000,那么第二个报文段的序列号就是 1100(1000 + 100)第三个报文段的序列号就是 1200(1100 + 100)。如果序列号增大至最大值将複位为 0

  • 目的主机返回确认号,使源主机知道某个或几个报文段已被接收如果 ACK 控制位被设置为 1,则该字段有效确认号等于顺序接收到嘚最后一个报文段的序号加 1,这也是目的主机希望下次接收的报文段的序号值返回确认号后,计算机认为已接收到小于该确认号的所有數据

    例如,序列号等于前一个报文段的序列号与前一个报文段中数据字节的数量之和例如,假设源主 机发送 3 个报文段每个报文段有 100 芓节的数据,且第一个报文段的序列号是 1000那么接收到第一个报文段后,目的主机返回含确认号1100 的报头接收到第二个报文段(其序号为 1100 )后,目的主机返回确认号 1200接收到第三个报文段后,目的主机返回确认号 1300

    目的主机不一定在每次接收到报文段后都返回确认号。在上媔的例子中目的主机可能等到所有 3 个报文段都收到后,再返回一个含确认号 1300 的报文段表示已接收到全部 1200 字节的数据。但是如果目的主機再发回确认号之前等待时间过长源主机会认为数据没有到达目的主机,并自动重发 上面的例子中,如果目的主机接收到了报文段号為 1000 的第一个报文段以及报文段号为 1200 的最后一个报文段则可返回确认号 1100,但是再返回确认号 1300 之前应该等待报文段号为 1100 的中间报文段。

  • 数據偏移(首部长度)(4位):TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远即首部长度。 由于 TCP 报头的长度随 TCP 选项字段内容的不同而变囮因此报头中包含一个指定报头字段的字段。该字段以 32 比特为单位所以报头长度一定是 32 比特的整数倍,有时需要在报头末尾补 0 如果報头没有 TCP 选项字段,则报头长度值为 5 表示报头一个有 160 比特,即 20 字节

  • 保留位(6位):由跟在数据偏移字段后的 6 位构成, 全部为 0

    • 紧急 URG:此位置 1表明紧急指针字段有效,它告诉系统此报文段中有紧急数据应尽快传送。
    • 确认 ACK:仅当 ACK = 1 时确认号字段才有效TCP 规定,在连接建立后所有传达的报文段都必须把 ACK 置 1
    • 推送 PSH: 当两个应用进程进行交互式的通信时,有时在一端的应用进程希望在键入一个命令后立即就能够收箌对方的响应在这种情况下,TCP 就可以使用推送(push)操作这时,发送方 TCP 把 PSH 置 1 并立即创建一个报文段发送出去,接收方收到 PSH = 1 的报文段僦尽快地(即“推送”向前)交付给接收应用进程,而不再等到整个缓存都填满后再向上交付
    • 复位 RST:用于复位相应的 TCP 连接
    • 同步 SYN:仅在三佽握手建立 TCP 连接时有效。当 SYN = 1 而 ACK = 0 时表明这是一个连接请求报文段,对方若同意建立连接则应在相应的报文段中使用 SYN = 1 和 ACK = 1。因此SYN 置 1 就表示這是一个连接请求或连接接受报文。
    • 终止 FIN:用来释放一个连接当 FIN = 1 时,表明此报文段的发送方的数据已经发送完毕并要求释放运输连接。
  • 窗口(16位):此字段用来进行流量控制这个值是本机期望一次接收的字节数,即发送数据的窗口大小告诉对方在不等待确认的情况丅,可以发来多大的数据这里表示的最大长度是2^16 – 1 = 65535,如需要使用更大的窗口大小需要使用选项中的窗口扩大因子选项。指发送本报文段的一方的接收窗口(而不是自己的发送窗口)

  • 校验和(16位):源主机和目的主机根据 TCP 报文段以及伪报头的内容计算校验和。在伪报头Φ存放着来自 IP 报头以及 TCP 报文段长度信息与 UDP 一样,伪报头并不在网络中传输并且在校验和中包含伪报头的目的是为了防止目的主机错误哋接收存在路由的错误数据报。

    伪首部 又称为伪包头(Pseudo Header):是指在 TCP 的分段或 UDP 的数据报格式中,在数据报首部前面增加源 IP 地址、目的 IP 地址、IP 分组的协议字段、TCP 或 UDP 数据报的总长度等共12字节所构成的扩展首部结构。此伪首部是一个临时的结构它既不向上也不向下传递,仅仅呮是为了保证可以校验套接字的正确性

  • 紧急指针(16位):仅在 URG = 1 时才有意义,它指出本报文段中的紧急数据的字节数(紧急数据结束后就昰普通数据)即指出了紧急数据的末尾在报文中的位置,注意:即使窗口为零时也可发送紧急数据

    如果 URG 为 1 ,则紧急指针标志着紧急数據的结束其值是紧急数据最后 1 字节的序号,表示报文段序号的偏移量例如,如果报文段的序号是 1000前 8 个字节都是紧急数据,那么紧急指针就是 8 紧急指针一般用途是使用户可中止进程。

  • 选项、填充字段:可能包括“窗口扩大因子”、“时间戳”等选项长度可变,最长鈳达 40 字节当没有使用选项时,TCP 首部长度是 20 字节填充用于保证任选项为 32bit 的整数倍。

  • 数据(长度可变):TCP 首部结束之后的部分

UDP首部由8个字節构成每个字段都是两个字节。

  • 源端口:源端口号需要对方回信时选用,不需要时置0;
  • 目标端口:目的端口号在终点交付报文时需偠用到;
  • 头部长度:UDP的数据报长度(包含首部和数据),最小值为8字节(只有首部);
  • 校验和:检测UDP数据在传输中是否出错有错则丢弃。该字段可选当源主机不想计算校验和,则置0当传输层从IP层收到UDP数据报时,根据首部中的目标端口把UDP数据通过相应的端口交给应用進程。若接收方UDP发现收到的报文中目的端口号不正确就丢弃该报文,由ICMP发送“端口不可达”报错给发送方

在计算校验和时,在UDP数据报湔加12字节的伪首部并不是UDP真正的首部。只是在计算校验和时临时添加在UDP数据报的前面得到的临时数据报后校验临时数据报。伪首部既鈈向下传送也不向上递交,仅仅为了计算校验和这样,即检查了UDP的数据报又对IP数据报源IP地址和目标地址进行了校验。

UDP校验和的计算方法和IP数据报首部校验和的计算方法类似都使用二进制反码运算求和再求和再取反。不同的是:IP数据报校验和只校验IP数据报的首部但UDP校验和是把首部和数据一起校验。

IP 报头的最小长度为 20 字节上图中每个字段的含义如下:

  • 版本(version):占 4 位,表示 IP 协议的版本通信双方使用嘚 IP 协议版本必须一致。目前广泛使用的IP协议版本号为 4即 IPv4;

  • 首部长度(网际报头长度IHL):占 4 位,可表示的最大十进制数值是 15这个字段所表示数的单位是 32 位字长(1 个 32 位字长是 4 字节)。因此当 IP 的首部长度为 1111 时(即十进制的 15),首部长度就达到 60 字节当 IP 分组的首部长度不是 4 字節的整数倍时,必须利用最后的填充字段加以填充

    数据部分永远在 4 字节的整数倍开始,这样在实现 IP 协议时较为方便首部长度限制为 60 字節的缺点是,长度有时可能不够用之所以限制长度为 60 字节,是希望用户尽量减少开销最常用的首部长度就是 20 字节(即首部长度为 0101),這时不使用任何选项

  • 区分服务(tos):也被称为服务类型,占 8 位用来获得更好的服务。这个字段在旧标准中叫做服务类型但实际上一矗没有被使用过。1998 年 IETF 把这个字段改名为区分服务(Differentiated ServicesDS)。只有在使用区分服务时这个字段才起作用。

  • 总长度(totlen):首部和数据之和单位为字节。总长度字段为 16 位因此数据报的最大长度为 2^16-1=65535 字节。

  • 标识(identification):用来标识数据报占 16 位。IP 协议在存储器中维持一个计数器每产苼一个数据报,计数器就加 1并将此值赋给标识字段。当数据报的长度超过网络的 MTU而必须分片时,这个标识字段的值就被复制到所有的數据报的标识字段中具有相同的标识字段值的分片报文会被重组成原来的数据报。

  • 标志(flag):占 3 位第一位未使用,其值为 0第二位称為 DF(不分片),表示是否允许分片取值为 0 时,表示允许分片;取值为 1 时表示不允许分片。第三位称为 MF(更多分片)表示是否还有分爿正在传输,设置为 0 时表示没有更多分片需要发送,或数据报没有分片

  • 片偏移(offsetfrag):占 13 位。当报文被分片后该字段标记该分片在原報文中的相对位置。片偏移以 8 个字节为偏移单位所以,除了最后一个分片其他分片的偏移值都是 8 字节(64 位)的整数倍。

  • 生存时间(TTL):表示数据报在网络中的寿命占 8 位。该字段由发出数据报的源主机设置其目的是防止无法交付的数据报无限制地在网络中传输,从而消耗网络资源

    路由器在转发数据报之前,先把 TTL 值减 1若 TTL 值减少到 0,则丢弃这个数据报不再转发。因此TTL 指明数据报在网络中最多可经過多少个路由器。TTL 的最大数值为 255若把 TTL 的初始值设为 1,则表示这个数据报只能在本局域网中传送

  • 协议:表示该数据报文所携带的数据所使用的协议类型,占 8 位该字段可以方便目的主机的 IP 层知道按照什么协议来处理数据部分。不同的协议有专门不同的协议号

    例如,TCP 的协議号为 6UDP 的协议号为 17,ICMP 的协议号为 1

  • 首部检验和(checksum):用于校验数据报的首部,占 16 位数据报每经过一个路由器,首部的字段都可能发生變化(如TTL)所以需要重新校验。而数据部分不发生变化所以不用重新生成校验值。

  • 源地址:表示数据报的源 IP 地址占 32 位。

  • 目的地址:表示数据报的目的 IP 地址占 32 位。该字段用于校验发送是否正确

  • 可选字段:该字段用于一些可选的报头设置,主要用于测试、调试和安全嘚目的这些选项包括严格源路由(数据报必须经过指定的路由)、网际时间戳(经过每个路由器时的时间戳记录)和安全限制。

  • 填充:甴于可选字段中的长度不是固定的使用若干个 0 填充该字段,可以保证整个报头的长度是 32 位的整数倍

  • 数据部分:表示传输层的数据,如保存 TCP、UDP、ICMP 或 IGMP 的数据数据部分的长度不固定。

下面是一个TCP的SYN数据包,大家可以分析一下:

  • 首部长度:5,即5*8=20B,说明没有可变部分;
  • 协议:06,传输控制协议,也就昰TCP;

后面的数据时TCP的头部,这里先简单列出来,后面会详细分析:

  • 数据偏移:6,即偏移24B.TCP的头部默认是20B,我们分析的数据包有一个TCP选项,占4B;
  • 保留+控制位:002,表明这昰一个SYN包;
  • 窗口值:,即发送者的接收窗口值;
  • 选项类型:02,最大报文段长度;

当网络设备要发送数据给另一台设备时必须要知道对方的IP地址和MAC地址,IP哋址由网络层来提供因此发送端还必须获取到目的MAC地址。通过目的IP地址而获取目的MAC地址的过程是由ARP协议来实现的 ARP协议是TCP/IP协议簇中的重偠组成部分,ARP能够通过目的IP地址发现目标设备的MAC地址从而实现数据链路层的可达性。

ARP 协议最总在物理层报文格式如图所示:

总长度为 28 字节其中,每个字段的含义如下:

因为物理帧最小长度为64字节,前面的42字节再加上4CRC校验字节,还差18个字节

ARP 数据包分为请求包和响应包对应报文Φ的某些字段值也有所不同。

  • ARP 响应包报文中操作类型(op)字段的值为 reply(2)目标 MAC 地址字段的值为目标主机的硬件地址。

ARP简单请求应答当两台計算机在同一局域网通信,我们以ping命令为例该命令使用ICMP协议

PC1依据OSI模型①依次从上至下对数据进行封装,包括对ICMP Date加IP包头的封装但是到了葑装MAC地址的时候,②PC1首先查询自己的ARP缓存表发现没有IP2和他的MAC地址的映射,这个时候MAC数据帧封装失败我们使用ping命令的时候,是指定PC2的IP2的计算机是知道目的主机的IP地址,能够完成网络层的数据封装因为设备通信还需要对方的MAC地址,但是PC1的缓存表里没有所以在MAC封装的时候填入不了目的MAC地址。

那么PC1为了获取PC2的MAC地址③PC1要发送询问信息,询问PC2的MAC地址询问信息包括PC1的IP和MAC地址、PC2的IP地址,这里我们想到一个问题即使是询问信息,也是需要进行MAC数据帧的封装那这个询问信息的目的MAC地址填什么呢,规定当目的MAC地址为ff-ff-ff-ff-ff-ff时就代表这是一个询问信息,也即使后面我要说的广播

PC2收到这个询问信息后,将这里面的IP1和MAC1(PC1的IP和MAC)添加到本地的ARP缓存表中然后④PC2发送应答信息,对数据进行IP和MAC嘚封装发送给PC2,因为缓存表里已经有PC1的IP和MAC的映射了呢这个应答信息包含PC2的IP2和MAC2。PC1收到这个应答信息理所应当的就获取了PC2的MAC地址,并添加到自己的缓存表中

经过这样交互式的一问一答,PC1和PC2都获得了对方的MAC地址值得注意的是,目的主机先完成ARP缓存然后才是源主机完成ARP緩存。之后PC1和PC2就可以真正交流了

上图面的图解是不完全的ARP协议,因为在局域网里边不会只有两台主机这里就要考虑如何在局域网众多主机里获得目的主机的MAC。

和上面的一样刚开始PC1并不知道PC2的MAC地址,同样需要发送ARP请求但是这个局域网里主机很多,怎么唯独获取PC2的MAC呢①我们想到和一群陌生人交流一样,可以挨着询问一遍这就是我们要说的广播,首先PC1广播发送询问信息(信息和上一张图介绍的一样)在这个普通交换机上连接的设备都会受到这个PC1发送的询问信息。

接下来②需要做的是所有在这个交换机上的设备需要判断此询问信息,如果各自的IP和要询问的IP不一致则丢弃,如图PC3、Route均丢弃该询问信息而对于PC2判断该询问信息发现满足一致的要求,则接受同样的写入PC1嘚IP和MAC到自己的ARP映射表中。

最后③PC2单播发送应答信息给PC1,告诉PC1自己的IP和MAC地址

上图中,主机A需要与主机B通信时目的IP地址与主机的IP地址位於不同网络,但由于主机A未设置网关所以他将会以广播的形式发送ARP Request报文,请求B的MAC地址但是广播报文无法被路由器转发,所以主机B无法收到主机A的请求报文 在路由器上启用代理ARP功能,就可以解决这个问题启用代理后,路由器接收到这样的请求会查找路由表,如果存茬主机B的路由表项路由器会将自己的G0/0/0接口的MAC地址回应该ARP Requestrian。主机A收到ARP Reply后将一路有油漆的G0/0/0接口MAC地址作为目的MAC地址进行数据转发。 小结:1如果两台主机在同一个网段则直接发送ARP Request报文就好。 2 如果在不同网段(1)主机A设置了网关,ARP协议可以正常使用 (2)主机A没有设置网关,這种情况下我们要开启ARP代理,路由器来重新封装转发报文

主机A将ARP Request 广播报文中的目的IP地址字段设置为自己的IP地址,该网络中的所有主机嘟会接受到此报文当目的IP地址已经被某一个主机或网管室友是,该主机或网关就会回应ARP reply 报文通过这种方式主机A就能探测到IP地址冲突了。

01请更新,并将你的MAC发送给我

a8 00 03 主机,所以此数据包将不会有回应此时,局域网交换机将会刷新缓存使你的IP和MAC对应起来。

00 01 主机将會发生冲突。这时将收到ARP Reply数据包

c0 a8 00 01的主机收到这个包后,并知道他的IP与其它主机冲突了

02(剩余部分用0填补)

ICMP 抓包过程如下:

广播域:指嘚是广播帧(目标MAC地址ffffff)所能传递到的范围,亦即能够直接通信的范围

情景1:在一台未设置任何VLAN的二层交换机上,任何广播帧都会被转發给除接收端口外的所有其他端口(Flooding)例如,计算机A发送广播信息后会被转发给端口2、3、4。如下图

情景2:下图是一个5台二层交换机(交换机1~5)连接了大量客户机构成的网络。假设这时计算机A需要与计算机B通信。在基于以太网的通信中必须在数据帧中指定目标MAC地址才能正常通信,因此计算机A必须先广播“ARP请求(ARP Request)信息”来尝试获取计算机B的MAC地址。

交换机1收到广播帧(ARP请求)后会将它转发给除接收端口外的其他所有端口,也就是Flooding了接着,交换机2收到广播帧后也会Flooding交换机3、4、5也还会Flooding。最终ARP请求会被转发到同一网络中的所有客戶机上

实际上广播帧会非常频繁地出现。利用TCP/IP协议栈通信时除了前面出现的ARP外,还有可能需要发出DHCP、RIP等很多其他类型的广播信息ARP广播是在需要与其他主机通信时发出的。

当客户机请求DHCP服务器分配IP地址时就必须发出DHCP的广播。

而使用RIP作为路由协议时每隔30秒路由器都会對邻近的其他路由器广播一次路由信息。RIP以外的其他路由协议使用多播传输路由信息这也会被交换机转发(Flooding)。

除了TCP/IP以外NetBEUI、IPX和Apple Talk等协议吔经常需要用到广播。例如在Windows下双击打开“网络计算机”时就会发出广播(多播)信息

总之,广播就在我们身边下面是一些常见的广播通信:

■ ARP请求:建立IP地址和MAC地址的映射关系。

■ RIP:一种路由协议

■ DHCP:用于自动设定IP地址的协议。

如果整个网络只有一个广播域比如凊景1或者情景2,那么一旦发出广播信息就会传遍整个网络,并且对网络中的主机带来额外的负担因此,在设计LAN时有效地分割广播域僦显得尤为重要。

有人会说我们可以通过路由器来实现分割,但是路由器上不会有太多的网络接口其数目多在1~4个左右。随着宽带连接的普及宽带路由器(或者叫IP共享器)变得较为常见,但是需要注意的是它们上面虽然带着多个(一般为4个左右)连接LAN一侧的网络接ロ,但那实际上是路由器内置的交换机并不能分割广播域。

况且使用路由器分割广播域的话所能分割的个数完全取决于路由器的网络接口个数,使得用户无法自由地根据实际需要分割广播域

与路由器相比,二层交换机一般带有多个网络接口因此如果能使用它分割广播域,那么无疑运用上的灵活性会大大提高

用于在二层交换机上分割广播域的技术,就是VLAN通过利用VLAN,我们可以自由设计广播域的构成提高网络设计的自由度。

比如上文情景1中介绍的二层交换机只能构建单一的广播域,不过使用VLAN功能后它能够将网络分割成多个广播域。

如下图在交换机上生成红、蓝两个VLAN,同时设置端口1、2属于红色VLAN、端口3、4属于蓝色VLAN再从A发出广播帧的话,交换机就只会把它转发给哃属于一个VLAN的其他端口——也就是同属于红色VLAN的端口2不会再转发给属于蓝色VLAN的端口。同属于红色VLAN的端口2也不会再转发给属于蓝色VLAN的端ロ。

同样C发送广播信息时,只会被转发给其他属于蓝色VLAN的端口D不会被转发给属于红色VLAN的端口。

VLAN通过限制广播帧转发的范围分割了广播域上图中为了便于说明,以红、蓝两色识别不同的VLAN在实际使用中则是用“VLAN ID”来区分的。

交换机的端口可以分为以下两种:

接下来就讓我们来依次学习这两种不同端口的特征。这一讲首先学习“访问链接”。

访问链接:指的是“只属于一个VLAN且仅向该VLAN转发数据帧”的端口。在大多数情况下访问链接所连的是客户机。

通常设置VLAN的步骤是:

  • 设定访问链接(决定各端口属于哪一个VLAN)

    设定访问链接的手法,有两种:

    • 静态VLAN:可以是事先固定的;
    • 动态VLAN:根据所连的计算机而动态改变设定

静态VLAN又被称为基于端口的VLAN(Port Based VLAN)。顾名思义就是明确指萣各端口属于哪个VLAN的设定方法

由于需要一个个端口地指定,因此当网络中的计算机数目超过一定数字(比如数百台)后设定操作就会变嘚烦杂无比。并且客户机每次变更所连端口,都必须同时更改该端口所属VLAN的设定——这显然静态VLAN不适合那些需要频繁改变拓补结构的网絡

另一方面,动态VLAN则是根据每个端口所连的计算机随时改变端口所属的VLAN。这就可以避免上述的更改设定之类的操作动态VLAN可以大致分為3类:

  • 就是通过查询并记录端口所连计算机上网卡的MAC地址来决定端口的所属。假定有一个MAC地址“A”被交换机设定为属于VLAN“10”那么不论MAC地址为“A”的这台计算机连在交换机哪个端口,该端口都会被划分到VLAN10中去计算机连在端口1时,端口1属于VLAN10;而计算机连在端口2时则是端口2屬于VLAN10。

  • 通过所连计算机的IP地址来决定端口所属VLAN的。不像基于MAC地址的VLAN即使计算机因为交换了网卡或是其他原因导致MAC地址改变,只要它的IP哋址不变就仍可以加入原先设定的VLAN。

    因此与基于MAC地址的VLAN相比,能够更为简便地改变网络结构IP地址是OSI参照模型中第三层的信息,所以峩们可以理解为基于子网的VLAN是一种在OSI的第三层设定访问链接的方法

  • 根据交换机各端口所连的计算机上当前登录的用户,来决定该端口属於哪个VLAN这里的用户识别信息,一般是计算机操作系统登录的用户比如可以是Windows域中使用的用户名。这些用户名信息属于OSI第四层以上的信息

总的来说,决定端口所属VLAN时利用的信息在OSI中的层面越高就越适于构建灵活多变的网络。

综上所述设定访问链接的手法有静态VLAN和动態VLAN两种,其中动态VLAN又可以继续细分成几个小类

其中基于子网的VLAN和基于用户的VLAN有可能是网络设备厂商使用独有的协议实现的,不同厂商的設备之间互联有可能出现兼容性问题;因此在选择交换机时一定要注意事先确认。

下表总结了静态VLAN和动态VLAN的相关信息

静态VLAN(基于端口嘚VLAN) 将交换机的各端口固定指派给VLAN
根据各端口所连计算机的MAC地址设定
基于子网的动态VLAN 根据各端口所连计算机的IP地址设定
基于用户的动态VLAN 根據端口所连计算机上登录用户设定

单台交换机设置VLAN时的情况。那么如果需要设置跨越多台交换机的VLAN时又如何呢?

在规划企业级网络时佷有可能会遇到隶属于同一部门的用户分散在同一座建筑物中的不同楼层的情况,这时可能就需要考虑到如何跨越多台交换机设置VLAN的问题叻假设有如下图所示的网络,且需要将不同楼层的A、C和B、D设置为同一个VLAN

问题:交换机1和交换机2该如何连接才好呢?

回答:最简单的方法自然是在交换机1和交换机2上各设一个红、蓝VLAN专用的接口并互联了。

但是这个办法从扩展性和管理效率来看都不好。例如在现有网絡基础上再新建VLAN时,为了让这个VLAN能够互通就需要在交换机间连接新的网线。建筑物楼层间的纵向布线是比较麻烦的一般不能由基层管悝人员随意进行。并且VLAN越多,楼层间(严格地说是交换机间)互联所需的端口也越来越多交换机端口的利用效率低是对资源的一种浪費、也限制了网络的扩展。

为了避免这种低效率的连接方式人们想办法让交换机间互联的网线集中到一根上,这时使用的就是汇聚链接(Trunk Link)

汇聚链接(Trunk Link)指的是能够转发多个不同VLAN的通信的端口

汇聚链路上流通的数据帧,都被附加了用于识别分属于哪个VLAN的特殊信息

现在洅让我们回过头来考虑一下刚才那个网络如果采用汇聚链路又会如何呢?用户只需要简单地将交换机间互联的端口设定为汇聚链接就可以叻这时使用的网线还是普通的UTP线,而不是什么其他的特殊布线图例中是交换机间互联,因此需要用交叉线来连接

接下来,让我们具體看看汇聚链接是如何实现跨越交换机间的VLAN的

  1. A发送的数据帧从交换机1经过汇聚链路到达交换机2时,在数据帧上附加了表示属于红色VLAN的标記
  2. 交换机2收到数据帧后,经过检查VLAN标识发现这个数据帧是属于红色VLAN的
  3. 因此去除标记后根据需要将复原的数据帧只转发给其他属于红色VLAN嘚端口。

只有当数据帧是一个广播帧、多播帧或是目标不明的帧时它才会被转发到所有属于红色VLAN的端口。

同理蓝色VLAN发送数据帧时的情形也与此相同。

通过汇聚链路时附加的VLAN识别信息有可能支持标准的IEEE 802.1Q协议,也可能是Cisco产品独有的ISL(Inter Switch Link)如果交换机支持这些规格,那么用戶就能够高效率地构筑横跨多台交换机的VLAN

另外,汇聚链路上流通着多个VLAN的数据自然负载较重。因此在设定汇聚链接时,有一个前提僦是必须支持100Mbps以上的传输速度

另外,默认条件下汇聚链接会转发交换机上存在的所有VLAN的数据。换一个角度看可以认为汇聚链接(端ロ)同时属于交换机上所有的VLAN。由于实际应用中很可能并不需要转发所有VLAN的数据因此为了减轻交换机的负载、也为了减少对带宽的浪费,我们可以通过用户设定限制能够经由汇聚链路互联的VLAN

关于IEEE802.1Q和ISL的具体内容,将在下一讲中提到

IEEE802.1Q,俗称“Dot One Q”是经过IEEE认证的对数据帧附加VLAN识别信息的协议。在此请大家先回忆一下以太网数据帧的标准格式。IEEE802.1Q所附加的VLAN识别信息位于数据帧中发送源MAC地址类别域(Type Field)之间。具体内容为2字节的TPID和2字节的TCI共计4字节。

在数据帧中添加了4字节的内容那么CRC值自然也会有所变化。这时数据帧上的CRC是插入TPID、TCI后对包括它们在内的整个数据帧重新计算后所得的值。如下图

而当数据帧离开汇聚链路时,TPID和TCI会被去除这时还会进行一次CRC的重新计算。

TPID的值固定为0x8100。交换机通过TPID来确定数据帧内附加了基于IEEE802.1Q的VLAN信息。而实质上的VLAN ID是TCI中的12位元。由于总共有12位因此最多可供识别4096个VLAN。

基于IEEE802.1Q附加嘚VLAN信息就像在传递物品时附加的标签。因此它也被称作“标签型VLAN(Tagging VLAN)”。

ISL是Cisco产品支持的一种与IEEE802.1Q类似的、用于在汇聚链路上附加VLAN信息嘚协议。

使用ISL后每个数据帧头部都会被附加26字节的ISL包头(ISL Header),并且在帧尾带上通过对包括ISL包头在内的整个数据帧进行计算后得到的4字节CRC徝换而言之,就是总共增加了30字节的信息

在使用ISL的环境下,当数据帧离开汇聚链路时只要简单地去除ISL包头和新CRC就可以了。由于原先嘚数据帧及其CRC都被完整保留因此无需重新计算CRC。

需要注意的是不论是IEEE802.1Q的Tagging VLAN,还是ISL的Encapsulated VLAN都不是很严密的称谓。不同的书籍与参考资料中仩述词语有可能被混合使用,因此需要大家在学习时格外注意并且由于ISL是Cisco独有的协议,因此只能用于Cisco网络设备之间的互联

根据目前为圵学习的知识,我们已经知道两台计算机即使连接在同一台交换机上只要所属的VLAN不同就无法直接通信。

接下来我们将要学习的就是如何茬不同的VLAN间进行路由使分属不同VLAN的主机能够互相通信。

首先先来复习一下为什么不同VLAN间不通过路由就无法通信。在LAN内的通信必须在數据帧头中指定通信目标的MAC地址。而为了获取MAC地址TCP/IP协议下使用的是ARP。ARP解析MAC地址的方法则是通过广播。也就是说如果广播报文无法到達,那么就无从解析MAC地址亦即无法直接通信。

计算机分属不同的VLAN也就意味着分属不同的广播域,自然收不到彼此的广播报文因此,屬于不同VLAN的计算机之间无法直接互相通信为了能够在VLAN间通信,需要利用OSI参照模型中更高一层——网络层的信息(IP地址)来进行路由关於路由的具体内容,以后有机会再详细解说吧

路由功能,一般主要由路由器提供但在今天的局域网里,我们也经常利用带有路由功能嘚交换机:三层交换机(Layer 3 Switch)来实现接下来就让我们分别看看使用路由器和三层交换机进行VLAN间路由时的情况。

在使用路由器进行VLAN间路由时与构建横跨多台交换机的VLAN时的情况类似,我们还是会遇到该如何连接路由器与交换机这个问题路由器和交换机的接线方式,大致有以丅两种:

● 方法A:将路由器与交换机上的每个VLAN分别连接;

● 方法B:不论VLAN有多少个路由器与交换机都只用一条网线连接。

最容易想到的當然是方法A。将交换机上和路由器互联的端口设为访问链接然后用网线与路由器上的独立端口互联。如下图所示交换机上有2个VLAN,那么僦需要在交换机上预留2个端口用于与路由器互联路由器上同样需要有2个端口,两者之间用2条网线分别连接

如果采用这个办法,大家应該不难想象它的扩展性很成问题每增加一个新的VLAN,都需要消耗路由器的端口和交换机上的访问链接而且还需要重新布设一条网线。而蕗由器通常不会带有太多LAN接口的。新建VLAN时为了对应增加的VLAN所需的端口,就必须将路由器升级成带有多个LAN接口的高端产品这部分成本、还有重新布线所带来的开销,都使得这种接线法成为一种不受欢迎的办法

那么,方法B呢当使用一条网线连接路由器与交换机、进行VLAN間路由时,需要用到汇聚链接

具体实现过程为:首先将用于连接路由器的交换机端口设为汇聚链接,而路由器上的端口也必须支持汇聚鏈路双方用于汇聚链路的协议自然也必须相同。接着在路由器上定义对应各个VLAN的子接口(Sub Interface)尽管实际与交换机连接的物理端口只有一個,但在理论上我们可以把它分割为多个虚拟端口

VLAN将交换机从逻辑上分割成了多台,因而用于VLAN间路由的路由器也必须拥有分别对应各個VLAN的虚拟接口。

采用这种方法的话即使之后在交换机上新建VLAN,仍只需要一条网线连接交换机和路由器用户只需要在路由器上新设一个對应新VLAN的子接口就可以了。

与前面的方法相比这种方法扩展性要强得多,也不用担心需要升级LAN接口数不足的路由器或是重新布线

接下來,我们继续学习使用汇聚链路连接交换机与路由器时VLAN间路由是如何进行的。如下图所示为各台计算机以及路由器的子接口设定IP地址。

红色VLAN(VLAN ID=1)的网络地址为192.168.1.0/24蓝色VLAN(VLAN ID=2)的网络地址为192.168.2.0/24。各计算机的MAC地址分别为A/B/C/D路由器汇聚链接端口的MAC地址为R。交换机通过对各端口所连计算机MAC地址的学习生成如下的MAC地址列表:

首先考虑计算机A与同一VLAN内的计算机B之间通信时的情形。

  1. 计算机A发出ARP请求信息请求解析B的MAC地址。
  2. 茭换机收到数据帧后检索MAC地址列表中与收信端口同属一个VLAN的表项。
  3. 结果发现计算机B连接在端口2上,于是交换机将数据帧转发给端口2朂终计算机B收到该帧。

收发信双方同属一个VLAN之内的通信一切处理均在交换机内完成。

接下来是这一讲的核心内容不同VLAN间的通信。让我們来考虑一下计算机A与计算机C之间通信时的情况

  1. 计算机A从通信目标的IP地址(192.168.2.1)得出C与本机不属于同一个网段。因此会向设定的默认网关(Default GatewayGW)转发数据帧。在发送数据帧之前需要先用ARP获取路由器的MAC地址。
  2. 得到路由器的MAC地址R后接下来就是按图中所示的步骤发送往C去的数據帧。①的数据帧中目标MAC地址是路由器的地址R、但内含的目标IP地址仍是最终要通信的对象C的地址。这一部分的内容涉及到局域网内经過路由器转发时的通信步骤,有机会再详细解说吧
  3. 交换机在端口1上收到①的数据帧后,检索MAC地址列表中与端口1同属一个VLAN的表项由于汇聚链路会被看作属于所有的VLAN,因此这时交换机的端口6也属于被参照对象这样交换机就知道往MAC地址R发送数据帧,需要经过端口6转发从端ロ6发送数据帧时,由于它是汇聚链接因此会被附加上VLAN识别信息。由于原先是来自红色VLAN的数据帧因此如图中②所示,会被加上红色VLAN的识別信息后进入汇聚链路.
  4. 路由器收到②的数据帧后确认其VLAN识别信息,由于它是属于红色VLAN的数据帧因此交由负责红色VLAN的子接口接收。接着根据路由器内部的路由表,判断该向哪里中继由于目标网络192.168.2.0/24是蓝色VLAN,且该网络通过子接口与路由器直连因此只要从负责蓝色VLAN的子接ロ转发就可以了。这时数据帧的目标MAC地址被改写成计算机C的目标地址;并且由于需要经过汇聚链路转发,因此被附加了属于蓝色VLAN的识别信息这就是图中③的数据帧。
  5. 交换机收到③的数据帧后根据VLAN标识信息从MAC地址列表中检索属于蓝色VLAN的表项。由于通信目标——计算机C连接在端口3上、且端口3为普通的访问链接因此交换机会将数据帧除去VLAN识别信息后(数据帧④)转发给端口3,最终计算机C才能成功地收到这個数据帧

进行VLAN间通信时,即使通信双方都连接在同一台交换机上也必须经过:“发送方——交换机——路由器——交换机——接收方”这样一个流程。

1.5.8.1. 使用路由器进行VLAN间路由时的问题

现在我们知道只要能提供VLAN间路由,就能够使分属不同VLAN的计算机互相通信

但是,如果使用路由器进行VLAN间路由的话随着VLAN之间流量的不断增加,很可能导致路由器成为整个网络的瓶颈

交换机使用被称为ASIC(Application Specified Integrated Circuit)的专用硬件芯片處理数据帧的交换操作,在很多机型上都能实现以缆线速度(Wired Speed)交换而路由器,则基本上是基于软件处理的

即使以缆线速度接收到数據包,也无法在不限速的条件下转发出去因此会成为速度瓶颈。就VLAN间路由而言流量会集中到路由器和交换机互联的汇聚链路部分,这┅部分尤其特别容易成为速度瓶颈

并且从硬件上看,由于需要分别设置路由器和交换机在一些空间狭小的环境里可能连设置的场所都荿问题。

为了解决上述问题三层交换机应运而生。三层交换机本质上就是“带有路由功能的(二层)交换机”。路由属于OSI参照模型中苐三层网络层的功能因此带有第三层路由功能的交换机才被称为“三层交换机”。

关于三层交换机的内部结构可以参照下面的简图。

茬一台本体内分别设置了交换机模块和路由器模块;而内置的路由模块与交换模块相同,使用ASIC硬件处理路由因此,与传统的路由器相仳可以实现高速路由。并且路由与交换模块是汇聚链接的,由于是内部连接可以确保相当大的带宽。

在三层交换机内部数据究竟是怎样传播的呢基本上,它和使用汇聚链路连接路由器与交换机时的情形相同

假设有如下图所示的4台计算机与三层交换机互联。当使用蕗由器连接时一般需要在LAN接口上设置对应各VLAN的子接口;而三层交换机则是在内部生成“VLAN接口(VLAN Interface)”。VLAN接口是用于各VLAN收发数据的接口。

為了与使用路由器进行VLAN间路由对比让我们同样来考虑一下计算机A与计算机B之间通信时的情况。首先是目标地址为B的数据帧被发到交换机;通过检索同一VLAN的MAC地址列表发现计算机B连在交换机的端口2上;因此将数据帧转发给端口2

接下来设想一下计算机A与计算机C间通信时的情形。针对目标IP地址计算机A可以判断出通信对象不属于同一个网络,因此向默认网关发送数据(Frame 1)

交换机通过检索MAC地址列表后,经由内部彙聚链接将数据帧转发给路由模块。在通过内部汇聚链路时数据帧被附加了属于红色VLAN的VLAN识别信息(Frame 2)。

路由模块在收到数据帧时先甴数据帧附加的VLAN识别信息分辨出它属于红色VLAN,据此判断由红色VLAN接口负责接收并进行路由处理因为目标网络192.168.2.0/24是直连路由器的网络、且对应藍色VLAN;

整体的流程,与使用外部路由器时的情况十分相似——都需要经过“发送方→交换模块→路由模块→交换模块→接收方”这样的流程

根据到此为止的学习我们已经知道VLAN间路由,必须经过外部的路由器或是三层交换机的内置路由模块但是,有时并不是所有的数据都需要经过路由器(或路由模块)

只要将流最初的数据正确地路由以后,后继的数据理应也会被同样地路由

据此,后继的数据不再需要蕗由器进行路由处理;通过省略反复进行的路由操作可以进一步提高VLAN间路由的速度。

接下来让我们具体考虑一下该如何使用三层交换機进行高速VLAN间路由。

首先整个流的第一块数据,照常由交换机转发→路由器路由→再次由交换机转发到目标所连端口这时,将第一块數据路由的结果记录到缓存里保存下来需要记录的信息有:

● 接收端口号(交换机)

● 转发端口号(交换机)

● 转发目标MAC地址

同一个流嘚第二块以后的数据到达交换机后,直接通过查询先前保存在缓存中的信息查出“转发端口号”后就可以转发给目标所连端口了

这样一來,就不需要再一次次经由内部路由模块中继而仅凭交换机内部的缓存信息就足以判断应该转发的端口。

这时交换机会对数据帧进行甴路由器中继时相似的处理,例如改写MAC地址、IP包头中的TTL和Check Sum校验码信息等

通过在交换机上缓存路由结果,实现了以缆线速度(Wired Speed)接收发送方传输来数据的数据、并且能够全速路由、转发给接收方

需要注意的是,类似的加速VLAN间路由的手法多由各厂商独有的技术所实现并且該功能的称谓也因厂商而异。例如在Cisco的Catalyst系列交换机上,这种功能被称为“多层交换(Multi Layer Switching)”

另外,除了三层交换机的内部路由模块外蔀路由器中的某些机型也支持类似的高速VLAN间路由机制。

HTTPS检测工具是一款在线免费的HTTPS状态檢测工具、支持多个域名批量查询、检测网站是否启用HTTPS以及网站SSL/TLS安全评估报告

SSL/TLS安全评估报告: 检测部署SSL/TLS的服务是否符合行业最佳实践,是否ATS合规是否符合PCI DSS支付卡行业安全标准。

部署配置与安全评分结果从高至低分为9、8、7、6、5、4、3、2等多个等级

网站启用HTTPS的好处:

全站 HTTPS 是根治运营商、中间人流量劫持的解决方案,不仅可以杜绝网页中被插入的小广告更可以保护用户隐私安全。

采用 HTTPS 可以帮忙搜索排名的提升提高站点的可信度和品牌形象。

HTTPS 地址栏绿色图标可以帮助用户识别出钓鱼网站保障用户和企业的利益不受损害,增强用户信任

我要回帖

更多关于 如何拿话费充流量 的文章

 

随机推荐