签到天数: 2090 天 连续签到: 2 天 [LV.Master]伴坛终老IIII
|
楼主 |
发表于 2009-5-7 10:26
|
显示全部楼层
鸟哥私房菜——简易网络基础架构
鸟哥私房菜——简易网络基础架构
浅谈网络:
网络是什么?
网络是什么呢?简单的说,只要是两部以上的计算机,透过网络线或者是其它的网络媒体(例如无线网卡、专线、Cable缆线等等)连接在一起,以进行档案传输、讯息传递等等功能,那就形成一个『网络世界』啦!那么网络有没有大小之分呢?基本上,如果您的网络是在您的研究室内几部计算机,或者是大楼内的所有几百部计算机连接起来的,那么就可以视为一个小型的 LAN ( Local Area Network ),透过 LAN 的再延伸,例如整个城市或国家,就可以称做为 WAN ( Wide Area Network ) ,而这些无数个的 LAN 与 WAN 都连接在一起,那就是 Internet啦!您可以想象成, Internet 仅是将所有的 LAN 与 WAN 连接在一起的一个接口,所以,任何地方的计算机,只要连接上 Internet 之后,就没有什么太大的差异了,也就是说,在地球的另一端的计算机,与在您身旁的计算机,在 Internet 上面,事实上是差不多的!(只不过流量有点限制就是了 ^_^)!此外,需要注意的是, Internet 并没有专人在维护的,所以他是完全没有王法的地方,您可以在 Internet 上面进行任何的事情!哇!好象很可怕的样子!是这样没错! Internet 确实是『相当的可怕!』 ^_^,就是因为太可怕了,所以我们得要来聊一聊网络的基础呀!
网络的功能:
好了,对于所谓的网络有一点认识之后,要来谈一谈:网络有什么功能呢?说穿了,网络真的是很日常生活化的一项工具了!!例如您使用的计算机上 WWW 去浏览时,使用的就是网络功能了;您的公司内部的『网络上的芳邻』分享的档案、打印机,那就是网络功能之一;上网下载软件,使用的 FTP 也是网络功能之一!呵呵!够生活化了吧!我想,目前的生活中,很难有人不去奇摩雅虎看一看奇摩实时新闻的吧!?还有股票啦、电子信息邮件啦、上网玩网络联机游戏咯等等,哇!好多功能呦!这都是网络帮您达成的呦!当然啦!网络的功能来不止于此,您可以再更深入的研究呦!
网络的运作模式:
好啦,网络就是几部计算机连接在一起,并且可以互相进行资料与讯息及硬件周边分享的一个咚咚,他可以达到的功能相当的多,但是这里就牵涉出来了一个问题,那就是『网络是如何运作的呢?』,我们以目前最常见的 ADSL 拨接制的情况稍做说明好了。当您需要联机网络时,那么就必须要有:
1. 网络卡与网络线:在网络的世界里,其实真正工作的应该就是电子讯号啦!而这些电子讯号需要藉由硬件做为媒体来传输,这就是最底层的网络硬件啦!我们这里是以 ADSL 来进行说明的,当然还有所谓的光纤、无线网络等等。无论如何,要连接到 Internet 上面去,首先,就是必须要有『连接的媒体』这个媒体一般就是 RJ-45 的网络线与网络卡啦!当然啦,每一种媒体都有其规格与负载量,所以选择的时候就需要多加的小心啰!
2. 支持网络媒体的操作系统:有了网络媒体之后,但是没有能够跟媒体沟通的操作系统来操控硬件,那硬件当然没有办法工作啦!
3. 合法的网络地址:就跟门牌一样,没有门牌,那么您要如何到达目的地或者别人如何到达你家?此外,在网络地址的订定方面,还会定义出『路径』(route,路由),就是要如何到达目的地的地图啦!
4. 数据传输的方法:好了,现在硬件都没有问题了,接着下来就是需要了解『我的资料是怎么传送出去的?!』哇!好麻烦,还要理解资料『封包』的咚咚呀!呵呵!基本上,不用担心,目前的网络已经帮我们定义好很多协议了!所以我们只要了解他的一些基础原理即可!其它的就不需要太担心啦!!
OK!那么假设一个状态好了,如果你要浏览 奇摩新闻 的话,您是怎样取得上面网页的资料的呢?
1. 首先,您要取得奇摩雅虎上面的资料,就必须向对方传送一个要求,不然对方怎么知道您要的资料是什么呢?呵呵!那么这个要求的『封包』会先在你的系统上面被『打包』;
2. 『打包』完成之后,当然就是要开始来传送咯,传送当然是藉由网络卡来传送啰,所以资料这个时候会被送到网络卡上;
3. 而在网络卡将打包的封包传送出去之前,会先监听一下在这个传送的时间点上面,是否有其它的 PC 同时在传送,如果没有的话,封包才可以送出去,否则就无法传送,需要再等下一次的监听之后才能传送!
4. 好了,那么开始传送之后,就需要藉助于 route tables 的规则,才能经由一个一个的节点(nodes)来送达目的地!
5. 到达目的地之后,再来则是对方的主机将封包收下来,并经过操作系统的解开封包,得到您所要求的资料,然后在依据要求的内容来给予响应!而这个给予的响应又需要上面的这样一个流程了!这个时候就会变成对方将资料打包->网络卡->网络传送->....到达你的屏幕前面!
OSI 网络七层协议:
而依据上面的流程来看,我们就不难了解到 OSI ( Reference Model for Open System Interconnection ) 的一个模式(model),称为 OSI 七层协议的一个模式啰!这个七层协议可以简单的分为两大群组,一个用在网络的基础(硬件协议与网络地址)方面,主要规定了一堆硬件的相关协议;另一个则是使用者部分的协议,使用者可以利用这四个协议来设定自己的应用程序!分别可以这样看:
· 网络基础:实体层、资料连接层、网络层
· 使用者方面:传输、会谈、表现及应用层
我们可以简单的用下表来稍微了解一下这七层分别在干嘛?请特别留意,下表请由下往上看,亦即由实体层看到应用层呦!
OSI 七层协议的名称该层负责的工作
应用层 ·表现层是将资料转换成 PC 的资料格式,而应用层则是跟应用程序有关的转换了!例如您的浏览器若只认识 BMP 的图档,那么在应用层就会将来自 JPG 或 GIF 的档案转成 BMP 啰!
表现层 ·当接受了会谈层传送来的资料之后,当然,我们必须要针对各个不同的资料与字符进行译码与转换的工作!例如 ASCII 与 EDCDIC 之转换,及资料的加密与与压缩等等功能!
会谈层 · 资料是藉由传送层传送来的,而这一层则是将来自传送层传来的资料进行响应的工作!举个例子来说:假设 client 端为节点 A 而 Server 端为节点 B。
1. 当节点 A 要对 B 要求建立联机时,A 会先发出『联机请求』的讯息,该讯息上面带有 SYN 的符号;
2. 节点 B 收到讯息之后,如果确定接受 A 的联机要求,那么就会响应一个『确认请求』的讯息给 A ,该讯息上面则带有 SYN/ACK 符号;
3. 然后节点 A 再度响应给 B 一个『确认联机』的讯息,带有 ACK 的符号,这个时候就进入了资料传送的阶段了!
4. 当节点 A 资料传送完毕之后, A 会发送一个『终止联机』的讯息,则在得到 B 响应的『确认终止』讯息之后,就结束了该次联机!
· 上面即是有名的『三向交握, Three-Way Handshack』的工作原理啦!那就是在这一层里面达成的哩!所以我们可以说,在会谈层里面可以提供稳定的可靠的联机渠道!
传送层 · 我们在底下的网络功能三层协议之中,知道资料传送是以封包 ( packet )来传递的,而打包的工作就是在这一层里面完成的啦!在这一层里面,最常见到的协议就是 TCP 封包啦!他可以记录目标及来源的 port 与 IP ,让资料封包可以顺利的藉由底下的网络层来达到传送的目的!
· 所以,在这一层里面,主要负责的工作就是『由上面来的资料需要打包,由下面来的封包则是拆封』咯!而且他也会依据不同的协议( ftp, http, smtp... )在同一地址上面来进行追踪与分析呢!
网络层 · 在真实的世界里面,我们在寄出邮件的时候,需要知道的是『我们的门牌及对方的门牌』对吧!?那么在网络的世界里,我们的资料封包记录的来源与目的『地址』 ( 目前最流行的 IPv4 这种 IP 的规定 ),就是在这一层当中定义出来的!
· 此外,不要忘记了,资料要能够流通,还得需要藉由『路途』来决定,在网络的世界里面,就是我们的 route table 啰!这东西很重要!没有他的话,资料就送不出去啰~
资料连接层 · 我们的资料要透过实体层的网络卡及网络媒体(如网络线)进行传输的时候,需要将资料打包(打包成为 packet, 打包的步骤是在传送层里面完成的 ),那么一个封包的大小与格式及所含的内容就在这一层当中规定!
· 通常一个打包的资料封包是不可以太大的(所以才会有规定呀!)这是因为要避免某部主机一直占着网络媒体不放的缘故!所以如果你的档案很大时,那么该档案就会被分成很多的打包后的资料封包来传送呦!
· 再来,如果发生了同一个传送时间点上面有两个或以上的主机同时提出传送的需求时,那么该次传送将会失败( collision ),此时,该封包再等待下一次传送的时间间隔也在这一层内规定!
物理层 · 前面说过了,真的在进行网络工作的其实是电子讯号及传递电子讯号的硬设备。而包括各个网络媒体之定义啦、还有网络的连接型态啦!都是在这个层级当中规定的!例如我们的 ethernet 网络卡还有 RJ-45 网络线等等!
· 当然啦,如果你有兴趣想要发展网络媒体硬件的话,那么你的硬件就需要符合这个层级的规定啦!不然做出来的硬件可就无法与其它的规格品沟通啰!
请特别留意, OSI 仅定义出大略的模式而已,更详细的定义则需要再参考各项层级当中的规定!!例如网络层在目前最流行的是 IPv4 的协议,但是未来的 IPv6 协议也可以适用呦!
所以,每次进行网络工作的时候,你的资料就会由上(应用层)而下(实体层)的进行数据的打包、卷标与传送,而到达目的地的时候,你的资料就会被由下(实体层)而上(应用层)的解开与运用啦!用邮局的邮件传送来解说一下好了:你要寄信的时候是怎样寄出去的呢?
1. 将你所想要寄出的资料进行打包进入资料袋的工作:这里面包含了你所想要做的工作的判断,包括是否需要将你的文件资料进行加密呀?等等的(这些包含了应用层、表现层与对谈层);
2. 接着下来,你必须要在资料袋上面填写你的地址与对方的地址,并且还要注明收信者呦(这部份就属于传送层的阶段了);
3. 然后你将这封信放入邮筒里面去,等待邮差车来运载(这部份可以想象成网络层);
4. 邮差来收了这封信之后,会先载运到地区的大型邮件集散地,并依据信封上面的地址进行包裹的分类,以进行下一步的传递工作;
5. 然后分类之后的大型货柜或包裹,经过空运或海运或者是货运进行传输(有点像在 Internet 上面呦!),送到对方的大型邮件集散地;
6. 对方的大型邮件集散地将货柜打开之后,依据各包裹的地址进行分类,
7. 由邮差将分类过后的信件运载到正确的地址去;
8. 收信人收到该信件之后,打开包裹,得到资料之后,再进行进一步的响应!!
因此,我们可以这样看,如果您的网络要能够运作的话,那么就需要底下的几件东西:
1. 网络线:这可有的选择的了!不同等级的网络线能够进行的最大传输量与能支持的网络布线类型并不一样,所以要仔细的给他选择一下呦!目前的主流是以 RJ-45 的 Cat5 等级网络线为主体!
2. 网络卡:网络卡的学问是很大,不过我们这种小站,嗯!普通一点的 10/100 网卡即可啦!
3. 核心支持的驱动程序:还记得在核心编译里面提到的吧!对了,除非你的操作系统能够跟你的硬件沟通,否则永远都是个『屁!』
4. 合法的 IP :对啦!网络世界的『门牌』啦!必须要是『合法的』呦!那么什么是『私有的?』后面继续会提到的啦!
5. 正确的 route table :要让各家『门牌』可以正确的显示出来,就需要『路径图』啦!好让我们的资料封包可以『按图索骥』呀!呵呵!这个时候, route table 可是不可或缺的喔!
好了,底下我们先以一个实际的网络布线情况来加以说明上面的理论啰!然后在一个一个的拆开来进行说明啦!
基础网络布线模式:
谈完了一些基本的观念之后,接着下来当然就是实作的部分啰!首先,要让网络能通,自然就需要将所有的计算机以『网络的联机媒体』连接起来,这里指的媒体就是『网络线、集线器或交换器( Hub 或 Switch )、网络卡』等等的硬件配备啦!当然啦,由于选择的媒体不同,布线情况也会有所差异!这里 VBird 以目前最常见于一般小型企业或家庭 LAN 里面的布线『星形联机』来进行说明。这种架构基本上就是以一个 Hub 或者是 Switch 为中心,进而将所有的计算机连接起来,以提供各个计算机的网络功能!这种架构的最大优点在于除错较容易!我们底下列出一个很简单的家庭星形架构的联机:
基本组件:
· 工作站与服务器( workstation, server ):简单的来说,上面的 Windows PC1, Windows PC2, Linux PC3 这个没有对外开放网络服务的机器就可以称为 工作站( workstation ) 啦!而上面的 Linux之Proxy,NAT服务器由于对外提供网络服务,可以允许客户端 ( Client ) 连接上来,就称为 服务器( Server ) 啦!而 host 指的是一部计算机啦!不论是上面的 workstation 或 server 的哪一部,都是 host 说!
· 节点:那么 node 是什么呢?就是节点啦,在网络媒体上面的每一个 host (主机) 都可以看做一个 node 啰!例如上面的图标当中, 集线器、 Linux 服务器、调制解调器、ISP大型主机.... 都是一个『节点』,因为我们的资料封包都是会经过该装置才一个一个的传送出去!
基本架构说明:
简单的说,『网络就是一群通过一定形式连接起来的计算机』!
· LAN:一个网络可以由两台计算机组成,也可以拥有在同一大楼里面的上千台计算机和使用者。我们通常指这样的网络为局域网络 ( LAN、Local Area Network ),如同上面的图标,我们可以简单的认定在调制解调器以内( 即左边 )的 PC1, PC2, PC3, Linux 主机等设备即为 我们的 LAN 的部分了。因为我们最常使用的还是LAN,( 即使我们从家中连上 Internet,其实也是先连上 ISP 的 LAN ),所以这里我们主要讨论的还是以LAN为主。
· WAN:由 LAN 再延伸出去更大的范围,比如整个城市甚至整个国家,这样的网络我们称为广域网 (WAN、Wide Area Network ),所以,简单的说,很多的这样的架构的 LAN 凑在一起,就称为广域网络啦!
· Internet:就如同上面提到的,Internet 是将所有 WAN 与 LAN 连结起来的一个接口而已!由于没有专人维护,所以说, Internet 是一个最没有王法的地方了,你可以在 Internet 上面联机到任何地方去或进行任何事情!
· Intranet:最早出现的名词是 Internet,然后人们将 Internet 的概念和技巧引入到内部的私人网络,可以是独立的一个 LAN 也可以是专属的 WAN ,于是就称为 Intranet 了。它们之间的最大分别是:开放性。Internet 是开放的,不属于任何人,只要能连接得到您就属于其中一员,也就能获得上面开放的资源。相对而言,Intranet 则是专属的、非开放的,它往往存在于于私有网络之上,只是其结构和服务方式和设计都参考 Internet 的模式而已。 所以,简单的说,我们那个小小的 LAN 也可以视作是一个小型的 Intranet 呢!
· Extranet:Extranet 算得上是针对 Intranet 而延伸出来的概念。既然 Intranet 是指内网络部而言,那么 Extranet 则指外部的网络了。Extranet 通常是企业和 Internet 连接以向公共提供服务的网络。不过﹐这并非是单纯根据物理或逻辑位置来定义,主要是以连接的形式和功能来区分。例如某个外部网络,如果单纯的透过网络来连接我们的 Extranet 或 Intranet ,那它只是一个毫不相关的外部个体而已。但是,如果我们用 VPN 或其它信任形式将对方连接起来,那么对方也可以属于 Extranet 或 Internet 的部份。
关于 Internet/Intranet/Extranet 的观念,我们再引用 ZMAN 兄的话:『举例来说,假设我的公司有台北台中高雄上海等分公司 ,将这些公司连在一起然后属于我公司内部使用的网络,就叫 INTRANET !我的观念是不一定非用INTERNET(VPN)连用X.25或FRAME RELAY或专线应该都算在内,重点在于属于我公司内部使用的网络服务的对象是公司内部员工,如果我的上游供货商或下游协力厂商甚至是客户需要进来我的INTRANET存取资料,联机的方式当然很多(拨接,专线,INTERNET) ,认证及安全性也很重要 ,这样子的网络我们叫它EXTRANET ,重点在于服务特定外部对象进来INTRANET ,而INTERNET的服务对象就是无限定的,譬如说你无法预估谁会来看你的网站或寄MAIL给你 』
联机方向:
那么现在来想一想,我们是怎样由内部的 Intranet 连上 Internet 的呢?!如同上面的图标一般,如果我们目前在 Linux PC3 这部工作站上面,那么我们的资料怎样经由网络传送出去呢?基本上,需要有这些步骤才行:
1. Linux 核心必须有支持网络卡:
由于 linux 系统本身就有相当强大的网络支持度,所以我们上面提到的 OSI 模式上面使用者功能的四层在这里都不成问题!接着下来我们应该要探讨的就是『硬件』部分了。还记得我们在 编译核心 的时候有提到,真正在进行工作的是什么吗?!没错!就是『硬件』!而要让硬件正确的工作时,就需要核心的支持啦!因此,在一个打包好的资料封包想要进行网络传输时,最重要的工作就是让你的核心支持网络卡啦!
如果你的网络卡预设并没有被核心支持,那么就必须要编译网络卡的驱动程序,并且在 /etc/modules.conf 写入驱动程序的模块,这样才能在一开机的时候被驱动呢!好了!那么我们的操作系统怎么知道网络卡这个硬件呢?嘿嘿!这就需要所谓的 Media Access Control ( MAC ) 这个东西啦!基本上,每一块网络卡都有独一无二的自己的网络地址,那个东西跟我们常讲的 IP ( 软件地址 )不一样呢!那称为 Hareware Address (硬件地址),是由 六组16进位的数字组成的!例如我家里的网络卡地址为:『00:50:FC:22:9C:57』,这个硬件地址是在网络卡出厂的时候就已经被焊死在网络卡上面了!你没有办法修改的!这个东西在 Switch 及 DHCP 的时候很有用呢!你可以想象一下,这个东西就有点像是门牌号码啦!
2. 网络卡必须具有合法的 IP ( 软件地址, software address ):
再来,由于我们目前的网络基础是由 IP ( Internet Protocol )进行沟通的( 由于这个 IP 是经由操作系统的软件给的,所以又称为 软件地址( software address ) ,跟刚刚上面提到的硬件地址并不相同,请特别留意!),什么是 IP 呢?就是由四组 8 bits 的数字组成的,例如 tw.yahoo.com 的 IP 地址为:202.1.237.21,这就是所谓的 IP 啦!那么还有所谓的保留 IP (或称为私有 IP ) ,这个是原先在规划 IP 的规则的时候就先预留的 IP 啰!这些 IP 并不能直接跟外界之 Internet 进行沟通!最常使用的就是 192.168.0.1 ~ 192.168.0.255 这一个 C Class 的网段啰!好了!既然要沟通的话,那么自然就有所谓的 network 网段内啰(我们常提到的『同一个网段』的概念)!那个 192.168.0 就是 network ,由于是 C class 的关系,( 注意,其 netmask 为 255.255.255.0 ),而起始段为 192.168.0.0 到最末段为 192.168.0.255 ,而这个最后一个末段的 IP 就称为 broadcast !这四个东西: IP, network, broadcast, netmask 在规划一个网络卡的时候是相当重要的参数!千万不能设定错误呢!
3. 资料封包打包送出( TCP ):
好了,也有了 合法 IP 地址之后,那么我们的资料就已经可以定位了,这个时候,当你要将你的资料传出去的时候,你的资料就需要经过打包,所以我们就会称为是『资料封包』,那么这个传输你的资料封包的协议我们称为 Transmission Control Protocol ( TCP ) 啰!这个 TCP 的内容除了你的资料之外,最重要的就是纪录了这个资料的来源 IP 与端口口 ( source, port ) 还有目的地的 IP 与 埠口 ( destination, port ),这样我们的资料就可以去寻找 IP 给他丢出去啰!
4. 经过节点、 Router 或 Gateway 主机:
好了,由于我们是经由 Hub/Switch 进行连接的,所以我们的资料一定会经过这个节点才会传送出去!这个时候不禁要想一想, Hub 好还是 Switch 好?这两者有什么不同呢?其实最大的不同来自于『共享网络媒体』与『网络媒体对应』的架构上面!这点我们在后面会再提及。
还有,当我们的 TCP 封包已经打包好了准备送出的时候,网络怎么知道如何传送这个资料封包呢?其实,就像我们去到陌生的国家需要有『地图』才能够『按图索骥』一般!在网络的世界里,必须要藉由 route table (路由表) 来取得 gateway 或 router 的地址,进而将资料传送到 router 上面去啦,其它的工作就是 router 那边的事情啰!而 router 接收了封包之后,就会再藉由 router 自己的 route table 来判断下一个该去的 router 主机~~一直重复这个动作,最后就可以到达目的地啦!( 请注意,如果两部互相传输的计算机是在同一个网域之内,由于同一个网域的主机均可以直接透过监听与沟通的动作来达到数据传输的目的,所以主机可以直接与主机相互沟通,而不需要 router 啰!当然你也可以想成你的主机就是你的 router 啦! ^_^ )
5. 到达目的地:
好了,藉由这么多的节点的传送,我们的资料封包由于 TCP 里头的目的地 IP 的规定,所以找到了正确的主机啰!这个时候这个主机就会将 TCP 封包解开,并且将资料读取出来!嘿嘿!完成传送啰!
所以,基本上我们在传送一个资料的时候,他的机制是挺复杂的,不过也可以想得很简单!就是:
1. 操作系统先依据软件给的 IP 来将资料打包成为待传送的封包,例如 TCP 封包,上面并记录了来源与目的的 IP 与 port;
2. 根据封包上面的目的地 IP 资料,并经由 本机上面的 route table 来取得下一个 router 的信息( 若在同一网域内,则 router 可视为本机的网络卡 ),然后将资料送到 router 上面去;
3. 重复 router 的行为,最后送到目的地端的 PC,而对方主机接收你的 TCP 封包!
基本上就是这样,底下我们分别来谈一谈,那么上面这些基础步骤所需要注意的地方为何,其中最重要的就是 IP 的概念!这点请特别留意呢!
网络媒体的运作方式:
开始来谈一谈网络的运作方式吧!底下我们以基本的 Bus (直线型总线) 联机模式来进行说明,如下面图标所示,虽然一般家庭网络最常见的联机模式为星形模式,不过基本原理上面还是与 Bus 布线模式相同的!而由于 Bus 模式较容易记忆与说明,所以我们底下选用比较好理解的 Bus 来进行说明吧!
网络媒体:
先来谈一下什么是『网络媒体』,说穿了,最基础的网络媒体就是『网络线』啰,因为我们都是透过网络线来进行电子讯号的交流的嘛 ( 再次请您留意,这里是以网络线为例,当然网络媒体还有相当多的样式的!),好了,请注意的是,当所有的计算机要进行资料传递的时候,就是需要使用到这个所谓的网络媒体,而由于所有的计算机都连接在这个网络媒体上面,您可以将这个 Bus 的网络线当成是一个『共享媒体』啰!并且,这个共享媒体的传输限制为『单一时间点上面,只能有一部机器使用这个共享媒体』。
什么是物理广播(physical broadcast):
好了,我们已经知道讯号是藉由网络媒体来进行传递的,而这个媒体在单一时间点上面仅能让一个机器使用!(1)那么各计算机怎么知道该时间点上面有没有其它的机器在使用呢?(2)还有,如果 PC1 与 PC2 要相互沟通的话,他们的讯号是怎样传输的,也就是说, PC1 怎么知道该讯号是要送到 PC2 呢?(3)此外,如果同一个时间里面有两部计算机以上同时使用这个媒体,会产生什么情况?底下我们就来谈一谈啰:
· 由于这个媒体 ( 就是网络线呦! ) 每个时间点上面仅能让一部机器使用 ( 这个时间可能是几千到几万分之一秒,很短的啦!),所以,为了确认当时在这个媒体上面没有其它的机器在使用,因此 PC1 会先发送一个信号到这个媒体上面去,假设当时 PC2 ~ PC5 都没有要使用这个媒体,那么 PC1 在知道没有人使用之后,就可以来顺利的使用网络媒体传送资料,这就是所谓最底层的『物理广播』了;
· 再来,如果 PC1 与 PC 3 同时都想要使用网络媒体呢?呵呵!这个时候,就要看是谁先传送出广播信息的,当然是先抢先赢,例如当 PC1 比 PC3 早送出物理广播信息,那么 PC3 就会先停顿,等 PC1 该次工作完毕之后,才会发送广播信息了!这个地方就要再次的强调了!由于先抢先赢,那么如果 PC1 的封包太大的时候,那其它的 PC 岂不是永远无法使用网络媒体来传输资料啰?因此,才会在 OSI 的资料连接层里面定义每个封包的大小及格式呀,如此一来,媒体的使用权才会比较平均一些啦!
· 上面的情况都还可以接受,但是如果万一真的不幸发生了 PC1 与 PC3 同时进行物理广播信息呢?那也不用太担心,因为既然这次发生了同时广播的状态,那么这两部机器均将不会进行资料传送,会等待一段时间之后才再次广播!而在等待的时间上面,是『在一段时间里面随机取一个时间点』来再次广播,由于是随机取样的,因此应该不太容易再造成同时进行物理广播的现象。万一真的不幸又同时物理广播,那么又会等待下一次....依序下去,好象超过 16 次以后,如果还真的很不幸(因为机率真的太低了)再次同时进行物理广播,那么就抱歉啦!您的网络媒体将瘫痪掉!不过也别担心,重新 reset 就好啦!
· OK!那么有没有同时发送封包的状况?当然有啦!现在你假设 PC1 到 PC5 的距离是很远(假设 100m 好了),那么当 PC1 与 PC5 发送出物理广播,提醒大家说要传送信息的时候,由于 PC1 与 PC5 的距离太远了,因此响应的时间比较长,那么这个时候可能就会造成误判,认为当时媒体上面没有任何的机器在传送资料,造成 PC1 与 PC5 同时传送出资料在媒体上面,这个时候就会发生所谓的『封包碰撞, collision』的情况了!因为网络媒体上面单一时间内仅能允许一个机器使用的嘛!封包碰撞可能会造成资料的损毁现象呢!比较麻烦啦!而为了避免封包碰撞的问题,所以目前网络上面都会使用一种称为 CSMS/CD ( Carire Sense Multiple-Access / Collision Detect ) 的技术来避免因封包碰撞造成资料损毁的问题!不过,由于选择的媒体不同,所以还是很有可能会造成碰撞的啦!
· 好了,那么假设 PC1 也经过物理广播了,也顺利的将封包丢出来到媒体上面传送了,那么他怎么知道资料要丢到 PC2 上面去呢?这就需要藉由 MAC 与 ARP 等等的咚咚来帮助达成了!ARP 我们等一下再提,而 MAC 刚刚已经提过了,就是网络卡的硬件地址,由于网络卡出厂的时候就有所谓的硬件地址,因此,只要硬件地址与软件地址能够相互配合,让封包可以知道要传送到哪一个硬件地址上面去,喝!那么封包就可以成功的送到 PC2 上头去啰!
软件地址到硬件地址
好了,知道了网络媒体的定义,也知道网络媒体的使用方式了,那么再来自然就要提到网络世界里面常常提到的 IP 也就是软件地址这个玩意儿了!软件地址是我们使用软件来给予的一个定位的咚咚,而这个所谓的 IP 是在 OSI 的第三层,也就是网络层里面的定义。而我们也知道在网络媒体上面资料的传递主要还会查看所谓的 MAC 这个硬件地址,好啦!那么软件地址跟硬件地址怎么对应起来呀?!既然实际上是使用 MAC 来接收资料,但是我们又是以 IP 来做为门牌号码,呵呵,所以就需要一个对应的协议啦,好沟通这两个玩意儿!那就是 ARP ( Address Resolution Protocol ) 啰!几乎操作系统里面都会有个 ARP table ,用以记录 IP 与 MAC 的对应情况!
· 在首次进行数据传输的时候,由于 ARP table 当中没有相关的资料,这个时候您的主机就会对『同一网域的全部计算机进行逻辑广播( logical broadcast )』,(关于什么是『同一网域』的定义,等一下我们在 IP 基础内会再次提及) 请注意呦!
o 刚刚的『物理广播主要是针对在同一个物理网段内的共享网络媒体之动作』;
o 而『逻辑广播主要是针对网络层的软件地址而言来进行的动作!』
那么如果查询到了主机所需要的软件地址之后,主机的 ARP 表就会自动的学习起来,将软件地址( IP ) 与硬件地址( MAC )之对应给他写入 ARP 当中!
· 而在后续的数据传输的时候,主机就会先去寻找 ARP 表中的资料:
o 如果 ARP 有纪录的话,那么资料就会直接的传送到该目的地去,而不会进行『逻辑广播』;
o 如果 ARP 没有纪录的话,那么主机就又会对全部的同一网域内的计算机进行『逻辑广播』了!
· 这里就有一点很奇怪啦,既然说『物理广播』是针对 MAC ( 第一、二层 )而『逻辑广播』是针对软件地址( 第三层 ),偏偏真正在进行网络工作的是网络媒体还有 MAC 这个咚咚,怪了!那么当进行逻辑广播的时候,底下的层级都不需要动吗?好象跟 OSI 协议里面不太一样呦!呵呵!其实是这样的!当进行逻辑广播时,主机发送出去的信息中的会含有目的地的 MAC 是 FF:FF:FF:FF:FF:FF ,也就是所有的网络卡都会接受该封包啦!而当其它主机接受该封包之后,会进入第三层去分析软件地址的要求,如果该要求的软件地址不是自己的,就会将该封包丢弃,如果是自己的,那么就会响应该封包,以将自己的 MAC 传送给原来发送信息的主机啦!
· 要知道目前的您的主机的 ARP 纪录,可以使用 arp -a 来查看呦!
TCP/IP 流程
基本上,在 OSI 最底下的三层网络功能的传输行为,大概都已经定义好了,我们的网络媒体与 MAC 及软件地址之间都可以正确的去工作!因此倒是不用太去担心!呵呵!所以我们只要知道其原理就好了。接着下来的 TCP 封包最主要的也只要知道 IP, port, messages( ACK, SYN... ) 这样即可!这样一来, TCP 可以整合来自上层的各个协议,而 IP 用来决定路由与传送的途径,呵呵!就可以知道能不能到达目的地啦!
网络媒体的选择:
网络线的等级:
嗯!现在我们知道网络媒体是很重要的!那么如何来选择一个好的网络媒体呢?先来看一看最常用的到 RJ-45 网络线好了!目前 RJ-45 网络的线等级,对于一般家庭或小型企业使用者而言,可以到达 CAT5 这个等级就很好了!嗯!?网络线也有等级之分?是呀!刚刚不是说过了吗?那个网络媒体是很重要的,而由于网络媒体中跑的讯号其实就是电子啦!由于电子讯号在行进的时候会产生一些电磁效应( 这里指的是 cross talk ),这些 cross talk 就会影响整个传输的效能!为了避免 cross talk 的干扰,人们想出了很多的方法来解决他!有所谓的『双绞线, Twisted Pair』、或提供屏闭『Shielded, STP』等功能,来让网络线的 cross talk 干扰降低,并提升整体的网络传输速度负载量!而依据给予的不同的屏闭等级来将网络线分级!目前最常见的应该就是 CAT5 这一级啦!最大的传输量可以到达 100 Mbps 呢!所以,请注意『在选择网络线的时候,至少您的网络线等级要达到 CAT5 才行!』,否则即使您的网络卡可以到达的传输量为 100 Mbps ,但是网络线只有 10 Mbps 时,呵呵!那么最大的传输量将会仅成为 10 Mbps 呦!
并行线与跳线
谈完了网络线的等级之后,接着下来我们来谈一谈所谓的『并行线』与『跳线』吧!刚刚提到了,在网络媒体当中跑得是电子讯号,由于电子讯号需要是一个回路才能通(例如正极接负极),所以说这些讯号自然就需要成对啰!好了,那么由于设备的不同,因此网络线的接脚也会跟着不同的!举个例子来说,在 Hub 与 网络卡 之间的网络线(不谈 UpLink 孔时),使用的是常见的并行线,但是在网络卡与网络卡直接相连时,就需要使用不同接脚的『跳线』啦!由于具有两种接头,一般而言,我们将他分成 568A 及 568B 两种接头,这两种接头的 8 条缆线排列顺序为:
如果同一种接头( 不论是 568A 或 568B )接在一条网络线上面,就称为并行线,而两种接头同时接在同一条网络线上面,那就称为『跳线』啦!
Hub 与 Switch
在前面我们提到了网络媒体的型态,使用的是 Bus 的型态,那么如果是星形模式的话,就需要 Hub 或 Switch (中文称的集线器与交换器)这种网络媒体了!Hub 还比较好理解,基本上,他仅是将所有的网络线给他连接在一起,并没有考虑到其它的因素!因此,每部计算机只要连上 Hub 之后,感觉上就好象连上 Bus 一样啦!那么『瞎米系』 Switch 呀!?为什么 Switch 通常比 Hub 要贵上非常的多呢?他们的功能有哪里不同?我们先不提较高阶的不同点,最基础的不同在于 Switch 多了一个可以记录 MAC 与 port 的 table 啦!那是什么呢?这样说好了,当您的网域之中有一部计算机在进行物理广播的时候(请注意,物理广播主要是以 MAC 为传递的对象):
· 如果使用的连结器是 Hub 的时候,那么所有连接到这部 Hub 上面的主机都会接到该广播的封包;
· 而如果使用的是 Switch 时,由于上面的 table 已经记录了 MAC 对应 Port 的资料,所以该封包将会『直接』经由该 port 来送出去给目的地主机!
由于这样的关系,因此在进行物理广播的时候,就已经去除了可能产生封包碰撞的状态了!因此上, Switch 与 Hub 所能承受的流量或许相同,但是 Switch 却可以达到比较好的传输功能,用在大型的网域当中,嘿嘿!当然是 Switch 比较棒啦!这也是为什么 Switch 会比较贵的原因呀!更简单的来说, Hub 仍然属于『共享媒体』的一种,然而 Switch 几乎可以看做是『非共享媒体』了!更详细的 Hub 与 Switch 功能的讨论可以在这里找到。不过如果是只有小猫两三只的我们这种家庭式的内部网络呢?呵呵!简易型的 Hub 就很够了啦!不需要买到这个高档的 Switch 说 ( 纯粹个人观点啦!)。
传输单位
谈个轻松一点的!那么 10/100 Mbps ( Mega- bits per second )是什么东西呢?怎么大家都说我的网络卡是 100 Mbps ,但是我只能以最高约 12 MBytes 的速度在 Intranet 当中工作!?嘿嘿!别紧张,那么 100 Mbps 是 Mbits !还记得网络的资料量计算吗?不晓得也没有关系,可以直接告诉你:
1byte = 8bits
了解了吗?没错,由于网络的速度在计算的时候主要是依照讯号来设计的,而电子讯号只有 0 跟 1 呀!所以自然就选用最简单的 bit 来计算了!因此,目前在广告这些网络的速度的时候,都是以 bits 来计算的,但是我们在硬盘的计算方面则是以 bytes 来计算的,呵呵~千万记得,不要被迷惑了呢!因此,那个标榜 512/64 Kbps的网络速度,呵呵,最大的实际 byts 为: 64/8 KBytes 啰!这是理论最大速度啦,所以正常的速度约在 45~50 KBytes 之间啰!了解了吗?! |
|