计算机网络: 由若干 结点(node)
和 连接这些结点的 链路(link)
组成.
结点 可以是: 计算机,集线器,交换机 或 路由器 等.
网络 之间可以通过 路由器 互连起来,这就构成了一个覆盖范围更大的计算机网络.
与网络相连的计算机常称为 主机(host).
互联网服务提供者 ISP(Internet Service Provider).如: 电信,联通,移动 等公司.
ISP可以从互联网管理机构申请到很多IP地址,同时拥有通信线路.
ISP也分为不同层次的ISP: 主干ISP,地区ISP 和 本地ISP.
只要每一个本地ISP都安装了路由器连接到某个地区ISP,而每一个地区ISP也有路由器连接到主干ISP,那么在这些相互连接的ISP的共同合作下,就可以完成互联网中的所有的分组转发任务.
IXP(Internet eXchange Point)
互联网交换点IXP 的作用: 允许两个网络直接相连并交换分组,而不需要再通过第三个网络来转发分组
.
典型的IXP由一个或多个网络交换机组成,许多ISP再连接到这些网络交换机的相关端口上.
IXP常采用工作在数据链路层的网络交换机
,这些网络交换机都用局域网互连起来.
从其工作方式上看,可以划分为以下两大块:
(1)边缘部分
由所有连接在互联网上的主机组成.这部分是用户直接使用的,用来进行通信(传送数据,音频或视频)和资源共享.
(2)核心部分
由大量网络和连接这些网络的路由器组成.这部分是为边缘部分提供服务的(提供连通性和交换).
主机A的某个进程和主机B上的另一个进程进行通信.
在网络边缘的端系统之间的通信方式通常可划分为两大类:客户-服务器方式(C/S方式)和 对等方式(P2P方式)
客户-服务器方式:
客户是服务请求方,服务器是服务提供方.
对等连接方式:
对等连接( peer-to-peer,简写为P2P).
互联网的核心部分
网络核心部分是互联网中最复杂的部分,因为网络中的核心部分要向网络边缘中的大量主机提供连通性,使边缘部分中的任何一台主机都能够向其他主机通信.
在网络核心部分起特殊作用的是路由器
(router),它是一种专用计算机(但不叫做主机).路由器是实现分组交换(packet switching)的关键构件,其任务是转发收到的分组 ,这是网络核心部分最重要的功能
.
分组交换则采用存储转发 技术.
把一个报文划分为几个分组后再进行传送.
通常我们把要发送的整块数据称为一个 报文(message)
.
在发送报文之前,先把较长的报文划分成为一个个更小的等长数据段.
在每一个数据段前面,加上一些由必要的控制信息组成的首部(header)后,就构成了一个分组(packet).分组又称为"包 "
,而分组的首部也可称为"包头 ".
分组是在互联网中传送的数据单元.
分组中的"首部"是非常重要的,正是由于分组的首部包含了诸如目的地址和源地址等重要控制信息
,每一个分组才能在互联网中独立地选择传输路径,并被正确地交付到分组传输的终点.
路由器则是用来转发分组的,即进行分组交换的.
路由器收到一个分组,先暂时存储一下,检查其首部,查找转发表,按照首部中的目的地址,找到合适的接口转发出去,把分组交给下一个路由器.
这样一步一步地(有时会经过几十个不同的路由器)以存储转发的方式,把分组交付最终的目的主机.
各路由器之间必须经常交换彼此掌握的路由信息,以便创建和动态维护路由器中的转发表,使得转发表能够在整个网络拓扑发生变化时及时更新.
路由器暂时存储的是一个个短分组,而不是整个的长报文
.短分组是暂存在路由器的存储器(即内存)中而不是存储在磁盘中的.这就保证了较高的交换速率.
速率
带宽
在计算机网络中,带宽用来表示网络中某通道 传送数据的能力,因此网络带宽表示在单位时间内网络中的某信道所能通过的"最高数据率 "
.这种意义的带宽的单位 就是数据率的单位 bit/s,是"比特每秒".
吞吐量
吞吐量(throughput)表示在单位时间内通过某个网络(或信道,接口)的实际的数据量.
时延
时延(delay或latency)是指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间.时延是个很重要的性能指标,它有时也称为延迟或迟延.
(1)发送时延
(2)传播时延
(3)处理时延
(4)排队时延
在计算机网络中要做到有条不紊地交换数据,就必须遵守一些事先约定好的规则.
这些规则明确规定了所交换的数据的格式以及有关的同步问题.
这些为进行网络中的数据交换而建立的规则,标准或约定 称为 网络协议(network protocol).
(1)各层之间是独立的.
(2)灵活性好.
(3)结构上可分割开.
(4)易于实现和维护.
(5)能促进标准化工作.
1.差错控制
使相应层次对等方的通信更加可靠.
2.流量控制
发送端的发送速率必须使接收端来得及接收,不要太快.
3.分段和重装
发送端将要发送的数据块划分为更小的单位,在接收端将其还原.
4.复用和分用
发送端几个高层会话复用一条低层的连接,在接收端再进行分用.
5.连接建立和释放
交换数据前先建立一条逻辑连接,数据传送结束后释放连接.
分层当然也有一些缺点,例如,有些功能会在不同的层次中重复出现,因而产生了额外开销.
计算机网络的各层及其协议的集合 就是网络的体系结构(architecture).
OSI的七层协议体系结构的概念清楚,理论也较完整,但它既复杂又不实用.
TCP/IP体系结构则不同,但它现在却得到了非常广泛的应用.
TCP/IP是一个四层的体系结构
.
它包含应用层,运输层,网际层 和 网络接口层
.(用 网际层 这个名字是强调这一层是为了解决不同网络的互连问题)
不过从实质上讲,TCP/IP只有最上面的三层,因为最下面的网络接口层并没有什么具体内容.
因此在学习计算机网络的原理时往往采取折中的办法,即综合OSI和TCP/IP的优点,采用一种只有五层协议的体系结构,这样既简洁又能将概念阐述清楚.
有时为了方便,也可把最底下两层称为网络接口层.
应用层(application layer)
应用层是体系结构中的最高层.
应用层的任务是通过应用进程间的交互来完成特定网络应用.
应用层协议定义的是应用进程间通信和交互的规则.
这里的进程,就是指主机中正在运行的程序.
对于不同的网络应用需要有不同的应用层协议.
在互联网中的 应用层协议 很多,如域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,等等
.
我们把应用层交互的数据单元称为报文(message).
运输层(transport layer)
运输层的任务就是负责两台主机中进程之间的通信,提供通用的数据传输 服务
.
应用进程利用该服务传送应用层报文.
所谓"通用的",是指并不针对某个特定网络应用,而是多种应用可以使用同一个运输层服务.
由于一台主机可同时运行多个进程,因此运输层有 复用 和 分用
的功能.
复用就是多个应用层进程可同时使用下面运输层的服务,分用和复用相反,是运输层把收到的信息分别交付上面应用层中的相应进程.
运输层主要使用以下两种协议:
传输控制协议 TCP(Transmission Control Protocol):
提供面向连接的,可靠的数据传输服务,其数据传输的单位是报文段(segment).
用户数据报协议 UDP(User Datagram Protocol):
提供无连接的,尽最大努力(best-effort)的数据传输服务(不保证数据传输的可靠性),其数据传输的单位是用户数据报.
有人愿意把运输层称为传输层,理由是这一层使用的TCP协议就叫做传输控制协议.
网络层(network layer)
网络层负责为分组交换网上的不同主机 提供通信服务.
在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组 或包 进行传送.
在TCP/IP体系中,由于网络层使用IP协议,因此分组 也叫做 IP数据报
,或简称为数据报.
数据链路层(data link layer)
数据链路层常简称为链路层.
两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议.
在两个相邻结点之间传送数据时,数据链路层将网络层交下来的 IP数据报 组装成帧(framing),在两个相邻结点间的链路上传送帧(frame).
每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等).
在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束.这样,数据链路层在收到一个帧后,就可从中提取出数据部分,上交给网络层.
控制信息还使接收端能够检测到所收到的帧中有无差错
.
如发现有差错,数据链路层就简单地丢弃这个出了差错的帧,以免继续在网络中传送下去白白浪费网络资源.
物理层(physical layer)
在物理层上所传数据的单位是比特.
发送方发送1(或0)时,接收方应当收到1(或0)而不是0(或1).
现在人们经常提到的TCP/IP并不一定是单指TCP和IP这两个具体的协议,而往往是表示互联网所使用的整个TCP/IP协议族
(protocol suite).