计算机网络第七版(谢希仁)超详细整理
计算机网络概述计算机网络物理层计算机网络数据链路层计算机网络网络层计算机网络运输层计算机网络应用层计算机和网络已经成为当今信息时代的核心,是当前信息社会的命脉和发展知识经济的重要基础。
三类网络: 电信网络: 提供电话、电报及传真等服务 有线电视网络: 向用户传送各种电视节目 计算机网络: 使用户能在计算机之间传送数据文件 相对于前两种网络,计算机网络发展更快,作用更强。 1.1 计算机网络的定义
“网络”是一个统称,泛指把人或物互连在一起而形成的系统。目前计算机网络的精确定义并未统一。较好的定义是:计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
1.2 计算机网络的特点 通过计算机网络,用户之间可以彼此连通,资源的获取也会十分方便。 连通性 (Connectivity):上网用户之间都可以交换信息(数据,图片,音视频等) 共享性(Sharing):资源共享。可以共享信息、软件、硬件等资源
2.1 互联网概念 互联网,特指 Internet,是目前技术最为成功、应用最为广泛的计算机网络,是现代社会最为重要的基础设施。 互联网最先起源于美国,是由数量极大的各种计算机网络互连起来而形成的一个互连网络。它采用 TCP/IP 协议族作为通信规则,是一个覆盖全球、实现全球范围内连通性和资源共享的计算机网络。
当我们把若干个计算机网络互连起来,并能够相互通信,这样构成的是一个互连网 (internet),而我们日常口中所说的则是互联网 (Internet)。 internet(互连网)是一个通用名词,它泛指由多个网络节点(计算机、路由器等…)互连而成的网络。 而Internet(互联网或因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用 TCP/IP 协议族作为通信的规则,且其前身是美国的 ARPANET。
2.2 互联网基础结构发展的三个阶段
第一阶段:从单个网络 ARPANET 向互联网发展的过程。 1983 年,TCP/IP 协议成为 ARPANET 上的标准协议,使得所有使用 TCP/IP 协议的计算机都能利用互连网相互通信。 第二阶段:建成了三级结构的互联网。 它是一个三级计算机网络,分为主干网、地区网和校园网。 第三阶段:逐渐形成了多层次 ISP 结构的互联网。
互联网服务提供者 ISP (Internet Service Provider)。 任何机构和个人只要向某个 ISP 交纳规定的费用,就可从该 ISP 获取所需 IP 地址的使用权,并可通过该 ISP 接入到互联网。根据提供服务的覆盖面积大小以及所拥有的IP地址数目的不同,ISP 也分成为不同层次的 ISP:主干 ISP、地区 ISP和本地 ISP。
基于 ISP 的多层结构的互联网的概念示意图:
互联网已经成为世界上规模最大和增长速率最快的计算机网络,没有人能够准确说出互联网究竟有多大。互联网的迅猛发展始于 20 世纪 90 年代。由欧洲原子核研究组织 CERN 开发的万维网 WWW (World Wide Web) 被广泛使用在互联网上,大大方便了广大非网络专业人员对网络的使用,成为互联网的这种指数级增长的主要驱动力。
2.3 互联网的标准化
早期所有互联网标准都以 RFC 的形式在互联网上发表,且在这之前都要经过三个阶段:
互联网草案 (Internet Draft) ——有效期只有六个月。在这个阶段还不是 RFC 文档。建议标准 (Proposed Standard) ——从这个阶段开始就成为 RFC 文档。互联网标准 (Internet Standard) ——达到正式标准后,每个标准就分配到一个编号 STD xxxx。一个标准可以和多个 RFC 文档关联。后来简化为后两个阶段:建议标准,互联网标准,除了这两个标准文档外,还有其它三种标准文档:历史的、实验的和提供信息的 RFC 文档。
从互联网的工作方式上看,可以划分为两大块:
边缘部分: 由所有连接在互联网上的主机组成。用户可以直接使用的,进行通信或资源共享。核心部分:由大量网络和连接这些网络的路由器组成。为边缘部分提供服务的(连通性和交换)3.1 边缘部分
处在互联网边缘的部分就是连接在互联网上的所有的主机。这些主机又称为端系统 (end system)。端系统在功能上可能有很大的差别:小的端系统可以是一台普通个人电脑,具有上网功能的智能手机,甚至是一个很小的网络摄像头。大的端系统则可以是一台非常昂贵的大型计算机。
端系统之间的两种通信方式:
客户-服务器方式(Client/Server 方式),简称为 C/S 方式 客户 (client) 和服务器 (server) 都是指通信中所涉及的两个应用进程。而这个方式实际上值得就是进程之间服务和被服务。客户是服务的请求方,服务器是服务的提供方,两者都要使用网络核心部分所提供的服务。 对等方式( Peer-to-Peer 方式) ,简称为 P2P 方式。 对等连接是指两个主机在通信时并不区分哪一个是服务请求方还是服务提供方,只要两个主机都运行了对等连接软件 ( P2P 软件) ,它们就可以进行平等的、对等连接通信,双方都可以下载对方已经存储在硬盘中的共享文档。3.2 互联网的核心部分
网络中的核心部分要向网络边缘中的大量主机提供连通性,使边缘部分中的任何一个主机都能够向其他主机通信。在网络核心部分起特殊作用的是路由器 (router)。路由器是实现分组交换 (packet switching) 的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。
典型交换技术包括:电路交换、分组交换、报文交换等。互联网的核心部分采用了分组交换技术
电路交换 两个用户只需要一个连接就可以进行通信,当用户存在N多个时如果要实现两两连接,需进行 N(N –1)/2次连接。这种方法所需要的连接数量于用户数量的平方(N*N)成正比。当用户的数量增多时,就要使用交换机来完成全网的交换任务。每一个用户将自己的线路连接到交换机上,而交换机使用电路交换 (circuit switching)的方法,让用户彼此之间可以很方便地通信。
特点:电路交换必定是面向连接的。要经过三个阶段: 建立连接: 建立一条专用的物理通路,以保证双方通话时所需的通信资源在通信时不会被其他用户占用; 通信: 主叫和被叫双方就能互相通电话; 释放连接: 释放刚才使用的这条专用的物理通路(释放刚才占用的所有通信资源)。
问题:计算机数据具有突发性。这导致在传送计算机数据时,通信线路的利用率很低(用来传送数据的时间往往不到 10% 甚至不到 1% )。
分组交换 分组交换则采用存储转发技术。在发送端,先把较长的报文划分成较短的、固定长度的数据段,每一个数据段前面添加上首部(其中包含地址信息和控制信息)构成分组 (packet)。分组交换网以“分组”作为数据传输单元,依次把各分组发送到接收端,接收端收到分组后剥去首部还原成报文,最后,在接收端把收到的数据恢复成为原来的报文。
特点: 高效:份组成传输的过程中动态分配传输宽带,对通信链路是逐段占用 灵活:为每一个分组独立的选择最适合的转发路由 迅速:以分组作为传输单位,可以不先建立连接就能向其他主机发送分组 可靠:保证可靠性的网络协议;分布时多路由的分组交换网,使网络有很好的生存性。
问题: 分组在各结点存储转发时需要排队,这就会造成一定的时延,同时分组必须携带的首部也会造成开销
报文交换 早期,电报通信也采用了基于存储转发原理的报文交换 (message switching)。 但是报文交换的时延较长,从几分钟到几小时不等,已经基本上被淘汰。
三种方式的比较: 若要连续传送大量的数据,且其传送时间远大于连接建立时间,则电路交换的传输速率较快。而报文交换和分组交换不需要预先分配传输带宽,在传送突发数据时可提高整个网络的信道利用率。由于一个分组的长度往往远小于整个报文的长度,因此分组交换比报文交换的时延小,同时也具有更好的灵活性。
到目前为止,我国陆续建造了基于互联网技术的并能够和互联网互连的多个全国范围的公用计算机网络,其中规模最大的就是下面这五个:
中国电信互联网 CHINANET中国联通互联网 UNINET中国移动互联网 CMNET中国教育和科研计算机网 CERNET中国科学技术网 CSTNET计算机网络有多种类别。典型包括:
按照网络的作用范围进行分类 广域网 WAN (Wide Area Network):作用范围通常为几十到几千公里。 城域网 MAN (Metropolitan Area Network):作用距离约为 5~50 公里。 局域网 LAN (Local Area Network) :局限在较小的范围(如 1 公里左右)。 个人区域网 PAN (Personal Area Network) :范围很小,大约在 10 米左右。
若中央处理机之间的距离非常近(如仅 1 米的数量级甚至更小些),则一般就称之为多处理机系统,而不称它为计算机网络。
按照网络的使用者进行分类 公用网 (public network) :按规定交纳费用的人都可以使用的网络。 专用网 (private network) :为特殊业务工作的需要而建造的网络。
公用网和专用网都可以提供多种服务。如传送的是计算机数据,则分别是公用计算机网络和专用计算机网络。
用来把用户接入到互联网的网络 接入网 AN (Access Network),它又称为本地接入网或居民接入网。 接入网是一类比较特殊的计算机网络,用于将用户接入互联网。其本身既不属于互联网的核心部分,也不属于互联网的边缘部分。 接入网是从某个用户端系统到互联网中的第一个路由器(也称为边缘路由器)之间的一种网络,从覆盖的范围看,很多接入网还是属于局域网。从作用上看,接入网只是起到让用户能够与互联网连接的“桥梁”作用。
6.1 计算机网络的性能指标
速率:速率是计算机网络中最重要的一个性能指标,指的是数据的传送速率,它也称为数据率 (data rate) 或比特率 (bit rate),其常见的单位有: bit/s,或 kbit/s、Mbit/s、 Gbit/s等。(比特(bit)是计算机中数据量的单位,也是信息论中使用的信息量的单位。)
带宽:本身指信号具有的频带宽度,在计算机网络中,带宽用来表示网络中某通道传送数据的能力。表示在单位时间内网络中的某信道所能通过的“最高数据率”(bit/s)。
吞吐率:吞吐量 (throughput) 表示在单位时间内通过某个网络(或信道、接口)的数据量。常用于对现实世界中网络的测量。其受网络的带宽或网络的额定速率的限制。
时延:时延 (delay 或 latency) 是指数据从网络的一端传送到另一端所需的时间,有时也称为延迟或迟延。
发送时延:也称为传输时延。发送数据时,数据帧从结点进入到传输媒体所需要的时间。
传播时延:电磁波在信道中需要传播一定的距离而花费的时间。
处理时延:主机或路由器在收到分组时,为处理分组(例如分析首部、提取数据、差错检验或查找路由)所花费的时间。
排队时延:分组在路由器输入输出队列中排队等待处理所经历的时延。其长短往往取决于网络中当时的通信量。
总时延:发送时延、传播时延、处理时延和排队时延之和。必须指出,在总时延中,究竟是哪一种时延占主导地位,在进行具体分析。
时延带宽积:链路的时延带宽积又称为以比特为单位的链路长度。时延带宽积 = 传播时延 × 带宽。只有在代表链路的管道都充满比特时,链路才得到了充分利用
往返时间 RTT:互联网上的信息是可以进行双向交互的,有时我们会需要知道双向交互一次所需的时间。往返时间 RTT (round-trip time) 表示从发送方发送数据开始,到发送方收到来自接收方的确认,总共经历的时间(包括:各中间结点的处理时延、排队时延以及转发数据时的发送时延)。
利用率:分为信道利用率和网络利用率,信道利用率指出某信道有百分之几的时间是被利用的,完全空闲的信道的利用率是零。网络利用率则是全网络的信道利用率的加权平均值。信道利用率并非越高越好。当某信道的利用率增大时,该信道引起的时延也就迅速增加。
时延与网络利用率的关系:根据排队论的理论,当某信道的利用率增大时,该信道引起的时延也就迅速增加。网络当前的时延=网络空闲时的时延/(1-网络利用率 )
6.2 计算机网络的非性能特征:费用、质量、标准化、可靠性、可扩展性和可升级性、易于管理和维护
7.1 计算机网络体系结构
计算机网络是个非常复杂的系统,相互通信的两个计算机系统必须高度协调工作才行,而这种“协调”是相当复杂的。 “分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。
1974 年,美国的 IBM 公司宣布了系统网络体系结构SNA (System Network Architecture)。这个著名的网络标准就是按照分层的方法制定的。后来,为了使不同体系结构的计算机网络都能互连,国际标准化组织 ISO 于 1977 年成立了专门机构研究该问题。他们提出了一个试图使各种计算机在世界范围内互连成网的标准框架,即著名的开放系统互连基本参考模型 OSI/RM (Open Systems Interconnection Reference Model),简称为 OSI。但是这种标准也没有得到市场的认可,非国际标准 TCP/IP 却获得了广泛的应用。
7.2 协议与划分层次 计算机网络中的数据交换必须遵守事先约定好的规则,这些规则明确规定了所交换的数据的格式以及有关的同步问题,是计算机网络的不可缺少的组成部分。
网络协议 (network protocol),简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定,其内容可以是文字描述或者是让计算机能够理解的程序代码。 由三个要素组成:
语法:数据与控制信息的结构或格式 。语义:需要发出何种控制信息,完成何种动作以及做出何种响应。同步:事件实现顺序的详细说明。如果我们要进行分层处理,那么我们先要分析各层需要完成的主要功能:
差错控制:使相应层次对等方的通信更加可靠。流量控制:发送端的发送速率必须使接收端来得及接收,不要太快。分段和重装:发送端将要发送的数据块划分为更小的单位,在接收端将其还原。复用和分用:发送端几个高层会话复用一条低层的连接,在接收端再进行分用。连接建立和释放:交换数据前先建立一条逻辑连接,数据传送结束后释放连接。7.3 具有五层协议的体系结构
计算机网络的体系结构 (architecture) 是计算机网络的各层及其协议的集合。 体系结构就是这个计算机网络及其部件所应完成的功能的精确定义。实现 (implementation) 是遵循这种体系结构的前提下用何种硬件或软件完成这些功能的问题。体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。
OSI 的七层协议体系结构的概念清楚,理论也较完整,但是较为复杂且不实用,TCP/IP 是四层体系结构:应用层、运输层、网际层和网络接口层,但最下面的网络接口层并没有具体内容。因此往往采取折中的办法,即综合 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构 。
五层协议的体系结构:应用层 (application layer)、运输层 (transport layer)、网络层 (network layer)、数据链路层 (data link layer)、物理层 (physical layer)
7.4 实体、协议、服务和服务访问点
实体 (entity) 表示任何可发送或接收信息的硬件或软件进程。
协议与服务:协议控制两个对等实体进行通信的规则的集合,在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务要实现本层协议,还需要使用下层所提供的服务。 协议的实现保证了能够向上一层提供服务,本层的服务用户只能看见服务而无法看见下面的协议。 协议是“水平的”,即协议是控制对等实体之间通信的规则,服务是“垂直的”,即服务是由下层向上层通过层间接口提供的,上层使用服务原语获得下层所提供的服务。
服务访问点:同一系统相邻两层的实体进行交互的地方,称为服务访问点 SAP (Service Access Point),服务访问点SAP是一个抽象的概念,它实际上就是一个逻辑接口。
7.5 TCP/IP 的体系结构 路由器在转发分组时最高只用到网际层而没有使用运输层和应用层。 实际上,现在的互联网使用的 TCP/IP 体系结构有时已经发生了演变,即某些应用程序可以直接使用 IP 层,或甚至直接使用最下面的网络接口层。
TCP/IP结构示意图: 客户进程和服务器进程使用 TCP/IP 协议栈进行通信