计算机网络体系结构(讲义)-2022.01.11

   各位领导、同事,大家好!上次课我们交流了计算机网络概述的有关内容,重点讲述了分组交换的概念。分组交换就是把一个报文等分为几个分组,并在每个分组的首部加上目的地址和源地址等重要控制信息,采用存储转发的方式在网络上传输,以实现数据的通信。今天接上一次的内容,继续交流计算机网络另一个重要的内容,计算机网络体系结构。通过这次交流,希望大家能掌握计算机网络体系结构面临的问题、历史演进、设计理念和五层体系结构等知识。
   在上次交流过程中,大家提出了很多问题,例如:分组在传输的时候为什么要走这条路,而不走那条路?如果网络故障要怎么办?这些都是非常好的问题,可以说都问到了计算机网络的核心问题上。然而,计算机网络是个非常复杂的系统,除了大家提到的问题,还有很多问题要解决,例如:
   一是发起通信的计算机必须将数据通信的通路激活(activate),才能保证要传送的数据能在这条通路上正确发送和接收。
   二是网络如何识别接收数据的计算机。
   三是发起通信的计算机必须查明对方计算机是否已开机,并且与网络连接正常。
   四是对出现的各种差错和意外事故,如数据传送错误、重复或丢失,应当有可靠的措施保证对方计算机最终能够收到正确的文件。
   除此之外,还有很多复杂问题需要解决。面对复杂的问题,不知道大家会如何处理?大家都是理工科科班出身,从事的也是工程类的工作,工程思维和方法对大家是非常重要的。在工程思维中,问题分解就是一个非常基础和重要的工具,科学家和工程师在解决网络通信问题的时候就是用到了这个方法,采用分层的方法建立了计算机网络体系结构,把一个大的,复杂的问题分解成若干个小的,容易解决的问题。学习网络知识也是锻炼工程思维的很好的方法。所以,建议大家在学习的过程中,多思考总结,把网络的知识提炼成工程思维,并用到你们其他的工作上,相信会有益处的。这也是我们上次跟大家讲的“道”和“术”的问题。
   首先,我们看一下网络体系结构的发展历史。1974年,IBM公司提出了一个叫系统网络体系结构SNA(System Network Architecture)的。不久后,一些公司也相继推出自己的体系结构。由于不同公司提出的体系结构各不相同,这就带来了网络互联的兼容问题。前面我们讲,互联网是由多个网络相互连接而成,如果不同厂家的网络无法互联,肯定会制约互联网的发展。
   现在网络技术基本已经是大一统,所以大家没什么感觉。我这里给举一个和大家工作比较密切的例子,CCTV系统。目前,国内最有名的两家CCTV厂家是海康威视和大华,两家人都有各自的协议,在国家层面也出台了一个叫GB28181标准,两家人也说各自的协议相互兼容,但实际上,如果我们在同一个CCTV系统中同时使用两个厂家的产品,时不时还是要出一些问题,这就是体系结构或者说协议不兼容造成的。所以,我们在建设的时候都是尽可能选用同一厂家的产品,我们日常中使用的一些需要互联的电子产品,如一些智能家居设备,建议大家也尽量购买同一厂家的。
   为了解决不同厂家体系结构(产品)的兼容性问题,促进全球网络互联,国际标准化组织ISO在1977成立专门机构研究该问题,提出了一个试图使各种计算机在世界范围内互联成网的标准架构,即著名的开放系统互连参考模型ORM/RM(Open Systems Interconnection Reference Model),简称OSI模型。
   虽然说OSI模型由ISO这样一个权威的组织制定,但由于OSI模型存在协议实现起来过分复杂、标准制定周期太长、层次划分不太合理等问题,导致OSI模型并未真正的普及使用,取而代之的是一个叫TCP/IP的模型,这也就是我们现在所使用和接下来要重点学习的网络体系结构。
   ARPANET的研制经验表明,对于复杂的计算机网络协议,其结构应该是层次式的,主要有以下好处:
   一是各层之间是独立的。某一层并不需要知道它的下一层是如何实现的,而仅仅需要知道该层通过层间的接口(即界面)所提供的服务。由于每一层只实现一种相对独立的功能。因而可将一个难以处理的复杂问题分解为若干个较容易处理的更小一些的问题。这样,整个问题的复杂程度就下降了。
   二是灵活性好。当任何一层发生变化时(例如由于技术的变化),只要层间接口关系保持不变,那么在这层以上或以下各层均不受影响。此外,对某一层提供的服务还可进行修改当不再需要某层提供的服务时,甚至可以将这层取消。
   三是结构上可分割开。各层都可以采用最合适的技术来实现。
   四是易于实现和维护。这种结构使得实现和调试一个庞大而又复杂的系统变得更加容易,因为整个系统已被分解为若干个相对独立的子系统。
   五是能促进标准化工作。因为每一层的功能及其所提供的服务都已有了精确的说明。
   计算机网络体系结构的优势在WIFI和手机数据通信的发展上体现得尤为突出。WIFI和手机数据通信都是属于数据链路层的技术,近些年发展非常快,WIFI出现了很多版本,手机数据通信从2G发展到5G,但应用层、传输层和网络层并不需要改变,以前是什么样,现在还是那样。所以,不管我们用的是3G、4G、5G还是WIFI信号,我们的微信照样可以用。如果不是这么设计,我们可能在使用数据流量上网时,就得开一个5G版微信,用WIFI时,就需要换成一个WIFI版的微信。用起来肯定不爽,而且制约了信息技术的发展。以前的有线电话技术上采用了烟囱式的设计,而没有采用分层设计,导致更新换代时需要整套设备都换掉,成本高,升级难,大家有兴趣可以上网搜一下有线电话的发展历史。
   分层思想的应用非常广,在软件设计,例如操作系统的设计等也都是运用了分层的思想,以后你们有机会做大项目,写设计文件,很多时候都会用到。甚至在我们的日常管理中,分层的思想也一个很好的工具,所以建议大家在学习的时候多多思考。
   前面我们说过,TCP/IP体系结构的应用最为广泛,是我们学习的重点。虽然OSI七层协议体系结构既复杂又不实用,但概念清楚,理论也比较完整,因此我们在学习TCP/IP体系结构时常会拿来作为对比,以加深理解。OSI体系结构分为七层,从上到下分别是应用层、表示层、会话层、运输层、网络层、数据链路层和物理层。TCP/IP则只有五层,分别是应用层、运输层、网络层、数据链路层和物理层。两者的差别在于运输层以上的几层,OSI体系结构实际上是对TCP/IP体系结构进行了细化,把应用层分为了三层,多出了表示层和会话层。表示层是主要是用于定义显示,会话层主要是定义应用会话的过程。TCP/IP体系结构虽然没有这两层,但实际上是由应用层承担的。例如CCTV和数字化VHF,就前几年我们承担的广东局的那个任务,可以在电脑和手机上使用VHF,这实际上是在应用层用到了一套叫SIP的协议来管理会话,实现OSI中会话层的功能,具体像管理诸如按下PTT键功能在计算机上的实现。
   下面我们就从上到下介绍一下TCP/IP体系结构中各层的功能和学习要点。

1.应用层

   应用层是体系结构中的最高层,通过应用进程间的交互来完成特定网络应用,它是应用进程间通信和交互的规则,例如我把你的微信拉黑后,你再发微信给我,你将收到什么样的响应,这就是进程间通信和交互的规则。
   应用层学习要点:
   一是我们把应用层交互的数据单元称为报文。
   二是需要了解常见的各种应用层协议的功能,如DNS、FTP、HTTP、SMTP、POP3、IMAP、DHCP、SNMP、RTSP。
   学好应用层最好的方法就是仔细研究一到两个应用层协议,我当年本科的毕业论文,帮老师验证一个反垃圾邮件专利算法就和SMTP密切相关。研究过一两个应用层协议后,再来看其他的应用层协议就会轻松很多。如果你们确实对这个没兴趣,退一步讲,我觉你们至少要会搭建各种服务器,例如:Web服务器、FTP服务器、DHCP服务器、DNS服务器等。上次,我看树超在找警翼的人帮忙处理执法记录仪数据无法上传的问题,其实如果你们自己安装配置过Web服务器,那么是根本不需要去找警翼的,因为这就是个应用层的东东,是非常常见和简单的问题。

2.传输层

   一是传输层要解决的是进程间的通信问题。通过IP地址,我们可以识别是哪些主机在通信,但前面我们说过,主机上同时有多个进程在通信,例如你可以同时开微信、看网页,听音乐,那么要如何区分是那个进程?这就是传输层要解决的问题,传输层用端口号来区分进程,每个通信的进程都必须有个端口号。树超之前在配置执法记录仪采集站的时候是不是有地方要配置端口号。
   二是从0~1023为公认端口号,他们和一些服务紧密绑定在一起。例如:21为Ftp、80为Http、443为Https、SSH为22、SMTP为25。在浏览器输入网页地址的时候实际上也需要有端口号,只是因为这些都是通用的,所以程序会自动帮我们加上端口号,所以我们不用去输入端口号。如果Web服务器采用自定义的端口号,那么我们在访问该Web服务器的时候就需要把端口号给加上去,而且一般还需要在地址栏输入http://,否则可能会无法打开网页。你们在远程登录执法记录仪系统时用的是SSH协议,如果在防火墙上把这个端口号给禁止掉,那我们就无法访问。
   三是运输层有UDP和TCP两种协议。UDP提供无连接服务,无法可靠的传输数据,但效率高,头部格式和传输机制相对简单,数据传输的单位叫用户数据报。TCP是面向连接的,能够可靠的传输数据,但效率相对低一点,头部格式和传输机制相对复杂,数据传输的单位叫报文段。
   四是TCP可靠传输的工作原理、流量控制、拥塞控制和连接管理。其中可靠传输、流量控制和拥塞控制都使用了窗口技术,主要是一些算法,如果只是浅层次的应用,大家了解一下就行。连接管理主要涉及到三次握手机制等机制,像Dos攻击利用的就是三次握手机制的Bug,这部分还是希望大家能仔细的看看。
   要学好运输层的知识,建议自己写一个网络通信的小程序,即Socket编程,用什么语言都无所谓,我自己以前用的是C/C++,其实不管什么语言,编程的步骤都是一样的。

3.网络层

   一是网络层负责为分组交换网上的不同主机提供服务,传输层可以说是为进程提供服务。一是路由算法,通过一定的算法,在互联网中的每一个路由器上生成一个用来转发分组的转发表。上次交流,大家有问过,一个分组为什么走A链路而不走B链路的问题,就是由这个来决定的。二是每个路由器在接收到一个分组时,依据转发表中指明的路径把分组转发到下一个路由器,这样就可以使源主机运输层传下来的分组通过合适的路由最终达到目的主机。三是协议转换,连接异构网,互联网是由大量的异构网络通过路由器连接起来,这就需要进行路由协议转换。
   二是网络层设计得尽量简单,向上层至提供简单灵活、无连接的、尽最大努力交付的数据报服务。网络层不提供服务质量承诺,服务质量的任务交给了传输层。从这里我们也可以看到网络体系结构在设计得时候是如何分解和解决问题的。
   三是网际协议IP。在日常中,最重要就是IP地址的概念和规划,我们在组网的时候,第一步一般是要把IP地址先规划好,然后再来配置路由器和交换机等设备。对于较大的网络,像汕头海事局的网络,我们就会用到无分类编址技术。与之相关的还有IP层转发分组的过程,也就是之前说的分组数据的路径选择问题。这部分是重点,大家要好好的学习一下。
   四是与协议IP配套使用的三个协议:地址解析协议ARP、网际控制报文协议ICMP和网际组管理协议IGMP。ARP接近数据链路层,用于找到IP地址对应的主机的MAC地址,MAC地址属于数据链路层,每块网卡都有一个唯一的MAC地址。ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告,我们在判断网络是连通时用的ping命令就是ICMP的。
   五是几个互联网路由选择协议:内部网关协议RIP、内部网关协议OSPF、外部网关协议BGP和多协议标签交换MPLS。树超一直要求我跟他讲如何配置交换机路由器,而我一直强调说需要有网络的基础。掌握这些协议就是基础,我们说的配置路由器,实际上就是看你要配置什么协议进行组网。这几个协议都是最常见的,像汕头局和广东局的联网就是用来OSPF协议。因此,希望大家好好的学一下这几个协议,看看这些协议的原理和配置方法,并不是很难。
   六是虚拟专网VPN和网络地址转换NAT。这两个技术现在用得很多,主要是解决两个不同网络安全通信的问题。海事内网和因特网是严格隔离的,那如何从因特网访问海事内网,相信这都是大家很期望,这里用得最多的就是VPN技术,像广东局就提供了一个VPN的渠道让我们可以安全的访问海事内网的软件。NAT也是常用的一个技术,我们的CCTV专网和海事内网实际上也是隔离的,但为什么你们能远程登录到CCTV专网的服务器上?这就用到了NAT技术。NAT技术是比较简单的,VPN相对复杂点,所以这部分也希望大家能认真的看看。

4.数据链路层

   一是数据链路层常简称为链路层,它解决的是相邻两台主机间数据传输的问题,主要要解决帧封装、透明传输和差错检测等三个问题。两台主机间的数据传输,总是在一段一段的链路上传输,这就需要链路层协议。在两个相邻节点间传输数据时,数据链路层将网络层交下来的IP包封装成帧,因此链路层的数据单位也叫帧。
   二是每个帧包括数据和必要的控制信息,如同步信息、地址信息、差错控制等。在接收数据时控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束,这也是为什么链路层的封装是在数据的头尾进行封装的。链路层收到一个帧后,就可以提取出数据部分,上交给网络层。
   三是点对点协议PPP。PPP协议是一个常用的链路层协议,像我们家里的宽带拨号,一般就是用PPP协议。其实一般我们接入互联网,很多时候用的都是PPP,海事局的外网用的就是这个协议。大家重点了解一下PPP如何配置,至于原理,有兴趣再看看。
   四是以太网知识。数据链路层的协议有很多,像以太网、ATM、帧中继等,但现在用得最多的就是以太网。这部分有几个知识点需要大家重点学习,分别是CSMA/CD协议、以太网的MAC层和虚拟局域网VLAN。CSMA/CD协议是以太网的基础协议,大家很有必要了解它的运行机制,对于了解WIFI的原理会有很大的帮助。以太网MAC层主要是想大家进一步了解MAC地址的概念,也是个基础。VLAN则是最重要的内容,我们说配置交换机,大多时候就是在配置VLAN,了解VLAN的原理对网络规划、交换机配置、问题处理都是非常有帮助的。

5.物理层

   物理层的内容在计算机网络中相对简单,从应用的角度,只要会做网线基本就够了,但作为学习,我觉得有一下几部分需要了解。
   一是物理层传输的单位是比特。
   二是都有些什么接口,例如RJ45、光口、E-ONE等。因为我们在组网和选购交换机的时候,都需要确定用什么接口和什么样的线。再就是多大的电压代表“1”或“0”,接收方如何识别发送方所发的比特,而不是噪声。连接电缆的插头应当有多少根引脚以及各引脚应如何连接。
   三是网线为什么叫双绞线?网线的为什么有8根线分别做什么用的?如何做网线?我们知道两个平行的物体间会有电容,电容的大小和两个物体的相对面积正相关。如果网线很长,就意味着相对面积大,电容也大,这样就对网线产生平行电容干扰。把网线两两的绞起来,可以减少相对面积,也就减少了平行电容干扰。网线的8根线我们实际上只用了4根两对,另外的4个是作为备用。4根网线中一根是电源、一根是接地、一根用于发数据、一根用于接收数据,所以以太网是全双工通信。这部分的知识应该可以跟你们维护电台和VHF对应起来。
   下面我用数据的封装和解封装过程帮大家把网络体系结构给串一下。数据发送的时候需要对数据进行封装。在传输层会给数据加上一个TCP或UDP的头部,得到一个数据段或消息,然后就往网络层送。在网络层,数据会加上一个IP头,得到一个数据包,然后再传给数据链路层,由于链路层需要能区分数据的起始,因此会在头部加一个MAC头,同时在尾部加一个FCS用于表示数据的结束,得到一个数据帧。最后,送到物理层,物理层不会再做任何加工,仅仅是简单的把比特流给发送出去。
   解封的过程刚好和封装过程相反,数据从物理层逐层向上送,送的过程逐层去掉相应的头部,最总把数据送给应用层使用。如果大家觉得这样讲还是有些抽象,可以用我们之前给的一个叫WinShark的抓包软件,把数据抓下来看看,这里我只简单的操作一下。WinShark是一个非常好的工作,根据我之前给的教程,结合我们今天讲的内容,你们自己去实践一下,应该能降低你们学习的难度。
   今天的内容就讲到这里,我们介绍了计算机网络体系结构面临的问题、历史演进、设计理念和五层体系结构,重点介绍五层体系结构中,各层的功能和学习要点,希望对大家以后的工作和学习有帮助。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 197,368评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,941评论 2 374
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 144,369评论 0 326
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,848评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,719评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,505评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,904评论 3 388
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,528评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,819评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,848评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,652评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,468评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,912评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,095评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,389评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,906评论 2 343
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,120评论 2 339

推荐阅读更多精彩内容