计算机网络基础1--基本概念

概述

1.1 基本概念

网络分类分为三大类,电信网络–提供电话、电报、传真等服务,有线电视网络-传送各种电视节目,计算机网络–在计算机之间传输数据文件。三网融合:即上述三大类网络融合成一种网络,并提供上述所有服务。Internet(互联网、因特网):全球最大的计算机网络,是由数量极大的各种计算机网络互连起来的。互联网+:互联网+各个传统行业。

计算机网络:由若干节点(node)和连接这些结点的链路(link)组成。结点包括:计算机、集线器、交换机、路由器等。

一朵云:用一朵云表示计算机网络。根据实际场景,一朵云可以是包括主机在内的节点+链路;也可以是除主机外的路由器+连接路由器的链路。

internet:通用名词,泛指由多个计算机网络互连而成的计算机网络
Internet:专用名称(互联网,或因特网),指当前全球最大的、开放的、由众多网络互相连接而成的特定互连网-互联网,它采用TCP/IP协议族作为通信规则。

互联网基础结构发三阶段:

  • 第一阶段:ARPANET(1969分组交换网)-→Internet(1983,TCP/IP协议成为ARPANET的标准协议,使得所有使用这一协议的计算机都能互相通信,因此把1983年作为互联网的诞生时间)。
  • 第二阶段:三级结构的互联网,主干网、地区网、校园网(企业网)。
  • 第三阶段:主干网由私人公司经营,发展形成多层次ISP(Internet Service Provider)结构的互联网。ISP–互联网服务提供者(比如中移动、联通、电信)。ISP分为三层:主干ISP、地区ISP、本地ISP

互联网交换点IXP(Internet eXchange Point):研究从主机A-主机B如何最快到达的链路交换位置。

万维网:www(word wide web),欧洲原子核研究组织开发的工具,广泛运用在互联网上。

互联网组成:

  • 边缘部分:由所有连接在互联网上的主机组成。这部分由用户直接使用,用来进行通信和资源共享。这些主机又称为端系统(end system),互联网的末端。

  • 核心部分:由大量网络和连接这些网络的路由器组成。这部分为边缘部分提供服务(提供连通性和交换)。

    进程就是运行着的程序,因此主机A与主机B进行通信,严谨的说法是主机A的某个进程与主机B上的另一个进程进行通信。

端系统(边缘部分)之间的通信方式分为两大类

  • 客户-服务器方式(C/S,client-server):client和server都是指通信中所涉及的两个应用进程。这种方式描述的是进程之间服务和被服务的关系。客户端client是服务请求方,服务器server是服务提供方,client和server都要使用网络核心部分所提供的服务。

  • 对等方式(P2P,peer-to-peer):两台主机在通信不区分哪一个是服务器请求方,哪一个是服务提供方。台主机都运行了对等连接软件。本质上仍然是C/S方式,只是对等连接中每一台主机既是客户又同时是服务器。对等连接工作方式可支持大量的对等用户同时工作。

    按作用范围不同:计算机网络分为广域网WAN、城域网MAN、局域网LAN和个人区域网PAN

核心部分重要概念
网络核心部分是互联网中最复杂的部分。网络核心部分起特殊作用的是路由器(router),它是一种专用的计算机(不叫主机)。路由器是实现**分组交换*(package switching)**的关键构件,其任务是转发收到的分组,这也是网络核心部分最重要的功能。

  • 电路交换: 电话机问世后不久,人们就发现要让所有的电话机都两两相连不现实,于是产生了电话交换机。电话机发明后的一百多年,电话交换机的交换方式一直都是电路交换。 从通信资源的分配角度来看,交换(switch)就是按照某种方式动态的分配传输线路的资源。主叫端到被叫端会建立一条专用的物理通路。电路交换整个过程分为“建立连接(占用通信资源)–通话(一直占用)-- 释放连接(归还通信资源)”三步。缺点是线路的传输利用率往往很低,不适合互联网通信。
  • 分组交换: 分组交换采用存储转发技术。TCP/IP信息传输,先把一个较长的报文(message)划分为一个个更小的等长数据段,在每个数据段前面加上一些由必要的控制信息组成的首部(header,也称包头)后,就构成了一个分组(也称包,package)。分组是互联网中传输的数据单元。分组的首部非常重要,正是由于首部包含了诸如目的地址和源地址等重要信息,每一个分组才能独立的被正确的交付到目的地。

分组交换:
网络边缘的主机是为用户进行信息处理的,并且可以和其他主机通过网络交换信息。而路由器则是用来转发分组的,即进行分组交换。路由器收到一个分组,先暂存(暂存在内存中,而不是磁盘,保证较高的交换速率)下来,检查其首部,查找转发表,按照首部中的目的地址,找到合适的接口转发到下一个路由器,最终达到目的地主机。 各路由器之间必须经常交换彼此掌握的路由信息,以便创建和动态维护路由器中的转发表,使得转发表能够在整个网络拓扑发生变化时及时更新。

互联网可以容许非常多的主机同时进行通信,一台主机中的多个进程也可以各自和不同的主机中的不同进程进行通信。
分组交换在传输数据时不必占用一条端到端的链路的通信资源,而是根据首部查找目的地址,省去了建立连接和释放连接的开销(早期电话交换机人工交换线路,很慢),因而数据的传输效率更高。

报文传输链路:分组可以走不同的链路,根据选择的协议(protocol)走最合适、最近、最快的,即使一条链路故障,还可以走其他链路,可靠。

核心部分采用网状拓扑结构:保证部分链路故障,不至于全网瘫痪。

总之,分组交换具有高效、灵活、迅速、可靠的优点。

存在的问题

  1. 时延;分组交换,在各个路由器存储转发时需要排队,这就会造成一定的时延
  2. 开销:分组交换必须携带首部(header),造成一定的开销(overhead)。

20世纪40年代的电报通信,就采用了基于存储转发原理的报文交换(message switching),只是没有对报文进行分组,电报交换中心以每份报文为单位,将纸带撕下,然后根据报文的目的站地址,拿到相应的发报机转发出去。时延很长。


1.2 计算机网络性能指标

1、速率:网络技术中的速率指的是数据的传送速率,也称数据率或比特率(bit rate),单位是bit/s(bps,b/s)。一个bit就是二进制数中的0或1。这个速率通常是额定速率或标称速率。

2、带宽(bandwidth):本来指信号具有的频带宽度。信号的带宽是指该信号所包含的各种频率成分所占据的频率范围(例如,传统的通信线路上传送的电话信号的标准带宽是3.1KHz,从300Hz到3.4KHz,即话音的主要成分的频率范围),这种意义的带宽单位是Hz。
计算机网络中,带宽用来表示网络中某通道传送数据的能力,因此网络带宽表示单位时间内网络中的某信道所能通过的最高数据率。这种意义的带宽但是就是数据率的单位bit/s。

3、吞吐量(throughput):表示单位时间内通过某个网络(信道、接口)的实际的数据量。吞吐量受网络的带宽限制。例如一个带宽为1Gbit/s的以太网,其实际吞吐量可能为100Mbit/s。

4、时延(delay或latency):是指数据(一个报文或分组,甚至bit)从网络(或链路)的一端传送到另一端所需的时间。有时也称延迟或迟延。时延分为:

  • 发送时延:是指主机或路由器发送数据帧所需要的时间。也就是从发送数据帧的第一个bit算起,到该数据帧的最后一个bit完毕所需的时间。发送时延可以理解为汽车通过收费站需要的时间。发送时延 = 数据帧长度(bit)/发送速率(bit/s)

  • 传播时延:电磁波在信道中传播一定的距离需要花费的时间。传播时延可以理解为汽车在高速路上行驶的时间。电磁波在铜线中的传播速率约为2.3*105km/s,在光纤线中的传播速率约为2*105km/s。实际上铜线传播更快。传播时延 = 信道长度(m)/电磁波在信道上的传播速率(m/s)

  • 处理时延:主机或路由器分析处理数据首部、进行分组、差错检验、查找路由表等花费的时间。

  • 排队时延:网络传输时,经过许多路由器。分组进入路由器后要先在输入队列中排队等待处理。路由器确定了转发接口后,还要在输出队列中排队等待转发。

    总时延 = 发送时延(transmission delay) + 传播时延(propagation delay) + 处理时延 + 排队时延 
    

5、时延带宽积:传播时延带宽积=传播时延*带宽。这是一个代表链路的圆柱形管道。管道的长度(这里的长度单位是时间s)是链路的传播时延,管道的横截面(bit/s)是链路的带宽。因此,时延带宽积表示链路可容纳多少个bit。

6、往返时间RTT(Round-Trip Time):A向B发送数据后,B接收完数据,立即向A发送确认消息,这个确认消息从B-A所需的时间就是RTT。

发送时间 = 数据长度/发送速率;则A向B发送数据的有效数据率为:有效数据率 = 数据长度/(发送时间+往返时间)。可见加上发送速率为100Mbit/s的信道,有效数据率比实际发送速率要小。

7、利用率:利用率有信道利用率和网络利用率两种。信道利用率指某信道被利用的比例,网络利用率是全网络的信道利用率的加权平均值。信道利用率并非越高越好,时延与利用率正相关,利用率越高,时延越大。因此一些拥有较大主干网的ISP通常控制信道利用率不超过50%。


1.3 计算机网络的体系结构

计算机网络是个非常复杂的系统,完成一项看似简单的功能需要,其背后实现起来都很复杂,以两台计算机要互相传送文件为例:

(1)发起通信的计算机必须将数据通信的通路进行激活(activate)。所谓“激活”就是要发出一些信令,保证要传送的计算机数据能在这条通路上正确发送和接收。
(2)要告诉网络如何识别接收数据的计算机。
(3)发起通信的计算机必须查明对方计算机是否己开机,并且与网络连接正常。
(4)发起通信的计算机中的应用程序必须弄清楚,在对方计算机中的文件管理程序是否己做好接收文件和存储文件的准备工作。
(5)若计算机的文件格式不兼容,则至少其中一台计算机应完成格式转换功能。
(6)对出现的各种差错和意外事故,如数据传送错误、重复或丢失,网络中某个结点交换机出现故障等,应当有可靠的措施保证对方计算机最终能够收到正确的文件。

由此可见,相互通信的两个计算机系统必须高度协调工作才行,而这种“协调”是相当复杂的。为了设计这样复杂的计算机网络,早在最初的ARPANET设计时即提出了分层的方法。分层可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。

为了使不同体系结构的计算机网络都能互连,国际标准化组织ISO于1977年成立了专门机构研究该问题。他们提出了一个试图使各种计算机在世界范围内互连成网的标准框架,即著名的开放系统互连基本参考模型OSI/RI (Open Systems Interconnection Reference Model),简称为OSI

得到最广泛应用的不是法律上的国际标准0SI,而是非国际标准TCP/IP。这样,TCP/IP就常被称为是事实上的国际标准。


1.4 协议与层次划分

在计算机网络中要做到有条不紊地交换数据,就必须遵守一些事先约定好的规则。这些规则明确规定了所交换的数据的格式以及有关的同步问题。这里所说的同步不是狭义的(即同频或同频同相)而是广义的,即在一定的条件下应当发生什么事件(例如,应当发送一个应答信息),因而同步含有时序的意思。
这些为进行网络中的数据交换而建立的规则、标准或约定称为网络协议(network protocol)。网络协议也可简称为协议。更进一步讲,协议主要由以下三个要素组成:

  1. 语法,即数据与控制信息的结构或格式:
  2. 语义,即需要发出何种控制信息,完成何种动作以及做出何种响应:
  3. 同步,即事件实现顺序的详细说明。

计算机网络的分层及其协议的集合,就是网络的体系机构。OSI分为7个层次;TCP/IP分为4层(应用层、运输层、网际层、网络接口层),实质上只有上面三层,网络接口层无具体内容。

OSI(Open System Interface)七层模型理解
物理层:物理层将网络的各种设备连接起来,网络能够进行真正的物理通信;物理层定义了各种物理网络设备连接的各种特性;比如定义网线里有几根线(8跟线,不同颜色),每根线的功能是什么,传输的数据作用是什么,高低电压等等,针脚多粗、多长。
总之,物理层为启动、维护以及关闭物理链路定义了电气规范、机械规范、过程规范和功能规范,二进制传输,其传输的数据是bit(0/1两种状态)。

数据链路层:访问介质。定义了物理地址MAC,以及如何使数据格式化(让数据具有一定的标准格式,比如第一个位是什么,第二个位是什么,串联成规定的格式;即将数据封装成数据帧frame,分段转发)以便进行传输,以及网络通信的方式,并且具有错误检测功能。

每台电脑都有一个物理地址,这个地址是固定不变的,出厂的时候就决定了。
数据链路层将数据封装成数据帧frame,通过算法将传输的数据做一个运算生成CRC(循环冗余校验)放到尾部,数据传完后,通过一个同样的算法将接收的数据做运算,将得出的值与前一个CRC值做比较,如果两个值一样说明数据没被破坏,将破坏的数据丢弃。

网络层:路由数据包、选择传递数据的最佳路径、支持逻辑寻址和路径选择。网络层定义了逻辑地址(最典型的就是IP地址,这个地址是可以变化的),并且定义了路由(经过一个一个的网段,跨网段进行通信,被路由器隔开的就算一个网段),路由的过程实际上就是选择路径的过程。
网络通信示例

传输层:实现了终端对终端的通信。确保数据传输的可靠性,建立、维护和终止虚拟电路,通过错误检测和恢复(纠错),信息流控制(根据带宽调整速率)来保障可靠性。

会话层:建立、管理和终止两个应用程序间的会话。

表示层:解决二进制数据编码转换的问题。即格式化数据、构建数据、协商用于应用层的数据传输语法(接收不同表现形式的信息,如文字流、图像、视频、声音等),提供加密。

应用层:和用户打交道的。定义了邮件、文件传输、上网等特定的网络服务应用协议。同时提供用户验证。
OSI七层模型发送端OSI七层模型接收端
OSI七层模型传输示例

1.4.1 综合OSI和TCP/IP优点的五层体系结构概念

应用层(application layer):应用层是体系结构中的最高层。应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。
对于不同的网络应用需要有不同的应用层协议。在互联网中的应用层协议很多,如域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议等。应用层交互的数据单元称为报文(message)

运输层(transport layer,或称传输层):运输层的任务就是负责向两台主机中进程之间的通信提供通用的数据传输服务。 应用进程利用该服务传送应用层报文。所谓“通用的 ”,是指并不针对某个特定网络应用,而是多种应用可以使用同一个运输层服务。由于一台主机可同时运行多个进程,因此运输层有复用和分用的功能。复用就是多个应用层进程可同时使用下面运输层的服务;分用和复用相反,是运输层把收到的信息分别交付上面应用层中的相应进程。运输层主要使用以下两种协议:

  • 传输控制协议TCP(Transmission Control Protocol):提供面向连接的、可靠的数据传输服务,其数据传输的单位是报文段(segment)。
  • 用户数据报协议UDP (User Datagram Protocol):提供无连接的、尽最大努力(best-effort)的数据传输服务(不保证数据传输的可靠性),其数据传输的单位是用户数据报。

网络层(network layer): 网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫做IP数据报,或简称为数据报

数据链路层(data link layer: 数据链路层常简称为链路层。两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧(framing),在两个相邻结点间的链路上传送帧(frame)。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。

在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提取出数据部分,上交给网络层。
控制信息还使接收端能够检测到所收到的帧中有无差错。如发现有差错,数据链路层就简单地丢弃这个出了差错的帧,以免继续在网络中传送下去白白浪费网络资源。
如果需要改正数据在数据链路层传输时出现的差错(这就是说,数据链路层不仅要检错,而且要纠错),那么就要采用可靠传输协议来纠正出现的差错。这种方法会使数据链路层的协议复杂些。

物理层(physical layer): 在物理层上所传数据的单位是比特。发送方发送1(或0)时,接收方应当收到1(或0)而不是0(或1)。 因此物理层要考虑用多大的电压代表“1” 或“0”以及接收方如何识别出发送方所发送的比特。 物理层还要确定连接电缆的插头应当有多少根引脚以及各引脚应如何连接。

经常提到的TCP/IP并不一定是单指TCP和IP这两个具体的协议, 而往往是表示互联网所使用的整个TCP/IP协议族(protocol suite)。

五层模型理解示例:
五层模型数据传递流

数据发送过程:

假定主机1的应用进程AP1向主机2的应用进程AP2传送数据。AP1先将其数据交给本主机的第5层(应用层)。第5层加上必要的控制信息H5就变成了下一层的数据单元。
第4层(运输层)收到这个数据单元后,加上本层的控制信息H4,再交给第3层(网络层),成为第3层的数据单元。依此类推。
不过到了第2层(数据链路层)后,控制信息被分成两部分,分别加到本层数据单元的首部(H2)和尾部(T2)。
而第1层(物理层)由于是比特流的传送,所以不再加上控制信息。请注意,传送比特流时应从首部开始传送。

协议数据单元PDU (Protocol Data Unit): OSI参考模型把对等层次之间传送的数据单位称为该层的协议数据单元PDU (Protocol Data Unit)。这个名词现己被许多非OSI标准采用。
服务数据单元SDU(Service Data Unit): OSI把层与层之间交换的数据的单位称为服务数据单元SDU(Service Data Unit),它可以与PDU不一样, 例如,可以是多个SDU合成为一个PDU,也可以是一个SDU划分为几个PDU。
服务访问点SAP (Service Access Point): 在同一系统中相邻两层的实体进行交互(即交换信息)的地方,通常称为服务访问点SAP(Service Access Point)。
交换机传输处理数据过程:

当这一串的比特流离开主机1经网络的物理媒体传送到路由器时,就从路由器的第1层依次上升到第3层。每一层都根据控制信息进行必要的操作,然后将控制信息剥去,将该层剩下的数据单元上交给更高的一层。
当分组上升到了第3层时,就根据首部中的目的地址查找路由器中的转发表,找出转发分组的接口,然后往下传送到第2层,加上新的首部和尾部后,再到最下面的第1层,然后在物理媒体上把每一个比特发送出去。

数据解析过程:

当这一串的比特流离开路由器到达目的站主机2时,就从主机2的第1层按照上面的方式,依次上升到第5层。最后,把应用进程AP1发送的数据交给目的站的应用进程AP2。

可以用一个简单例子来比喻上述过程。 有一封信从最高层向下传。每经过一层就包上一个新的信封,写上必要的地址信息。包有多个信封的信件传送到目的站后,从第1层起,每层拆开一个信封后就把信封中的信交给它的上一层。传到最高层后,取出发信人所发的信交给收信人。

虽然应用进程数据要经过图中所示的复杂过程才能送到终点的应用进程,但这些复杂过程对用户来说,却都被屏蔽掉了,以致应用进程AP1觉得好像是直接把数据交给了应用进程AP2。同理,任何两个同样的层次(例如在两个系统的第4层)之间,也好像如同图中的水平虚线所示的那样,把数据(即数据单元加上控制信息)通过水平虚线直接传递给对方。这就是所谓的 “对等层 ” (peer layers)之间的通信。

这是几个层次画在一起很个栈(stack)的结构。因此有了 “协议栈” (protocol stack) 的概念。
当研究开放系统中的信息交换时,往往使用实体(entity) 这一较为抽象的名词表示任何可发送或接收信息的硬件或软件进程。在许多情况下,实体就是一个特定的软件模块。协议是控制两个对等实体(或多个实体)进行通信的规则的集合。

1.4.2 TCP/IP协议族

漏斗型TCP/IP协议族
TCP/IP协议族,它的特点是上下两头大而中间小:应用层和网络接口层都有多种协议,而中间的IP层很小,上层的各种协议都向下汇聚到一个IP协议中。这种很像沙漏计时器形状的TCP/IP协议族表明:
TCP/IP协议可以为各式各样的应用提供服务(everything over IP),同时TCP/IP协议也允许IP协议在各式各样的网络构成的互联网上运行(IP over everything)。
TCP/IP四层协议

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个两个四个三

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值