网络(包含电信网、有线电视网及计算机网络)是信息社会的命脉,已经对社会经济产生不可估量的影响,其中最核心并发展最快的便是计算机网络。而以因特网(计算机网络的一种,目前世界上最大的计算机网络)为代表的计算机网络已成渗入到社会生活的方方面面,是人类自印刷术以来在通信领域最大的一次变革。网络把许多计算机连接到一起,而因特网把许多网络连接到了一起。接下来就开始对计算机网络尤其是因特网的系统学习之旅。

>> 知识小贴士之Internet和internet

internet 译为互联网,泛指多个计算机互联而成的网络,而 Internet 译为因特网,是一个专用名词,特指由ARPNET发展而来的,以TCP/IP为通信协议的全球最大的计算机网络-因特网。

概述

因特网组成

因特网由边缘部分及核心部分组成。其中边缘部分由连接在因特网上的所有主机(端系统)组成,计算机(主机)之间通信其实是计算机上的进程互相通信,通信方式分为:C/S 和 P2P(对等方式);而核心部分则由大量网络和连接这些网络的路由器组成,路由器是一种专用计算机,是实现分组交换的关键构件,任务是转发收到的分组。

>> 知识小贴士之分组交换、报文交换及电路交换(区别类似于聊微信、打电话和面对面交谈)

必须经过 建立连接→占用通信资源→释放资源 三个步骤的交换方式称为电路交换,早期的电话网络一直使用的是电路交换,特点是通信的全部时间内一直占用端到端的通信资源,用来传输计算机这种突发式的数据效率很低;报文交换是基于存储转发原理,相对于分组交换,只是没有把报文进行更小的分组拆分,整个报文到达某个相邻结点,存储下来再转发至下个结点;分组交换采用存储转发技术,实质上采用在通信过程中动态的分配传输带宽的策略,非常适合突发式的计算机数据传输。特点是高效、灵活、迅速、可靠!

计算机体系结构

计算机分层体系结构可以将庞大而复杂的计算机网络通信过程转化为若干个分立的局部问题进行研究,这种解耦更利于研究和标准化,分层之间相互独立(降低复杂度)、灵活性好(各层改动不影响其它层)、易于实现和维护。国际标准化组织 ISO 1983年提出了正式的 OSI/RM(开放系统互联基本参考模型),即所谓的七层协议的体系结构。然而现今规模最大、覆盖全世界的因特网并未采用作为国际标准的OSI模型,反倒是非国际标准的TCP/IP成为了事实上的国际标准得到广泛使用。

TCP/IP 是一个四层协议结构:应用层(包含表示层和会话层)、传输层、网络层、网络接口层(包含数据链路层和物理层)

  • 应用层:定义应用进程间和交互的规则,如HTTP、SMTP、FTP等,应用层利用这些协议进行进程间的交互来完成特定网络应用,应用层交互的数据单元称为“报文”。
  • 传输层:为进程间通信提供通用的数据传输服务,如TCP UDP, 应用层不同协议可以利用相同的传输层协议实现其功能。
  • 网络层:首先,负责将传输层产生的报文封装成分组或包(即IP数据包)进行传送,另外还负责选择合适的路由(传输路径),因特网网络层主要协议是IP协议和很多种路由选择协议。
  • 数据链路层:负责将网络层的IP数据包组装成帧(帧包含数据和必要的控制信息,例如信道编码,卷积码,turbo码)
  • 物理层:传输数据为比特流,物理层需要定义比特传输的电气特性(多少电压代表1多少代表0)、机械特性(接口形状尺寸等),如RS-232、USB、Bluetooth等。而传输物理介质如光纤、双绞线等并不处于物理层的范畴

在详细了解每层的工作原理之前我们先来看一个从知乎上看到的关于分层协议的风趣描述:

为了实现跨越互联网的,主机 A 的进程 P1,和主机 B 的进程 P2 之间的通信,我们逐层把这个任务交给 TCP/IP 协议栈。

运输层:“如果有人能帮我把数据从某个网络中的机器 A 搬到另一个网络中的机器 B,我就可以搞定这个任务,因为我知道不同的数据应该交给机器上的哪个进程。”

网络层:“如果有人能帮我把数据从局域网中直接相连的一台机器搬到另一台机器,我就可以把数据从一个网络搬到另一个网络,因为我知道路线怎么走,要经过哪些节点。”

链路层:“我知道怎样在局域网中搬数据,还能用 CSMA/CD 协议协调工作,还能用 CRC32 校验发送的数据和接收的数据是一致的,blabla… But,我只是说说,我不干苦力活。”

物理层:“楼上的大爷们发话了,兄弟们上。”

OSI七层参考模型-物理层

理解

对物理层通俗理解是确保原始的数据可在各种物理媒体上传输,即完成比特流的传输。如果想要用更少的词来记住这个第一层,那就是“信号和介质”。

功能

物理层实现的主要功能有:为数据端设备提供传送数据通路、传输数据。具体可以描述为确定与传输媒体接口相关的一些特性:

  • 机械特性:接口形状及尺寸等
  • 电气特性:接口通路上的电压范围
  • 功能特性:不同线上的不同电压值代表什么意义
  • 过程特性:对于不同功能的可能事件的出现顺序

协议

对于物理层,OSI采纳了各种现成的协议,其中有RS-232、RS-449、X.21、V.35、ISDN、以及FDDI、IEEE802.3、IEEE802.4、和IEEE802.5的物理层协议。

信道容量、传输介质及复用技术

  • 信道的极限容量:香农公式表明信道的带宽或信噪比越大,则信息的极限传输速率就越高。
  • 常见的传输介质:双绞线(带宽百兆级别)、同轴电缆(带宽接近1G)、光缆(100Gb/s,由于可见光频率很高10^8MHz,所以带宽很宽)、电磁波(无线电波传输)
  • 信道复用技术:频分、时分、码分。所谓的波分复用即光的频分复用
>> 知识小贴士之宽带接入技术(双向速率之和大于200kb/s就是宽带)
  • ADSL技术:非对称数字用户线,是用数字技术对现有的模拟电话用户线进行改造,使其承载宽带数字业务。在原有的模拟电话线路中,虽然最初设计使用频带为语音通信的300~3400Hz,但其实际可通过的频率超过1MHz,因此将0~4KHz继续留给传统电话使用,而把原来没有利用的高端频谱留给用户上网使用。其下行带宽(用户获取数据)远超下行速率(上传数据),因此称其为“非对称”。
  • HFC网(光纤同轴混合网)
    是在有线电视网的基础上开发的一种宽带接入技术,可传送电视、语音、数据等各种宽带交互业务。主要是将原来有线电视网中的同轴电缆主干部分改换为光纤。
  • FFTx技术(Fiber To The x)
    即光纤接入,FFTH(Fiber To The Home)便是光纤到户了,传说中的百兆光纤,传输速率很高,但是目前价格昂贵。光配线网采用波分复用,上行下行分别使用不同的频率。

OSI七层参考模型-数据链路层

数据链路层的信道主要分为点对点信道(PPP)和广播信道(CSMA/CD)。其中PPP协议是用户计算机与ISP(网络服务提供商)进行通信时所使用的数据链路层协议,而CSMA/CD协议则是局域网内广泛使用的链路层协议。这里需要注意:局域网虽然也是一个网络,但是并不把局域网放在网络层中讨论,因为这里主要研究的是局域网内主机与主机之间的通信,属于数据链路层的范畴,而网络层研究的是怎样通过路由器将分组从一个网络转发到另一个网络。

链路层基本问题

1,封装成帧
链路层将网络层传交下来的ip数据报添加首部和尾部封装成帧,这样接收端在收到物理层上交的比特流后就能根据首尾标记知道帧的开始与结束。首位的主要作用就是进行帧定界(确定帧的界限),同时还包含一些控制信息。
2,透明传输
表示无论什么样比特组合的数据都能够通过这个数据链路层,而不会因为比特流中还有特定的帧结束或开始标志而发生传输差错。
3,差错检测
现实的通信链路不可避免会产生比特差错,即会有一定误码率(BER),这个和信道的信噪比有关系。为了保证数据传输可靠性,加入了一些差错检测措施,例如循环冗余检错技术(CRC)。在数据链路层进行差错校验就需要将数据划分为帧,每一帧都加上冗余码,一帧一帧的传送和校验。但是这样只能保证帧无差错传输(无比特差错),无法保证帧丢失、重复或失序等(无传输差错)情况发生。

以太网技术

关于PPP协议这里不展开讨论。目前,以太网几乎都成了局域网的代名词,因此主要讨论以太网(应用最广泛的局域网)相关的知识。共享信道的局域网首先需要考虑的一个问题是如何协调用户合理而方便的共享信道资源,技术上主要有两种实现方式:静态划分信道(时分、频分、码分及波分)和动态媒体接入控制(即多点接入:分为随机接入和受控接入)。而以太网使用的便是多点接入技术。

思考一个问题:计算机是怎样连接到局域网上的?
计算机和局域网的链接是通过通信适配器(也就是所谓的“网卡”)实现的。适配器和局域网通信是通过电缆或双绞线串行传输的,而与计算机主板上的I/O总线的通信则是以并行方式进行的,因此适配器的重要作用之一便是串行并行转换。同时适配器分别与局域网和计算机主板通信的速率显然是无法匹配的,因此适配器一般会有数据缓存单元,而我们熟知的网卡驱动完成的工作即是对数据缓存单元的操作。另外计算机的物理地址(MAC地址)就在存储在适配器的ROM中。

CSMA/CD(载波监听多点接入/碰撞检测)协议,由于采用多点接入,同一时间只能允许一台计算机发送数据,因此在发送数据前都必须不停的监测信道(载波监听技术),从而在等到信道空闲时获得发送权,但是有可能多台主机同时检测到信道空闲并开始发送数据,这时候就需要碰撞检测来防止冲突发生。双绞线以太网是局域网发展史上重要的里程碑,为以太网在局域网中的统治地位奠定了基础。而双绞线以太网一般是和集线器配合使用,使用集线器的以太网在逻辑上仍然是一个总线网,使用的还是CSMA/CD协议。

MAC地址是每一台计算机固化在适配器ROM中的6字节48位的全球地址,因此MAC地址也叫硬件地址或者物理地址,实质是适配器地址(网卡地址)或者适配器标识。当适配器从网络中每收到一个MAC帧时就先检查MAC帧中的目的地址,如果是发送本站的则手下否则丢弃。使用最多的以太网V2的MAC帧由5个字段组成,前两个字段分别是6字节的目的地址和源地址,第三个字段是2字节的类型字段,标示上一层使用什么协议,第四个字段是数据字段(IP数据报),而最后一个字段是帧检验序列。

交换机和集线器(HUB)区别

集线器工作在物理层,交换机主要工作在数据链路层,但也有多层交换机。
由于以太网等很多网络(常见HUB连接的内部网)是基于总线方式,物理上是广播的,就是当一个机器发给另一个机器的数据,HUB先收到然后把它接收到的数据再发给其他的(来的那个口不发了)每一个口,所以在HUB下面同一网段的所有机器的网卡都能接收到数据。交换机的内部单片程序能记住每个口的MAC地址,以后就该哪个机器接收就发往哪个口,而不是像共享HUB那样发给所有的口,所以交换机下只有该接收数据的机器的网卡能接收到数据,当然广播包还是发往所有口。显然交换机的工作模式使得两个机器传输数据的时候其他机器别的口也占用了,所以交换机决定了同一网段同一时间只能有两个机器进行数据通信,而交换机上连接的两个机器传输数据的时候别的口没有占用,所以别的口之间也可以同时传输。这就是交换机与HUB不同的两个地方,HUB是同一时间只能一个机器发数据并且所有机器都可以接收,只要不是广播数据交换机同一时间可以有多对机器进行数据传输并且数据是私有的。

小结

当今居于主导地位的局域网技术-以太网采用无源的介质,按广播方式传播信息。它规定了物理层和数据链路层协议,规定了物理层和数据链路层的接口以及数据链路层与更高层的接口。以太网是建立在CSMA/CD机制上的广播型网络。冲突的产生是限制以太网性能的重要因素,早期的以太网设备如集线器是物理层设备,不能隔绝冲突扩散,限制了网络性能的提高。而交换机(网桥)做为一种能隔绝冲突的二层网络设备,极大的提高了以太网的性能。正逐渐替代集线器成为主流的以太网设备。然而交换机(网桥)对网络中的广播数据流量则不做任何限制,这也影响了网络的性能。通过在交换机上划分VLAN和采用三层的网络设备-路由器解决了这一问题。以太网做为一种原理简单,便于实现同时又价格低廉的局域网技术已经成为业界的主流。而更高性能的快速以太网和千兆以太网的出现更使其成为最有前途的网络技术。