1、网络世界的法律网络世界的法律!PCAPCBApplicationPresentationSessionTransportNetworkDatalinkPhysicalApplicationPresentationSessionTransportNetworkDatalinkPhysicalData网络设备传输数据的过程是按照OSI七层参考模型来运动的。ApplicationPresentationSessionTransportNetwork Data link Physical应用层应用层数据流层数据流层我们统称七层模型的上三层为应用层,下四层为数据流层。PPP FrameRelay HDL
2、C ETHERNETARPCableDIRVERICMPIPEIGRPIGMPTCPUDPOSPFPINGTraceBGPTelnetFTPSMTPApplication LayerTransport LayerNetwork LayerData Link LayerPhysical LayerDNSTFTP SNMP RIPApplicationPresentationSessionTransportNetwork Data link PhysicaldataTCP/UDP header SegmentIP header PacketLLC Sub layerMAC Sub layerFCS
3、LLCFCSMACFrame0 1 1 0 0 0 1 1 0 1 0 1Bit在发送数据的时候,就是一个封装数据的过程.Application layerPresentation layerSession layerTransport layerNetwork layer Data link Physical layerLLC Sub layerMAC Sub layer0 1 1 0 0 0 1 1 0 1 0 1dataFCSTCPIPLLCMACSegmentPacketFrameBit在接收数据的时候,就是一个解封装数据的过成.应用层应用层表示层表示层会话层会话层传输层传输层网络层网
4、络层数据链路层数据链路层物理层物理层1234567提供应用程序间通信提供应用程序间通信处理数据格式、数据加密等处理数据格式、数据加密等建立、维护和管理会话建立、维护和管理会话建立主机端到端连接建立主机端到端连接寻址和路由选择寻址和路由选择提供介质访问、链路管理等提供介质访问、链路管理等比特流传输比特流传输其他的网络拓扑在今后的课程里还要学习,我们在这里主要介绍一下Broadcast网络也就是以太网络。 以太网使用CSMA/CD (Carrier Sense and Multiple Access with Collision Detection).CSMA/CD意思是,所有的设备利用同一个媒介
5、通信,每一时刻只能传输一个设备的信息,但它们可以同时接收信息.如果两个设备试图在同一时刻传输,将发生传输冲突,检测到冲突后,两个设备都会等待一段随机的时间(很短)再进行传输. CSMA/CD听Packet当PCA要发一个数据包给PCD的时候,首先PCA要先听HUB的链路上是否有数据在跑,如果有那么PCA等待,如果没有那么PCA将数据包发出.这样的做法是由于HUB上的链路是共享的,所以采用了发数据包之前先进行冲突检测的方法,那么我们称为CSMA/CD.PC APC BPC CPC D空闲CSMA/CD听有数据在转发继续听HUB上的链路是共享的,所以如果HUB上有数据在转发,那么此时PCA需要等待
6、.CSMA/CD听Packet现在的情况是PCA和PCC都要发数据,但是两人刚才都检测到HUB上是空闲的.那么两人都发.结果发生了冲突.两人都同时启动BACK OFF动作.随机的生成一个秒数,再发数据包.如果再与其他PC发送的数据包冲突.那么再次BACK OFF,BACK OFF一共可进行15次.PC APC BPC CPC D空闲听Packet随机秒数随机秒数BACK OFFMAC地址是一个48位的地址,前24位是厂商号,后24位是厂商自定义的产品号。比如:Cisco的MAC都是:0000.0C 华为产品前3个字节是0 x00E0FC交换机的背板带宽是交换式的,不互相影响.PacketPac
7、ketPacketPacket1234四个冲突域,一个广播域. 定义与指定协议相关联的源和目标逻辑地址定义与指定协议相关联的源和目标逻辑地址 定义通过网络的路径定义通过网络的路径多链路连接多链路连接IP协议是TCP/IP协议族中最为核心的协议,所有TCP、UDP、ICMP及IGMP数据都以IP数据包格式传输。IP地址被我们称为网络逻辑地址,用来唯一的标示一台网络设备。IP地址与MAC地址的关系是,MAC地址被我们称为物理地址。是厂家出厂设置的地址一般不做更改,IP地址与MAC地址是通过ARP协议进行解析对应的。IP地址是32位无符号整数,例如1.1.1.1。我们可以把IP地址分为五类。Netw
8、orkHostHostHostNetwork NetworkHostHostNetwork Network NetworkHost8 bits8 bits8 bits8 bits1-126128-191240-255224-239192-223地址的第一个字节(十进制)1Class A:Bits:0NNNNNNNHostHostHost8 916 1724 2532Range (1-126)1Class B:Bits:10NNNNNNNetworkHostHost8 916 1724 2532Range (128-191)1Class C:Bits:110NNNNNNetworkNetwork
9、Host8 916 17242532Range (192-223)1Class D:Bits:1110MMMMMulticast Group Multicast Group Multicast Group8 916 17242532Range (224-239)1721600255255002552552550IPAddressDefaultSubnetMask8-bitSubnetMaskNetworkHostNetworkHostNetworkSubnetHost“/16” 表示子网掩码有表示子网掩码有16位位.“/24”表示子网掩码有表示子网掩码有24位位. 11111111 11111
10、11100000000000000004比特版本4比特IHL8比特服务类型16比特总长度16比特标识3比特标识13比特分段偏移8比特生存期TTL8比特协议16比特校验和32比特源地址32比特目的地址选项数据IP版本号(Version Number)-IP报头的前4比特标识了IP的运行版本(V4或者V6)。IP数据包的头位是版本域。因为讨论的是IPv4数据包,所以版本号为4。4的二进制表示是0100。4比特版本4比特IHLIHL(Internet头长度)域-她是以32比特字为单位的头的长度,标识IP报头的长度。8比特服务类型8比特的服务类型(TOS)域-设为0,因为没有特殊的TOS需求;这样,T
11、OS域的值就为00000000。用来指定该数据Packet的优先权,延迟,吞吐量和可靠性参数。16比特总长度总长度字段(Total Length Field)-这16比特字段包含IP Packet的总长度。4比特版本4比特IHL8比特服务类型16比特总长度16比特标识Packet标识符(Packet Identifier)-允许一个主机来决定最新到达的数据分段属于哪一个Packet.3比特标识数据片骗移量字段-指出这个数据片在原有数据包中的位置,如果原有数据包没有被分片.那么这个字段等于0.13比特分段偏移8比特生存期TTL生存时间(TTL,Time-To-Live)字段-在WAN中,IP P
12、acket不能永久漫游,限制了一个有限的TTL值。8比特的TTL字节由发送者确定,最大为255。Packet每经过一个站,这个值至少被递减1。递减到1以后,则确定该Packet是不可传送的。标志(Flags)-接下来的字段包括3个1比特标志,用来指出对Packet的分段是否允许以及在分段已经使用时,是否还允许分段。4比特版本4比特IHL8比特服务类型16比特总长度16比特标识3比特标识13比特分段偏移8比特生存期TTL协议标识符字段(Protocol Identifier Field)-这8比特字段标识了IP报头之后的协议,例如协议号为6就是TCP ,协议号为17就是UDP,协议号为89就是O
13、SPF,协议号为88就是EIGRP。8比特协议16比特校验和校验和(Checksum)-校验和字段是一个16比特的检错字段。4比特版本4比特IHL8比特服务类型16比特总长度16比特标识3比特标识13比特分段偏移8比特生存期TTL8比特协议16比特校验和32比特源地址32比特目的地址源IP地址(Source IP Address)-本字段为源端计算机的IP地址。目标IP地址(Destination IP Address)-本字段为目标计算机的IP地址。填充数据填充字段(Padding)-为确保IP报头总是32比特的整倍数,本字段填充进额外的0。1.1.1.02.2.2.01.1.1.12.2.
14、2.1PCAPCB1.1.1.21.1.1.32.2.2.2PCCPacketPCAPCAe0e0e1PCCPCAe1PCCPCCRoute Table1ARPMAC - IP2MAP二层地址 - IP2在路由的过程中,三层地址不变,二层地址随着下跳的改变而改变.ARP为IP地址到对应的硬件地址之间提供动态映射.我们之所以用动态这个词是因为这个过程是自动完成的.ARP为IP地址到对应的硬件地址之间提供动态映射.我们之所以用动态这个词是因为这个过程是自动完成的.点对点链路不使用ARP。当设置这些链路时,必须告知内核链路每一端的IP地址。需要10.0.0.2的MAC地址?IP:10.0.0.1/2
15、4MAC:00-E0-FC-00-00-11IP:10.0.0.2/24MAC:00-E0-FC-00-00-12ARP Request?ARP Reply10.0.0.2 对应的MAC:00-E0-FC-00-00-12我的IP地址是什么?无盘工作站RARP ServerRARP Request?RARP Reply你的IP地址是10.0.0.1通过上一个胶片的Debug信息我们可以看到另一个有趣的现象,就是主机或者路由器会来查找本地接口IP地址的MAC地址,我们称之为免费ARP。免费ARP有两个方面的好处:一、一个主机可以通过查找本地接口IP地址的MAC地址来确定网络中是否有设置了相同IP
16、地址的主机。二、如果更改了MAC地址或者更换了NIC,那么主机收到某个IP地址的ARP请求而且这个请求的IP地址已经在本地ARP缓存中,主机就要用ARP请求中的发送端(在这里也就是他自己)硬件地址对高速缓存中相应的内容进行更新。ARP高效运行的关键是由于每个主机上都有一个ARP高速缓存.这个高速缓存存放了最近Internet地址到硬件地址之间的映射记录.高速缓存中每一项的生存时间一般是20分钟,起始时间从被创建时开始算起.Cisco(config-if)#arp timeout ? Seconds如果ARP请求是从一个网络的主机发往另一个网络的主机,那么连接这两个网络的路由器就可以回答该请求,
17、这个过程称作委托ARP或ARP代理(Proxy ARP).这样可以欺骗发起ARP请求的发送端,使它误以为路由器就是目的主机,而事实上目的主机是在路由器的”另一边”.路由器的功能相当于目的主机的代理,把分组从其他主机转发给它.AB10.1.1.220.1.1.2 通过端口号区分上层应用通过端口号区分上层应用 建立端到端连接建立端到端连接(TCP连接连接) 提供面向连接提供面向连接(TCP)和非面向连接和非面向连接(UDP)传输层有两种协议:1、面向连接协议。2、面向非连接协议。面向连接协议的典型代表为TCP协议,面向非连接协议的典型代表为UDP协议。面向连接协议要求必须在数据传输之前先做好连接工
18、作,比如TCP的三次握手工作。ABPacket我要发送DataTCP协议将数据分装成数据段.表面上看应用可以转发大量的数据.然而TCP或任何传输层协议,必须开始把大量数据分成更易管理的数据块的过程,每个数据块称为”segment” 。Segment Segment Segment Segment分段处理中有一部分是对整个TCP报头字段的分段,这些字段中最重要的两个是序列号以及正在发送和接收分段数据的应用的源和目标端口号. 序列号端口号源端口号目标端口号Seq 1Seq 2Seq 3序列号标识从原始数据流中分割出的数据段的顺序,这使接收方能重建数据流,而不会把内容弄混乱。由于网络的原因致使我们第
19、一个发出的包却最后一个到,如果对方按照接收的顺序处理那么数据的内容可能将混乱。序列号由于要标示数据包的顺序所以必须是N+1累加的,但是这样可能会被黑客捕捉从而推测我们下一个数据包的序号进行伪装。所以我们第一个序列号是一个随即数,我们称之为ISN。Seq ISN+1Seq ISN+2Seq ISN+3网络里可以被路由的地址是IP地址而不是TCP的端口号,所以我们需要在Segment的上面再加一些信息-IP包头。我们管加了IP包头的Segment叫做Packet。源和目标机器的IP地址包含在IP分组的报头中,它们使路由器能够将IP分组转发到本地网以外的目标. IP信息SegmentPacket源I
20、P地址目的IP地址尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务,TCP提供一种面向连接的可靠的字节流服务。面向连接的意思是说:两个使用TCP的应用(一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接以保证数据传输的可靠性。这一过程与打电话相似,先拨号震铃,等待对方摘机说“喂”然后才说明是谁。在一个TCP连接中,仅有两方进行彼此通信,当然这个通讯也可以是双向的。先建立联系,再通话。先建立连接,再传数据。每个TCP段都包含源端和目的端的端口号,用于寻找发端和收端应用进程。这两个值加上IP首部中的源端IP首部中的源端IP地址和目的端IP地址唯
21、一确定一个TCP连接。代振文2651314俞国华3539292端口号:290110.1.1.1端口号:2310.1.1.10一个IP地址和一个端口号也称为一个插口Socket。Source port (16)Destination port (16)Sequence number (32)Headerlength (4)Acknowledgement number (32)Reserved (6)Code bits (6)Window (16)Checksum (16)Urgent (16)Options (0 or 32 if any)Data (varies)20BytesBit 0Bit
22、 15Bit 16Bit 31URG 紧急指针(urgent pointer)有效。URGACKPSHRSTSYNACK 确认序号有效。PSH 接收方应该尽快将这个报文段交给应用层。RST 重建连接。SYN 同步序号用来发起一个连接。FINFIN 发端完成发送任务。PPP FrameRelay HDLC ETHERNETARPCableDIRVERICMPIPEIGRPIGMPTCPUDPOSPFPINGTraceBGPTelnetFTPSMTPApplication LayerTransport LayerNetwork LayerData Link LayerPhysical LayerD
23、NSTFTP SNMP RIPTCP是一个面向连接的协议。无论哪一个方向另一方发送数据之前,都必须先在双方之间建立一条连接。TCP为应用层提供全双工服务。这意味数据能在两个方向上独立地进行传输,因此,连接的每一端必须保持每个方向上的传输数据序号。PacketSynchronizeSynchronizeAcknowledgeAcknowledgePC APC B1、请求端(通常称为客户)发送一个SYN段指明客户打算连接的服务器的端口,以及初始序号(ISN,在这个例子中为127974818)。这个SYN段为报文段1。2、服务器发回包含服务器的初始序号的SYN报文段进行确认。一个SYN将占用一个序号
24、。3、客户必须将确认序号设置为服务器的ISN加1以对服务器的SYN报文段进行确认(报文段3)。为在传输数据之前,先建立一个连接。TCP需要有一个三次握手的动作。这三个报文段完成连接的建立。这个过程也称为三次握手(three-way handshake)。发送第一个SYN的一端将执行主动打开(active open)。接收这个SYN并发回下一个SYN的另一端执行被动打开(passive open)。SYN 1279748181:1279748181(0)Mss 1024SYN 1355821893: 1355821893 (0)Ack 1279748181 Mss 1024Ack 1355821
25、893我们注意看到在同步序号后面有一个(0),意思是没有发送任何数据。在三次握手的过程中TCP是不发数据的。既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。所以TCP将对受到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送通常将推迟几分之一秒。序号是32bit的无符号数,序号到达2的32次方-1后又从0开始。在三次握手以后,开始传送数据。PSH 1:1025(1024) ACK 1,win 4096Ack 2049, win 4096PSH 3073:4
26、097(1024) ACK 1,win 4096PSH 1025:2049(1024) ACK 1,win 4096PSH 2049:3073(1024) ACK 1,win 4096Ack 3073, win 3072Ack 4097, win 4096PSH 4097:5121(1024) ACK 1,win 4096PSH 5121:6145(1024) ACK 1,win 4096PSH 6145:7169(1024) ACK 1,win 4096发送方用序号来代表所发送的数据,接收方用Ack来确认所接收的数据。在这里我们发现,接收方不需要对每一个数据进行确认。Ack是累积的,表示收方
27、已经正确收到了一直到确认号减一的所有字节。12345678910TCP窗口代表了接收方的接收数据能力。每次接收方接收了一批数据后,判断自己今后的接收能力。1、比如接收方通告一个为4的窗口给发送方。2、发送方立即发送大小为4字节的数据去添满接收方的窗口(当然发送方也可以不用这么积极)。3、接收方用Ack确认,表示已经收到发送方的数据。但窗口现在为0,因为刚才4字节的数据正在接收方的缓存里排队,现在接收方已经没有窗口了。PSH 1:1025(1024) ACK 1,win 4096Ack 2049, win 4096PSH 3073:4097(1024) ACK 1,win 4096PSH 102
28、5:2049(1024) ACK 1,win 4096PSH 2049:3073(1024) ACK 1,win 4096Ack 3073, win 3072Ack 4097, win 4096PSH 4097:5121(1024) ACK 1,win 4096PSH 5121:6145(1024) ACK 1,win 4096PSH 6145:7169(1024) ACK 1,win 4096让我们将上一个图例的窗口拿出来分析一下。接收方在三次握手时,通告了一个4096的窗口。1-10241024-2048 2049-3072 3073-4096 4097-5120三次握手通告4096字节窗
29、口1-3发送数据 1-3073字节报文4通告4096字节窗口123456789104确认2049字节51报文5确认1024字节报文5通告3072字节窗口报文6发送3073-4097字节报文7确认1024字节大家休息一会儿,接下来学习的是switching . A、共享带宽 B、交换带宽 C、MAC层过滤核心层汇聚层接入层IOS是和Unix 、windows、linux一样的操作系统,是目前使用最广泛的操作系统之一。IOS是一种特殊的用来交换数据报文的操作系统,他的结构很大部分用来致力于是报文交换更加迅速、更加高速。IOS被设计成比较小的、内嵌进cisco路由器的一种操作系统,为了追求速度,在错
30、误保护方面有所牺牲。Quidway设备系统是VRP,Cisco设备系统是IOS。目前Quidway系统的最高版本为3.0版,Cisco设备系统是12.0版。命令行模式用户模式:用户模式:对交换机和路由器的有限操作,例如:ping 、traceroute、 connect 、show 、 telnet 命令提示符:Cisco 特权模式:对交换机和路由器更深入的操作,有配置和监视权力,是进入其它配置模式的前提,一共16个级别 ,最高级15命令提示符: Cisco enable value (0-15) Cisco # 全局模式:对交换机和路由器进行各个协议的设置 ,对各个服务的设置 ,对路由器常规
31、的设置 ,配置各个应用条件 ,可以从Configure Mode进入Line Mode和Interface Mode ,可以配置路由器充当的角色。 命令提示符:Cisco #configure terminal Cisco (config)# (aaa, access-list, ) 接口模式:进入接口,对接口进行配置命令提示符:Cisco (config-if)# InterfaceCisco (config-line)# lineCisco(config-route)# router configureCisco(config-std-nacl)# Name stand of access
32、-listCisco(config-ext-nacl)# Name extended of access-list 配置用户名,密码 :Cisco用户名,密码有两种数据库,一种是本地数据库,一种是远程数据库,远程数据库需要有AAA软件的支持。Cisco可以基于用户设置16个权限级别 0-15,其中0级是User用户模式,1-15级是特权模式。如果从用户模式转到特权模式不特别指定级别的话,默认是15级。在没有设置密码的情况下,只有15级是不需要密码就可以进入的 加用户名,密码,权限,给密码加密,应用级别验证。Router(config)#username ktt privilege 15 pas
33、sword ciscoRouter(config)#service password-encryptionRouter(config)#enable secret level 0 15注意:虽然设置了15级的密码,但是如果不加级别验证,即使是0级的用户在其他级别没有加密码的情况下一样可以不需要验证的进入特权模式。应用在VTY和CONSOLE上Router(config)#line console 0Router(config-line)#login localRouter(config)#line vty 0 4Router(config-line)#login local(采用本地验证) 显
34、示登陆cisco#show line Tty Typ Tx/Rx A Modem Roty AccO AccI Uses Noise Overruns* 0 CTY - - - - - 2 0 0/0* 1 VTY - - - - - 2 0 0/0 2 VTY - - - - - 0 0 0/0 3 VTY - - - - - 0 0 0/0 4 VTY - - - - - 0 0 0/0 5 VTY - - - - - 0 0 0/0清除用户登陆cisco#clear line 1confirm OK设置主机名Hostname(config)#Hostname XXX单独无用户名的密码管理
35、:Hostname(config)#enable password xxxxHostname(config)#enable secret xxxx Write 命令:Cisco #write terminal 将配置显示在终端上.相当于Show running-config 命令(防火墙只能用Write) Router#write将配置保存到NVRAM里,相当于copy running-config startup-configCisco#write memory将内存中的配置写到NVRAM中.相当与Copy running-config startup-config命令。 show在一个楼里
36、有多台交换机.在一个园区网里有多个楼宇,所有楼宇都在一个广播域里.在同一个广播域里VLAN 30VLAN 20VLAN 10VLAN的优势:1.安全 2.分割广播域静态静态VLAN:这种方法也被称为“基于端口的成员身份”。动态动态VLAN:动态VLAN软件实现来建立的。IP VLAN: 基于IP网段的VLAN.协议协议VLAN:通过不同的网络协议来实现VLAN的,比如IP协议,IPX协议。E1E2Switch BPC APC DE1E2Switch AServerPC BPC CPC A VLAN 10PC C VLAN 10PC B VLAN 20PC D VLAN 20动态动态VLAN:是
37、基于MAC地址划分的.E1E2Switch BE1E2Switch APC APC BPC CPC D静态静态VLAN:是基于端口划分的.Access-link连接到这个端口上的设备完全不知道存在着一个VLAN。为了保证使接入设备不需要知道VLAN的存在,交换机负责在Frame被发送到末端设备之前将VLAN信息从Frame里拿掉。Trunk-link干道链路不属于某个具体的VLAN或者说Trunk Link属于所有VLAN。由于一个VLAN(如果是和IP子网挂联的VLAN)确定了一个广播域。不论一个网络由多少个交换机组成,也无论一个VLAN跨越了多少个交换机,按照VLAN的定义,一个VLAN就
38、确定了一个广播域。 Single VlanVlan 1Vlan 2Vlan 3Vlan 4Access-link一般情况下跑一个VLAN.Trunk-link可以承载多个VLAN.E1E2Switch APC APC BPC CPC DSwitch BE1E2Access-linkTrunk-linkE1E2Switch BE1E2Switch APC APC BPC CPC DSource Mac PC ADestination Mac PC CVLAN 10Source Mac PC ADestination Mac PC CSource Mac PC ADestination Mac P
39、C CEncapsulation Vlan IDDE Encapsulation Vlan IDISL-用于互连多台交换机的Cisco专有封装协议。IEEE802.1Q-一种IEEE标准方法。局域网仿真(局域网仿真(LANE)-用于通过异步传输模式(ATM)网络传输VLAN的一种IEEE标准方法。802.10-在标准802.10 Frame (光纤分布式数据接口FDDI)内传输VLAN信息的一种Cisco专有方法。VLAN信息被写在802.10 Frame的安全关联标识符(SAID)部分。这种方法通常被用来通过FDDI骨干网传输VLAN。802.1Q是内部封装,只加入了是内部封装,只加入了4个
40、字节,并且改变了原有数据帧的内容个字节,并且改变了原有数据帧的内容。802.1Q是所有厂商的标准,建议使用是所有厂商的标准,建议使用。ISL封装方式是封装方式是Cisco私有的封装方式,私有的封装方式,ISL是一个外部封装方式。有是一个外部封装方式。有26字节的字节的头和一个头和一个4字节的尾。这样总共是加入了字节的尾。这样总共是加入了30字节数,如果是一个不认识字节数,如果是一个不认识ISL的设的设备(非备(非Cisco厂商的设备),那么将认为这是一个巨帧。厂商的设备),那么将认为这是一个巨帧。为了保证同属于一个VLAN的所有主机都接收到这个广播报文,交换机必须按照如下原则进行转发数据包:1
41、发送给本交换机中同一个VLAN中的所有其他端口。2将这个数据包发送给本交换机的包含这个VLAN的所有Trunk link,以便让其他交换机上的同一个VLAN的端口也发送该数据包。E1E2E3E4E5E6VLAN 10VLAN 20BroadcastBroadcastBroadcastBroadcastTrunkBroadcastSpanning-treeSpanning-Tree是动态解决在冗余网络拓扑结构中出现环路问题的技术。那么为什么在网络中需要冗余链路,冗余链路是怎样产生路由环路的呢?网段网段 1路由器路由器 Y服务器服务器/主机主机 X我们看到在这个网络里可能会有单点故障出现。服务器服
42、务器/主机主机 X路由器路由器 Y我们看到在这个网络里冗余链路解决了单点故障的问题。冗余拓扑却带来的广播风暴是怎么样形成的。服务器服务器/主机主机 X路由器路由器 Y广播风暴未经受广播风暴经受广播风暴冗余拓扑却带来的重复帧问题。服务器服务器/主机主机 X路由器路由器 Y重复数据帧冗余拓扑带来的MAC地址表不稳定的问题。服务器服务器/主机主机 X路由器路由器 YMAC不稳MAC InterfaceX 11231212123MAC InterfaceX 1MAC InterfaceX 1MAC InterfaceX 1不,好像X在我的口2上。不,好像X在我的口2上。不,好像X在我的口2上。MAC不
43、稳MAC不稳生成树协议(STP)是为克服冗余网络中透明桥接的问题而创建的。STP的目的是通过协商一条到根网桥的无环路路径来避免和消除网络中的环路,它通过判定网络中存在环路的地方并动态阻断用余链路来实现这个目的。通过这种方式,它确保到每个目的地都有一个路径,所以永远不会产生桥接环路。如果某条链路失效了,因为根网桥知道还存在着冗于链路,它就会启用它先前关掉的这条冗余链路。这就是说有些端口需要被关闭或置为非转发模式。这些端口仍然知道网络的拓扑结构,并且,如果正在转发数据的链路失效了,它们就可以被启用了。生成树协议执行一种被称为生成树算法的(STA)的算法。基本思想:在网桥之间传递特殊的消息(配置消息
44、BPDU),包含足够的信息做以下工作:从网络中的所有网桥中,选出一个作为根网桥(Root)。服务器服务器/主机主机 X路由器路由器 Y1231212123Root路由器路由器 Y1231212123计算本网桥到根网桥的最短路径。对每个LAN,选出离根桥最近的那个网桥作为指定网桥,负责所在LAN上的数据转发。Root服务器服务器/主机主机 X路由器路由器 Y1231212123网桥选择一个根端口,该端口给出的路径是此网桥到根桥的最佳路径。不进行数据帧转发的端口被暂时阻断,这些端口将继续接收BPDU,但不发送用户数据。Root服务器服务器/主机主机 X建立无环路生成树协议的第一步是选举一个Root
45、 Bridge。Root Bridge是所有Switch用来决定网络中是否存在环路的参考点。1在开始启动的时候,Switch先假定自己是Root Bridge并将Bridge ID设置为Root ID。(假设自己是Root Bridge。)那么BPDU的消息内容为:Root ID:自己RootPath Cost:0Designated Bridge:自己2比较Bridge ID,先看优先级,优先级越低越好。如果优先级相同,再看MAC谁比较低。(比较Bridge ID,选举真正的Root Bridge。)2字节的优先级默认是32768。6字节MAC地址是交换机的MAC地址。3当选举了Root B
46、ridge后,每台Switch必须与Root Bridge建立关联。这是通过侦听从其他各个端口进入的BPDU来进行的。如果能在多个端口上接收到同一个BPDU就说明存在着到Root Bridge的Redundancy链路。(查看有没有到Root Bridge的Redundancy。)1212SW ASW BBPDUBPDUBPDURedundancy!选择那些端口是转发,那些端口是阻止。由三个条件来选择: (1)路径开销:路径开销:路径开销是从Switch到Root Bridge的方向叠加的。 路由器路由器 YCost Path=10Cost Path=10Cost Path=100Cost P
47、ath=10(2)网桥信息:网桥信息:如果各个端口接收到的BPDU的路径开销相同。那么Switch将查看Bridge ID以决定哪个端口应该进行转发。有最低Bridge ID的端口将被选举为转发端口,其他所有端口均被设置为阻断。路由器路由器 YCost Path=10Cost Path=10Cost Path=10Cost Path=10Bridge IDBridge ID(3)端口信息:端口信息:如果路径开销和网桥ID都相同,例:在平行链路这种情况下,Bridge将查看端口ID以决定哪个端口应该进行转发。ID最低的端口将进行转发,所有其他端口将被阻断。Port IDPort ID阻断(阻断(
48、Block)-为了防止Bridge产生Loop,所有端口开始都处于Block状态。如果交换机在其他端口收到了同一个BPDU那么交换机就认为有另一条链路可到达Root Bridge。如果生成树决定其他链路是到Root Bridge更好的路径,那么这个端口继续保持Block。在此其间不能接收和发送配置消息,也不能地址学习。如果本端口被交换机认为是最好的端口,那么进入到下面的状态。这个时间是20秒,为最大生存周期。倾听(倾听(Listening)-端口从Block状态转为Listening状态。它利用这段时间来Listening是否还有到Root Bridge的其他路径。在Listening状态中,
49、端口可以倾听到配置消息,但是不能转发或接收用户数据。也不允许端口将它所听到的任何信息放到地址表中。倾听状态实际上是用来说明端口已经准备好进行传输,但是它愿意再倾听一下以确认它不会产生Loop。Switch倾听的时间也是转发延迟(Forward delay ),这个时间为15秒。学习(学习(learning)-学习状态与倾听状态非常相似,除了端口可以将它所学到的信息添加地址表这一点之外,它依然不可以发送或接收用户数据。Switch学习的时间也是转发延迟(Forward delay),这个时间为15秒。转发(转发(Forward)-这个状态意味着端口可以发送和接收用户数据。BlockListeni
50、nglearningForwardMessage Age- 20秒秒Forward Delay- 30秒秒选择一个将数据包发往某个目标网段或主机的路径就是路由的过程。172.16.1.010.1.1.0用户产生的数据流比如文件,视频流,电子邮件等等应用被从一个逻辑的源转发到一个逻辑的目的地。用来表示逻辑源和逻辑目的地的是IP地址,因此我们认为路由的过程是将不同IP地址网段的IP包进行转发。那么实现这一功能的设备我们称之为路由器。路由器就像网络中的向导一样,当IP包来到路由器后有一个很重要的任务就是查看该路由器是否知道这个IP数据包要去的目的地。路由器采用自动学习,依靠路由协议学习或网络管理员手