第一章 引言
概述
本章介绍了计算机网络的一系列基本概念,主要包括:
- 网络划分:例如组播、广播,局域、广域网。
- 协议层次:协议、接口与服务之间的关系。
- 面向连接和无连接/可靠和不可靠:对网络服务的一些描述
- 参考模型:OSI 参考模型和 TCP/IP 参考模型。
其他的也很重要,但后面基本都会再次出现。
1.1 Uses of Computer Networks (使用场景)
计算机网络的定义
Computer network(计算机网络): a collection of autonomous computers interconnected by a single technology. (一些互相连接的、自治的计算机的集合)
把分布在不同地点且具有独立功能的多个计算机系统通过通信设备和线路连接起来,在功能完善的网络软件和协议的管理下,以实现网络中资源共享为目标的系统。
一般不会让默写整个定义,需要重点关注加粗的内容
网络概念的三重含义
① 必须有两台或两台以上的具有独立功能的计算机系统相互连接起来,以达到共享资源为目的。
② 两台或两台以上的计算机连接,互相通信交换信息,必须有一条通道。这条通道的连接是物理的,由物理介质来实现。
③ 计算机系统之间的信息交换,必须有某种约定和规则,这就是协议。这些协议可以由硬件或软件来完成。
计算机网络和分布式系统的区别
给出例子要学会区分
主要是看在使用的时候关不关心底层的网络的架构,如果不关心是分布式系统,登陆的是某个节点,那就是计算机网络
business applications 远程服务器上如何调用服务器上的资源
分布式系统
只是一个模型或范型
通常在操作系统之上有一层软件负责实现这个模型,这个软件成为中间件(middleware)
分布式系统是建立在网络之上的软件系统,有高度的内聚性和透明性。
内聚性:每一个数据库分布节点高度自治,有本地数据库管理系统透明性:每个数据库分布节点对用户应用来说是透明的,用户感觉不到数据是分布的 Internet 是最著名的计算机网络,万维网是最著名的分布式系统,万维网(软件)运行于 Internet(硬件)上
1.1.1 Business Applications 商业应用
公司使用计算机和网络通过客户机-服务器模型(client-server model)实现资源共享(resource sharing)
此处的网络指的是用于传输数据的通信网络,包括网卡、网线、交换机等网络设备和软件。支持客户机与服务器之间的信息传递。
服务器是一个概念,可以是一台真正的服务器,也可以是一个集群,一个数据中心。
1.1.2 Home Applications 家庭应用
P2P
P2P(Peer to Peer network)对等网络:对等网络又称工作组,网上各台计算机有相同的功能,无主从之分,一台计算机都是既可作为服务器,设定共享资源供网络中其他计算机所使用,又可以作为工作站,没有专用的服务器,也没有专用的工作站。对等网络是小型局域网常用的组网方式。
它的作用在于,减低以往网路传输中的节点,以降低资料遗失的风险。
- 每台设备既可以是服务器,也可以是客户机,关系对等(平等)
- 用户之间是Connected,主要用软件支持,如资源的定位,数据传递路径的确定等。每个节点需要有路由功能。
G:government,B:business,C:consumer
1.1.3 Mobile Users 移动用户
考试会考分辨移动用户,只需要考虑设备可以方便移动
例:笔记本电脑插网线使用,仍是移动用户;台式机连接无线网络不是移动用户
1.1.4 Social Issues 社会问题
1.2 Network Hardware (网络硬件)
传输链路 广播式链路 点到点链路
常见的传输技术(链路)有两种,广播式链路(Broardcast Links)和点到点链路(Point-to-Point Links)
广播式链路(Broardcast Links)中,通信信道被网络上所有机器所共享。
一台机器发送的信息,会沿着通信信道传播,到达网络上其它机器(无线信号可能不能到达所有机器,带来了新的复杂性)。
总线网络使用硬件实现,环网络使用硬件+软件(桥功能)实现。
点到点链路(Point-to-Point Links)将一对单独的机器连接起来。可能中间经过一个或多个中间机器。直接相连的两个机器是点到点链路的最简单的形式。点到点链路的确定过程称为路由。
broadcasting、multicasting、unicasting
网络中常见的数据递交方式
- 单播(Unicast):将数据发送给某个特定接收方的方式。
- 广播(Broadcast):将数据发送给所有接收方的方式。
- 组播/多播(Multicast):将数据发送给某些接收方的方式。
这些概念属于网络功能性的概念,与具体的网络拓扑有区别,是对网络抽象后封装的功能。
无论网络采用什么样的物理拓扑(广播网络或点到点网络),都可以支持以上的三种数据递交方式。
注意传输链路分类和数据递交方式分类的区别
根据传输模式,网络可以划分为:
- 广播(broadcasting):主机之间一对所有的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要)。广播可以看成是一种特殊的组播形式。
- 多播/组播(multicasting):主机之间一对一组的通讯模式,也就是加入了同一个组的主机可以接受到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据。
主机可以向路由器请求加入或退出某个组,网络中的路由器和交换机有选择的复制并传输数据,即只将组内数据传输给那些加入组的主机。这样既能一次将数据传输给多个有需要(加入组)的主机,又能保证不影响其他不需要(未加入组)的主机的其他通讯。
- 单播(unicasting):主机之间一对一的通讯模式,网络中的交换机和路由器对数据只进行转发不进行复制。
地址(Address):
完成数据递交功能时对一台、多台、所有机器的一种表达方式。
根据完成功能时所处的抽象层次,地址的表达方式也会不同。
常见的地址有网卡地址(物理地址)、网络层地址、端口号等。
地址分为单播地址、广播地址和组播地址。
地址根据通信双方的角色,分为发送方地址(源地址)和接收方地址(目的地址)。
地址使用方式:每个机器接收到信息后,会根据信息携带的地址决定自己的处理。常见的地址使用方式有:
常规接收:接收到信息的每个机器根据信息中携带的目的地址判断信息是否发送给自己,从而决定接收或拒绝。
过滤功能:根据源地址或目的地址的组合,决定是否接收或拒绝。
探讨举例:广播网络中单播、组播、广播功能的实现;点到点网络中单播、组播、广播功能实现的思考。
LAN、MAN、WAN、Internet
Network Scale,网络尺度或网络规模,根据距离和接入网络的机器的数量等作为分类依据。
每年都考网络规模 需要记忆:几种规模的名字,根据例子判断属于哪种网络(一般不问Internet),记住例子
不同规模的网络采用的传输技术,最终的网络设计方案也会不同。
Scale | Type |
Vicinity | PAN (Personal Area Network) 个域网 |
Building | LAN (Local Area Network) 局域网 |
City | MAN (Metropolitan Area Network) 城域网 |
Country | WAN (Wide Area Network) 广域网 |
Planet | The Internet (network of all networks) |
1.2.1 PAN(个域网)
PAN是一个私有网络,通常是指连接用户的主设备和它的周边设备的网络。
例子1:连接电脑和无线鼠标、键盘、打印机等的无线网络;
例子2:手机和穿戴式设备(手表、手环、无线耳机)通过蓝牙组成的PAN
常用的PAN连接技术包括Bluetooth,RFID,红外,etc。
1.2.2 LAN(局域网)
局域网是一个私有网络,是由一个组织投资、设计、维护、使用的网络。Cisco公司给出的定义是没有使用通信部门的公共网络的网络。
规模一般覆盖一个办公室、一个楼层、一栋楼、几栋楼或一个校园 。校园网和企业网一般属于局域网。详细内容参见本书第4章。
常见的类型根据使用的传输技术的不同,分为共享式局域网和交换式局域网;或根据连接介质的不同,分为有线局域网和无线局域网。另外,通过添加标签和相应的处理软件,组织虚拟局域网等。
共享式局域网一般采用广播链路。
注意:链路是一个逻辑上的概念,可能包含一条或多条物理线路。指的是一个广播域,信号能够传递到网络上所有节点。分析环网的特点。
交换式局域网一般采用点到点链路。
是由交换设备连接的多条点到点链路。注意:交换式网络的重点在交换设备。
概念区分:
- 局域网主要是一种根据网络规模分类的类别。
- 共享式或交换式局域网主要依据网络设备区分。详见第四章网络设备部分。
许多有线局域网的拓扑结构是以点到点链路为基础的,俗称以太网的IEEE 802.3是迄今为止最常见的一种有线局域网。每台计算机按照以太网协议规定的方式运行,通过一条点到点链路链接到一个盒子,这个盒子称交换机(Switch),一台交换机有多个端口,每个端口连接一台计算机。交换机的工作是中继与之连接的计算机之间的数据包,根据数据包中的地址来确定这个数据包要发送给哪台计算机。
1.2.3 MAN(城域网)
MAN(Metropolitan Area Network)的范围覆盖一个城市。典型的例子为有线电视网。
初期的有线电视网只支持单向内容传播。现在的有线电视网可以支持双向数据传播(单人点播)。
1.2.4 WAN(广域网)
广域网包含互联网 广域网是一个复杂的概念,一个广域网可能包含多个广域网
WAN(Wide Area Network)的范围覆盖一个国家、地区或大陆(例:欧盟)。
Subnet(子网)是由ISP运营管理的骨干网络,用于连接不同城市或地区的网络。层次化特征。
通信子网由传输线路与交换节点组成。
- 传输线路(transmission line)负责在机器之间移动比特
- 交换元素(switching element)或简称为交换机(switch)是专用的计算机,负责连接两条或两条以上的传输线路。当数据到达一条入境(Incoming)线路时,交换元素必须选择一条出境(Outgoing)线路把数据转发出去。
这些负责交换的计算机现在成为路由器(router)
主要功能集中在交换节点。使用点到点链路传输技术。
此处与局域网是一个区别,广域网不会使用广播链路传输技术。
Internet服务提供商:Internet Service Provider (ISP),面向公众提供Internet接入服务
子网经营者称为网络服务提供商:Network service provider(NSP) 是一家拥有、运营和销售互联网骨干基础设施和服务访问的公司。NSP 的主要客户是其他服务提供商,包括 ISP,而 ISP 又向企业和消费者销售 Internet 访问。
国内没有NSP
虚拟专用网络 VPN (Virtual Private Network)
1.2.5 互联网络
一组相互连接的网络称为互联网络(internetwork)或互联网(internet)
而全球范围内使用的因特网首字母要大写Internet
在互联网中,一个自治系统(autonomous system,AS)是一个有权自主地决定在本系统中应采用何种路由协议的小型单位。这个网络单位可以是一个简单的网络也可以是一个由一个或多个普通的网络管理员来控制的网络群体,它是一个单独的可管理的网络单元(例如一所大学,一个企业或者一个公司个体)。一个自治系统有时也被称为是一个路由选择域(routing domain)。一个自治系统将会分配一个全局的唯一的号码,有时我们把这个号码叫做自治系统号(ASN)。
1.3 Network Software (网络软件)
protocol、layer、interface、service
1.3.1 协议层次结构
为了降低网络设计的复杂性,绝大多数网络都组织成一个层次栈(a stack of layer)或分级栈(a stack of level),每一层都建立在其下一层的基础之上。层的个数、每一层的名字、每一层的内容以及每一层的功能各个网络不尽相同。每一层的目的是向上一层提供特定的服务,而把如何实现这些服务的细节对上一层加以屏蔽。从某种意义上讲,每一层都是一种虚拟机,它向上一层提供特定的服务。
其基本思想是一个特定的软件(或硬件)向其用户提供某种服务,但是将内部状态和算法的细节隐藏起来。
一台机器上的第n层与另一台机器上的第n层进行对话,该对话中使用的规则和约定统称为第n层协议。基本上,所谓协议(protocol)是指通信双方就如何进行通信的一种约定。
从计算机编程角度,为了完成某种功能,最基本的方式是“数据结构+算法”。数据结构是双方交互的内容,称为协议字段;运行在各个对等体上针对协议格式的处理操作集合称为协议算法。
不同机器上构成相应层次的实体称为对等体(peer)。
正是这些对等体为了实现彼此沟通才使用协议来进行通信。
实际上,数据并不是从一台机器的第n层直接传递到另一台机器的第n层。相反,每一层都将数据和控制信息传递给它的下一层,这样一直传递到最低层。第1层下面是物理介质(physical medium),通过它进行实际的通信。
在每一对相邻层次之间的是接口(interface)。
接口定义了下层向上层提供哪些原语操作和服务。(告诉上面的进程如何访问本层,规定了有哪些参数以及结果是什么,但并未说明过程和服务方式)
服务:是指下层为紧相邻的上层提供的功能调用,由一组原语(primitive)构成的正式说明,用户可以通过这些原语来访问该服务
层和协议的集合称为网络体系结构(network architecture)
1.3.2 层次设计问题
错误控制、流量控制
差错控制(Error Control):是在数字通信中利用编码方法对传输中产生的差错进行控制,以提高数字消息传输的准确性。
流量控制(Flow Control):是指在发送端和接收端之间的点对点通信量的控制。流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来的及接收。
拥塞控制(Congestion Control):必须确保通信子网能够传送待传送的数据,是一个全局性的问题,涉及网络中所有的主机、路由器以及导致网络传输能力下降的所有因素。
1.3.3 面向连接服务与无连接服务
面向连接与无连接的服务
在计算机网络中,面向连接和无连接是两种不同的通信服务模式。
- 面向连接的服务(connection-oriented service)是按照电话系统建模的,服务用户首先必须建立一个连接,然后使用连接传输数据,最后释放连接,本质上像一个管道
- 无连接的服务(connectionless service)是按照邮政系统建模的,每一个报文都携带者完整的目的地址,每个报文都由系统中的中间节点路由,并且独立于后续的报文。
二者的区别在于:
- 面向连接的要求建立连接,因而没有传输的数据没有必要再标明传输的目的地址;而无连接的则对每个报文都由独立的目标地址。
- 一般来说,面向连接的可靠性较高,协议相对复杂,传输的数据按照发送顺序到达;而无连接的可靠性较差,协议相对简单,常出现乱序,重复和丢失现象。
可靠和不可靠的服务
可靠服务:从来不丢失数据的一种服务。一般情况下,可靠服务都要求接收方向发送方确认收到的每个报文
不可靠的服务:不会给发送方反馈任何确认消息,不保证数据不丢失
为什么要同时存在可靠服务与不可靠服务?
- 在给定的层次可靠通信并不总是可以使用的
- 为了提高可靠服务而导致的固有延迟可能是不可接受的
面向连接的服务是可靠的吗?
面向连接的服务只是在发送方和接收方之间建立连接,它并不能保证发送的数据流能准确无误的到达接收方。面向连接的服务同样可以分为可靠的面向连接服务和不可靠的面向连接服务。前者主要包括报文序列、字节流,后者如数字化语音。
1.3.4 服务原语 primitive
一个服务由一组原语正是说明,用户进程通过这些原语来访问该服务。
可用的原语取决于底层所提供的服务。
1.3.5 服务与协议的关系
服务与协议的关系
服务是指某一层向他上一层提供的一组原语。服务定义了该层准备代表其用户执行哪些操作,但是它并不涉及如何实现这些操作。服务与两层之间的接口有关,低层是服务提供者,而上层是服务用户。
与此不同的是,协议是一组规则,规定了同一层上对等实体之间所交换的数据包或者报文的格式和含义。对等实体利用协议来实现它们的服务定义,它们可以自由地改变协议,只要不改变呈现给它们用户的服务即可。
按照这种方式,服务和协议是完全相分离的,这是任何一个网络设计者应该很好理解的关键概念。
强调:
服务涉及层与层之间的接口
协议涉及不同机器上两个对等实体之间发送的数据包。
1.4 Reference Models (参考模型)
1.4.1 OSI参考模型
OSI参考模型
OSI参考模型本身不是一个网络体系结构,只是指明了网络分为几层和每层应该做些什么,没有定义详细的服务和实现服务所用的协议。
OSI模型分为七层,由低到高分别为:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。
名称 | 数据格式 | 功能 | 设备 |
物理层 | 二进制比特流 | 1) 相邻两节点之间,实现点到点的传输过程,2) 建立、维护和取消物理连接。 | 光纤、集线器、双绞线 |
数据链路层 | 数据帧 Frame | 保证相邻两节点之间的可靠传输,讲一个原始的传输设施转变成一条逻辑的传输线路。 | 交换机、网卡 |
网络层 | 数据包 Packet | 控制子网运行过程,确定传输路径。 | 路由器 |
传输层 | 数据段 Segment | 为网络层找到的路径提供可靠的传输。 | ㅤ |
会话层 | 数据 Data | 允许不同机器上的用户之间建立会话。 | ㅤ |
表示层 | 数据 Data | 关注所传递的信息的语法和语义,取消格式差异。 | ㅤ |
应用层 | 数据 Data | 包含各种各样的协议。 | ㅤ |
第n层的问题若无法完全解决,则需要依靠上一层。如物理层实现了点到点传输,而链路层使此传输变得可靠;网络层确定了传输路径,而传输层使此传输变得可靠。
1.4.2 TCP/IP参考模型
TCP/IP参考模型
TCP协议用在传输层,IP协议用在网络层。
TCP/IP协议划分了四层网络,自下而上分别为:
- 链路层:对应OSI参考模型中的物理层和数据链路层,负责监视数据在主机和网络之间的交换。该层主要有地址解析协议(ARP)工作。
事实上,TCP/IP本身并未定义该层的协议,而由参与互连的各网络使用自己的物理层和数据链路层协议,然后与TCP/IP的网络接入层进行连接。
- 互联网层:对应OSI参考模型中的网络层,解决主机到主机的通信问题。该层通过重新赋予主机一个IP地址来完成对主机的寻址,负责数据包在多种网络中的路由。该层主要有网际协议(IP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)在工作。
IGMP 是允许多个设备共享一个 IP 地址以便它们可以接收相同数据的协议,具体参见https://www.cloudflare.com/zh-cn/learning/network-layer/what-is-igmp/。ICMP 的主要目的是报告错误。当两个设备通过互联网连接时,ICMP 会生成错误以与发送设备共享,以防任何数据未到达其预期目的地。详见https://www.cloudflare.com/zh-cn/learning/ddos/glossary/internet-control-message-protocol-icmp/
- 传输层:对应 OSI 参考模型的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。运行了 TCP 和 UDP。
- 应用层:对应OSI参考模型的高层。
数据链路层与传输层的区别:
①数据链路层是两个相邻节点之间的通信
②传输层是两个主机上的进程之间相互通信,叫做两个端点
1.6 网络标准化
802协议、网络标准化
802.11协议限定在OSI七层网络模型的最低两层——数据链路层和物理层。
IEEE 802协议簇是指IEEE标准中关于局域网(LAN)和城域网(MAN)的一系列标准。IEEE 802中定义的服务和协议限定在OSI七层网络模型的最低两层,即数据链路层和物理层。实际上,IEEE802又将OSI的数据链路层分成了两个子层,分别是逻辑链路控制(LLC,Logical Link Control)和介质访问控制(MAC,Media Access Control)。几种重要的802协议:
- 802.3:以太网介质访问控制协议(CSMA/CD)及物理层技术规范。
- 802.11:无线局域网的介质访问控制协议及物理层技术规范。
- 802.15:个域网协议(蓝牙、ZigBee)。
- 802.16:宽带无线网。
IEEE802协议簇由IEEE802标准委员会维护。其中最广泛应用的协议有以太网(802.3)和WLAN(802.11)。每一个工作组专注一个方向,每个工作组由数字编号,比如目前从802.1编到了802.24。
因此,802.11协议是IEEE802标准委员会下属的无线局域网工作组制定的无线局域网标准。