计算机网络

谢希仁编著

第1章 概述

  • (1) 因特网的边缘部分和核心部分的作用,这里面包含分组交换的概念。(2) 计算机网络的一些性能指标。(3) 计算机网络分层次的体系结构,包含协议和服务的概念。

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

  • 21世纪的一些重要特征就是数字化、网络化和信息化,它是一个以网络为核心的信息时代。
  • 这里所说的网络是指“三网”,即电信网络、有线电视网络和计算机网络。
  • 网络(network)由若干结点(node)[插图]和连接这些结点的链路(link)组成。
  • 因特网是人类自印刷术发明以来在通信方面最大的变革。
  • 计算机网络向用户提供的最重要的功能有两个,即:(1) 连通性;(2) 共享。
  • 因特网已经成为世界上最大的计算机网络
  • 因特网交换点 IXP (Internet eXchange Point)

1.2.2 因特网发展的三个阶段

  • 由欧洲原子核研究组织CERN开发的万维网WWW (World Wide Web)

1.2.3 因特网的标准化工作

  • 1992年由于因特网不再归美国政府管辖,因此成立了一个国际性组织叫做因特网协会(Internet Society,简称为ISOC)[W-ISOC],以便对因特网进行全面管理以及在世界范围内促进其发展和使用。
  • 除了以上三种RFC外(即建议标准、草案标准和因特网标准),还有三种RFC,即历史的、实验的和提供信息的。

1.3 因特网的组成

  • (1) 边缘部分 由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。(2) 核心部分 由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
  • 在计算机网络中,带宽用来表示网络的通信线路传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。

1.3.2 因特网的核心部分

  • 在网络核心部分起特殊作用的是路由器(router),它是一种专用计算机(但不是主机)。路由器是实现分组交换(packet switching)的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。
  • 这种必须经过“建立连接(占用通信资源)→通话(一直占用通信资源)→释放连接(归还通信资源)”三个步骤的交换方式称为电路交换[插图]。
  • 这种必须经过“建立连接(占用通信资源)→通话(一直占用通信资源)→释放连接(归还通信资源)”三个步骤的交换方式称为电路交换。
  • 电路交换的一个重要特点就是在通话的全部时间内,通话的两个用户始终占用端到端的通信资源。
  • 分组交换则采用存储转发技术
  • 在因特网核心部分的路由器之间一般都用高速链路相连接,而在网络边缘的主机接入到核心部分则通常以相对较低速率的链路相连接。
  • 主机是为用户进行信息处理的,并且可以和其他主机通过网络交换信息。路由器则是用来转发分组的,即进行分组交换的。
  • 这里要注意,路由器暂时存储的是一个个短分组,而不是整个的长报文。短分组是暂存在路由器的存储器(即内存)中而不是存储在磁盘中的。这就保证了较高的交换速率。
  • 采用存储转发的分组交换,实质上采用了在数据通信的过程中断续(或动态)分配传输带宽的策略
  • 电路交换——整个报文的比特流连续地从源点直达终点,好像在一个管道中传送。报文交换——整个报文先传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点。分组交换——单个分组(这只是整个报文的一部分)传送到相邻结点,存储下来后查找转发表,转发到下一个结点。

1.4 计算机网络在我国的发展

  • 1994年4月20日我国用64kb/s专线正式连入因特网

1.5 计算机网络的类别

  • 一些互相连接的、自治的计算机的集合。

1.5.2 几种不同类别的网络

  • 数字通信的优点就是:在接收端只要我们能从失真的波形识别出原来的信号,那么这种失真对通信质量就没有影响。

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

  • 开放系统互连基本参考模型 OSI/RM (Open Systems Interconnection Reference Model),简称为OSI
  • 得到最广泛应用的不是法律上的国际标准 OSI,而是非国际标准TCP/IP。这样,TCP/IP就常被称为是事实上的国际标准。

1.7.2 协议与划分层次

  • 为进行网络中的数据交换而建立的规则、标准或约定称为网络协议(network protocol)。
  • 对于非常复杂的计算机网络协议,其结构应该是层次式的。
  • 体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。

1.7.3 具有五层协议的体系结构

  • 结构则不同,它现在已经得到了非常广泛的应用。TCP/IP是一个四层的体系结构(图1-18(b)),它包含应用层、运输层、网际层和网络接口层(用网际层这个名字是强调这一层是为了解决不同网络的互连问题)。不过从实质上讲,TCP/IP只有最
  • 运输层主要使用以下两种协议:● 传输控制协议TCP (Transmission Control Protocol)——提供面向连接的、可靠的数据传输服务,其数据传输的单位是报文段(segment)。● 用户数据报协议 UDP (User Datagram Protocol)——提供无连接的、尽最大努力(best-effort)的数据传输服务(不保证数据传输的可靠性),其数据传输的单位是用户数据报。

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

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

2.1 物理层的基本概念

  • 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体

2.2 数据通信的基础知识

  • 一个数据通信系统可划分为三大部分,即源系统(或发送端、发送方)、传输系统(或传输网络)和目的系统(或接收端、接收方)。

2.2.2 有关信道的几个基本概念

  • 来自信源的信号常称为基带信号(即基本频带信号)

2.2.3 信道的极限容量

  • 码元传输的速率越高,或信号传输的距离越远,或噪声干扰越大,或传输媒体质量越差,在接收端的波形的失真就越严重。
  • 在任何信道中,码元传输的速率是有上限的,传输速率超过此上限,就会出现严重的码间串扰的问题,使接收端对码元的判决(即识别)成为不可能。

2.3 物理层下面的传输媒体

  • 传输媒体可分为两大类,即导引型传输媒体和非导引型传输媒体

2.3.1 导引型传输媒体

  • 可以存在多条不同角度入射的光线在一条光纤中传输。这种光纤就称为多模光纤

2.3.2 非导引型传输媒体

  • 传统的微波通信主要有两种方式:即地面微波接力通信和卫星通信。
  • 卫星通信的最大特点是通信距离远,且通信费用与通信距离无关。
  • 卫星通信的另一特点就是具有较大的传播时延
  • 卫星通信非常适合于广播通信,因为它的覆盖面很广。但从安全方面考虑,卫星通信系统的保密性是较差的。

2.4 信道复用技术

  • 频分复用的所有用户在同样的时间占用不同的带宽资源
  • 统计时分复用又称为异步时分复用,而普通的时分复用称为同步时分复用

2.5 数字传输系统

  • 长途干线大都采用时分复用PCM的数字传输方式

2.6 宽带接入技术

  • 网络层是为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信

2.6.1 ADSL技术

  • 非对称数字用户线ADSL(Asymmetric Digital Subscriber Line)技术是用数字技术对现有的模拟电话用户线进行改造

2.6.2 光纤同轴混合网(HFC网)

  • 光纤同轴混合网(HFC网, HFC是Hybrid Fiber Coax的缩写)是在目前覆盖面很广的有线电视网的基础上开发的一种居民宽带接入网,除可传送电视节目外,还能提供电话、数据和其他宽带交互型业务。

2.6.3 FTTx技术

  • 光纤到户 FTTH(Fiber To The Home)

3.1.2 三个基本问题

  • 封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。
  • 由于帧的开始和结束的标记是使用专门指明的控制字符,因此,所传输的数据中的任何8比特的组合一定不允许和用作帧定界的控制字符的比特编码一样,否则就会出现帧定界的错误。
  • “在数据链路层透明传送数据”表示无论什么样的比特组合的数据都能够通过这个数据链路层。
  • 目前在数据链路层广泛使用了循环冗余检验CRC (Cyclic Redundancy Check)的检错技术。
  • 传输差错可分为两大类:一类就是前面所说的最基本的比特差错,而另一类传输差错则更复杂些,这就是收到的帧并没有出现比特差错,但却出现了帧丢失、帧重复或帧失序。
  • 在数据链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。

3.2 点对点协议PPP

  • 点对点协议PPP (Point-to-Point Protocol)则是目前使用得最广泛的数据链路层协议。

3.2.2 PPP协议的帧格式

  • PPP首部的第四个字段是2字节的协议字段。当协议字段为0x0021时,PPP帧的信息字段就是IP数据报。若为0xC021,则信息字段是PPP链路控制协议LCP的数据,而0x8021表示这是网络层的控制数据[插图]。
  • PPP首部的第四个字段是2字节的协议字段。当协议字段为0x0021时,PPP帧的信息字段就是IP数据报。若为0xC021,则信息字段是PPP链路控制协议LCP的数据,而0x8021表示这是网络层的控制数据。

3.2.3 PPP协议的工作状态

  • PPP协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。

3.3.1 局域网的数据链路层

  • 局域网最主要的特点是:网络为一个单位所拥有,且地理范围和站点数目均有限。
  • 为了使数据链路层能更好地适应多种局域网标准,IEEE 802委员会就把局域网的数据链路层拆成两个子层,即逻辑链路控制 LLC (Logical Link Control)子层和媒体接入控制MAC (Medium Access Control)子层。
  • 计算机与外界局域网的连接是通过通信适配器(adapter)
  • 我们特别要注意,计算机的硬件地址(在本章3.4.3节讨论)就在适配器的ROM中,而计算机的软件地址——IP地址(在第4章4.2.3节讨论),则在计算机的存储器中。

3.3.2 CSMA/CD协议

  • 以太网采用的协调方法和上面的办法非常像,它使用的协议是CSMA/CD,意思是载波监听多点接入/碰撞检测(Carrier Sense Multiple Access with Collision Detection)。
  • 电磁波在1km电缆的传播时延约为5 μs

3.4 使用广播信道的以太网

  • 这种以太网采用星形拓扑,在星形的中心则增加了一种可靠性非常高的设备,叫做集线器(hub),
  • 集线器工作在物理层,它的每个接口仅仅简单地转发比特——收到1就转发1,收到0就转发0,不进行碰撞检测。

3.4.3 以太网的MAC层

  • 名字指出我们所要寻找的那个资源,地址指出那个资源在何处,路由告诉我们如何到达该处。
  • 还需注意,在以太网上传送数据时是以帧为单位传送。以太网在传送帧时,各帧之间还必须有一定的间隙。因此,接收端只要找到帧开始定界符,其后面的连续到达的比特流就都属于同一个MAC帧。可见以太网不需要使用帧结束定界符,也不需要使用字节插入来保证透明传输。

3.5.1 在物理层扩展以太网

  • 现在,扩展主机和集线器之间的距离的一种简单方法就是使用光纤(通常是一对光纤)和一对光纤调制解调器

3.5.2 在数据链路层扩展以太网

  • 在数据链路层扩展以太网要使用网桥(bridge)。网桥工作在数据链路层,它根据MAC帧的目的地址对收到的帧进行转发和过滤。
  • 网桥依靠转发表来转发帧。转发表也叫做转发数据库或路由目录。
  • 请注意,网桥在转发帧时,不改变帧的源地址。
  • 网桥是按存储转发方式工作的,一定是先把整个帧收下来(但集线器或转发器是逐比特转发)再进行处理,而不管其目的地址是什么。
  • 交换式集线器常称为以太网交换机(switch)或第二层交换机,表明这种交换机工作在数据链路层。
  • 以太网交换机实质上就是一个多接口的网桥

3.6.1 100BASE-T以太网

  • 100BASE-T是在双绞线上传送100Mb/s基带信号的星型拓扑以太网

4.1 网络层提供的两种服务

  • 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。

4.2 网际协议IP

  • 与IP协议配套使用的还有三个协议:● 地址解析协议ARP (Address Resolution Protocol)● 网际控制报文协议ICMP (Internet Control Message Protocol)● 网际组管理协议IGMP (Internet Group Management Protocol)
  • 由于网际协议IP是用来使互连起来的许多计算机网络能够进行通信,因此TCP/IP体系中的网络层常常称为网际层(internet layer),或IP层。

4.2.1 虚拟互连网络

  • 从一般的概念来讲,将网络互相连接起来要使用一些中间设备。根据中间设备所在的层次,可以有以下四种不同的中间设备:(1) 物理层使用的中间设备叫做转发器(repeater)。(2) 数据链路层使用的中间设备叫做网桥或桥接器(bridge)。(3) 网络层使用的中间设备叫做路由器(router)[插图]。(4) 在网络层以上使用的中间设备叫做网关(gateway)。用网关连接两个不兼容的系统需要在高层进行协议的转换。
  • 互联网可以由多种异构网络互连组成。

4.2.2 分类的IP地址

  • IP地址就是给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围是唯一的32位的标识符。IP地址的结构使我们可以在因特网上很方便地进行寻址。
  • IP地址并不仅仅指明一个主机,而是还指明了主机所连接到的网络。
  • 由于一个路由器至少应当连接到两个网络,因此一个路由器至少应当有两个不同的IP地址。
  • 路由器总是具有两个或两个以上的IP地址。即路由器的每一个接口都有一个不同网络号的IP地址。

4.2.3 IP地址与硬件地址

  • 物理地址是数据链路层和物理层使用的地址,而IP地址是网络层和以上各层使用的地址,是一种逻辑地址(称IP地址是逻辑地址是因为IP地址是用软件实现的)。
  • IP 地址放在 IP 数据报的首部,而硬件地址则放在 MAC 帧的首部。在网络层和网络层以上使用的是 IP 地址,而数据链路层及以下使用的是硬件地址。

4.2.4 地址解析协议ARP

  • 地址解析协议ARP解决这个问题的方法是在主机ARP高速缓存中应存放一个从IP地址到硬件地址的映射表,并且这个映射表还经常动态更新(新增或超时删除)。
  • 虽然ARP请求分组是广播发送的,但ARP响应分组是普通的单播,即从一个源地址发送到一个目的地址。
  • ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。

4.3 划分子网和构造超网

  • 第一,IP地址空间的利用率有时很低。
  • 同样的IP地址和不同的子网掩码可以得出相同的网络地址。但是,不同的掩码的效果是不同的。

4.3.3 无分类编址CIDR(构成超网)

  • CIDR还使用“斜线记法”(slash notation),或称为CIDR记法,即在IP地址后面加上斜线“/”,然后写上网络前缀所占的位数。
  • 由于一个CIDR地址块中有很多地址,所以在路由表中就利用CIDR地址块来查找目的网络。这种地址的聚合常称为路由聚合(route aggregation),它使得路由表中的一个项目可以表示原来传统分类地址的很多个(例如上千个)路由。路由聚合也称为构成超网(supernetting)。

4.4 网际控制报文协议ICMP

  • 为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP

4.5.3 内部网关协议OSPF

  • OSPF不用UDP而是直接用IP数据报传送(其IP数据报首部的协议字段值为89)。OSPF构成的

4.5.4 外部网关协议BGP

  • 边界网关协议BGP只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。BGP采用了路径向量(path vector)路由选择协议,它与距离向量协议(如RIP)和链路状态协议(如OSPF)都有很大的区别。

4.5.5 路由器的构成

  • 路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。

4.6.3 网际组管理协议IGMP和多播路由选择协议

  • IGMP协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组。
  • 多播转发必须动态地适应多播组成员的变化(这时网络拓扑并未发生变化)
  • 多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员接入的网络。

4.7 虚拟专用网VPN和网络地址转换NAT

  • 在因特网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。
  • 第二种方法是利用公用的因特网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网VPN (Virtual Private Network)。

4.7.2 网络地址转换NAT

  • 使用端口号的NAT也叫做网络地址与端口号转换 NAPT (Network Address and Port Translation)。

第5章 运输层

  • 讨论TCP的三个重要问题:滑动窗口、流量控制和拥塞控制机制。

5.1 运输层协议概述

  • 运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。
  • 从运输层的角度看,通信的真正端点并不是主机而是主机中的进程。也就是说,端到端的通信是应用进程之间的通信。
  • 运输层还要对收到的报文进行差错检测
  • 当运输层采用面向连接的TCP协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但这种逻辑通信信道就相当于一条全双工的可靠信道。但当运输层采用无连接的UDP协议时,这种逻辑通信信道仍然是一条不可靠信道。

5.1.2 运输层的两个主要协议

  • TCP则提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。TCP不提供

5.1.3 运输层的端口

  • 运输层的复用和分用功能也是类似的。应用层所有的应用进程都可以通过运输层再传送到IP层(网络层),这就是复用。运输层从IP层收到数据后必须交付指明的应用进程。这就是分用。显然,给应用层

5.2 用户数据报协议UDP

  • UDP是面向报文的。
  • 因此,不使用拥塞控制功能的UDP有可能会引起网络产生严重的拥塞问题。

5.2.2 UDP的首部格式

  • IP数据报的检验和只检验IP数据报的首部,但UDP的检验和是把首部和数据部分一起都检验。

5.3.1 TCP最主要的特点

  • TCP是面向连接的运输层协议
  • TCP并不关心应用进程一次把多长的报文发送到TCP的缓存中,而是根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP发送的报文长度是应用进程给出的)。

5.3.2 TCP的连接

  • TCP连接的端点叫做套接字(socket)或插口。根据RFC 793的定义:端口号拼接到(contatenated with) IP地址即构成了套接字。
  • 同一个IP地址可以有多个不同的TCP连接,而同一个端口号也可以出现在多个不同的TCP连接中。

5.4 可靠传输的工作原理

  • 理想的传输条件有以下两个特点:(1) 传输信道不产生差错。(2) 不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据。

5.4.1 停止等待协议

  • “停止等待”就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。
  • 超时计时器设置的重传时间应当比数据在分组传输的平均往返时间更长一些。
  • 当使用流水线传输时,就要使用下面介绍的连续ARQ协议和滑动窗口协议。

5.5 TCP报文段的首部格式

  • TCP虽然是面向字节流的,但TCP传送的数据单元却是报文段
  • TCP报文段首部的前20个字节是固定的(图5-14),后面有4n字节是根据需要而增加的选项(n是整数)。因此TCP首部的最小长度是20字节。
  • 若确认号 = N,则表明:到序号N - 1为止的所有数据都已正确收到。
  • 窗口字段明确指出了现在允许对方发送的数据量。窗口值是经常在动态变化着。

5.6.1 以字节为单位的滑动窗口

  • TCP的滑动窗口是以字节为单位的

5.6.2 超时重传时间的选择

  • 在计算加权平均RTTS时,只要报文段重传了,就不采用其往返时间样本。这样得出的加权平均RTTS和RTO就较准确。

5.7 TCP的流量控制

  • 所谓流量控制(flow control)就是让发送方的发送速率不要太快,要让接收方来得及接收。

5.8 TCP的拥塞控制

  • 在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种情况就叫做拥塞(congestion)。
  • 流量控制往往指点对点通信量的控制,是个端到端的问题(接收端控制发送端)。流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。

5.8.2 几种拥塞控制方法

  • 在采用快恢复算法时,慢开始算法只是在TCP连接建立时和网络出现超时时才使用。

5.9 TCP的运输连接管理

  • 运输连接就有三个阶段,即:连接建立、数据传送和连接释放。

5.9.1 TCP的连接建立

  • 为什么A还要发送一次确认呢?这主要是为了防止已失效的连接请求报文段突然又传送到了B,因而产生错误。

第6章 应用层

  • 每个应用层协议都是为了解决某一类应用问题,而问题的解决又必须通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的

6.1 域名系统DNS

  • 当某一个应用进程需要把主机名解析为IP地址时,该应用进程就调用解析程序(resolver),并成为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器(使用UDP是为了减少开销)。本地域名服务器在查找域名后,把对应的IP地址放在回答报文中返回。应用进程获得目的主机的IP地址后即可进行通信。

6.2.2 FTP的基本工作原理

  • FTP的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。
  • NFS允许应用进程打开一个远地文件,并能在该文件的某一个特定的位置上开始读写数据

6.3 远程终端协议TELNET

  • TELNET又称为终端仿真协议

6.4.3 超文本传送协议HTTP

  • HTTP协议本身是无连接的
  • HTTP协议是无状态的(stateless)。
  • 代理服务器(proxy server)是一种网络实体,它又称为万维网高速缓存(Web cache)。

6.6 动态主机配置协议DHCP

  • 在协议软件中给这些参数赋值的动作叫做协议配置

7.2 两类密码体制

  • 所谓对称密钥密码体制,即加密密钥与解密密钥是相同的密码体制。
  • DES的保密性仅取决于对密钥的保密,而算法是公开的。

7.2.2 公钥密码体制

  • 公钥密码体制使用不同的加密密钥与解密密钥。

7.4 鉴别

  • 鉴别是要验证通信的对方的确是自己所要通信的对象,而不是其他的冒充者。

7.7.1 防火墙

  • 防火墙(firewall)作为一种访问控制技术,通过严格控制进出网络边界的分组,禁止任何不必要的通信,从而减少潜在入侵的发生,尽可能降低这类安全威胁所带来的安全风险