计算机网络(谢希仁版)——第一章回顾
※网络不只是有计算机网络,还有电信网络、电视网络
※网络将计算机与计算机连接在一起,而互联网则把网络与网络连接在一起
△互连网与互联网有什么不同?
互连网(internet)泛指由多个计算机网络组成的网络。
互联网(Internet,因特网)特指使用TCP/IP协议簇的特殊互连网——Internet(因特网)。
△互联网当前阶段的特点是?
多层次ISP(互联网服务提供者)。ISP从互联网管理机构申请IP地址(批量申请,不支持“零售”),ISP拥有通信线路与连网设备(小ISP可能是租用),从而向个人或机构提供接入互联网的服务。所谓“上网”,就是“通过从ISP获得的IP地址接入互联网”。现在的互联网已不是单个组织所拥有的,而是全世界无数大大小小的ISP共同拥有的。
△ISP如何分类?
可按层次分类为:主干ISP、地区ISP和本地ISP。
主干ISP由少数公司创建、维持,服务面积最大且拥有高速主干网;地区ISP则是较小的ISP,属于第二级别,通过主干ISP来连接;本地ISP给用户提供直接服务,可与地区ISP或主干ISP相连。
△什么是互联网交换点IXP?为什么需要IXP?
IXP作用即令两个网络直接相连、不需要通过第三个网络进行转发分组(比如地区ISP借助主干ISP,若两个地区ISP之间有IXP则可以不需要借助其上层的主干ISP而直接相连)。理论上通过主干ISP,所有的地区ISP、本地ISP均可互连,但这样做在网络数据量巨大的今日会带来不小的效率影响,所以需要有IXP来更有效地利用网络资源。
△互联网组成如何划分?
可大致分为边缘部分与核心部分,两者关系可抽象类比为蛋白与蛋黄。
边缘部分即互联网上的主机(也可称为‘端’),核心部分即大量网络与路由器。核心部分为边缘部分提供服务(主机与主机通信,数据流经核心部分)
※核心部分可抽象看做“路由器组成的网络”,起到“传输数据”的作用
※路由器的任务是“转发收到的分组”,实现“分组交换”,是某种特殊的计算机
※“主机A与主机B通信”,实际上是“主机A上的某进程与主机B上的某进程进行通信”
△互联网边缘部分的通信方式有什么分类?
1.客户-服务器方式(c/s,client/server)
最大特点即“客户是服务请求方,服务器是服务提供方,两者角色不互换”。
2.对等连接方式(P2P,peer to peer)
本质上依然是c/s方式,区别在于此时双方均可既是client客户,又是server服务器
△什么是“分组”?
进程要发送的整个数据块称为“报文”,将报文划分为更小的等长数据段,并在段首添加包含例如目的地等信息的首部后,形成“分组”,也叫“包”。分组(包)是互联网传输数据的数据单元。
△什么是“分组交换”?为什么要分组交换?
首先得回顾电话通信。
当电话网络中的电话很少时,可以令电话们两两相连,但当电话很多时就不能如此了,必须借助“电路交换”,即电话都与交换机相连(大大减少线路数目),通过“交换”来动态分配线路资源(电话A与B通信时,将“交换机-A”和“交换机-B”的线路分配给它们,此时这两条线路都被完全占用)。
但是电路交换的缺点在于:通信时双方始终占用端到端的通信资源。而计算机的通信特点为“突发性”,所以电路交换方式对于计算机网络来说效率太低。
分组交换的核心原理就是“存储转发”,即令分组流经一个个路由器,让路由器“一步步”地向目标端“转发”,数据不像电路交换中那样“直达”而可能在网络中“暂存”,从而不会始终占用端到端线路。
△分组交换会带来什么新问题?
1.分组的首部信息会带来一定开销
2.需要特殊的管理和控制机制
3.时延问题。分组经过一个个路由器转发的过程中会存在多种时延,如路由器分析分组首部时的“处理时延”,分组到达路由器后需要排队等待路由器处理其它先到分组而带来的“排队时延”。此外还有不可避免的“发送时延”(对应带宽、发送速率)以及“传播时延”(取决于传输媒介的材料、距离)
△为什么不使用“报文交换”而要用“分组交换”?
原因类似于指令流水。假设报文为10个字,从端A到端B,途径一个路由器,1个字从A到路由器和从路由器到B均为1单位时间。如果使用“报文交换”,那么路由器需要从A处接收到完整报文后才开始向B传输数据,总共花费时间为10+10=20。如果使用“分组交换”,那么路由器在接收到一个分组后即可将该分组发往B,假设1个字为1个分组,那么从A开始发送数据算起的1单位时间后,路由器即可向B发送数据,最终的累计时间约为1+10=11。
△什么是网络协议?
在计算机网络中要做到有条不紊的交换数据,就必须遵守一些事先约定好的规则,这些为进行网络中的数据交换而建立的规则、标准或约定即网络协议。比如事先约定传输单元为分组,且分组具有首部,那么发送方就应遵循“协议”将数据划分为段再加上首部形成分组后再发送,而接收方也应遵循“协议”,明白接收的是分组而不是完整报文,且提取分组中数据时可依照首部信息。
△什么是网络层次?
程序设计时,如果程序复杂庞大,那么代码就不能在main函数中完全写出,而是要分为几个模块,这几个模块可能也无法完全写出,此时又需要更下一层的小模块。同理,计算机网络的“通信协调”是一项复杂的工作,为了简化工作,方便设计、实现、修改,需要将计算机网络划分层次。计算机网络的各个层次“面向不同的任务”,上层可以利用下层提供的“服务”,比如应用层利用运输层提供的服务来传输报文,而运输层利用网际层提供的服务来传输报文段……
△什么是网络的体系结构?
计算机网络的各层次及其协议的集合就是网络的体系结构。
△TCP/IP的体系结构
应用层—运输层(TCP或UDP)—网际层(IP)—网络接口层(书中将其又细分为数据链路层—物理层)
(1)应用层
定义进程间通信的规则,Internet中有多种应用层协议,如HTTP、DNS等。应用层交互的数据单位(“面向的”)是报文。
(2)运输层(TCP或UDP)
应用层利用本层提供的“通用的数据传送服务”来传送报文,本层主要有两种协议:
I.传输控制协议TCP——面向连接、可靠,数据单位是报文段
II.用户数据报协议UDP——无连接、尽最大努力的传输数据但是不保证可靠,数据单位是用户数据报
(3)网际层(IP)
本层主要有两个任务:
I.将运输层产生的报文段(或用户数据报)封装成分组。由于TCP/IP体系中本层使用IP协议,所以分组也叫IP数据报(不同于用户数据报)
II.为分组寻找合适的目标路由器
(4)网络接口层
书中细分为数据链路层和物理层:
I.数据链路层:将网际层产生的分组(IP数据报)封装成‘帧’,‘帧’包含了诸如同步信息、地址信息、差错控制等信息。网络中相邻结点间的链路上传递的是‘帧’。
II.物理层:负责考虑的是类似于“用什么电压表示0和1”、“接收方如何分辨bit”、“连接电缆的插头有多少引脚”的问题。但是具体的传输媒介不属于物理层。可以这样理解:物理层不管“线路”是什么,只管线路的“接口”该怎么样。
※TCP/IP体系中,发送方根据协议将数据“层层封装”,接收方再根据协议“层层解开”。
※数据到达路由器时,路由器先将其“解开”至物理层,再“解开”至数据链路层,再“解开”至网际层(IP),然后根据所得分组确定转发目标,确定转发目标后,将所得分组“封装”给数据链路层,再将“帧”给物理层,然后继续传送。
※由于网络层次中上层不需要知道下层怎么实现效果,所以对于应用层来说,传输的就是报文,对于运输层来说传输的就是报文段或用户数据报,对于网际层来说传输的就是分组……这就是“对等层”通信,所谓各层次协议,就是在各对等层之间传递数据的规则,只需要使用下层提供的“服务”,不需要了解下层的实现。
※现在的TCP/IP体系并不是严格的分层次,应用层有可能直接使用网际层甚至网络接口层的“服务”。
※应用层、运输层和网络接口层都有多种协议,但网际层只有IP协议,所以IP协议在TCP/IP体系中起着核心作用。