服务器 频道

简易网络基础架构(5):网络媒体的运作方式

  【IT168 服务器学院】网络媒体的运作方式:
  
  
开始来谈一谈网络的运作方式吧!底下我们以基本的 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 用来决定路由与传送的途径,呵呵!就可以知道能不能到达目的地啦!
  

0
相关文章