互联网的两特性:
连通性以及共享。
互联网概述
网络中的网络
计算机网络简称为网络由若干个结点以及连接这些结点的链路组成。
结点可以是计算机,路由器,集线器,交换机等。
互联网基础结构发展的第三阶段
第一阶段
单个网络ARPANET向互联网发展的过程。也就是单体连接网络向互联网的发展。
以小写字母i开头的internet(互连网)是一个通用的名词,它泛指多个计算机网络互连而成的计算机网络。网络协议任意选择不一定是TCP/IP
以大写字母I开始的Internet(因特网)则是一个专有名词,它指当前全球最大的,开放的,由众多网络相互连接而成的特定的互联网,它采用TCP/IP协议族作为通信的规则其前身是美国的ARPANET。
第二阶段
特点就是建成了三级结构的互联网。
三级网络分为主干网,地区网和校园网(或企业网)。
第三阶段
特点是逐渐形成了多层次ISP结构的互联网。
互联网服务提供者ISP又常译为互联网服务提供商。
互联网交换点IXP:允许两个网络直接相连并交换分组,不需要再通过第三个网络来进行转发分组。
互联网的组成
(1)边缘部分 由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信和资源共享。
(2)核心部分 由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的。
互联网的边缘部分
处在互联网边缘的部分就是连接在互联网上的所有的主机。这些主机又被称为端系统端就是末端的意思即互联网的末端。
主机A与主机B的通信指A上的程序和B上的另一个程序进行通信。也就是主机A与主机B的通信指A上的进程和B上的另一个进程进行通信。jian chenhg简称计算机之间的通信。
通信方式分为客户-服务器方式即C/S方式和对等方式P2P方式。
客户-服务器方式
最传统的方式。
客户是服务请求方,服务器是服务提供方。工作方式如图:
客户程序:
(1)被用户调用后运行,在通信时主动向远地服务器发起通信(请求服务)。因此,客户程序必须知道服务器程序的地址。
(2)不需要特殊的硬件和很复杂的操作系统。
服务器程序:
(1)是一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。
(2)系统启动后即自动调用并一直不断地运行着,被动地等待并接受来自各地的客户的通信请求。因此服务器程序不需要知道客户程序的地址。
(3)一般需要有强大的硬件和高级的操作系统支持。
客户与服务器的通信关系建立后,通信可以是双向的,客户和服务器都可发送和接收。
顺便要说一下,上面所说的客户和服务器本来都指的是计算机进程(软件)。使用计算机的人是计算机的“用户” (user)而不是“客户”(client),但在许多国外文献中,
经常也把运行客户程序的机器称为client(在这种情况下也可把client译为“客户机”,把运行服务器程序的机器称为server.
因此我们应当根据上下文来判断client或server是指软件还是硬件
对等方式(peer-two-peer P2P)
对等连接(peer-to-peer,简写为P2P,这里使用数字2是因为英文的2是two,其读音与to同,因此英文的to常缩写为数字2)是指
两台主机在通信时并不区分哪一个是服务请求方哪一个是服务提供方,只要两台主机都运行了对等连接软件(P2P软件),
它们就可以进行平等的、对等连接通信,这时,双方都可以下载对方已经存储在硬盘中的共享文档。
因比这种工作方式也称为P2P方式,在图中,主机C, D, E和F都运行了P2P软件,因山这几台主机都可进行对等通信(如C和D, E和F,以及C和F),
实际上,对等连接方式从本质上看仍然是使用客户-服务器方式,只是对等连接中的每一台主机既是客户又同时是服务器,
例如主机C,当C请求D的服务时, c是客户,D是服务器。但如果C又同时向F提供服务,那么C又同时起着服务器的作用。
互联网的核心部分
网络核心部分是互联网中最复杂的部分,因为网络中的核心部分要向网络边缘中的大量主机提供连通性,使边缘部分中的任何一台主机都能够向其他主机通信。
在网络核心部分起特殊作用的是路由器(router),它是一种专用计算机(但不叫做主机)。路由器是实现分组交换(packet switching)的关键构件,
其任务是转发收到的分组,这是网络核心部分最重要的功能。为了弄清分组交换,下面先介绍电路交换的基本概念。
1,电路交换的主要特点
在电话问世后不久,人们就发现,要让所有的电话机都两两相连接是不现实的两部电话只需要用一对电线就能够互相连接起来。
但若有5部电话要两两相连,则需要10对电线。显然,若N部电话要两两相连,就需要NN-1)2对电线
当电话机的数量很大时,这种连接方法需要的电线数量就太大了(与电话机的数量的平方成正比)。
于是人们认识到,要使得每一部电话能够很方便地和另一部电话进行通信,就应当使用电话交换机将这些电话连接起来。
每一部电话都连接到交换机上,而交tiita方便地通信,电话发明后的一百多年来,电话交换的方式一直是电路交换。
交换就是按照某种方式动态分配传输线路的资源。当被叫用户听到交换机送来的振铃音并摘机后,从主叫端到被叫端就建立了一条连接,也就是一条专用的物理通路。
这条连接保证了双方通话时所需的通信资源,而这些资源在双方通信时不会被其他用户占用。此后主叫和被叫双方就能互相通电话,
通话完毕挂机后,交换机释放刚才使用的这条专用的物理通路(即把刚才占用的所有通信资源归还给电信网),
这种必须经过“建立连接(占用通信资源)一通话(一直占用通信资源) →释放连接(归还通信资源)”三个步骤的交换方式称为电路交换,
如果用户在拨号呼叫时电信网的资源已不足以支持这次的呼叫,则主叫用户会听到忙音,表示电信网不接受用户的呼叫,用户必须挂机,等待一段时间后再重新拨号.
在通话的全部时间内,通话的两个用户始终占用端到端的通信资源。
使用电路交换来线路的传输效率往往很低。这是因为计算机数据是突发式的。
2.分组交换的主要特点
分组交换则采用存储转发技术。把一个报文划升为几个分组后再进行传送。通常我们把要发送的整块数据称为一个报文(message),
在发送报文之前,先把较长的报文划分成为一个个更小的等长数据段,例如,每个数据段为1024 bit。
在每一个数据段前面,加上一些由必要的控制信息组成的首部(header)后,就构成了一个分组(packet),分组又称为“包”,而分组的首部也可称为“包头”,分组是在互联网中传送的数据单元。
分组中的“首部”是非常重要的,正是由于分组的首部包含了诸如目的地址和源地址等重要控制信息,每一个分组才能在互联网中独立地选择传输路径,并被正确地交付到分组传输的终点。
问题:
1、分组在各路由器存储转发时需要排队,这就会有时延。
电报通信也采用基于存储转发原理的报文交换。
计算机网络的类别
计算机网络的定义
关于计算机网络的较好的定义是这样的:
计算机网络主要是由一些通用的可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号),
这些可编程的硬件能够用来传送多种不陶类型的数据,并能支持广泛的和日益增长的应用
根据这个定义: (1)计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手机。
(2)计算机网络并非专门用来传送数据,而是能够支持很多种的应用(包括今后可能出现的各种应用).
几种不同类别的计算机网络
按照网络的作用范围进行分类
(1)广域网WAN 作用范围几十到几千公里也称为远程网
(2)城域网MAN 一般是一个城市5-50km
(3)局域网LAN 学校或者企业区域一般是一个局域网
(4)个人区域网 个人区域的连接起来的网络
按照网络的使用者进行分类
(1)公用网 大型网络,公众网。
(2)专用网 某个部门为了满足本单位需求而建造的网络。
用来把用户接入到互联网的网络
这种就是接入网,又称为本地接入网或居民接入网。
计算机网络性能
计算机网络的性能指标
1、速率
2、带宽
3、吞吐量
4、时延
5、时延带宽积
6、往返时间RTT
7、利用率
计算机网络非性能指标
1、费用
2、质量
3、标准化
4、可靠性
5、可扩展性和可升级性
6、易于管理和维护
计算机网络体系结构
计算机网络体系结构的形成
计算机网络是个非常复杂的系统。为了说明这一点,可以设想一种最简单的情况;连接在网络上的两台计算机要互相传送文件。
显然,在这两台计算机之间必须有一条传送数据的通路。但这还远远不够。至少还有以下几项工作需要去完成:
(1)发起通信的计算机必须将数据通信的通路进行激活(acivate),所谓“激活”就是要发出一些信令,保证要传送的计算机数据能在这条通路上正确发送和接收。
(2)要告诉网络如何识别接收数据的计算机。
(3)发起通信的计算机必须查明对方计算机是否已开机,并且与网络连接正常。
(4)发起通信的计算机中的应用程序必须弄清楚,在对方计算机中的文件管理程序是否已做好接收文件和存储文件的准备工作。
(5)若计算机的文件格式不兼容,则至少其中一台计算机应完成格式转换功能。
(6)对出现的各种差错和意外事故,如数据传送错误、重复或丢失,网络中某个结点交换机出现故障等,应当有可靠的措施保证对方计算机最终能够收到正确的文件。
协议与划分层次
这些规则明确规定了所交换的数据的格式以及有关的同步问题。
这里所说的同步不是狭义的而是广义上的,即在一定的条件下应当发生什么事件(例如,应当发送一个应答消息)
因而同步含有时序的意思。这些为进行网络中的数据交换而建立的规则、标准或约定称为网络协议。网络协议也可以简称为协议。
网络协议主要有下面三要素组成:
(1)语法,即数据与控制信息的结构或格式;
(2)语义,即需要发出何种控制信息,完成何种动作以及做出何种响应;
(3)同步,即事件实现顺序的详细说明。
由此可以见网络协议是计算机网络不可缺少的组成部分。
协议通常有两种不同的形式。一种是使用便于人来阅读和理解的文字描述。另一种是使用让计算机能够理解的程序代码。
这两种不同形式的协议都必须能够对网络上的信息交换过程做出精确的解释。
我们可以将要做的工作划分为三类。第一类工作与传送文件直接有关。例如,发送端的文件传送应用程序应当确信接收端的文件管理程序已做好接收和存储文件的准备。
若两台主机所用的文件格式不一样,则至少其中的一台主机应完成文件格式的转换。
这两项工作可用一个文件传送模块来完成。这样,两台主机可将文件传送模块作为最高的一层
在这两个模块之间的虚线表示两台主机系统交换文件和一些有关文件交换的命令。
分层的好处
- 各层之间相互独立的。某一层不需要知道自己的下一层是做什么的,只用实现自己的功能即可。
- 灵活性好。当任何一层发生改变时只要层间的关系不变就对其他层没有影响。
- 结构上可分割开。 各层都可以采用最合适的技术进行实现。
- 易于实现和维护。将一个庞大系统分割成若干的子系统。
- 能促进标准化工作。因为每一层的功能都已经详细进行说明了。
分层时注意功能明确每一层完成的功能主要有以下一些(包括一种或者多种): - 差错控制 是相应的层次对等方的通信更加的可靠。
- 流量控制 发送端的发送速率必须使接收端来得及接收,不要太快。
- 分段和重装 发送端将要发送的数据块划分为更小的单位,在接收端将其还原。
- 复用和分用 发送端几个高层会话复用一条低层的连接,在接收端再进行分用。
- 连接建立和释放 交换数据前先建立一条逻辑连接,数据传送结束后释放连接。
分层当然也有一些缺点,例如,有些功能会在不同的层次中重复出现,因而产生了额外开销。
计算机网络的各层及其协议的集合就是网络的体系结构(architecture),换种说法,计算机网络的体系结构就是这个计算机网络及其构件所应完成的功能的精确定义[GREE82],
需要强调的是:这些功能究竟是用何种硬件或软件完成的,则是一个遵循这种体系结构的实现(implementation)的问题。
总之,体系结构是抽象的,而实现则是具体的,是真正在运行计算机硬件和软件。
具有五层协议的体系结构
OSI的七层协议是是概念清楚以及理论比较完整的但是比较理想化的,即复杂又不实用。 TCP/IP体系结构则不同,但它现在却得到了非常广泛的应用
TCP/IP是一个四层体系结构(图1-18(b),它包含应用层、运输层、网际层和网络接口层(用网际层这个4是强调这一层是为了解决不同网络的互连问题)。
不过从实质上讲, TCP/IP只有最上面3层,因为最下面的网络接口层并没有什么具体内容。
因此在学习计算机网络的原理时往往折中的办法,即综合OSI和TCPIP的优点,采用一种只有五层协议的体系结构。(注:五层协议的体系结构只是为介绍网络额理而设计的,实际应用还是TCPIP四层体系结构。)
详情如图:
- 应用层 (application layer)
应用层是体系结构中的最高层。应用层的任务是通过应用进程间的交互来完成特定网络应用。
应用层协议定义的是应用进程间通信和交互的规则。这里的进程就是指主机中正在运行的程序。协议有如:HTTP、DNS、SMTP等,交互单位为报文。 - 运输层输层(transport layer)
运输层的任务就是负责向两台主机中进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。
由于一台主机可同时运行多个进程,因此运输层有复用和分用的功能。复用就是多个应用层进程可同时使用下面运输层的服务,
分用和复用相反,是运输层把收到的信息分别交付上面应用层中的相应进程。
运输层主要使用以下两种协议:
- 传输控制协议TCP (Transmission Control Protoce)一-提供面向连接的、可靠的数据传输服务,其数据传输的单位是报文段(segment)
- 用户数据报协议UDP (USser Datagram Protocol)提供无连接的、尽最大努力(besteffor)的数据传输服务(不保证数据传输的可靠性),其数据传输的单位是用户数据报。
网络层(network layer)
网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。
在TCP/IP体系中,由于网络层使IP协议因此分组的也叫做IP数据报简称数据报。
网络层的另一个任务就是找到合适的路由。
互联网就是由大量的异构网络通过路由器相互连接起来的。数据链路层(data link layer)
数据链路层常简称为链路层,我们知道,两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。
在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧(framing),在两个相邻结点间的链路上传送帧(frame),每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)
在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。
这样,数据链路层在收到一个帧后,就可从中提取出数据部分,上交给网络层。
控制信息还使接收端能够检测到所收到的帧中有无差错,如发现有差错,数据链路层就简单地丢弃这个出了差错的帧,
以免继续在网络中传送下去白白浪费网络资源。如果需要改正数据在数据链路层传输时出现的差错(这就是说,数据链路层不仅要检错,而且要纠错),
那么就要采用可靠传输协议来纠正出现的差错。这种方法会使数据链路层的协议复杂些。物理层(physical layer)
在物理层上所传数据的单位是比特,发送方发送1(或0)时,接收方应当收到1(或))而不是0(或1),因此物理层要考虑用多大的电压代表"1"或“0",
以及接收方如何识别出发送方所发送的比特。物理层还要确定连接电缆的插头应当有多少根引脚以及各引脚应如何连接,当然,解释比特代表的意思,就不是物理层的任务。
请注意,传递信息所利用的一些物理媒体,如双绞线、同轴电缆、光缆、无线信道等,并不在物理层协议之内而是在物理层协议的下面,因此也有人把物理层下面的物理媒体当作第0层。\
在互联网所使用的各种协议中,最重要的和最著名的就是TCP和IP两个协议。
现在人们经常提到的TCP/IP并不一定是单指TCP和IP这两个具体的协议,而往往是表示互联网所使用的整个TCPIP协议族(protocol suitey).
实体、协议、服务和服务访问点
实体(entity)这一较为抽象的名词表示任何可发送或接收信息的硬件或软件进程。
协议是控制两个对等实体(或多个实体)进行通信的规则的集合。
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。
首先,协议的实现保证了能够向上一层提供服务。使用本层服务的实体只能看见服务而无法看见下面的协议。也就是说,下面的协议对上面的实体是透明的。
其次,协议是“水平的”,即协议是控制对等实体之间通信的规则。但服务是“垂直的",即服务是由下层向上层通过层间接口提供的。
另外,并非在一个层内完成的全部功能都称为服务。只有那些能够被高一层实体“看得见”的功能才能称之为“服务"。
上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令在OSI中称为服务原语。
在同一系统中相邻两层的实体进行交互(即交换信息)的地方,通常称为服务访问点SAP (Service Access Point),服务访问点SAP是一个抽象的概念,
它实际上就是一个逻辑接口,有点像邮政信箱(可以把邮件放入信箱和从信箱中取走邮件),但这种层间接口和两个设备之间的硬件接口(并行的或串行的)并不一样。
TCP/IP的体系结构
如图四层协议的表示方法的例子