计算机网络笔记整理(一):概述

一、一些概念

  1. 网络(network):由若干结点(node)和连接这些结点的链路(link)组成。网络中的结点可以是计算机、集线器、交换机或路由器等。网络把许多计算机连接在一起。
  2. 互联网(internet):网络和网络通过路由器互连起来构成的一个覆盖范围更大的网络。互联网是“网络的网络”(network of networks)。把许多网络连接在一起。
  3. 因特网(Internet):世界上最大的互联网络,连接在因特网上的计算机通常被称为主机(host)/端系统(end system)。
  4. 因特网服务提供商ISP(Internet Service Provider):负责因特网的运营的公司。拥有从因特网管理机构申请到的多个IP地址,同时拥有通信线路以及路由器等联网设备。
  5. 网络协议(network protocol):为进行网络中的数据交换而建立的规则、标准或者约定,简称协议。
    网络协议主要由以下三个要素组成:
    (1) 语法,即数据与控制信息的结构或格式;
    (2) 语义,即需要何时发出何种控制信息,完成何种动作以及做出何种响应;
    (3) 同步,即事件实现顺序的详细说明。
  6. 网络的体系结构(architecture):计算机网络的各层及其协议的集合,即计算机网络及其构件所应完成的功能的精确定义。
  7. 协议数据单元PDU(protocol data unit):多层模型中对等层次之间传送的数据单位。
  8. 实体(entity):在研究开放系统中的信息交换时,实体往往用于表示任何可发送或接收信息的硬件或者软件进程。
  9. 服务:在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务,要实现本层协议,还需要使用下面一层所提供的服务。注意区分协议与服务在概念上的不同
  10. 服务访问点SAP(service access point):在同一系统中相邻两层的实体进行交互(即交换信息)的地方,是一个抽象的概念,实际上就是一个逻辑接口

二、计算机间通信

主机A和主机B进行通信实际上指的是主机A上的某个进程和主机B上的另一个进程进行通信。在网络边缘的端系统中运行的程序之间的通信方式通常可以划分为两大类:客户服务器方式(C/S方式)和对等方式(P2P方式)。
1. 客户服务器方式(C/S)
这种方式是因特网上最常用的,也是传统的方式。客户(client)和服务器(server)指通信中所涉及的两个应用进程,客户服务器方式所描述的是进程之间的服务和被服务的关系。客户是服务请求方,服务器是服务提供方,两者都要使用网络核心部分所提供的服务。
在实际应用中,客户程序和服务器程序通常还具有以下的一些主要特点:
客户程序:
(1) 被用户调用后运行,在通信时主动向远地服务器发起通信(请求服务)。因此客户程序必须知道服务器程序的地址。
(2)不需要特殊的硬件和很复杂的操作系统。
服务器程序:
(1) 一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。
(2) 系统启动后即自动调用并一直不断地运行着,被动地等待并接受来自各地的客户的通信请求。因此服务器程序不需要知道客户程序的地址。
(3) 一般需要强大的硬件和高级的操作系统支持。
2. 对等连接方式(peer-to-peer, P2P)
两个主机在通信时并不区分服务请求方和服务提供方。只要两个主机都运行了对等连接软件(P2P软件),就可以进行平等的对等连接通信。双方都可以下载对方存储在硬盘中的共享文档,因此这种方式也称为P2P文件共享。P2P可支持大量对等用户同时工作。

三、电路交换和分组交换

在网络核心部分起特殊作用的是路由器(router),路由器是实现分组交换(packet switching)的关键构件,其任务是转发收到的分组,这是网络核心部分最终要的功能。
1. 电路交换
电路交换有三个步骤:建立连接(占用通信资源/建立物理通路)→通话(一直占用通信资源)→释放连接(归还通信资源)。
电路交换是电话交换机的交换方式。注意到用户线是电话用户到所连接的市话交换机的连接线路,是用户专用的线路,而交换机之间拥有大量话路的中继线则是由许多用户共享的。正在通话的用户只占用了其中一个话路。电路交换的一个重要特点就是在通话的全部时间内,通话的两个用户始终占用端到端的通信资源
基于这个特点,使用电路交换来传送计算机数据时,其线路的传输效率往往很低。因为计算机数据是突发地出现在传输链路上,因此线路上真正用来传送数据的时间往往不到10%甚至1%。实际上已被用户占用的通信线路在绝大部分时间里都是空闲的。宝贵的通信线路资源并未被利用而是白白被浪费了。
2. 分组交换
采用存储转发技术。通常把要发送的整块数据称为一个报文(message)。在发送报文之前,先把较长的报文划分为一个个更小的等长数据段,在每个数据段前面加上一些必要的控制信息组成的首部/包头(header)后就构成了一个分组/包(packet)。分组是在因特网中传送的数据单元。
因特网的核心部分是由许多网络和把它们互连起来的路由器组成的,而主机处在因特网的边缘部分。在因特网核心部分的路由器之间一般都用高速链路相连接,而在网络边缘的主机接入到核心部分则通常以相对较低速率的链路相连接。
路由器是用于转发分组的,即进行分组交换的。路由器收到一个分组先暂时存储下来再检查其首部,查找转发表,按照首部中的目的地址找到合适的接口转发出去,把分组交给下一个交换器,如上所示的存储转发模式,把分组交付到最终的目的主机。(注意:路由器暂时存储的是一个个短分组,而不是整个的长报文。短分组是暂时存在路由器的存储器,即内存中,而不是存储在磁盘中,保证较高的交换速率)。
分组交换在传送数据之前不必占用一条端到端的通信资源。分组在哪段链路上传送才占用这段链路的通信资源,分组在传输时就这样一段段地断续占用着通信资源,同时省去了建立连接和释放连接的开销,因而数据的传输效率更高
当网络中的某些节点或者链路突然出现故障时,在各路由器的路由选择协议能够自动找到其他路径转发分组,保证了数据传送的可靠性
采用存储转发的分组交换,实质上是采用了数据通信过程中断续(或动态)分配传输带宽的策略,这对传送突发式的计算机数据非常合适,使得通信线路的利用率大大提高
综上所述,分组交换的主要优点如下所示:

优点 采用手段
高效 在分组传输的过程中动态分配传输带宽,对通信链路是逐段占用的
灵活 为每一个分组独立地选择转发路由
迅速 以分组作为传送单位,可以不先建立连接就能向其他主机发送分组
可靠 保证可靠性的网络协议;分布式多路由的分组交换网,使网络有很好的生存性

分组交换也存在一些缺点,如下所示:

缺点 具体问题
时延 分组在各路由器存储转发时需要排队,通信时端到端所需的带宽无法确保。
开销(overhead) 各分组必须携带控制信息,整个分组交换网还需要专门的管理和控制机制。

3. 报文交换
操作员以每份报文为单位,根据报文的目的站地址,拿到相应的发报机转发出去,这种报文交换的时延较长,从几分钟到几小时不等。
分组交换的断续分配传输带宽的存储转发原理,从本质上讲,与报文交换是一致的,报文交换现在已经很少使用。

三种交换方式在数据传送节点的主要特点:
电路交换:整个报文的比特流连续地从源点直达终点,好像在一个管道中传送。
报文交换:整个报文先传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点。
分组交换:单个分组(报文的一部分)传送到相邻结点,存储下来后查找转发表,转发到下一个结点。
综上所述,若要连续传送大量的数据,且其传送时间远大于连接建立时间,则电路交换的传输效率快。报文交换和分组交换不需要预先分配传输带宽,在传送突发数据时可提高整个网络的信道利用率。由于一个分组的长度往往小于整个报文的长度,因此分组交换比报文交换的时延小,同时也具有更好的灵活性。

四、计算机网络性能指标

  1. 速率:连接在计算机网络上的主机在数字信道上传送数据的速率,也称为数据率(data rate)或比特率(bit rate)。单位是b/s(比特每秒,bit/s,bps)。现在常用更简单的激发来描述网络速率,如100M以太网,表示速率为100Mb/s的以太网。
  2. 带宽(bandwidth):带宽有两种定义,一是对于模拟信号,表示通信线路允许通过的信号频带范围就称为线路的带宽(或通频带),此时带宽的单位是赫;
    而在计算机网络中,对于数字信号,带宽用于表示网路的通信线路所能传送数据的能力,即在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”,这种意义下的带宽单位是“比特每秒”,即为b/s。
  3. 吞吐量(throughput):单位时间内通过某个网络(或信道、接口)的数据量。吞吐量受到网络的带宽或者网络额定速率的限制。
  4. 时延(delay或latency):数据(报文或分组或比特)从网络(或链路)的一端传送到另一端所需的时间。在网络中,时延由以下几个不同部分组成:
    (1) 发送时延/传输时延(transmission delay):主机或路由器发送数据帧所需要的时间。也就是从发送数据帧的第一个比特起,到该帧的最后一个比特发送完毕所需要的时间。发送时延的计算公式是:
    =(b)(b/s)

    (2) 传播时延(propagation delay):电磁波在信道中传播一定距离需要花费的时间。传播时延的计算公式是:
    =(m)(m/s)

    注意区分这两种时延,他们发生的地方不同。发送时延发生在机器的内部的发送器中(一般发生在网络适配器),而传播时延发生在机器外部的传输信道媒体上。
    (3) 处理时延:主机或路由器在收到分组时要花费一定的时间进行处理,如分析分组的头部、从分组中提取数据部分、进行差错校验或查找适当的路由等等。
    (4) 排队时延:分组在经过网络传输时,要经过许多的路由器,但分组在进入路由器后先在输入队列中排队等待处理。在路由器确定了转发接口后,还要在输出队列中排队等待转发。这就产生了排队时延。排队时延长短取决于网络当时的通信量,当网络的通信量很大时会发生队列溢出使得分组丢失。
    数据在网络中经历的总时延就是以上四种时延之和:总时延=发送时延+传播时延+处理时延+排队时延
    在这四种时延中,忽略处理时延和排队时延(当这两种时延在总时延中占据主要部分时,计算机网络中的通信量过大,整个网络的性能都变坏了)。当信道长度比较短而且数据块比较大时,总时延的数值基本上还是由发送时延来决定的。相反,当信道比较长而数据块比较小时,总时延的数值基本由传播时延决定。
    对于高速网络链路,我们提高的仅仅是数据的发送速率,减小了数据的发送时延,而不是比特在链路上的传播速率,荷载信息的电磁波在通信线路上的传播速率与数据的发送速率无关
  5. 时延带宽积
    =×

    链路的时延带宽积又称为以比特为单位的链路长度,对于一条正在传送数据的链路,只有在代表链路的管道都充满比特时,链路才得到充分的利用。
  6. 往返时间RTT
    往返时间RTT(Round-Trip Time)表示从发送方发送数据开始,到发送方收到来自接收方的确认(接收方收到数据后便立即发送确认),总共经历的时间。
    往返时间带宽积(=往返时间 × 带宽)的意义是当发送方连续发送数据时,即使能够及时收到对方的确认,但是已经将许多比特发送到链路上了。例如数据的接收方及时发现了差错并告知发送方,使发送方立即停止发送,但是发送方也已经发送了很多个比特了。
    注意当使用卫星通信时,往返时间RTT相对较长,是一个很重要的性能指标。
  7. 利用率
    信道利用率:指出某信道有百分之几的时间是被利用的(有数据通过),完全空闲的信道利用率是0。
    网络利用率:全网络的信道利用率的加权平均值。
    信道利用率并非越高越好,根据排队论的理论,当某信道的利用率增大时,该信道引起的时延也就迅速增加。

五、计算机网络体系结构

  1. 分层结构的好处
    (1) 各层之间是独立的。某一层不需要知道它的下一层是如何实现的,而仅仅只需要知道该层通过层间的接口(即界面)所提供的服务。由于每一层只实现一种相对独立的功能,因而可将一个难以处理的复杂问题分解为若干个较容易处理的更小一些的问题,降低了整个问题的复杂度。
    (2) 灵活性好。当任何一层发生变化时,只要层间接口关系保持不变,则,则在这层以上或以下各层均不受影响。此外,对某一层提供的服务还可进行修改,当某层提供的服务不再需要时,甚至可以取消该层。
    (3) 结构上可分割。各层都可以采用最合适的技术来实现。
    (4) 易于实现和维护。这种结构使得实现和调试一个庞大而复杂的系统变得容易,因为整个的系统已被分解为若干个相对独立的子系统。
    (5) 能促进标准化工作。每一层的功能及其所提供的服务都已有了精确的说明。
  2. 不同的计算机网络体系结构比较
    OSI的七层协议体系结构(如图1(a)所示)概念清楚,理论也较完整,但是复杂而且不实用。
    TCP/IP体系结构(如图1(b)所示)是一个四层的体系结构,它得到了非常广泛的应用。包含应用层、运输层、网际层和网络接口层(使用网际层这个名字是强调这一层是为了解决不同网络之间的互连问题)。从实质上说,TCP/IP只有最上面的三层,因为最下面的网络接口层并没有什么具体的内容。
    综合OSI和TCP/IP的优点,一种只有五层协议的体系结构(如图1(c)所示)提出用于简洁清楚地介绍网络原理(注意实际使用的是四层结构)。

image
3. 五层结构中各层的主要功能
(1) 应用层(application layer):应用层是体系结构中的最高层,直接为用户的应用进程提供服务。这里的进程就是正在运行的程序。例如:支持万维网应用的HTTP协议、支持电子邮件点的SMTP协议、支持文件传送的FTP协议等
(2) 运输层(transport layer):运输层的任务是负责向两个主机中进程之间的通信提供服务。由于一个主机可同时运行多个进程,因此运输层有复用和分用的功能。复用就是多个应用层进程可同时使用下面运输层的服务,分用则是运输层把收到的信息分别交付给上面应用层中相应的进程。例如传输控制协议TCP、用户数据包协议UDP
(3) 网络层(network layer):网络层负责为分组交换上的不同主机提供通信服务,在发送数据时,网络层把运输层产生的报文段或用户数据封装成分组或包进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫作IP数据报,或者简称为数据报
注意区分运输层的“用户数据报UDP”和网络层的“IP数据报”。
网络层的另一任务是选择合适的路由,使源主机运输层所传下来的分组能够通过网络中的路由器找到目的主机。例如因特网主要使用的是无连接的网际协议IP(Internet Protocol)
(4) 数据链路层(data link layer):简称链路层。两个主机之间的数据传输总是在一段一段的链路上传送的。也就是说在相邻的两个结点之间(主机和路由器之间或者两个路由器之间)传送数据是直接传送的(点对点)。在相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧(framing)。该层检测收到的帧中有无差错,若有责丢弃该帧,校正错误由运输层的TCP协议完成。
(5) 物理层(physical layer):在物理层所传数据的单位是比特,其任务是透明地传送比特流。物理层要考虑用多大的电压代表“1”或“0”,以及接收方如何识别出发送方所发送的比特,还要确定连接电缆的插头应当有多少根引脚以及各条引脚应如何连接。传递信息所利用的一些物理媒体,如双绞线、同轴电缆等等并不在物理层协议之内,而是在物理层协议之下。
数据在各层之间的传递过程如下图所示:
数据在各层之间的传递过程
4. TCP/IP的体系结构
TCP/IP的体系结构只有四层,如下所示,注意图中的路由器在转发分组时最高只用到网络层而没有运输层和应用层:
这里写图片描述
另一种表示TCP/IP的体系结构的方法就是分层画出具体的协议来表示TCP/IP协议族,如图3所示,它的特点是上下两头大而中间小。这种很像沙漏计时器的TCP/IP协议族表明:TCP/IP协议可以为各式各样的应用提供服务(everything over IP),也允许IP协议在各式各样的网络构成的互联网上运行(IP over everything)。不难看出IP协议在因特网中的核心作用。
这里写图片描述

六、参考文献

[1] 谢希仁. 计算机网络(第五版)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章