| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 系统运维 -> 计算机网络知识总结---第一章概述 -> 正文阅读 |
|
|
[系统运维]计算机网络知识总结---第一章概述 |
一.使用计算机网络1.商业应用资源共享目标:让网络中的任何人都能都可以访问程序设备,尤其是数据,并且让这些资源和用户所处的物理位置无关。 虚拟专用网络(VPN,Virtual Private Networks):将不同地点的单个网络联结成一个扩展的网络。 服务器(Server):存储性能强大的高性能计算机。通常集中在一起。服务器是一个概念,可以是一台真正的服务器,也可以是一个集群,一个数据中心。 **网络:**指的是用于传输数据的通信网络,包括网卡、网线、交换机等网络设备和软件。支持客户机与服务器之间的信息传递。 Client-Server模型:以服务器为中心,每个客户端通过服务器存取、访问资源。
2.家庭应用peer-to-peer model(P2P):采用一种对等的通信技术 每台设备既可以是服务器,也可以是客户机,关系对等(平等) 用户之间是Connected,主要用软件支持,如资源的定位,数据传递路径的确定等。每个节点需要有路由功能。
3.移动用户无线网络:电话公司经营的蜂窝网络和无线热点hotspot两种 无线和移动的区别:Wireless and mobile are related but different:
二.网络硬件分类是网络设计中首先考虑的问题,包括当前能够使用的组网技术、网络的规模、组网的目的等都与分类有关。 常见的分类技术:传输技术,网络尺度,介质类型等。 最基本的要求:数据送达;资源使用高效。 1.传输技术(1)广播式链路BroadCast Links
总线网络使用硬件实现。
(2)点到点链路Point-to-Point Links环网络使用**硬件+软件(桥功能)**实现 点到点链路将一对单独的机器连接起来。可能中间经过一个或多个中间机器。直接相连的两个机器是点到点链路的最简单的形式。点到点链路的确定过程称为路由。 通常在网络中存在多条不同长度的路由,因此,找到一条好的路由对点对点网络非常重要。 点-点传输只有一个发送方和一个接收方,也称为单播。
💡从一台机器发送方到接收方选择了子网中的A-C-E作为路由。 2.数据递交方式单播unicasting将数据发送给某个特定接收方的方式 广播broadcasting将数据发送给所有接收方的方式。只需要在地址字段中使用一个特殊的编码,那么网络中每一台机器都会接受该包,并对其进行处理。同一时刻只能有一台机器正在发送信息。 组播multicasting将数据发送给某些接收方的方式。
地址Address完成数据递交功能时对一台、多台、所有机器的一种表达方式。 根据完成功能时所处的抽象层次,地址的表达方式也会不同。 常见的地址有网卡地址(物理地址)、网络层地址、端口号等。 地址分为单播地址、广播地址和组播地址。 地址根据通信双方的角色,分为发送方地址(源地址)和接收方地址(目的地址)。 ?地址使用方式:每个机器接收到信息后,会根据信息携带的地址决定自己的处理。 ?常见的地址使用方式有: 常规接收:接收到信息的每个机器根据信息中携带的目的地址判断信息是否发送给自己,从而决定接收或拒绝。 过滤功能:根据源地址或目的地址的组合,决定是否接收或拒绝。 3.网络尺度Network Scale网络尺度或网络规模,根据距离和接入网络的机器的数量等作为分类依据。
个域网:一米见方 局域网:同一个房间、建筑物、园区 城域网:同一座城市 广域网:同一个国家、大陆 互联网:同一个行星 个域网PAN:允许设备围绕着一个人进行通信。一个常见例子是计算机通过无限网络与其外围设备连接。 局域网LAN:局域网是一个私有网络,是由一个组织投资、设计、维护、使用的网络。Cisco公司给出的定义是没有使用通信部门的公共网络的网络。 规模一般覆盖一个办公室、一个楼层、一栋楼、几栋楼或一个校园 。校园网和企业网一般属于局域网。 常见的类型根据使用的传输技术的不同,网络设备不同,分为共享式局域网和交换式局域网;或根据连接介质的不同,分为有线局域网和无线局域网。另外,通过添加标签和相应的处理软件,组织虚拟局域网等。 ?共享式局域网一般采用广播链路。注意:链路是一个逻辑上的概念,可能包含一条或多条物理线路。指的是一个广播域,信号能够传递到网络上所有节点。 ?交换式局域网一般采用点到点链路。是由交换设备连接的多条点到点链路。注意:交换式网络的重点在交换设备。 城域网MAN:范围覆盖一个城市。典型的例子为有线电视网。 初期的有线电视网只支持单向内容传播。现在的有线电视网可以支持双向数据传播。 广域网WAN:围覆盖一个国家、地区或大陆。 Subnet(子网)是由ISP运营管理的骨干网络,用于连接不同城市或地区的网络。层次化特征。 通信子网由传输线路与交换节点组成。主要功能集中在交换节点。使用点到点链路传输技术。 传输线路负责在机器之间移动比特。可以是铜线光纤甚至是无限链路。 交换元素(交换机)是专用的计算机,负责连接两条或两条以上的传输线路。交换节点为每个入境(Incoming)数据确定一个出境(Outgoing)线路。称为路由或交换。 互联网Internet交换节点为每个入境(Incoming)数据确定一个出境(Outgoing)线路。称为路由或交换。 不同网络之间使用的技术不同,可能隶属于不同的组织,需要网络软件的支持。 网关gateway:连接两个或多个网络提供必要转换的机器,硬件和软件方面的总称。 三.网络软件?💡 网络软件需要支持不同网络之间不同需求的数据传输服务,是一个巨大的工程问题(Huge Engineering problem)。 一般采用“分而治之”的策略,将整个网络软件功能分为多个小的功能模块分别加以解决。 解决每个小的问题时工作环境、现有技术手段都可能不同,并会随着时间发生变化,为了限制变化带来的影响,需要采用封装技术。 尽量减少不同模块之间的相互调用。 1.协议层次结构
从分布式系统角度考虑网络软件的设计与实现网络软件需要支持不同用户之间的通信需求,很多功能需要用户之间协作才能完成。所以,网络软件是一个分布式系统。 每个小的功能模块也是一个分布式系统,需要通信双方的对等模块协作完成。 对等模块指的是协作完成同样功能的模块,也称为对等体(peer)。 联盟:在现实中,协作完成同样功能的对等体组成一个联盟。需要遵守联盟内部的规则或约定。 每个联盟实现特定的功能,为了实现某种大的功能,需要多个联盟共同合作完成。 为了更简单、更可控、更合理地共同完成功能,联盟之间应该尽量少地互相调用。理想方式为每个联盟依托某个联盟的功能,完成自己的某种功能,为其它联盟使用。即采用层次化模型。 为了避免联盟进化对其它联盟的影响,联盟的规则或约定只对联盟内部成员可见并遵守,对联盟外部成员不可见。即满足封装概念。 一个实例:邮政系统 邮政联盟由各个国家(城市)的邮局组成。用户按照格式填写信封并付邮资,每个城市的邮局负责将发往外地的信件收集并根据目标地址分类,打成邮袋。通过运输联盟发往目标城市。到达目标城市后,由当地邮局送往目标用户。 两个联盟:邮政联盟和运输联盟。邮政联盟为用户提供信件传递功能;运输联盟为邮政联盟提供城市之间的邮袋传递功能。 两次调用:用户通过信封调用邮政联盟的功能;邮政联盟通过邮袋调用运输联盟的功能。 两种内部规则:不同邮局之间的内部约定;不同运输公司之间的内部约定。 对用户而言,只有邮政联盟可见,通过使用邮政联盟的功能就可以完成信件在任意两个用户之间的递交。邮政联盟为了完成对用户承诺的功能,除了位于不同城市的邮局根据信封内容完成城市内部的信件递交功能以外,还需要针对不同目标城市对信件分拣,并封装为邮袋(每个城市一个),然后使用运输联盟的功能完成邮袋在不同城市之间的递交。 运输联盟对邮政联盟可见,对用户不可见(用户不关心)。 每个联盟对应一个层(Layer),联盟实现的功能称为层提供的服务(Service),联盟内部协作完成服务的多个对等体称为本层的对等体(Peer)。 层次模型中,每个层只对上下层可见,对其他层不可见。 用户通过信封调用邮政联盟提供的服务;邮政联盟通过邮袋调用运输联盟提供的服务。信封和邮袋称为接口。 信封上的内容(收信人地址、发信人地址、邮资、邮戳等)确定了用户和邮政联盟之间的合同,邮袋上的内容(到达城市、出发城市、出发时间、到达时间、运输费用等)确定了邮政联盟和运输联盟之间的合同。这些内容称为接口参数。 层次模型中,上层通过接口调用下层的服务。 这些联盟内部为了实现联盟服务所进行的约定或规则的集合称为协议。 协议:从计算机编程角度,为了完成某种功能,最基本的方式是“数据结构+算法”。数据结构是双方交互的内容,称为协议字段;运行在各个对等体上针对协议格式的处理操作集合称为协议算法。 邮政联盟接收用户信件后,根据信件类型,在信件上添加额外的标签,联盟内的各个邮局根据标签执行相应的操作。如根据普通信件、快件、挂号信件等,添加不同的标签,执行不同的操作。普通信件优先级最低,可以4小时收集处理一次;快件实时收集处理;挂号信需要回执等。根据信件的时间需求,安排不同的运输方式等。 运输联盟接收到邮袋递交任务后,根据任务需求不同,在邮袋上添加额外的标签,联盟内的各个运输实体根据标签执行相应的操作。如规划不同的线路、运输方式等。 每个联盟内部使用的标签就是本联盟的协议字段,联盟内部实体针对标签执行的操作就是本联盟的协议算法。 封装:每个层为了完成本层的服务(功能),发送对等体上运行的协议算法需要对上层交付的对象添加额外的协议字段(标签,协议字段赋值,交互的内容),使得本层其它对等体能够根据协议字段的取值执行相应的操作(协议算法,每个对等体上运行)。 解封装:某层协议的目的对等体接收到带有本层协议字段(标签)封装的对象后,根据标签执行相应的操作,完成服务(功能)后,去掉标签(本层协议字段),将对象递交给上层。 ?💡 通过封装与解封装,某层协议的协议字段与协议算法只对本层对等体可见。即标签和针对标签的算法只对本层有效。 在邮政系统中,邮政联盟接收用户的邮件,并将信件按照用户与邮政联盟的约定递交给目标用户。运输联盟接收邮政联盟的邮袋,并将邮袋按照与邮政联盟的约定递交到目标城市。用户感觉不到运输联盟的存在。 信件的实际递交过程:寄信人将信件递交给本地邮局,本地邮局在信封上贴上标签,并根据标签将信件在本地处理;将信件打包成邮袋后递交给本地运输公司;本地运输公司为邮袋贴上标签,并根据标签安排邮袋的运输。运输联盟将邮袋递交到目的城市,去掉邮袋上的标签,将邮袋递交给当地邮局;当地邮局根据信封上的标签将信件递交给收信方。 去掉标签表明按照要求完成任务(实现了本层功能。) 虚拟通信:在邮政系统中,邮政联盟中位于不同地点的邮局通过标签交换与对标签的处理协作完成信件递交的功能,但是真正的信件传递过程是借助运输联盟完成的。两个邮局之间并没有直接通信,而是通过标签交换完成的,称为虚拟通信。 在一个具有多个联盟的系统中,一个联盟内部的对等体之间通过虚拟通信协作完成本联盟提供的服务。 在一个具有多个层次的分布式的系统中,每个层的对等体通过协议完成本层的服务,对等体之间是一个借助协议完成服务的虚拟通信过程。 每层的协议实现可以根据场景不同而变化,也可以随着时间与技术的进步而演化,**只要提供的服务与接口不变,**则其它层不会受到这些内部变化的影响。
💡 1.每一层的协议接口和它的对等体之间进行虚拟通信 💡 2.每一层只能调用他的下一层,将数据和信息传递给下一层,直到传递到最底层。第一层下面是物理介质(physical medium),通过它进行实际通信。 💡 3.每一对相邻层次之间的是接口,定义了下层向上层提供哪些原语操作和服务。 💡 4.层和协议的集合叫做网络体系结构(network architecture)
💡 这是两个不同哲学家之间通信,他们俩会的语言不同,于是分别雇佣了翻译,两个翻译都雇了一位秘书。分别是第二层和第一层的对等进程。两个翻译都使用荷兰语交流,使用什么语言由第二层对等进程决定。每个进程加入某些专门给他的对等实体传递的新兴,这部分不会被传递到上一层。
💡 向五层网络的最顶层通信。假设第五层的一个进程产生了一个消息M,将他传递给第四层。第四层在消息前面加了一个头(header),用来标识该消息,并把结果传递给第三层。该头包含了一些控制信息,例如地址,消息顺序、大小时间等,主要用于第四层的目标机器用来识别消息。对于许多网络来说,**第四层对传递消息的大小没有任何限制,但是几乎所有第三层协议对此总会强加一个限制,因此第三层会把入境消息分成较小的单元,即数据包或包(packet),并在每个数据包之前加上第三层的头。**这个例子M被分为两部分,M1和M2,这两部分内容是被单独传输的。 💡 第3层决定哪些使用输出线路,并把分组传递给第2层。第2层不仅要在每个信息之前加上一个头,还要在每个信息之后加上一个尾,然后将结果传输单元送给第1层进行物理传输。在接收端机器上,消息自底逐层向上传递,在传递过程中各个头被逐层剥离。 2.网络层次问题1.可靠性是保证网络正常运行的设计问题,即使网络由本身并不可靠的组件所构成。 想象数据包中的比特穿越网络时的情形。由于存在电气噪声、随机无线信号、硬件缺陷、 软件错误等原因,其中的某些比特到达接收端时已经遭到了损坏(即被逆转了)。我们发现 并修复这些错误的可能性如何? 从接收到的信息中发现错误所用的一种机制是检错(error detection)编码;然后重新 传输接收到的不正确信息,直到它被正确接收为止。更强大的编码不仅能检错,还能纠错 (error correction),即从最初收到的可能不正确的比特中恢复正确的消息。 2.另一个可靠性问题是找到通过网络的工作路径。在源和目的地之间经常存在多条路径, 而且在一个大型网络中可能有一些链路或路由器偶尔发生故障。假设德国的网络出现了故 障,那么从伦敦发送到罗马的数据包如果选择一条经过德国的路径将注定无法通过,但我 们可以把从巴黎发往罗马的数据包改道经过伦敦到达罗马。网络应该能自动做出这种路由 决策。这个主题就是所谓的路由(routing)。 3.第二个设计问题涉及网络演进。随着时间的推移,网络的增长越来越大,出现的新设 计需要与现有网络连接。 由于网络上有许多计算机,每一层在特定的消息中都需要一种机制来标识发送方和接 收方。这种机制在下层和高层分别称为寻址(addressing)和命名(naming)。 3.面向连接与无连接服务Connection-Oriented vs. Connectionless面向连接的服务(connection-oriented service)是按照电话系统建模的。当你想给某人 打电话时,首先要拿起话机,拨对方的号码,然后说话,最后挂机。类似地,为了使用面 向连接的网络服务,服务用户首先必须建立一个连接,然后使用该连接传输数据,最后释 放该连接。这种连接最本质的方面在于它像一个管道:发送方把对象(数据位)压入管道 的一端,接收方在管道的另一端将它们取出来。在绝大多数情况下,数据位保持原来的顺 序,所以数据位都会按照发送的顺序到达。 无连接服务(conncetionless service),这是按照邮政系统建模的。每个报文(信件)都携带了完整的目标地址,每个报文都由系统中的中间节点路由,而且路由独立于后续报文。报文(message)在不同的上下文中有不同的称呼;数据包/包 (packet)是网络层的报文。如果中间节点只能在收到报文的全部内容之后再将该报文发送给下一个节点,那么我们就称这种处理方式为存储-转发交换(store-and-forward switching)。有别于此的另一种处理方式是在报文还没有被全部接收完毕之前就向下一个节点传输,这种处理方式称为直通式交换(cut-through switching)。通常来说,当两个报文被发往同一个目的地时,首先被发送的报文将会先到达。然而,先发送的报文可能被延迟,因而后发送的报文比它先到达,这种情况也是有可能发生的。
4.服务原语Service Primitives |
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/28 21:46:22- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |