目录
1.3互联网的组成
1.3.1互联网的边缘部分
1.3.2互联网的核心部分
1.电路交换:建立连接(占用通信资源)------->通话(一直占用通信资源)------>释放资源(归还通信资源)
2.分组交换(高效、灵活、迅速、可靠)
1.5.2几种不同类别的计算机网络
1.6计算机网络的性能
1.6.1计算机网络的性能指标
1.7.2协议与划分层次
1.7.3具有五层协议的体系结构
第一章简答题:
1-01 计算机网络可以向用户提供哪些服务?
1-02试简述分组交换的要点。
1-03试从多个方面比较电路交换、报文交换和分组交换的主要优缺点。
1-12 互联网的两大组成部分(边缘部分与核心部分)的特点是什么?它们的工作方式各有什么特点?
1-21 协议与服务有何区别?有何关系?
1-22 网络协议的三个要素是什么?各有什么含义?
1.3互联网的组成
(1)边缘部分:所有连接互联网上的主机组成。这部分是用户直接使用的,用来进行通信和资源共享。
(2)核心部分:有大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
1.3.1互联网的边缘部分
计算机之间通信:主机A的某个进程和主机B的某个进程进行通信。
互联网边缘的端系统之间的通信方式:客户-服务器方式(C/S方式)和对等方式(P2P方式)。
1.3.2互联网的核心部分
在网络核心部分起特殊作用的是路由器,它是一种专用计算机(但不叫做主机)。路由器是实现分组交换的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的内容。
1.电路交换:建立连接(占用通信资源)------->通话(一直占用通信资源)------>释放资源(归还通信资源)
电路交换一个重要特点就是:在通话的全部时间内,通话的两个用户始终占用端到端的通信资源。
2.分组交换(高效、灵活、迅速、可靠)
分组交换则采用存储转发技术。把一个报文划分几个分组后再进行传送。通常我们把要发送的整块数据称为一个报文。在每一个数据段前面,加上一些由必要的控制信息组成的首部(header)后,就构成了一个分组(packet)。
位于网络边缘的主机和位于网络核心部分的路由器都是计算机,但它们的作用却很不一样。主机是为用户进行信息处理的,并且可以和其他主机通过网络交换信息。路由器则是用来转发分组的,即进行分组交换的。路由器收到一个分组,先暂时存储一下,检查其首部,查找转发表,按照首部中的目的地址,找到合适的接口转发出去,把分组交给下一个路由器。这样一步一步地(有时会经过几十个不同的路由器)以存储转发的方式,把分组交付最终的目的主机。各路由器之间必须经常交换彼此掌握的路由信息,以便创建和动态维护路由器中的转发表,使得转发表能够在整个网络拓扑发生变化时及时更新。
分组交换的主要优点如下表所示:
电路交换--整个报文的比特流连续地从源点直达终点,好像在一个管道中传送。
报文交换一整个报文先传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点。
分组交换--单个分组(这只是整个报文的一部分)传送到相邻结点,存储下来后查找转发表,转发到下一个结点。
1.5.2几种不同类别的计算机网络
(1)广域网WAN(Wide Area Network)广域网的作用范围通常为几十到几千公里,因而有时也称为远程网(long haul network)。广域网是互联网的核心部分,其任务是通过长距离(例如,跨越不同的国家)运送主机所发送的数据。连接广域网各结点交换机的链路一般都是高速链路,具有较大的通信容量。
(2)城域网MAN(Metropolitan Area Network)城域网的作用范围一般是一个城市,可跨越几个街区甚至整个城市,其作用距离约为5~50 km。城域网可以为一个或几个单位所拥有,但也可以是一种公用设施,用来将多个局域网进行互连。目前很多城域网采用的是以太网技术,因此有时也常并入局域网的范围进行讨论。
(3)局域网LAN(Local Area Network)局域网一般用微型计算机或工作站通过高速通信线路相连(速率通常在10 Mbit/s以上),但地理上则局限在较小的范围(如1km左右)。在局域网发展的初期,一个学校或工厂往往只拥有一个局域网,但现在局域网已非常广泛地使用,学校或企业大都拥有许多个互连的局域网(这样的网络常称为校园网或企业网)。我们将在第3章3.3至3.5节详细讨论局域网。
(4)个人区域网PAN(Personal Area Network)个人区域网就是在个人工作的地方把属于个人使用的电子设备(如便携式电脑等)用无线技术连接起来的网络,因此也常称为无线个人区域网WPAN(Wireless PAN),其范围很小,大约在10m左右。
1.6计算机网络的性能
1.6.1计算机网络的性能指标
1.速率:数据的传送速率。
2.带宽:有两种意义
(1)某个信号所具有的的频带宽度;
(2)在计算机网络中,带宽用来表示网络中某通道传送数据的能力,因此网络带宽表示在单位时间内网络中的某信道所能通过的“最高数据率”。在本书中提到“带宽”时,主要是指这个意思。这种意义的带宽的单位就是数据率的单位bit/s,是“比特 每秒”。
在“带宽”的上述两种表述中,前者为频域称谓,而后者为时域称谓,其本质是相同的。也就是说,一条通信链路的“带宽”越宽,其所能传输的“最高数据率”也越高。
3.吞吐量:单位时间内通过某个网络的实际的数据量;
4.时延:时延是指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。时延是个很重要的性能指标,它有时也称为延迟或迟延。发送时延,传播时延,处理时延,排队时延。
1.7.2协议与划分层次
网络协议主要由以下三个要素组成:
(1)语法,即数据与控制信息的结构或格式;
(2)语义,即需要发出何种控制信息,完成何种动作以及做出何种响应;
(3)同步,即事件实现顺序的详细说明。
1.7.3具有五层协议的体系结构
(1)应用层:应用层是体系结构中的最高层。应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。这里的进程就是指主机中正在运行的程序。对于不同的网络应用需要有不同的应用层协议。在互联网中的应用层协议很多,如域名系统DNS,支持万维网应用的HTTP 协议,支持电子邮件的SMTP 协议,等等。我们把应用层交互的数据单元称为报文(message)。
(2)运输层:负责向两台主机中进程之间的通信提供特定的数据传输服务。
运输层主要使用以下两种协议:
传输控制协议TCP(Transmission Control Protocol)--提供面向连接的、可靠的数据传输服务,其数据传输的单位是报文段(segment)。
用户数据报协议UDP(User Datagram Protocol)--提供无连接的、尽最大努力(best-effort)的数据传输服务(不保证数据传输的可靠性),其数据传输的单位是用户数据报。
(3)网络层:网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫做IP数据报,或简称为数据报。
(4)数据链路层:数据链路层常简称为链路层。我们知道,两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧(framing),在两个相邻结点间的链路上传送帧(frame)。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。
(5)物理层:在物理层上所传数据的单位是比特。发送方发送1(或0)时,接收方应当收到1(或0)而不是0(或1)。因此物理层要考虑用多大的电压代表“1”或“0”,以及接收方如何识别出发送方所发送的比特。物理层还要确定连接电缆的插头应当有多少根引脚以及各引脚应如何连接。当然,解释比特代表的意思,就不是物理层的任务。请注意,传递信息所利用的一些物理媒体,如双绞线、同轴电缆、光缆、无线信道等,并不在物理层协议之内而是在物理层协议的下面。因此也有人把物理层下面的物理媒体当作第0层。
第一章简答题:
1-01 计算机网络可以向用户提供哪些服务?
答:连通性和共享
1-02试简述分组交换的要点。
答:(1)报文分组,加首部(2)经路由器储存转发(3)在目的地合并
1-03试从多个方面比较电路交换、报文交换和分组交换的主要优缺点。
答:(1)电路交换:端对端通信质量因约定了通信资源获得可靠保障,对连续传送大量数据效率高。
(2)报文交换:无须预约传输带宽,动态逐段利用传输带宽对突发式数据通信效率高,通信迅速。
(3)分组交换:具有报文交换之高效、迅速的要点,且各分组小,路由灵活,网络生存性能好。
1-12 互联网的两大组成部分(边缘部分与核心部分)的特点是什么?它们的工作方式各有什么特点?
答:边缘部分:由各主机构成,用户直接进行信息处理和信息共享;低速连入核心网。核心部分:由各路由器连网,负责为边缘部分提供高速远程分组交换。
1-21 协议与服务有何区别?有何关系?
答:网络协议:为进行网络中的数据交换而建立的规则、标准或约定。由以下三个要素组成:
(1)语法:即数据与控制信息的结构或格式。
(2)语义:即需要发出何种控制信息,完成何种动作以及做出何种响应。
(3)同步:即事件实现顺序的详细说明。协议是控制两个对等实体进行通信的规则的集合。在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务,而要实现本层协议,还需要使用下面一层提供服务。
协议和服务的概念的区分:
1、协议的实现保证了能够向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议。下面的协议对上面的服务用户是透明的。
2、协议是“水平的”,即协议是控制两个对等实体进行通信的规则。但服务是“垂直的”,即服务是由下层通过层间接口向上层提供的。上层使用所提供的服务必须与下层交换一些命令,这些命令在OSI中称为服务原语。
1-22 网络协议的三个要素是什么?各有什么含义?
答:网络协议:为进行网络中的数据交换而建立的规则、标准或约定。由以下三个要素组成:
(1)语法:即数据与控制信息的结构或格式。
(2)语义:即需要发出何种控制信息,完成何种动作以及做出何种响应。
(3)同步:即事件实现顺序的详细说明。
4.2.4 地址解析协议ARP
下面就介绍ARP协议的要点
我们知道,网络层使用的是IP地址,但在实际网络的链路上传送数据帧时,最终还是必须使用该网络的硬件地址。但IP地址和下面的网络的硬件地址之间由于格式不同而不存在简单的映射关系(例如,IP地址有32位,而局域网的硬件地址是48位)。此外,在一个网络上可能经常会有新的主机加入进来,或撤走一些主机。更换网络适配器也会使主机的硬件地址改变。地址解析协议ARP解决这个问题的方法是在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,并且这个映射表还经常动态更新(新增或超时删除)。
每一台主机都设有一个ARP高速缓存(ARP cache),里面有本局域网上的各主机和路由器的IP地址到硬件地址的映射表,这些都是该主机目前知道的一些地址。那么主机怎样知道这些地址呢?我们可以通过下面的例子来说明。
当主机A要向本局域网上的某台主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如有,就在ARP高速缓存中查出其对应的硬件地址,再把这个硬件地址写入MAC帧,然后通过局域网把该MAC帧发往此硬件地址。也有可能查不到主机B的IP地址的项目。这可能是主机B才入网,也可能是主机A刚刚加电,其高速缓存还是空的。在这种情况下,主机A就自动运行ARP,然后按以下步骤找出主机B的硬件地址。
(1)ARP进程在本局域网上广播发送一个ARP请求分组(具体格式可参阅[COME06]的第23章)。图4-11(a)是主机A广播发送ARP请求分组的示意图。ARP请求分组的主要内容是:"我的IP地址是209.0.0.5,硬件地址是00-00-CO-15-AD-18。我想知道IP地址为209.0.0.6的主机的硬件地址。”
(2)在本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组。
(3)主机B的IP地址与ARP请求分组中要查询的IP地址一致,就收下这个ARP请求分组,并向主机A发送ARP响应分组(其格式见[COME06]),同时在这个ARP响应分组中写入自己的硬件地址。由于其余的所有主机的IP地址都与ARP请求分组中要查询的IP地址不一致,因此都不理睬这个ARP请求分组,见图4-11(b)。ARP响应分组的主要内容是:“我的IP地址是209.0.0.6,我的硬件地址是08-00-2B-00-EE-OA。”请注意:虽然ARP 请求分组是广播发送的,但ARP响应分组是普通的单播,即从一个源地址发送到一个目的地址。
(4)主机A收到主机B的ARP响应分组后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射。
当主机A向B发送数据报时,很可能以后不久主机B还要向A发送数据报,因而主机B也可能要向A发送ARP请求分组。为了减少网络上的通信量,主机A在发送其ARP请求分组时,就把自己的IP地址到硬件地址的映射写入ARP请求分组。当主机B收到A的ARP请求分组时,就把主机A的这一地址映射写入主机B自己的ARP高速缓存中。以后主机B向A发送数据报时就很方便了。
可见ARP高速缓存非常有用。如果不使用ARP高速缓存,那么任何一台主机只要进行次通信,就必须在网络上用广播方式发送ARP 请求分组,这就使网络上的通信量大大增加。ARP把已经得到的地址映射保存在高速缓存中,这样就使得该主机下次再和具有同样目的地址的主机通信时,可以直接从高速缓存中找到所需的硬件地址而不必再用广播方式发送ARP请求分组。
请注意,ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。只要主机或路由器要和本网络上的另一个已知IP地址的主机或路由器进行通信,ARP协议就会自动地把这个IP地址解析为链路层所需要的硬件地址。
下面我们归纳出使用ARP的四种典型情况(图4-12)。
(1)发送方是主机(如Hj),要把IP数据报发送到同一个网络上的另一台主机(如H2)。这时H发送ARP请求分组(在网1上广播),找到目的主机H2的硬件地址。
(2)发送方是主机(如Hj),要把IP数据报发送到另一个网络上的一台主机(如H3或H4)。这时Hj发送ARP请求分组(在网1上广播),找到网1上的一个路由器R,的硬件地址。剩下的工作由路由器R」来完成。R要做的事情是下面的(3)或(4)。
(3)发送方是路由器(如Rp),要把IP数据报转发到与R连接在同一个网络(网2)上的主机(如H3)。这时R1发送ARP请求分组(在网2上广播),找到目的主机H3的硬件地址。
(4)发送方是路由器(如Rp),要把IP数据报转发到网3上的一台主机(如H4)。H4与R1不是连接在同一个网络上。这时R发送ARP请求分组(在网2上广播),找到连接在网2上的一个路由器R2的硬件地址。剩下的工作由这个路由器R2来完成。
第5章 运输层
5.1.1 进程之间的通信
网络层为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。
运输层还要对收到的报文进行差错检测。在网络层,IP数据报首部中的检验和字段,只检测首部是否出现差错而不检查数据部分。
5.1.2 运输层的两个主要协议
(1)用户数据报协议 UDP(User Datagram Protocol)[RFC 768]
(2)传输控制协议TCP(Transmission Control Protocol)[RFC 793]
图5-3给出了这两种协议在协议栈中的位置。
5.2.1 UDP 概述
用户数据报协议UDP只在IP的数据报服务之上增加了很少一点的功能,这就是复用和分用的功能以及差错检测的功能。UDP的主要特点是:
(1)UDP是无连接的,即发送数据之前不需要建立连接(当然,发送数据结束时也没有连接可释放),因此减少了开销和发送数据之前的时延。
(2)UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表(这里面有许多参数)。
(3)UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这就是说,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文,如图5-4所示。在接收方的UDP,对IP层交上来的UDP用户数据报,在去除首部后就原封不动地交付上层的应用进程。也就是说,UDP一次交付一个完整的报文。因此,应用程序必须选择合适大小的报文。若报文太长,UDP把它交给IP层后,IP层在传送时可能要进行分片,这会降低IP层的效率。反之,若报文太短,UDP把它交给IP层后,会使IP数据报的首部的相对长度太大,这也降低了IP层的效率。
(4)UDP没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很多的实时应用(如IP电话、实时视频会议等)要求源主机以恒定的速率发送数据,并且允许在网络发生拥塞时丢失一些数据,但却不允许数据有太大的时延。UDP正好适合这种要求。
(5)UDP 支持一对一、一对多、多对一和多对多的交互通信。
(6)UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短。
5.3 传输控制协议TCP概述
由于TCP协议比较复杂,因此本节先对TCP协议进行一般的介绍,然后再逐步深入讨论TCP的可靠传输、流量控制和拥塞控制等问题。
5.3.1 TCP最主要的特点
TCP是TCP/IP体系中非常复杂的一个协议。下面介绍TCP最主要的特点。
(1)TCP是面向连接的运输层协议。这就是说,应用程序在使用TCP协议之前,必须先建立TCP 连接。在传送数据完毕后,必须释放已经建立的TCP连接。也就是说,应用进程之间的通信好像在“打电话”:通话前要先拨号建立连接,通话结束后要挂机释放连接。
(2)每一条TCP连接只能有两个端点(endpoint),每一条TCP连接只能是点对点的对一)。这个问题后面还要进一步讨论。
(3)TCP提供可靠交付的服务。通过TCP连接传送的数据,无差错、不丢失、不重复,并且按序到达。
(4)TCP提供全双工通信。TCP允许通信双方的应用进程在任何时候都能发送数据。
TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。在发送时,应用程序在把数据传送给TCP的缓存后,就可以做自己的事,而TCP在合适的时候把数据发送出去。在接收时,TCP把收到的数据放入缓存,上层的应用进程在合适的时候读取缓存中的数据。
(5)面向字节流。TCP中的“流”(stream)指的是流入到进程或从进程流出的字节序列。
---------------------------------------------------未完待续-------------------------------------------------------------