转载:猪头任
1.1 计算机网络的产生和发展
1.1.1 联机终端网络
在1946年,世界上第一台数字计算机问世,但当时计算机的数量非常少,且非常昂贵。而通信线路和通信设备的价格相对便宜,当时很多人都很想去使用主机中的资源,共享主机资源和进行信息的采集及综合处理就显得特别重要了。
1954年,联机终端是一种主要的系统结构形式,这种以单主机互联系统为中心的互联系统,即主机面向终端(不具有处理和存储能力的计算机)系统诞生了。如图1-1所示。
随着终端用户对主机的资源需求量增加,主机的作用就改变了,原因是通信控制处理机(Communication Control Processor,CCP)的产生,它的主要作用是完成全部的通信任务,让主机专门进行数据处理,以提高数据处理的效率,如图1-2所示。
【例】 联机终端网络典型的范例是美国航空公司与IBM公司在20世纪60年代投入使用的飞机订票系统(SABRE-I),当时在全美广泛应用。
1.1.2 计算机初期网络:ARPA
1969年12月,由美国国防部(DOD)资助、国防部高级研究计划局(ARPA)主持研究建立的数据包交换计算机网络ARPANET。ARPANET网络利用租用的通信线路连接美国加州大学洛杉机分校、加州大学圣巴巴拉分校、斯坦福大学和犹太大学四个结点的计算机连接起来,构成了专门完成主机之间通信任务的通信子网。通过通信子网互连的主机负责运行用户程序,向用户提供资源共享服务,它们构成了资源子网。该网络采用分组交换技术传送信息,这种技术能够保证如果这四所大学之间的某一条通信线路因某种原因被切断以后,信息仍能够通过其他线路在各主机之间传递。如图1-5所示。
1.1.3 分组交换技术出现
美苏冷战期间,ARPA提出要研制一种崭新的网络对付来自前苏联的核攻击威胁。
因为当时传统的电路交换的电信网虽已经四通八达,但战争期间,一旦正在通信的电路有一个交换机或链路被炸,则整个通信电路就要中断,如要立即改用其他迂回电路,还必须重新拨号建立连接,这将要延误一些时间。
分组交换网由若干个结点交换机和连接这些交换机的链路组成。分组交换是采用存储转发技术。
把欲发送的报文(要发送的数据整体)分成一个个的"分组"(数据段,又称包),在网络中一段一段传送。分组的目的是因为在网络中一次传输的数据受到限制。传输时每个数据段的前面加上首部(包头),首部包含发送者地址(源地址)和接收者地址(目的地址)等信息,以便在经过交换机可以据此选择传输路径。
【例】通过下列网络H1àH5传输数据。
-
电路交换
工作过程:
(1) 拨号建立连接:确定H1-A-B-E-H5通信线路
(2) 占用H1-A-B-E-H5通信线路数据传输
(3) 连接释放
2. 分组交换
-
(b)
工作过程:
-
把报文分成较小的数据段。
-
第1块数据段加首部H1àA(a)
-
第2块数据段加首部H1àA,第1块AàB(b)
-
重复
-
H5去掉首部,把数据段合并起来。
三种交换方法比较:
3. OSI开放系统互连参考模型
早期存在的问题:为了霸占市场,各厂家采用自己独特的技术并开发了自己的网络体系结构,例如:IBM发布的SNA(系统网络体系统结构)和DEC公司发布的DNA(数字网络体系统结构)。不同的网络体系结构是无法互连的,所以不同厂家的设备无法达到互连,这样就阻碍了大范围网络的发展。
为了实现网络大范围的发展和不同厂家设备的互连,1977年国际标准化组织ISO提出一个标准框架——OSI(开放系统互连参考模型),共7层。1984年正式发布了OSI,使厂家设备、协议达到全网互连。
7 应用层 |
6 表示层 |
5 会话层 |
4 运输层 |
3 网络层 |
2 数据链路层 |
1 物理层 |
4. 计算机网络发展
20世纪80年代是计算机网络特别是局域网络的发展的盛行的时期。当时采用的是具有统一的网络体系结构并遵守国际标准的开放式和标准化的网络。
20世纪90年代后随着数字通信出现和光纤的接入产生,计算机网络体系网络化、综合化、高速化及计算机协同能力等特点。
1.2 计算机网络基础
1.2.1 计算机网络定义
一个比较通用的定义是:利用通信线路将地理上分散的、具有独立功能的计算机系统和通信设备按不同的形式连接起来,以功能完善的网络软件及协议实现资源共享和信息传递的系统。
最重要的功能:连通性和资源共享
资源:硬件、软件、数据
需要的设备和材料:网卡、传输介质、连接设备
1.2.2 计算机网络拓扑结构
拓扑结构:将节点用通信链路在物理上连接在一起的布线结构。
拓扑结构的类型:总线型拓扑、星型拓扑、环型拓扑和网状拓扑。
-
总线型拓扑
所有设备连接在一条线,通过约定的规则(协议)争用信道方式进行传输信息。传输介质一般为同轴电缆。
树型拓扑是总线型拓扑的变型。
-
环型拓扑
所有设备连接在一个环上,按照特定方向通过像接力赛方式传输信息。掌握接力棒(称为令牌)进行传输。传输介质一般为光缆。
目前,主要用于网络主干网络。
-
星型拓扑
所有设备连接在一个集线器上,集线器起转接作用。传输介质一般为双绞线、光缆、空气等。
目前星型拓扑结构使用最为普遍。
-
网状拓扑
连接通信线路的设备一般为交换机,传输信息可以有多种不同路径。传输介质早期为电话线,后来为光缆。
目前,主要用于网络主干网络。
1.2.3 计算机网络的分类
虽然网络类型的划分标准各种各样,但是从地理范围划分是一种大家都认可的通用网络划分标准。按这种标准可以把各种网络类型划分为局域网、城域网、广域网和个域网。下面简要介绍这几种计算机网络。
1.局域网(Local Area Network;LAN)
局域网就是在局部地区范围内的网络,它所覆盖的地区范围较小。局域网一般位于一个建筑物或一个单位内。连接的计算机少的几台,多的可达几百台。范围可以是几米至10公里以内。
局域网包括以太网(Ethernet)、令牌网(Token Ring)、FDDI网、异步传输模式网(ATM)等几类。目前,由于以太网的迅速发展,应用比较普遍。
2.城域网(Metropolitan Area Network;MAN)
MAN与LAN相比扩展的距离更长,连接的计算机数量更多,在地理范围上可以说是LAN网络的延伸。这种网络一般来说是在一个城市,连接距离可以在10~100公里。在一个大型城市或都市地区,一个MAN网络通常连接着许多个LAN网。如连接*机构的LAN、医院的LAN、电信的LAN、公司企业的LAN等等。
以前,城域网采用ATM技术做骨干网,但成本太高。目前,很多城域网采用以太网技术。
3.广域网(Wide Area Network;WAN)
这种网络也称为远程网,所覆盖的范围比城域网(MAN)更广,它一般是在不同城市之间的LAN或者MAN网络互联,地理范围可从几百公里到几千公里。因为距离较远,信息衰减比较严重,所以这种网络一般是要租用专线,构成网状结构。
4. 个域网(Personal Area Network;WAN)
这种网络就是在个人工作的地方把属于个人使用的电子设备用无线技术连接起来的网络。其范围大约10m左右。
1.3 因特网
1.3.1因特网的演进
Internet的基础结构大体经历了三个阶段的演进,这三个阶段在时间上有部分重叠。
1.单个网络ARPAnet
1969年美国国防部创建了第一个分组交换网ARPAnet只是一个单个的分组交换网,所有想连接在它上的主机都直接与就近的结点交换机相连。
70年代中期,人们认识到仅使用一个单独的网络无法满足所有的通信问题。于是ARPA开始研究很多网络互联的技术,1983年TCP/IP协议成为ARPAnet的标准协议。
2.建立三级结构的因特网
1986年,美国国家科学基金会(NSF)围绕六个大型计算机中心建设计算机网络NSFnet,它是个三级网络,分主干网、地区网、校园网。它代替ARPAnet成为Internet的主要部分。
1991,NSF和美国*认识到因特网不会限于大学和研究机构,于是支持地方网络接入,许多公司的纷纷加入,使网络的信息量急剧增加,美国*就决定将因特网的主干网转交给私人公司经营,并开始对接入因特网的单位收费。
3.多级结构因特网的形成
1993年开始,美国*资助的NSFnet就逐渐被若干个商用的因特网主干网替代,这种主干网也叫因特网辅助提供者(ISP),考虑到因特网商用化后可能出现很多的ISP,为了使不同ISP经营的网络能够互通,在1994创建了4个*网络接入点(NAP)分别有4个电信公司经营。它主要是向不同的ISP提供交换设备,使它们相互通信。本世纪初,美国的NAP达到了十几个。
现在的因特网大致可分为五个接入级:网络接入点NAP,多个公司经营的国家主干网,地区ISP,本地ISP,校园网、企业或家庭PC机上网用户。
1.3.2 TCP/IP及其体系结构
1. TCP/IP 5层体系结构
(b) (c)
应用层:对需要传输的数据进行包装,约定应用进程之间沟通顺序。因为不同的应用需要表达的内容不同,所以一种应用就需要制定一种规则,并给它起个名称。例如:
FTP 文件传输
HTTP 网页浏览
SMTP 电子邮件
DNS 有名称查IP地址
运输层:为两个主机应用进程提供通信服务。通信服务包括两种类型:
-
可靠的交付服务(TCP):确保对方收到,而且收到的内容完整和正确的。为了可靠传输,在传输数据前需要建立连接,所以又称是面向连接。
-
尽量交付服务(UDP):确保及时发出,不能保证对方一定收到。一次能够接收应用层的数据不能太大。在传输数据不需要建立连接,所以又称是无连接。
网络层(IP):把上层需要传输的数据进行分组(称为IP数据报),帮助选择下一站传输的主机。
数据链路层:组织一次传输的数据(称为帧),在一段一段链路上传输。
物理层:透明地传输比特流。计算机的数据(1,0)变成信号。发送方如何发送接收方才能接收。使用连接接头、信号的关系。
TCP/IP体系结构与OSI结构的关系如下:
从图中可以看出下列三点:
-
TCP/IP的应用层包含了OSI上面应用层、表示层和会话层的功能。
-
-
TCP/IP将数据链路层和物理层称为网络接口层,按照不同的自己规则确定。功能就是传输网际层包装的分组(称为IP数据报)。
-
TCP/IP上面3层提供3种服务。应用层为不同应用提供相应的服务,运算层为应用层提供2种传输服务,网际层提供分组交付服务。
2. TCP/IP 5层包装
【例】H1通过AP1应用程序与H2通过AP2应用程序进行交流信息。
应用层包装:报文
应用层数据:Dat
应用层标识:H5
应用层包装后的数据:ADat=H5+Dat
运输层包装:报文
首部(H4)
ADat
首部(H4)至少包括:
H1的AP1应用进程号
H2的AP2应用进程号
应用进程就是应用程序运行时操作系统识别的编号。
TDat=首部(H4)+ADat
网络层包装:IP数据报
首部(H3)
TDat
首部(H3)至少包括:
H1的IP地址
H2的IP地址
Tcp/udp号
NDat=首部(H3)+TDat
数据链路层包装:帧
首部(H2)
NDat
尾部(T2)
首部(H2)至少包括:
H1的网卡号
R1的左网卡号
数据大时,还包括分块的序号等。
IP数据报协议号
尾部(T2):校验码。通过它确定接收的帧是否正确。
LDat(=首部(H2)+NDat+尾部(T2)
物理层:0/1数据流
帧(LDat)à0/1数据流à传输介质上的信号。
1.3.3数据传输过程
1. 数据传输过程
(1) 发送主机与接收主机(端到端)之间传输
(2) 一个一个网络传输
因为路由器主要功能是选择路径。而选择路径需要目的IP地址,而目的IP地址包装在网络层的IP数据报中。
2.同层协议和层间交流
-
同层使用相同协议进行交流
协议包括三个要素:
-
语法:数据与控制信息的格式(结构)
-
语义:描述格式表达的意义
-
同步:传输信息的先后顺序。
【例】运输层TCP协议。
语法:TCP报文包括首部和数据部分。数据部分是应用层需要传输的内容,首部是TCP协议自己定义的内容。
语义:首部不同写法代表的意义。
同步:因为TCP是可靠的传输协议,数据需要建立连接、数据传输和释放连接三个阶段实现。具体过程如下:
在数据传输前发送方需要首先向接收方发报文,接收方愿意接收需要向发送方回复报文。发送方收到回复报文后,开始发送传输数据报文,接收方收到数据报文,需要给发送方确认。数据传输结束,发送方发报文告知接收方,接收需要向发送方回复报文。
-
层间通过约定进行交流
层间交流方法:
(1) 下层为上层提供服务:调用相应的程序(模块)使用服务,需要的数据通过参数传入。
【例】运输层TCP协议提供的服务。
在Visual C++中,TCP协议在操作系统的WinsockAPI中实现,MFCSocket把它包装成类。这样,应用层需要传输内容和参数存放在类的属性中,传输
(2) 下层找上层:通过本层提供的头部有信息选择调用的程序(模块)。
【例】运输层TCP数据上传方法。
TCP头中包含发送者应用进程号和接收者的应用进程号,通过接收者的应用进程号找到应用进程,把TCP的数据交给它。
1.3.4 数据传输方法
1. 客户服务器方式
客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。
客户服务器方式(C/S)所描述的是进程之间服务和被服务的关系。
客户是服务的请求方,服务器是服务的提供方。
客户 A 向服务器 B 发出请求服务,服务器 B 向客户 A 提供服务。
-
对等连接方式
对等连接(peer-to-peer,简写为 P2P)是指两个主机在通信时并不区分哪一个是服务请求方还是服务提供方。只要两个主机都运行了对等连接软件(P2P 软件),它们就可以进行平等的、对等连接通信。
双方都可以下载对方已经存储在硬盘中的共享文档。
1.3.5 数据传输性能描述
1. 速率
Bit 来源于 binary digit,比特(bit)是计算机中数据量的单位,意思是一个"二进制数字",因此一个比特就是二进制数字中的一个 1 或 0。
速率(或比特率)是计算机网络中最重要的一个性能指标。速率的单位是 b/s(bps),或kb/s, Mb/s, Gb/s 等
2. 带宽
"带宽"(bandwidth)本来是指信号具有的频带宽度,单位是赫(或千赫、兆赫、吉赫等)。
现在"带宽"是数字信道所能传送的"最高数据率"的同义语,单位是"比特每秒",或 b/s (bit/s)。
更常用的带宽单位是
千比每秒,即 kb/s (103 b/s)
兆比每秒,即 Mb/s(106 b/s)
吉比每秒,即 Gb/s(109 b/s)
太比每秒,即 Tb/s(1012 b/s)
注意:在计算机界,K = 210 = 1024,M = 220, G = 230, T = 240。
-
时延
数据经历的总时延=发送时延+传播时延+处理时延+排队时延
传输时延(发送时延 ):发送数据时,数据块从结点进入到传输媒体所需要的时间。也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
传播时延:电磁波在信道中需要传播一定的距离而花费的时间。
处理时延:交换结点为存储转发而进行一些必要的处理所花费的时间。
排队时延:结点缓存队列中分组排队所经历的时延。排队时延的长短往往取决于网络中当时的通信量。
从结点 A 向结点 B 发送数据:四种时延所产生的地方