操作系统不只有Windows/Linux ,还有苹果计算机自己的操作系统, Unix like 的操作系统也非常多!那么多的操作系统 要如何进行网络沟通呢?那就得要制订共同遵守的标准才行了。这个标准是由国际组织规范的,你的系统里面只要提供可以加入该标准的程序代码, 那你就能够透过这个标准与其他系统进行沟通!
什么是网络
网络就是几部计算机主机或者是网络打印机之类的接口设备, 透过网络线或者是无线网络的技术,将这些主机与设备连接起来, 使得数据可以透过网络媒体(网络线以及其他网络卡等硬件) 来传输的一种方式。
1970年以前,各设备之间还不能使用网路连接,之后ethernet和ibm各自开发了自己的网络连接技术,但是网络技术之间彼此不能够识别;之后美国军方开始研究不同网路之间的沟通技术,这就是tcp/ip协议雏形;后与柏克莱大学合作,将此协议植入unix系统中,这种tcp/ip技术也称为internet。
局域网络 (Local Area Network, LAN) :
节点之间的传输距离较近,例如一栋大楼内,或一个学校的校区内。可以使用较为昂贵的联机材料, 例如光纤或是高质量网络线 (CAT 6)等。网络速度较快,联机质量较佳且可靠,因此可应用于科学运算的丛集式系统、 分布式系统、云端负荷分担系统等。
广域网 (Wide Area Network, WAN) :
传输距离较远,例如城市与城市之间的距离,因此使用的联机媒体需要较为便宜的设备,例如经常使用的电话线就是一例。 由于线材质量较差,因此网络速度较慢且可靠性较低一些,网络应用方面大多为类似 email, FTP, WWW 浏览等功能。
计算机网络协议: OSI (
Open System Interconnection)七层协定
在七层协议中,每层都会有自己独特的表头数据 (header) ,告知对方数据的简要信息,真正的数据就附在头数据后面。
第二层的数据格式比较不一样喔,尾端还出现一个检查码
分层 | 应用 |
Layer 1物理层 Physical Layer | 由于网络媒体只能传送 0与 1 这种位串,因此物理层必须 定义所使用的媒体设备之电压与讯号等, 同时还必须了解数据转成位串的编码方式,最后连接实体媒体并传送/接收 位串。 |
Layer 2数据链结层 Data-Link Layer | 这一层是比较特殊的一个阶层,第二层又分两个子层在进行数据的转换动作。在偏硬件媒体部分,主要负责的是 MAC (Media Access Control),我们称这个数据包裹为 MAC 讯框 (frame) , MAC 是网络媒体所能处理的主要数据报裹,这是物理层编码成位串的数据。至于偏向软件的部分则是由逻辑链接层 (logical link control, LLC)所控制,主要在多任务处理来自上层的封包 数据 (packet) 并转成 MAC的格式, 负责的工作包括讯息 |
Layer 3网络层 Network Layer | 我们提及的 IP (Internet Protocol)就是在这一层定义的。 同时也定义出计算机之间的联机建立、终止与维持等,数据封包的传输路径选择等等, 因此这个层级当中最重要的除了 IP之外,就是封包能否到达目的地的路由 (route) |
Layer 4传送层 Transport Layer | 定义了发送端与接收端的联机技术(如 TCP, UDP技术),同时包括该技术的封包格式,数据封包的传送、流程的控制、传输过程的侦测检查与复原重新传送等等, 以确保各个资料封包可以正确无误的到达目的端。 |
Layer 5会谈层 Session Layer | 主要定义了两个地址之间的联机信道之连接与挂断,此外,亦可建立应用程序之对谈、 提供其他加强型服务如网络管理、签到签退、对谈之控制等等。如果说传送层是在判断资料封包是否可以正确的到达目标, 那么会谈层则是在确定网络服务建立联机的确认。 |
Layer 6表现层 Presentation Laye | 主要定义的是网络服 务(或程序)之间的数据格式的转换, 包括数据的加解密也是 在这个分层上面处理。 |
Layer 7 应用层Application Layer | 将数据接收或传送给应用程序,定义应用程序如何进入此层的沟通接口 |
说了这么多,目前网路上并没有完全遵循7层协议,主要要求走通tcp/ip协议,对iso简化成4层:
那 TCP/IP 是如何运作的呢,整个联机的状态可以这样看:
1. 应用程序阶段:打开浏览器,在浏览器上面输入网址列,按下 [Enter] 。此时网址列与相关数据会被浏览器包成一个数据, 并向下传给 TCP/IP 的应用层;
2. 应用层:由应用层提供的 HTTP 通讯协议,将来自浏览器的数据报起来,并给予一个应用层表头,再向传送层丢去;
3. 传送层:由于 HTTP 为可靠联机,因此将该数据丢入 TCP 封包内,并给予一个 TCP 封包的表头,向网络层丢去;
4. 网络层:将 TCP 包裹包进 IP 封包内,再给予一个 IP 表头 (主要就是来源与目标的IP) ,向链结层丢去;
5. 链结层:如果使用以太网络时,此时 IP 会依据 CSMA/CD 的标准,包裹到MAC 讯框中,并给予 MAC 表头,再转成位串后, 利用传输媒体传送到远程主机上。
网络媒体一次传输的数据量是有限的,因此如果要被传输的数据太大时,我们在分层的包装中,就得要将数据先拆开放到不同的包裹中, 再给包裹一个序号,好让目的端的主机能够藉由这些序号再重新将数据整合回来
ISP所说的10M带宽可不是上下行为10Mbytes而是10Mbits哦;
为什么每当传输速度增加时,网络线的要求就更严格呢?这是因为当传输速度增加时,线材的电磁效应相互干扰会增强, 因此在网络线的制作时就得需要特别注意线材的质料以及内部线蕊心之间的缠绕情况配置等, 以使电子流之间的电磁干扰降到最小,才能使传输速度提升到应有的 Gigabit 。
以太网络(Ethernet) 10Mbps
高速以太网络(Fast Ethernet) 100Mbps CAT 5
超高速以太网络(Gigabit Ethernet) 1000Mbps CAT 5e/CAT 6
以太网络的传输协议: CSMA/CD
局域网主要是 以太网形式。
每张以太网络卡出厂时,就会赋予一个独一无二的卡
号,那就是所谓的 MAC (Media Access Control)
理论上,网卡卡号是不能修改的,不过某些笔记本电脑的网卡卡号是能够修改的,
以太网络的网卡之间数据是如何传输的呢?
集线器
集线器的英文称为“Hub”。“Hub”是“中心”的意思,集线器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它工作于OSI(开放系统互联参考模型)参考模型第一层,即“物理层”。集线器与网卡、网线等传输介质一样,属于局域网中的基础设备,采用CSMA/CD(即带冲突检测的载波监听多路访问技术)介质访问控制机制。集线器每个接口简单的收发比特,收到1就转发1,收到0就转发0,不进行碰撞检测。
集线器(hub)属于纯硬件网络底层设备,基本上不具有类似于交换机的"智能记忆"能力和"学习"能力。它也不具备交换机所具有的MAC地址表,所以它发送数据时都是没有针对性的,而是采用广播方式发送。也就是说当它要向某节点发送数据时,不是直接把数据发送到目的节点,而是把数据包发送到与集线器相连的所有节点,如图所示,简单明了。
HUB是一个多端口的转发器,当以HUB为中心设备时,网络中某条线路产生了故障,并不影响其它线路的工作。所以HUB在局域网中得到了广泛的应用。大多数的时候它用在星型与树型网络拓扑结构中,以RJ45接口与各主机相连(也有BNC接口),HUB按照不同的说法有很多种类。
集线器是一种网络共享媒体,想象一下上述的环境就像一个十字路口,而集线器就是那个路口! 这个路口一次只允许一辆车通过,如果两辆车同时使用这个路口,那么就会发生碰撞的车祸事件啊!那就是所谓的共享媒体。 也就是说,网络共享媒体在单一时间点内, 仅能被一部主机所使用。
CSMA/CD 搭配上述的环境,它的传输情况需要有以下的流程:
1. 监听媒体使用情况 (Carrier Sense) : A 主机要发送网络封包前,需要先对网络媒体进行监听,确认没有人在使用后, 才能够发送出讯框;
2. 多点传输 (Multiple Access) : A 主机所送出的数据会被集线器复制一份,然后传送给所有连接到此集线器的主机! 也就是说, A 所送出的数据, B, C,D 三部计算机都能够接收的到!但由于目标是 D 主机,因此 B 与 C 会将此讯框数据丢弃,而 D 则会抓下来处理;
3. 碰撞侦测 (Collision Detection) :该讯框数据附有检测能力,若其他主机例如 B 计算机也刚好在同时间发送讯框数据时, 那么 A 与 B 送出的数据碰撞在一块 (出车祸) ,此时这些讯框就是损毁,那么 A 与 B 就会各自随机等待一个时间, 然后重新透过第一步再传送一次该讯框数据。
了解这个程序很重要
网络忙碌时,集线器灯号闪个不停,但我的主机明明没有使用网络:透过上述的流程我们会知道,不管哪一部主机发送出讯框,所有的计算机都会接收到!因为集线器会复制一份该数据给所有计算机。 因此,虽然只有一部主机在对外联机,但是在集线器上面的所有计算机灯号就都会闪个不停!
我的计算机明明没有被入侵,为何我的数据会被隔壁的计算机窃取:透过上述的流程,我们只要在 B 计算机上面安装一套监听软件,这套软件将原本要丢弃的讯框数据捉下来分析,并且加以重组, 就能够知道原本 A 所送出的讯息了。这也是为什么我们都建议重要数据在因特网上面得要『加密』后再传输!
既然共享媒体只有一个主机可以使用,为何大家可以同时上网:这个问题就有趣了,既然共享媒体一次只能被一个主机所使用,那么万一我传输100MB 的档案,集线器就得被我使用 80 秒 (以 10Mbps 传输时) ,在这期间其他人都不可以使用吗?不是的,由于标准的讯框数据在网络卡与其他以太网络媒体一次只能传输 1500bytes,因此我的 100MB 档案就得要拆成多个小数据报,然后一个一个的传送,每个数据报传送前都要经过 CSMA/CD 的机制。 所以,这个集线器的使用权是大家抢着用的!即使只有一部主机在使用网络媒体时,那么这部主机在发送每个封包间, 也都是需要等待一段时间的 (96 bit time) !
讯框要多大比较好?能不能修改讯框?:如上所述,那么讯框的大小能不能改变呢?因为如果讯框的容量能够增大,那么小数据报的数量就会减少, 那每个讯框传送间的等待就可以减少了!是这样没错,但是以太网络标准讯框确实定义在 1500 bytes, 但近来的超高速以太网络媒体有支持 Jumbo frame (巨型讯框) 的话,那么就能够将讯框大小改为9000bytes 。但不建议随意修改。
每一张网卡都有一个独一无二的卡号, 那个卡号的目的就在MAC讯框的表头数据使用到,硬件地址最小由 00:00:00:00:00:00 到 FF:FF:FF:FF:FF:FF(16 进位法),这 6 bytes 当中,前 3bytes 为厂商的代码,后 3bytes 则是该厂商自行设定的装置码.
在这个 MAC 的传送中,他仅在局域网络内生效,如果跨过不同的网域 (IP) ,那么来源与目的的硬件地址就会跟着改变了。这是因为变成不同网络卡之间的交流了!所以卡号当然不同了!
一般的MAC最大数据容量是1500bytes而ip封包最大可达6
5535 bytes,
IP
封包是可以进行拆解的,然后放到 MAC 当中,等到数据都传到目的地, 再由目的主机将他组装。所以啰,如果 MAC最大容量能够大一些的话,那么 IP 封包的拆解频率就会降低, 封包与封包传送之间的等待时间 也会减少,就能够增加网络带宽的使用!
为了这个目的,所以 Gigabit 的以太网络媒体才支持 Jumbo frame ;
交换器 (switch) 等级非常多,我们这里仅探讨支持 OSI 第二层的交换器。交换器与集线器最大的差异,在于交换器内有一个特别的内存, 这个内存可以记录每个switch port 与其连接的 PC 的 MAC 地址,所以,当来自 switch 两端的 PC 要互传数据时,每个讯框将直接透过交换器的内存数据而传送到目标主机上! 所以 switch 不是共享媒体,且 switch 的每个埠口 (port) 都具有独立的带宽喔!
Internet 是
由 InterNIC
所统一管理的,但其实他仅是负责分配IP以及提供相关的 TCP/IP 技术文件而已。
目前因特网社会的 IP 有两种版本,一种是目前使用最广泛的 IPv4 (Internet
Protocol version 4, 因特网协定第四版) , 一种则是预期未来会热门的 IPv6 。 IPv4记录的地址由于仅有 32 位,预计在 2020 年前后就会分发完毕,如此一来, 新兴国家或者是新的网络公司,将没有网络可以使用。为了避免这个问题发生,因此就有 IPv6的产生。 IPv6 的地址可以达到 128 位,可以多出 2 的 96 次方倍的网址数量,这样的 IP 数量几乎用不完啦!虽然 IPv6 具有前瞻性,但目前主流媒体大多还是使用IPv4 。
现在我们知道 IP (Internet Protocol) 其实是一种网络封包,而这个封包的表头最重要的就是那个 32 位的来源与目标地址。
IP 其实就类似所谓的『门牌号码』。
ip的5层分级
公网ip:
公共 IP ,经由 INTERNIC 所统一规划的 IP,有这种 IP 才
可以连上 Internet ;
私网ip:
私有 IP 或保留 IP,不能直接连上 Internet 的 IP , 主
要用于局域网络内的主机联机规划。