计网第一章 概述

鸣谢:本笔记是听B站湖大教书匠老师计算机网络相关课程时记录的,想看网课的朋友可以移步这里:计算机网络微课堂(有字幕无背景音乐版)

1.1 计算机网络在信息时代的作用

  • 计算机网络已由一种通信基础设施发展成为一种重要的信息服务基础设施

1.2 因特网概述

网络、互联网和因特网相关概念

网络(network):由若干结点(node)和连接这些结点的链路(link)组成,如下图所示:
网络

互联网:多个网络可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,及互联网(或互连网)。因此,互联网也称为“网络的网络(network of networks)”
互联网

因特网(Internet)是世界上最大的互连网络(用户数以亿计,互连的网络数以百万计)。在生活中,因特网通常用一朵云表示,连接在因特网上的电脑称为主机(host)

注:Internet和internet的区别:
Internet(因特网):是一个专用名词,它指当前全球最大的】开放的】由众多网络相互连接而成的特定计算机网络,它采用TCP/IP协议族作为信息的规则,其前身是美国的ARPANET。
internet(互联网或互连网):是一个通用名词,它泛指由多个计算机网络互连而成的网络。在这些网络之间的通信协议可以是任意的。

因特网发展的三个阶段

因特网的发展阶段如下表所示:

开始时间 阶段 备注
1969 从单个网络ARPANET向互联网发展 1969年,第一个分组交换网ARPANET;70年代中期,研究多种网络之间的互连;1983年,TCP/IP协议成为ARPANET的标准协议(因特网诞生时间)
1985 逐步建成三级结构的因特网 1985,NSF围绕六个大型计算机中心建设NSFNET(主干网、地区网和校园网);1990年,ARPANET任务完成,正式关闭;1991年,美国政府将因特网主干网交给私人公司经营,并开始对接入因特网的单位收费。
1993 逐步形成了多层次ISP结构的因特网 1993年,NSFNET逐渐被若干个商用因特网主干网代替;政府机构不再负责因特网运营,让各种因特网服务提供者ISP来运营。1994年,万维网WWW技术促使因特网迅猛发展;1995年,NSFNET停止运作,因特网彻底商业化。

因特网服务提供者ISP(Internet Service Provider):
普通用户通过ISP接入因特网,ISP可以从因特网管理机构申请到成块的IP地址,同时拥有通信线路以及路由器等连网设备。
因特网中的主机需要有IP地址才能通信,只要向ISP缴纳一定费用,就可以得到接入因特网的IP地址。
ISP
我国主要ISP是中国电信、中国联通、中国移动。

基于ISP的三层结构的因特网:
ISP根据其服务范围的不同被分为三个层次:
第一层ISP也被称为因特网主干网,一般能够覆盖国际性区域范围,并拥有告诉链路和交换设备。第一层ISP之间直接互联。
第二层ISP和一些大公司都是第一层ISP的用户。通常具有区域性或国家性覆盖规模,与少数第一层ISP直接相连。
第三层ISP成为本地ISP,是第二层ISO的用户且只拥有本地范围的网络。例如:一般的校园里、企业网、住宅用户和无线移动用户。
三层结构ISP
生活中相隔较远的两台主机通信可能会通过多个ISP。
一个用户如果可以接入因特网,理论上就可以成为ISP(买一些调制解调器、路由器这样的设备,让其他用户和他相连即可)
一个ISP可以很方便的在网络拓扑中添加新的层次和分支。

因特网的标准化工作

  • 因特网的标准化工作对因特网的发展起到了非常重要的作用。
  • 因特网在制定其标准上的一个很大特点是面向公众。
    • 因特网所有的RFC(Request For Comments)技术文档(是一系列以编号排定的文件。文件收集了有关互联网相关信息,以及UNIX和互联网社区的软件文件。)都可以从因特网上免费下载。
    • 任何人都可以随时用电子邮件发表对某个文档的意见或建议。
  • 因特网协会ISOC(Internet Society)是一个国际性组织,它负责对因特网进行全面管理,以及在世界范围内促进其发展和使用。
    • ISOC下设的因特网体系结构委员会IAB(Internet Architecture Board),负责管理因特网有关协议的开发。
    • IAB下的因特网工程部IETF(The Internet Engineering Task Force),负责研究中短期工程问题,主要针对协议的开发和标准化。
    • IAB下的因特网研究部IRTF(Internet Research Task Force),从事理论方面的研究和开发一些需要长期考虑的问题。
      ISOC
  • 制定因特网的正是标准需要经过以下4个阶段:
    • 因特网草案(在这个阶段还不是RFC文档)
    • 建议标准(从这个阶段开始成为RFC文档)
    • 草案标准
    • 因特网标准(并非所有RFC文档都是因特网标准,只有少数最终会成为因特网标准)

因特网的组成

从功能上看,因特网可以被划分为两部分:边缘部分(edge)和核心部分(core)。

  • 边缘部分:由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
  • 核心部分:由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
    在网络核心部分其特殊作用的是路由器(路由器是一种专用计算机,但不被称作主机),路由器是实现分组交换的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。

1.3 三种交换方式

电路交换(Circuit Switching)

思路来源于电话发明之后,解决电话之间连线数量过于庞大的问题。
电话机之间两两相连,所需要的电线数量会很大,为解决这一问题,常采用一个中间(电话交换机)设备把电话机连接起来。
电话交换机可将和它相连的任意两个电话机之间的线路接通。随着电话机数量的增多,可以用互相连接的电话交换机构成覆盖全世界的电信网。

电话交换机接通电话线的方式称为电路交换。
从通信资源的分配角度看,交换就是按照某种方式动态地分配传输线路的资源。
电路交换示意图如下:
电路交换

电路交换的三个步骤:

  • 建立连接(分配通信资源),保证通信双方在通信过程中占有一条固定通路,且通信过程中需要的资源不会被其他设备占用。
  • 通话(一直占用通信资源)
  • 释放连接(归还通信资源)

使用电路交换理论上也可以实现计算机数据的传送,但其线路的传输效率往往很低。因为计算机数据往往是突发式地出现在传输线路上,但为保证两计算机之间可以顺利通信,通信线路必须一直存在。即使此时没有数据发送,其他设备也不能占用通信资源。这种情况非常浪费通信资源,所以计算机之间一般采用分组交换。

分组交换

分组交换示意图如下:
分组交换
利用网络中的交换机(路由器)等设备进行数据的交换工作。
我们把在网络进行交换的数据称为报文,将报文按照相关要求拆成固定大小的数据段,并为每个数据段加上一些由必要控制信息组成的首部之后,就构成了一个分组(简称:包)。分组交换机收到分组后,会暂时将分组存下来,并检查其首部。按照首部中的目的地址进行查表转发。找到合适的转发接口后,发送给下一个分组交换机。
一个主机发送到若干分组经过交换机的存储转发之后,到达目的主机,目的主机将个数据段组合还原出原属报文。
在整个过程中:
发送方负责构造分组、发送分组。
路由器负责缓存分组、转发分组。
接收方负责接受分组、还原报文。

报文交换

报文交换主要用于早期的电报通信网,现在较少使用,通常被较先进的分组交换取代,所以不详细介绍。

电路交换、报文交换、分组交换的对比

交换比较
对于电路交换,比特流直达终点。
对于报文交换,报文在交换机之间存储转发,由于不限制报文大小,所以每个交换机都得有足够的存储空间。
对于分组交换,构成原始报文的一个个分组,在各结点交换机上进行存储转发,相比报文交换较少了转发时延,还可避免过长的报文长时间占用链路,同时也有利于进行差错控制。

总结:三种交换的优缺点如下:

交换方式 优点 缺点
电路交换 通信时延小;有序传输;没有冲突;适用范围广;实时性强;控制简单 建立连接时间长;线路独占,使用效率低;灵活性差;难以规格化
报文交换 无需建立连接;动态分配线路;提高线路可靠性;提高线路利用率;提供多目标服务 引起了转发时延;需要较大存储缓存空间;需要传输额外的信息量
分组交换 无需建立连接;线路利用率高;简化了存储管理;加速传输;较少出错概率和重发数据量 引起了转发时延;需要传输额外信息量;对于数据报服务,存在失序、丢失或重复分组的问题,对于虚电路服务,存在呼叫建立、数据传输和虚电路释放三个过程。

1.4 计算机网络的定义和分类

计算机网络的定义

计算机网络的精确定义并未统一
计算机网络的最简单定义是:一些接的、自治的计算机的集合

  • 互连:是指计算机之间可以通过有线或无线的方式进行数据通信。
  • 自治:是指独立的计算机,它有自己的硬件和软件,可以单独运行和使用。
  • 集合:是指至少需要两台计算机。

现阶段计算机网络较好的定义:计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的日益增长的应用。

  • 计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手机等智能硬件。
  • 计算机网络并非专门用来传输数据,而是能够支持很多种的应用(包括今后可能出现的各种应用)。

计算机网络的分类

按交换技术分类

  • 电路交换网络
  • 报文交换网络
  • 分组交换网络

按使用者分类

  • 公用网:电信公司出资建造的大型网络。“公用”指所有愿意按照电信公司的规定缴纳费用的人都可以使用这种网络。
  • 专用网:某部门为本单位的特殊业务工作的需要而建造的网络。这种网络不向本单位以外的人提供服务。

按传输介质分类

  • 有线网:双绞线网络、光纤网络等。
  • 无线网络:WIFI

按覆盖范围分类

  • 广域网WAN:覆盖范围几十公里到几千公里不等,可覆盖一个国家、地区,甚至覆盖几个州。因此有时也被称为远程网。广域网是因特网的核心部分。其任务是为核心路由器提供远距离高速连接。
  • 城域网MAN:覆盖范围一般是一个城市,可跨越几个街区到一个城市。城域网一般是一个城市的主干网。互联大量企业、机构和校园局域网。
  • 局域网LAN:一般用微型计算机或工作站通过高速通信线路相连,速率通常在10Mb/s以上,地理上局限在较小的范围内,一般在1km左右。局域网通常由某个单位单独拥有、使用和维护。
  • 个域网PAN:个人局域网的简称。在个人工作的地方把个人拥有的电子设备用无线技术链接起来。范围大概是10m。

按拓扑结构分类

  • 总线型网络:一根总线把各个计算机连接起来。优点是建网容易、增减节点方便、节省线路;缺点是重负载时通信效率不高,总线任意一处出现故障,则全网瘫痪。
  • 星型网络:将设备都与中央设备相连。中央设备一般指交换机或路由器。这种拓扑利于网络的集中控制和管理。缺点是成本高,中央设备对故障敏感。
  • 环形网络:将所有计算机的网络接口连接成一个环。典型例子:令牌环局域网。环可以是单环也可以是双环,环中信号是单向传输的。
  • 网状型网络:一般情况下,每个结点至少有两条路径与其他结点相连。多用在广域网中。优点是可靠性高,缺点是控制复杂、线路成本高。

1.5 计算机网络的性能指标

性能指标可以从不同的方面来度量计算机网络的性能。
常用的计算机网络性能指标有8个:速度、带宽、吞吐量、时延、时延带宽积、往返时间、利用率、丢包率。

速率

  • 比特:计算机中数据量的单位,也就是信息论中信息量的单位,一个比特就是二进制数字中的一个1或0.
  • 常用数据量单位:
    8 bit = 1 Byte
    KB = \(2^{10}\) B
    MB = \(2^{20}\) B
    GB = \(2^{30}\) B
    TB = \(2^{30}\) B
  • 速率:连接在计算机网络上的主机在数字信道上传送比特的速率,也成为比特率或数据率。
    常用数据率单位:
    b/s
    kb/s = \(10^3\) b/s
    Mb/s = \(10^6\) b/s
    Gb/s = \(10^9\) b/s
    Tb/s = \(10^{12}\) b/s
  • 例:一个待发送数据块大小100MB,网卡的发送速率为100Mbps,则网卡发送完该数据块需要多长时间?

\[\frac{100MB}{100Mb/s} = \frac{100·8Mb}{100Mb/s} = \frac{2^{20}·8b}{10^{6}b/s} = 8.388608s \]

平时估算的时候分子分母的M可以约掉。

带宽

  • 带宽在模拟信号系统中的意义:信号所包含的各种不同频率成分所占据的频率范围。
  • 单位:Hz(kHz, MHz, GHz)
  • 带宽在计算机网络中的意义:用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”
  • 因此,在计网中,带宽和速率的单位是一样的。
  • 上面的两种带宽之间有密切的联系,一条通信线路的“频带宽度”越宽,其所传输数据的“最高数据率”也就越高。

吞吐量

  • 吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量
  • 吞吐量被经常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。
  • 吞吐量受网络的带宽或额定速率的限制。

时延

网络时延由发送时延、传播时延和处理时延三部分构成。

  • 发送时延 = 分组长度(b)/发送速率(b/s)
    网卡的发送速率、信道带宽、接口速率共同决定发送速率。
  • 传播时延 = 信道长度(m)/电磁波传播速率(m/s)
    信号在自由空间中的传播速率为3\(10^8\) m/s,
    在铜线中为2.3
    \(10^8\) m/s,在光纤中的传播速率为2*\(10^8\) m/s.
  • 处理时延没有具体计算公式,一般不方便计算。
  • 有的教材还会有排队时延,有的教材会把排队时延和处理时延归为一类。
  • 传播时延和发送时延谁占主导需要具体问题具体分析。

时延带宽积

  • 时延带宽积 = 传播时延 * 带宽
  • 将传输链路看成一个管道,其长度为传播时延,横截面积为带宽,则时延带宽积就是该管道的体积。可以想象成管道中充满了比特。
  • 若发送端连续发送数据,则在发送端发送的第一个比特即将到达终点时,发送端就已经发送了时延带宽积个比特。
  • 链路的时延带宽积又称为以比特为单位的链路长度。

往返时间

  • 互联网上的信息不仅仅是单方向传输,而是双向交互。
  • 往返时间RTT也是描述网络状态的重要指标。

利用率

  • 信道利用率:用来表示某信道有百分之几的时间是被利用的(有数据通过)
  • 网络利用率:全网络的信道利用率的加权平均
  • 根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增加。因此,信道利用率并非越高越好。
  • 如果令\(D_0\)表示网络空闲时的时延,D表示网络当前的时延,那么在适当的假定条件下,可利用下面的简单公式来表示D、\(D_0\)和利用率U之间的关系:

\[D = \frac{D_0}{1-U} \]

其图像如下:
利用率和时延公式
当网络利用率达到50%时,时延就要加倍;当网络利用率超过50%时,时延急剧增大;当网络利用率接近100%时,时延接近无穷大。可以类比拥堵的街道,当街道上每个车都紧紧地挨着时,基本上就走不动了,车辆到达目的地的时间趋于无穷大。

丢包率

  • 丢包率即分组的丢失率,指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率。
  • 丢包率具体可分为接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等。
  • 丢包率是网络运维人员非常关心的一个网络性能指标,但对于普通用户来说往往并不关心这个指标,因为普通用户通常意识不到网络丢包。
  • 分组丢失主要有两种情况:
    • 分组在传输过程中出现误码,被结点丢弃。
    • 分组到达一台队列已满的分组交换机时被丢弃;在通信量较大时就可能造成网络拥塞。
  • 因此,丢包率反映了网络的拥塞情况:
    • 无拥塞时丢包率为0%
    • 轻度拥塞时丢包率为1%~4%
    • 严重拥塞时丢包率为5%~15%

1.6 计算机网络体系结构

常见的计算机网络体系结构

  • OSI体系结构(法律上的国际标准)
    OSI
  • TCP/IP体系结构(事实上的国际标准):
    TCP/IP
    IP协议用来互连不同的网络接口,同时为各种网络应用提供服务。
  • 原理体系结构(用于教学):
    原理体系结构

计算机网络体系结构分层的必要性

  • 计算机网络是一个非常复杂的系统。早在最初的ARPANET设计时就提出了分层的设计理念。
  • “分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。
  • 对于用一根网线连接两台计算机这样最简单的网络,需要考虑采用怎样的传输媒体(介质)、使用怎样的信号表示比特0和1以及采用怎样的物理接口。解决这些问题后就可以在两台电脑之间传输比特0和1了。我们可以将这些问题划归为“物理层”(这里注意,在本例中传输媒体其实并不属于计网中的物理层。)
  • 对于总线型的网络结构,通常是一条总线连接多台计算机。
    总线型
    假如物理层的问题已经解决,在该总线型网络中还需要解决,下面的这些问题都归为数据链路层。解决了网络层和数据链路层的问题,就可以实现分组在网络中的传输了:
    • 如何标识网络中的各主机(主机编址问题,例如MAC地址)
    • 如何从信号所表示的一连串比特流中区分地址和数据?
    • 如何协调各主机争用总线。
    • ...
  • 但是因特网是由很多网络互连而来,数据在网络之间的通信需要网络层来解决,网络层解决的主要问题如下:
    • 如何标识各网络以及网络中的各主机(网络和主机共同编址的问题,例如IP地址)
    • 路由器如何转发分组,如何进行路由选择
  • 对于各种与网络相关的应用进程管理,需要由传输层来解决,该层主要负责如下问题:
    • 如何解决进程之间基于网络的通信问题?
    • 出现传输错误,如何处理?
  • 目前已经实现了进程之间的网络通信,只需要制定各种应用协议,并按协议编写相应的应用程序,通过应用进程间的交互来完成特定的网络应用(这是应用层的工作)。
  • 总结一下:
    • 物理层:负责解决使用何种信号来传输比特的问题
    • 数据链路层:解决分组在一个网络(或一段链路)上的传输的问题
    • 网络层:解决分组在多个网络上传输和路由的问题。
    • 传输层:解决进程之间基于网络的通信问题
    • 应用层:解决通过应用进程的交互来实现特定网络应用的问题。

计算机网络体系结构分层思想举例

假设网络拓扑如图所示:
网络拓扑示例
其中主机属于网络N1,路由器简介网络N1和N2。web服务器在网络N2。
采用主机浏览器访问Web服务器。 输入网址后,主机会向Web服务器发送请求。Web服务器收到请求后会发回相应的响应,主机的浏览器收到响应后,将其解析为具体的网页内容显示出来。

整个过程在网络各层之间的工作过程如下:
这个通信过程实际上是主机和服务器的应用进程之间基于网络的通信。主机的应用层将HTTP请求交付给主机的运输层。运输层给HTTP报文添加一个TCP首部,使之成为TCP报文段,该首部主要用于区分应用进程和实现可靠传输
img
运输层将TCP报文的交付给网络层处理,网络层给TCP报文段添加一个IP首部使之成为IP数据报。该IP首部的作用是使IP数据报能够在网络之间传输。网络层将IP数据报交给数据链路层处理。连路层给IP数据报添加一个首部和一个尾部,使之成为帧。
img
该首部在作用主要是为了让帧能够在一段链路上或一个网络上传输。帧的尾部主要为了让接收到的主机检查帧是否有误码。数据链路层将帧交付给物理层,物理层将帧看作比特流。在以太网技术中,物理层会在比特流以前添加前导码,来让目的主机做好接收帧的准备。

对于路由器:路由器的物理层将收到的比特流去除前导码之后交给路由器的数据链路层。
img
数据链路层将帧的首部和尾部去掉后,交付为网络层。
网络层解析IP数据报的首部,从中提取目的网络地址,然后查找自身的路由表,确定转发端口以便进行转发。
网络层将IP数据报交付给链路层,链路层给IP数据包添加一个首部一个尾部使之成为帧。
img
链路层把帧交给物理层,如果N2是以太网,物理层需要给比特流添加一个前导码。物理层间添加了前导码的比特流变换成相应的信号发送到传输媒体,信号通过传输媒体传输到Web服务器。

Web服务器的处理过程:
物理层去掉比特流的前导码。之后把帧交给链路层。
链路层去掉帧的首部和尾部去掉,将IP数据报交给网络层。
网络层将IP首部去掉,将TCP报文段交给运输层。
运输层将TCP首部去掉,将HTTP请求报文交给应用层。
应用层解析HTTP请求报文,并给主机发送响应报文。
img

计算机网络体系结构中的专业术语

实体

  • 实体:指任何可发送或接收信息的硬件或软件进程。
    对于五层原理体系结构,每一层都有各种实体。
  • 对等实体:收发双方相同层次中的实体。

协议

  • 协议:控制两个对等实体进行逻辑通信的规则的集合。
  • 之所以叫逻辑通信,是因为这种通信其实不存在,因为对等实体之间的通信其实是依赖它下面的各层为其提供服务的。例如网络层之间的通信,其实是网络层的数据交给链路层,链路层的数据交给物理层,然后再交给对方的物理层、链路层,最后交到对方的网络层。整个过程中网络层与网络层理论上没有直接的数据交互。但是提出这个逻辑通信的概念可以方便我们单独研究体系结构的某一层而不必考虑其他层。
  • 协议的三要素:语法、语义、同步
    • 语法:定义通信双方交换信息的格式。
    • 语义:定义收发双方所需要完成的操作。
    • 同步:定义通信双方的时序关系。

服务

  • 服务:在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。
  • 要实现本层协议,还需要使用下面一层所提供的服务。
  • 协议是“水平的”,服务是“垂直的”
  • 实体看得见相邻下层多提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是“透明”的。
  • 服务访问点:指在同一系统中,相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型。
    • 数据链路层的服务访问点为帧的“类型”字段。
    • 网络层的服务访问点为IP数据报首部中的“协议字段”
    • 运输层的服务访问点为“端口号”
  • 服务原语:上层使用下层所提供的服务,必须通过与下层交换一些命令,这些命令称为服务原语。
  • 协议数据单元(PDU):对等层次之间传送的数据包称为该层的协议数据单元。
    • 物理层PDU:比特流
    • 链路层PDU:帧
    • 网络层PDU:IP数据报或分组
    • 传输层PDU:TCP报文段或UDP报文段
    • 应用层PDU:报文
  • 服务数据单元(SDU):同一系统内,层与层之间交换的数据包称为服务数据单元。
  • 多个SDU可以合成一个PDU,一个SDU也可以划分为几个PDU
    img
posted @ 2025-05-07 17:15  菜鸟小楠  阅读(161)  评论(0)    收藏  举报