龙桃子细节比万代好:网络中数据传输过程解析

来源:百度文库 编辑:九乡新闻网 时间:2024/04/27 05:52:53

网络中数据传输过程解析

比如有一个网络:
          
             
路由器A ======================= 路由器B
                |           INTERNET             |       
                |                                |
            
交换机A                          交换机
B
             |     |                           |     |
             |     |                           |     |
          PC-A    PC-B                       PC-C   PC-D

      1PC-APC-BPC-CPC-D都有一个MAC地址,路由器是不是也有一个MAC地址?
      2、假设我们使用两层交换机,交换机就可以不要MAC地址?使用三层交换机的话交换机就有一个MAC地址吗?
      3、假设我现在有一个数据包从PC-A发送到PC-C,请讲解一下数据转发的具体过程?
      4、在这个网络中,PC-APC-CMAC地址设置为相同的网络也能正常通信吗?
      5、网关的设置是怎么回事呢?


1.某些带有以太或快速以太接口的路由器在这两种接口里会带有MAC地址,也就是说在路由器局域网接口才会有MAC地址,
MAC的实质是一种数据封装的类型;路由器有些也有广域网接口,广域网接口就没有这样的局域网地址,但也有类似数据封装结构,
比如ppphdlc等。

2.不管是二层还是三层交换机,在每个交换机的交换接口都有一个MAC地址,但此MAC地址不会在数据转发时起作用,
我们通常所说的交换机通过MAC地址来完成数据交换是说交换机通过学习到下连的client的地址来完成数据转发服务。
二层交换机是说此交换机只处理数据包中的第二层封装信息;而三层交换机是说此交换机集成了路由器与二层交换机的功能,
可处理数据包中二层及三层信息。

3.数据包的发包路由过程是一个较为复杂的过程,要首先了解数据包的封装结构。pca要发包给pcc,如果pca没有知道pccip地址,
pca首先要发出一个dns的请求,路由器adns解析服务器会给pca回应pccip地址。这样pca关于数据包第三层的ip地址信息就全
了:源ip地址:pca,目的ip地址:pcc。下一步,pca要具体了解有关如何到达pcc,则还要了解到达pcc要经过的下一跳信息,
pca会发出一个arp的地址解析请求,路由器a会对pcaarp地址请求作出回应:要去往pcc可以发包到自己这儿处理,
然后回应路由器a的以太口MAC地址给pca,这样pca关于去往pcc的数据包的第二层信息也全了:源mac地址:pcamac地址,
目的mac地址:路由器的以太口mac地址。这样二三层信息收集完全,可以发包出去了。数据到达了交换机a,交换机a查看数据包的第二层
目的mac地址,是去往路由器a的,就把数据帧发到路由器a,路由器a收到此数据包,首先查看此数据包的第三层ip目的地址,如果在自己
路由表中有去往pcc的路由,说明这是一个可路由的数据包,然后路由器要进行一个所谓的线内重写的过程:首先更换此数据包的第二层
包头信息,因为路由器a去往pcc要经过一个广域网,广域网封装协议有很多,比如hdlcpppslipframerelay等,各种不同的封装
协议都有其自身的结构,是全然与局域网的mac封装不同,但起到的作用类似:就是发往目的地的具体下一跳信息。同时做完第二层和第三
层的数据包重校验,线内重写另一个主要工作是在第三层中的ttl值减一。这样把数据包从internet中发出去,到达对端有相反的处理过程。

4.pc-a pc-cmac设为相同不会影响正常通信,因为这两个主机所处的lan被广域网分割开来,通过上面发包的过程可了解不会有任何问题。

5.所谓网关,是说这样一种设备:如果主机要发包,就往这个设备发送。也就是说此设备要有路由功能或有去往外部网路的路径。
在实际网络里,网关一般由路由器或server充当。

网络各层次物理设备区别(总结)

2008年12月11日 星期四 11:09 A.M.

网络各层次物理设备区别(总结)

                         ——中继器,集线器,网桥,交换机等

1:首先这些设备均工作在不同的层次上,如下图:

2:物理层设备:

转发器或者中继器:工作在物理层,它是模拟设备,用于连接两根电缆段,在一段线路上衰减信号的被放大和修复还原后放到另一段线路上,中继器不关心帧,分组和包头这些概念,它只理解电压值。

集线器:工作物理层,集线器有许多条输入线路。它将这些输入线路连接起来,在任何一条线路上到达的帧均被发送到所有其它的线路上。如果有两个帧同时到达,将产生冲突,换句话说,整个集线器构成了一个冲突域(冲突域:在有集线器构成得局域网中,任意时刻只能有一个机器在发送数据,否则将产生冲突。)连接到统同一集线器上的所有线路必须运行在同样的速度上。集线器与中继器不同,它不会对信号进行放大,并且集线器中可以容纳多个线卡,每个线卡上有多个输入,初次以外两者的差别不大。

3:数据链路层设备

网桥:网桥工作在数据链层,用来连接两个或多个LAN,当一个帧到达时,网桥内部的软件从帧头中提取出目标主机的地址,然后在一张转发表中查找该地址,已确定该帧应该发送到哪里。对于以太网,该目标主机的地址是48位的MAC地址。同集线器一样,现代网桥也有线卡,每块线卡通常支持某种特定类型的4条或8条输入线路。注意:针对以太网的线卡不能处理令牌环的帧,以为他不知道从帧头中哪个地方找到目的地址。然而,一个网桥可以有多个线卡,每块线卡针对不同的网络类型和不同的速度。在一个网桥中,每个线路有它自己的冲突域,这与集线器不同。网桥同时具有存储转发功能。

交换机:工作数据链路层。和网桥类似,它们都基于帧地址进行路由。或者说可以认为交换机是一个多端口的网桥。主要区别在于:交换机常常被用来连接独立的计算机,而不是LAN。

因此,当图1中的主机A想要给主机B发送帧时,网桥拿到帧后,只是将它丢弃,相反,在图2中,交换机必须主动地将帧从主机A发送给主机B,因为没有其它的办法(路径)可以完成从A到B的帧转发工作。由于交换机的每个端口通常连接到一台计算机上,所以,交换机必须有足够的空间以便容纳比网桥更多的线卡数量,毕竟网桥的设计目标是连接LAN。同时每一块线卡必须提供缓冲区空间(即具有存储-转发功能),以便将在它的端口上达到的帧缓存起来。由于每一端口有它自己的冲突域,所以交换机永远不会由于冲突而丢失帧。然而,如果帧到达的速度超过了这些帧被重新转送出去的速度,那么交换机可能会用完缓冲区空间,从而不得不开始丢帧。

4:网络层设备

路由器:当一个分组进入网络层是,帧头和帧尾都已经被剥去。路由软件根据IP分组的头信息来选择一条输出线路。

5:传输网关

传输网关工作在传输层,它将两台使用了不同的面向连接传输协议的计算机连接起来。比如,j假设一台计算机使用了面向连接的TCP/IP协议,另一台使用了面向连接的ATM传输协议,现在他们需要通话,于是传输网关可以将分组从一个连接复制到另一个连接中,并且根据需要对分组重新格式化。

6:应用网关

应用网关工作在应用层,主要理解数据的格式和内容,并且将消息从一种格式转译为另一种格式,例如,电子邮件协议网关将Internet消息转译为移动电话的SMS消息。

一层设备:中继器(repeater),集线器(hub)

网络设备都是按照层次划分滴,每一层滴设备都会具有所在层滴功能和特点。所以,把设备分层记忆会很简单。下次别人再说哪个设备是第几层滴,你就能很快滴知道这个设备大概滴功能是什么了.但是,功能并不局限于这个设备所在层。比如,路由器上有ping,ping是一个应用层程序。那么就能说路由器是一个七层设备吗?并不是这样滴。这些只是辅助功能,主要功能还是集中在三层。一层设备,主要功能就是对信号进行放大和整形。我们可以认为这样滴设备就是一条线缆一样。那么只不过这条线缆具有信号滴放大和整形滴作用。

所有的设备共享同一根总线,也就是说,所有的数据都会发到这个总线上。假设左上的机器要发给下面这台机器一个数据。那么数据到了总线上会向两端传输,这样,所有串在总线上的设备都会收到这个数据。不过,只有下面滴机器会处理和相应这个数据。这就是说总线型网络上,只要有一个设备占用了总线,其余滴数据就没有办法传输了。那要是其他设备传输了数据会怎么样呢?这个时候就会和总线上正在传输滴数据冲突了,两个数据发生碰撞之后就会损坏了。

所有连在同一个总线上滴设备,组成滴区域叫做冲突域。所以,需要一种机制来避免这样的冲突,来提高数据滴正确率。网络中传输滴数据会包含目的IP地址和目的MAC地址。右上滴机器看到这些内容和自己滴IP以及MAC不同,便不会处理这些数据。在总线型网络中,避免冲突滴方式是一种叫做CSMA/CD滴东东。

补充一下:他们两个都同时发出了数据。还是会发生冲突。冲突了咋办?这个就是CD=冲突检测 所有连在集线器上滴设备都有可能发生冲突。而且这些设备只能以半双工滴方式工作。之所以不能以全双工模式工作,是因为总线型网络上滴机器木有办法双向传输。

Carrier Sense Multiple Access with Collision Detection(CSMA/CD)

以太网使用一种叫做带冲突检测的载波监听多路访问(CSMA/CD)技术进行通信.这是一种比较友好的会话方式.比如你有话要说,但是你很礼貌的先听听看有没有别的人在说话(carrier sense),如果有人在说话,你就等他把话说完,你才开始说;如果没人说话,你就开始说.但是假如有2 个人同时说话怎么办?假如有2 个人同时说话了,双方一旦听到同时有除自己以外的人在说话的话(collision detection),就停止继续说话,2 个人都随机等待一段时间,然后其中1 个人再开始继续说话,另外那个人等他说完再接着说。是不是这样就不会发生冲突了呢?也不是。因为如果两个PC,同时侦听网络,都没有数据传输,他们两个都同时发出了数据。还是会发生冲突。冲突了咋办?这个时候两个数据会回退,等待一个随机滴时间再次侦听网络。注意,不是一个一定滴时间。因为如果是一定滴时间,两个还会同时发送数据,还是会发生冲突。所以是等待一个随机滴时间。

二层设备:网桥(Bridge),交换机(switch)

先说说这两个设备滴主要区别。主要有三点区别:1.网桥是靠软件实现滴,交换机靠ASIC硬件实现。所以交换机滴转发效率要比网桥快很多。2.网桥最多支持16个端口,交换机理论上可以无限支持。3.网桥分成很多种类,而交换机只是实现其中滴一个功能,就是透明网桥。 二层设备对于一层设备来说,提升滴功能就是可以认识二层地址了(二层地址有很多种,现阶段理解为MAC地址就行了)。认识二层地址滴好处就是不会像集线器那样,从一个端口收到数据,会转发到所有端口。二层设备是可以学习端口上连接滴设备滴MAC地址。所以,数据会根据二层设备上学习到滴MAC地址信息进行数据转发。

正是因为有了MAC地址表,所以才充分避免了冲突,因为交换机通过目的MAC地址知道应该把这个数据转发到哪个端口。而不会像HUB一样,会转发到所有滴端口。所以,交换机是可以划分冲突域滴。因为冲突会导致网络传输效率降低。所以划分多个冲突域,减小冲突域范围是很有必要滴。
交换机每一个端口就是一个冲突域。是说接在交换机端口上滴设备有可能会在这个范围内冲突。但是绝对不会和交换机上其他端口滴设备发生冲突。


三层设备:三层交换机,路由器(Router )

还是先说这两个滴区别:1.三层交换机端口多于路由器。但是三层交换机只有快速以太口和吉比特以太口,不如路由器接口种类丰富。2.三层交换机滴路由功能是通过在二层交换机上增加一个路由模块来完成。只是一块ASIC卡。所以三层处理能力不如路由器(不是转发能力)。

在三层设备上,比二层设备更突出的一个功能就是能够隔离广播域。在一层和二层设备上,广播是会被发到所有滴端口,除了发出广播滴端口。这个功能是通过一个叫做路由表滴东东实现滴。这个类似于交换机里面滴MAC地址表。但是这里面放滴是IP地址信息。 路由器不像交换机,交换机不配置滴话也是可以正常使用滴。路由器是必须要配置滴,至少要给每一个接口上配置一个IP地址,路由器才能够正常滴工作。记住一点,路由器上每个接口滴IP地址不能够在同一个网段(不懂滴这里先记下,网段这个概念在讲IP地址之后就懂了)。 广播是不能够透过路由器滴接口从一端转发到另一端滴(严格来讲,这种说法是错误滴,不过现阶段讲错在哪就多了,所以暂且认为路由器可以隔离所有广播)。这样,我们就可以靠路由器来隔离广播域了。因为很多协议都是基于广播实现滴(比如ARP和DHCP等),所以,网络中广播多了也会影响网络滴性能。隔离广播域也是很必要滴。是接收处理,但不转发。因为在同一个网段滴广播,任何本网段内滴设备都必须处理.三层交换机接口分为两种,一个是switchport,一个是routed port。缺省情况下,所有滴都是switchport。switchport只能配置VLAN信息,trunk信息。不能配置IP地址。

先说什么是面向连接什么是无连接。面向连接滴意思就是说,在传输数据之前,会先在源和目的地之间建立一个逻辑滴连接信道。后面传输滴所有数据都会从这个建立滴逻辑连接上传输。无连接滴意思则是指会如图,A是源,E是目的。如果是面向连接滴传输,在传输之前会先协商起一个逻辑滴路径。比如走A-C-D-E这个路线。那么后续滴所有数据都会通过这个路线传输到目的地。如果是无连接滴传输,那么每个数据包都可以任意走任何路线。比如第一个数据包走A-B-E这条路,第二个有可能走A-E这条路线。 什么是可靠什么是不可靠呢?可靠就是指有确认机制,如果没有确认滴数据包,源会主动滴重发。这样,保证了数据包肯定到达了对端。不可靠就是没有这种确认机制。如果有传输滴错误,导致有些包没有到达。对端,则需要靠上层滴协议或者应用程序来解决重传滴问题。

TCP是面向连接可靠传输。所以,TCP传输是可靠性高,但是效率会比较低下。UDP是无连接不可靠传输,所以UDP有可能会有错误,但是效率会比较高.现在网络线路滴可靠性很高,不容易出错。所以UDP是一种对延迟要求很高滴应用很好滴选择。现在滴video和voice基本都是基于UDP协议滴。