01 概述

1.1 计算机网络在信息时代的作用

21世纪的重要特征是数字化、网络化和信息化,它是一个以网络为核心的信息时代。

三类熟知的网络:

  • 电信网络:提供电话、电报及传真服务

  • 有线电视网络:提供电视节目

  • 计算机网络

随着技术的发展,电信网络和有线电视网络都逐渐融入了计算机网络的技术。而计算机网络也能提供另外两种网络的服务。

互联网的两个最基本特点:

  • 连通性:使互联网上的用户之间,不管距离多远,都可以非常便捷、非常经济的交换各种信息。

  • 共享:即资源的共享。包括信息共享、软件共享、硬件共享等。

1.2 互联网概述

两个概念:

  • internet:通用名词,泛指由多个计算机网络互连而成的计算机网络。

  • Internet:专用名词,特指当前全球最大的、开放的、由众多网络相互连接而成的特定的互联网,它采用TPC/IP协议族作为通信的规则,且其前身是美国的ARPANET。

计算机网络:由若干结点(node, 可以是计算机、集线器、交换机或路由器)和连接这些结点的链路(link)组成。

网络把许多计算机连接在一起,而互联网则把网络通过路由器连接在一起。与网络相连的计算机常称为主机。

互联网基础结构发展的三个阶段

阶段一:从单个网络ARPANET向互联网发展

1969年的ARPANET只是一个单个的分组交换网,70s开始互联。1983年TCP/IP协议称为ARPANET上的标准协议。

阶段二:三级结构的互联网

三级:主干网、地区网、校园网(或企业网)

阶段三:多层次ISP(internet service provider)结构的互联网

从1993年开始,美国政府资助的NSFNET逐渐被若干个商用的互联网主干网替代。

  • 互联网交换点IXP(Internet eXchange Point):允许两个网络直接相连并交换分组,而不需要第三个网络来转发分组。IXP使得互联网上的数据流量分布更加合理,能更高效的转发分组。

互联网的标准化工作

互联网协会(ISOC):是个国际性组织,对互联网进行全面管理以及在世界范围内促进其发展和使用。ISOC下面有个技术组织叫Internet Architecture Board(IAB),负责管理互联网有关协议开发。IAB下面又有两个工程部:

  • Internet Engineering Task Force(IETF 互联网工程部):是由一些工作组(Working Group)组成的论坛

  • Internet Research Task Force(IRTF 互联网研究部):是由一些研究组(Research Group)组成的论坛

所有的互联网标准都是以RFC(Request For Comment)的形式在互联网上发表的。并非所有的RFC都是互联网标准,只有很少部分的RFC文档最后能成为互联网标准。

指定互联网标准的两个阶段:

  • 建议标准(Proposed Standard)

  • 互联网标准(Internet Standard)

除了这两种形式的RFC外,还有另外三种RFC文档,即:历史的、实验的和提供信息的。

1.3 互联网的组成

从工作方式上看,可以划分为两大块:

  • 边缘部分:由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信和资源共享。

  • 核心部分:由大量网络和连接这些网络的路由器组成。这部分为边缘部分提供服务。

互联网的边缘部分

在边缘部分的端系统之间的通信方式可划分为两大类:

  • C/S方式:客户是服务请求方,服务器使服务提供方。两者都要使用网络核心部分所提供的服务。

  • P2P(peer to peer,对等连接):是指两台主机在通信时并不区分哪一个是服务请求方,哪一个是服务提供方。对等连接方式本质上看仍然是C/S方式,只是对等连接中的每一台主机就是客户又是服务器。

互联网的核心部分

在网络核心部分起作用的是路由器(router),它是一种专用计算机,是实现分组交换(packet switching)的关键构件,其任务是转发收到的分组。下面分别说明电路交换和分组交换。

交换(switching):从通信资源的分配角度来看,交换就是按照某种方式动态分配传输路线的资源。

电路交换(circuit switching)

电路交换的三个步骤:

  • 建立连接(占用通信资源)

  • 通话(一直占用通信资源)

  • 释放连接(归还通信资源)

电路交换的一个重要特点是:在通话的全部时间内,通话的两个用户始终占用端到端的通信资源。

分组交换(packet switching)

分组交换采用存储转发技术,把一个报文划分为几个分组后再进行传送。

  • 报文(message):要发送的整块数据。

  • 分组(packet):把一个报文划分为较小的数据段,并加上首部(header)。

采用了存储转发的分组交换,实质上是采用了在数据通信的过程中断续(或动态)分配传输带宽的策略。

1.4 计算机网络的类别

按照网络的作用范围进行分类

  • 广域网(WAN, Wide Area Network),互联网的核心部分,其任务是长距离运送主机发送的数据。

  • 城域网(MAN, Metropolitan Area Network),目前很多城域网采用的是以太网技术。

  • 局域网(LAN, Local Area Network)

  • 个人区域网(PAN, Personal Area Network),在个人工作的地方把个人使用的电子设备(如便携式电脑等)用无线技术连接起来的网络。

按照网络的使用者进行分类

  • 公用网(public network):指电信公司(国有或私有)出资建造的大型网络。“公用”的意思就是所有愿意按电信公司的规定缴纳费用的人都可以使用这种网络。

  • 专用网(private network):某个部门为满足本单位的特殊业务工作的需要而建造的网络。

用来把用户接入到互联网的网络

接入网(AN, Access Network),本身既不属于互联网的核心部分,也不属于互联网的边缘部分。接入网是某个用户端系统到互联网中第一个路由器之间的一种网络。

1.5 计算机网络的性能

七个性能指标:

  • 速率

    指数据的传输速率,也称为数据率(data rate)或比特率(bit rate)。单位是bit/s(或者b/s, bps)。数据率较高时,会加k, M, G, T等(这里都是十进制的10\^3为基准,不是表示大小的2\^10)。

  • 带宽(bandwidth)

    带宽有两种不同的意义:一是信号具有的频带宽度,单位是赫兹。在计算机网络中,带宽用来表示某信道能通过的“最高数据率”,单位同速率一样。

  • 吞吐量(throughput)

    表示在单位时间内通过某个网络的实际数据量。

  • 时延(delay or latency)

    总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延

    • 发送时延(transmission delay)

      是主机或路由器发送数据帧所需要的时间,从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完所需要的时间。发送时延 = 数据帧长度(bit) / 发送速率(bit/s)

    • 传播时延(propagation delay)

      是电磁波在信道中传播一定距离需要花费的时间。传播时延 = 信道长度(m) / 电磁波在信道上的传播速率(m/s)

    • 处理时延

      是主机或路由器在收到分组时需要花费一定的时间进行处理。

    • 排队时延

      分组在进入路由器后先在输入队列中排队等待处理。在路由器确定了转发接口后,还要在输出队列中排队等待转发。

      注意对于高速网络链路(如光纤),我们提高的仅仅是数据的发送速率,而不是比特在链路上的传播速率。提高发送速率只是减少了数据的发送时延。

  • 时延带宽积

    时延带宽积 = 传播时延 * 带宽单位是bit。表明有多少数据正在链路上。加入时延带宽积为20万比特,则在第一个比特到达终点时,发送端已经发出了20万个比特,即这20万个比特在链路中移动。

  • 往返时间RTT(Round-Trip Time)

  • 利用率

    包括信道利用率网络利用率信道利用率指某信道有百分之几的时间是被利用的(有数据通过)。网络利用率则是全网信道利用率的加权平均值。

    信道利用率并非越高越好,根据排队论的理论,当信道的利用率增大时,该信道引起的时延也就迅速增加。这和高速公路的情况类似。如果用D~0~表示网络空闲时的时延,D表示网络当前时延,U表示利用率,则D = D~0~ / (1-U)。

    U在0到1之间。可见当利用率接近50%时,时延就要加倍。利用率过高会产生非常大的时延。一些ISP会控制信道的利用率不超过50%。

1.6 计算机网络体系结构

计算机网络体系结构的形成

开放系统互联基本参考模型(Open Systems Interconnection Reference Model, OSI/RM)为七层协议的体系结构,这是法律上的国际标准。但现在Internet使用的是更早占领市场的四层的TCP/IP协议。TCP/IP协议可以看做事实上的国际标准。

协议与划分层次

网络协议的三个要素:

  • 语法:数据与控制信息的结构或格式

  • 语义:需要发出何种控制信息,完成何种动作以及做出何种响应

  • 同步:事件实现顺序的详细说明

对于复杂的网络协议,应当采取分层结构。分层时应当注意每一层的功能划分。若分层太少,会使单层协议变得复杂;若分层太多,会使整个体系变得复杂。

具有五层协议的体系结构

TCP/IP的四层协议

  • 应用层:各种应用层协议如TELNET、FTP、SMTP等

  • 运输层:TCP或UDP

  • 网际层:IP

  • 网络接口层

本书(谢希仁书)把网络结构层又拆为数据链路层和物理层两层。

  • 应用层(application layer)

    应用层的任务是通过进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。应用层交互的数据单位是报文(message)

  • 运输层(transport layer)

    运输层的任务是为两台主机中进程之间的通信提供通用的数据传输服务。运输层主要使用两种协议:

    • TCP(Transmission Control Protocol)提供面向连接的、可靠的数据传输服务,数据传输的单位是报文段(segment)

    • UDP(User Datagram Protocol)提供无链接、尽最大努力的数据传输服务,数据传输的单位是用户数据报。

  • 网络层(network layer)

    把上层的报文段或用户数据报封装成分组(或叫数据报,注意这里的数据报不是上层的用户数据报。另外,无论哪一层的数据单元,都可以笼统的称为分组)

  • 数据链路层(data link layer)

    把IP数据报封装成帧

  • 物理层(physical layer)

对等层次之间传送的数据单元称为这一层的PDU(Protocol Data Unit,协议数据单元)

实体、协议、服务和服务访问点

  • 实体:任何可以发送或接受信息的硬件或软件进程。

  • 协议:控制两个对等实体(或多个实体)进行通信的规则的集合。

在协议的控制之下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层的协议,还需要使用下面一层提供的服务。协议是水平的。服务是垂直的。层与层之间垂直交换数据的单位称为SDU(Service Data Unit,服务数据单元)

TCP/IP的体系结构

注意两点:

  • 某些应用程序可以直接使用IP层,或甚至是更下面的网络结构层。

  • TCP/IP协议族的一个特点是上下两头大而中间小,形成了everything over IP and IP over everything