互联网概述

网络的网络

什么是网络

网络由若干个节点和连接这些节点链路组成。

通常意义上,网络并不专指计算机网络,带有以上组成部分的都可以被称之为网络,比如电话网,交通路线网等。

为了方便叙述,之后的网络都特指计算机网络
其中节点可以是计算机集线器交换机路由器等。
网络的作用就是让不同计算机之间可以相互通信,资源共享。

互连网和互联网

首先:互联网 ≠ 互连网
由不同的节点链路组成的是网络,而由多个上述的网络再组成的网络就是互连网(internet),不同网络之间通过路由器进行连接:
image.png
image.png

单个的网络一般就用如上图所示的“云”来表示。 习惯上与网络相连的计算机叫做主机,主机会画在网络外便于问题的讨论。 图a中的节点和图b中的路由器都不能被称之为主机

互联网(Internet)指的是全球最大的、开放的、由众多网络相互连接而形成的特定计算机网络。

注意互联网和互连网首字母是区分大小写的。

互联网基础结构发展的三个阶段

第一个阶段

1969 – 1990:从单个网络 ARPANET 向互联网发展。

第二个阶段

1985 – 1993:建成了三级结构的互联网 。

第三个阶段

1993 – 现在:全球范围的多层次 ISP 结构的互联网。
**ISP**指代的是互联网服务提供者,不同级别的ISP管辖不同范围的网络,一般来说ISP分三个等级:

  • 主干ISP
  • 地区ISP
  • 本地ISP

如图所示:
image.png
图中为例,如果主机A想要和主机B通信,那么就需要经过如图所示的路径:

主机A → 本地 ISP → 地区 ISP → 主干 ISP → 地区 ISP → 本地 ISP → 主机B

互联网的标准化工作

所有的互联网标准都是以RFC的形式在互联网上发表,RFC意为请求评论,是一种文档形式。不是所有的RFC都是互联网的标准,只有极少数RFC才是互联网的标准。
定制互联网的正式标准通常经过一下三个阶段:

  • 互联网草案
  • 建议标准
  • 互联网标准

互联网的组成

互联网主要由边缘部分核心部分组成。

  • 边缘部分:所有互联网上的主机组成,给用户直接使用
  • 核心部分:大量网络和连接这些网络的路由器组成,为用户提供服务

image.png

边缘部分

计算机通信

计算机之间的通讯指的是:主机 A 的某个进程和主机 B 上的另一个进程进行通信。

进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。

计算机之间的通信主要有如下两种方式:

  • CS方式(客户-服务器方式)
  • P2P方式(端对端方式)

    客户-服务器方式

    客户/服务器方式所描述的是进程之间服务和被服务的关系。
    在这种方式中,主机被分为两类:

  • 客户端(主机A):请求服务的一方

  • 服务端(主机B):提供服务的一方

image.png
客户端服务端方式的主要特点:

  • 客户程序:
    • 被用户调用后运行,需主动向远地服务器发起通信(请求服务)。必须知道服务器程序的地址
    • 不需要特殊的硬件和很复杂的操作系统。
  • 服务器程序
    • 专门用来提供某种服务的程序,可同时处理多个客户请求。
    • 一直不断地运行着,被动地等待并接受来自各地的客户的通信请求。不需要知道客户程序的地址。
    • 一般需要强大的硬件和高级的操作系统支持。

      对等连接方式

      在对等连接方式下,不再像客户-服务器方式一样,区分客户端和服务端,主机和主机之间可以平等的连接通信
      image.png

      对等连接方式从本质上看仍然是使用客户服务器方式,只是对等连接中的每一个主机既是客户又是服务器。

核心部分

互联网的核心部分的作用主要就是连接网络,从而使得主机和主机之间可以交换信息,其核心工作就是存储转发
典型的交换技术有:

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

    通常情况下,互联网采用的是分组交换的方式。

电路交换

电路交换的方式源自于电话网,也就是在网络中没有中转这个概念,所有主机之间通过专用的物理链路进行相连,如同电话网路一样:
image.png
直接相连的方式很明显线路十分复杂,所以出现了交换机技术:
image.png
其内部通过动态地分配传输线路的资源来实现不同电话之间的通讯:
image.png
电路交换一般分为三个步骤:

  • 建立连接:建立一条专用的物理通路(占用通信资源)
  • 通话:主叫和被叫双方互相通电话(一直占用通信资源)
  • 释放连接:释放刚才使用的专用的物理通路(归还通信资源)

所以对于电路交换而言,最重大的缺点就是主机和主机通信过程中会独占资源,在计算机网络中这一种极大的资源浪费,这是因为计算机数据具有突发性,这导致在传送数据时,电路交换的通信线路的利用率很低。

电路交换的优点是:

  1. 传输效率高
  2. 实时性好
  3. 差错率低

缺点是:

  1. 连接建立时间长
  2. 线路独占,利用率低
  3. 不适合传输突发性数据

    分组交换

    分组交换的技术采用了存储转发技术,实现这个技术最主要的载体就是路由器。我们把需要发送的整段数据的整体称之为**报文**,而分组交换技术就是将报文再进行分组,分组之后的数据段叫做**包**,每个分组之后的**包**都需要加上一段**控制信息**(header),也叫做包头,这个控制信息最主要的作用就是控制在网络中的流动。
    包头中包含的数据通常有:源数据的地址和目标主机的地址
    主机在发送数据的时候,会把报文分为多个数据包再发送,数据包通过路由到达另一个主机,在此过程中,路由器不仅需要转发数据包,还需要存储数据包,因为有可能出现丢包等问题,一旦出现问题,可以从路由中重新获得之前的数据,再次进行转发。
    image.png

    接收端收到分组后剥去首部(header),还原成原来的报文

关于上面提到的数据包的转发,有如下特征:

  • 根据首部中包含的目的地址源地址等重要控制信息进行转发。
  • 每一个分组在互联网中独立选择传输路径
  • 位于网络核心部分的路由器负责转发分组,即进行分组交换
  • 路由器要创建和动态维护转发表。

路由器在处理分组的时候过程如下:
image.png
分组交换的优点如下:

优点 所采用的手段
高效 在分组传输的过程中动态分配传输带宽,对通信链路是逐段占用。
灵活 为每一个分组独立地选择最合适的转发路由。
迅速 以分组作为传送单位,可以不先建立连接就能向其他主机发送分组。
可靠 保证可靠性的网络协议;分布式多路由的分组交换网,使网络有很好的生存性。

分组交换的缺点如下:

  1. 由于传输分组时需要交换机有一定的开销,使网络附加的传输信息较多,对长报文通信的传输效率比较低
  2. 分组在节点转发时因排队而造成一定的延时
  3. 不保证一定存在端到端的数据链路,可靠性不如电路交换
  4. 对交换机要求有较高的处理能力,意味着分组交换投资开销较大

    报文交换

    报文交换就是把整个报文直接进行交换,与电路交换不同的是它并不是主机和主机之间直接交换,而是不断的转发到相邻的节点,存储转发之后,最终再到目标主机上。

    三种交换技术的对比

    image.png
    上图中,y轴表示的就是时间,A、B、C、D为四个节点,不难发现除了电路交换需要一个建立连接的过程,剩下两个都不需要建立连接。所以三者有如下特点:
  • 若要连续传送大量的数据,且其传送时间远大于连接建立时间,则**电路交换**的传输速率较快
  • **报文交换****分组交换**不需要预先分配传输带宽,在传送突发数据时可提高整个网络的信道利用率
  • 由于一个分组的长度往往远小于整个报文的长度,因此分组交换比报文交换的时延小,同时也具有更好的灵活性

    在小量数据的情况下,电路交换有的时候比分组交换更优。所以三种交换方式需要根据事情情况选择。


计算机网络的类别

计算机网络的定义

计算机网络的精确定义并未统一

一般认为:计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。

计算机网络的类别

按照范围划分

如表所示:

类别 作用范围或距离
广域网 WAN
(Wide Area Network)
通常为几十到几千公里。有时也称为远程网(long haul network)。是互联网的核心部分。
城域网 MAN
(Metropolitan Area Network)
作用范围一般是一个城市,作用距离约为 5~50 公里。
局域网 LAN
(Local Area Network)
局限在较小的范围(如 1 公里左右)。通常采用高速通信线路。
个人区域网 PAN
(Personal Area Network)
范围很小,大约在 10 米左右。有时也称为无线个人区域网 WPAN (Wireless PAN)。

按照网络的使用者划分

类别 作用范围或距离
公用网
(public network)
按规定交纳费用的人都可以使用的网络。也可称为公众网。
专用网
(private network)
为特殊业务工作的需要而建造的网络。

计算机网络的性能

性能指标

速率

计算机网络中的**速率**指的是数据的传送速率,也叫**数据率****比特率**。基本单位为:bit/s
其余常用单位有:kbit/sMbit/sGbit/s

注意:这里的 1kbit = 10**3** bit1Mbit = 10**6** bit也就是说这里的单位换算是十进制的换算,不是二进制的换算。 通常情况下的速率指的是标称速率,实际在数据传送的过程中由于有时延等因素,所以一般情况下网络的实际速率会慢于标称速率。

带宽

在计算机网络中,带宽指的是网络中某通道传送数据的能力,表示的是单位时间内,某通道内所能通过的最高数据率。单位同上。

一般来说,带宽越宽,最高数据率越高。

吞吐量

吞吐量指的是单位时间内通过某个网络的实际数据量
例如一个以太网的额定速率为1Gbit/s,说明这个以太网的吞吐量的绝对上限为1Gbit/s,但实际吞吐量一定小于这个速率,例如只有100Mbit/s

时延

**时延**指的是数据从一端传送到另一端所需要的时间。
时延分为四个部分:

  1. 发送时延(传输时延)

image.png

  1. 传播时延

image.png
常见信道的传播速率有:

  • 自由空间的传播速率是光速 = 3.0 ⅹ 108 m/s
  • 铜线电缆中的传播速率约 = 2.3 ⅹ 108 m/s
  • 光纤中的传播速率约 = 2.0 ⅹ 108 m/s

    这里可以看到光纤的传播速率不如铜线电缆的,但是光纤的发送速度远高于铜线,所以总体时延上,光纤低于铜线。

  1. 处理时延

指的是主机或路由器在收到分组时,为处理分组(例如分析首部、提取数据、差错检验或查找路由)所花费的时间。

  1. 排队时延

当多个主机发送的数据包需要在一个时间段内同一个路由器的时候,由于路由器的处理能力有限,此时数据包就需要排队等待被处理
分组在路由器输入输出队列中排队等待处理和转发所经历的时延。

排队时延的长短往往取决于网络中当时的通信量。当网络的通信量很大时会发生队列溢出,使分组丢失,这相当于排队时延为无穷大

综上:总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延。
image.png

不能笼统的认为,数据发送速率越高,总时延越低。

时延带宽积

**时延带宽积**就是传播时延 * 带宽时延带宽积反映了停留在管道中数据量的大小。只有在代表链路的管道都充满比特时,链路才得到了充分利用。
image.png

往返时间RTT

表示从发送方发送完数据,到发送方收到来自接收方的确认总共经历的时间。
image.png
由上图可以得出RTT的计算:
往返时间 RTT = 2 * 传播时延 tP+ 结点 B 处理和排队时延 tPQB+ 结点 B 发送时延 tTB
RTT可以用于计算有效数据率:
image.png

利用率

利用率分为信道利用率网络利用率两种。

  • 信道利用率:某信道有百分之几的时间是被利用的(有数据通过)
  • 网络利用率:全网络的信道利用率的加群平均值

利用率并不是越高越好的,因为利用率越高,时延也就越高。
利用率计算如下:第一章:概述 - 图19
其中:

  • D0:网络空闲时的时延。
  • D:网络在当前的时延。
  • U:网络当前的利用率,数值在 0 到 1 之间。

一般情况下,利用率在1/2的时候最佳。

非性能指标

  1. 费用
  2. 标准化
  3. 可靠性
  4. 可扩展性和可升级性
  5. 易于管理和维护

计算机网络体系结构

计算机网络体系结构指的是计算机网络的结构和设计

计算机网络体系结构的形成

计算机网络是一个非常复杂的系统,两台计算机想要传递信息的话需要考虑以下几点:

  • 必须有一条传送数据的通路
  • 发起方必须激活通路
  • 要告诉网络如何识别接收方
  • 发起方要清楚对方是否已开机,且与网络连接正常
  • 发起方要清楚对方是否准备好接收和存储文件
  • 若文件格式不兼容,要完成格式的转换
  • 要处理各种差错和意外事故,保证收到正确的文件

从上面几点可以看出,单一层次的设计难度过大,很难实现如此复杂的通讯,为了降低设计的复杂度出现了分层的方法。

分层:将庞大而复杂的问题,转化为若干较小的局部问题

当然设计计算机的公司不止一家,同公司定制的分层标准也不一样,所以为了统一标准就有ISO (国际标准化组织) 提出的 **OSI/RM**模型。

OSI/RM (Open Systems Interconnection Reference Model) 是使各种计算机在世界范围内互连成网的标准框架

OSI 试图达到一种理想境界:全球计算机网络都遵循这个统一标准,因而全球的计算机将能够很方便地进行互连和交换数据。 很明显OSI的想法过于理想化,且OSI标准也出现了一下问题:

  • 实现起来过分复杂,且运行效率很低
  • 没有商业驱动力
  • 制定周期太长
  • 层次划分也不太合理

所以导致OSI其实并没有成为实际的标准,取而代之的是TCP/IP

法律上认可的标准是OSI,实际市场上认可的是TCP/IP

协议与划分层次

什么是协议

所谓协议可以理解为规则的集合,这些规则明确规定了计算机之间交换数据的格式以及有关同步的问题等。

💡网络协议 (network protocol),简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定。 计算机体系结构讨论的实际上就是协议。

网络协议主要有三个部分组成:

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

image.png

划分层次

我们以计算机之间传送文件为例:
image.png
文件的传输不是直接传输的,而是通过各个模块之间的相互协作才可以发送。文件先向下到达最底层然后传输到另一个主机的最底层,在逐层向上到顶层。

网络接入模块负责做与网络接口细节有关的工作,并向上层提供接入和通信服务

为什么要这样分层?
很简单,因为针对于不同业务,分层可以很好的做好封装,每个模块之间就无需关心其他模块的业务是什么,怎么实现其他的业务,只需要关注自身即可。
优点:各层之间是独立的;灵活性好;结构上可分割开;易于实现和维护能促进标准化工作
缺点:有些功能会重复出现,因而产生了额外开销

注意:每一层的功能应非常明确。
层数太少,就会使每一层的协议太复杂。
层数太多,又会在描述和综合各层功能的系统工程任务时遇到较多的困难。

各层需要完成的功能

  • 差错控制:使相应层次对等方的通信更加可靠
  • 流量控制:发送端的发送速率必须使接收端来得及接收,不要太快
  • 分段和重装:发送端将要发送的数据块划分为更小的单位,在接收端将其还原
  • 复用和分用:发送端几个高层会话复用一条低层的连接,在接收端再进行分用
  • 连接建立和释放:交换数据前先建立一条逻辑连接,数据传送结束后释放连接。

    体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。

五层协议的体系结构

三种体系对比

如图所示:
image.png

这张图有个印象即可,不必死记硬背。 之后的学习都只讨论最后的五层模型

各层的主要功能

  1. 应用层

这一层通过应用进程间的交互来完成特定网络应用。定义的是应用进程间通信和交互的规则

  1. 运输层

负责向两台主机中进程之间的通信提供通用的数据传输服务。具有复用和分用的功能。

  1. 网络层

分组交换网上的不同主机提供通信服务。两个具体任务:

  • 路由选择:通过一定的算法,在互联网中的每一个路由器上,生成一个用来转发分组的转发表。
  • 转发:每一个路由器在接收到一个分组时,要依据转发表中指明的路径把分组转发到下一个路由器。

    互联网使用的网络层协议是无连接的网际协议 IP (Internet Protocol) 和许多种路由选择协议,因此互联网的网络层也叫做网际层或 IP 层

  1. 数据链路层

实现两个相邻节点之间的可靠通信。在两个相邻节点间的链路上传送帧(frame)。
如发现有差错,就简单地丢弃出错帧。如果需要改正出现的差错,就要采用可靠传输协议来纠正出现的差错。这种方法会使数据链路层协议复杂。

  1. 物理层

实现比特(0 或 1)的传输。确定连接电缆的插头应当有多少根引脚,以及各引脚应如何连接。

讲一个例子理解一下五个层是干嘛的。把整个计算机之间的数据传送想象为送快递

  • 应用层:负责把快递准备并且打包好
  • 运输层:提供运输快递的服务,载体可以想象为一辆快递车
  • 网络层:快递上车之后要确定运输路线,网络层就是告诉你应该去哪里的
  • 数据链路层:负责确定发货地和送达地是否可以正常运输
  • 物理层:负责实际的运输,也就是说在这一层次快递才上路了

    数据在各层之间的传递过程

    假设两个主机之间发送消息,主机1先把数据转换为可以传输的比特流

    因为类似图片和文字是不能直接传输的,需要转为二进制才可以传输。

image.png
比特流会在网络中通过路由器进行转发:

类似于送快递时候的遇到的中转站。

image.png
比特流到达主机2之后,会重新解析为原来的数据
image.png
最终的完整路线如下:
image.png

对于主机1主机2之间相互对等的层次,我们把对等层次之间传送的数据单位称为该层的协议数据单元 PDU

💡各层协议实际上就是在各个对等层之间传递数据时的各项规定

实体、协议、服务、访问点

基本概念

实体 (entity) :表示任何可发送或接收信息的硬件或软件进程。
协议:控制两个对等实体进行通信的规则的集合。

💡在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务

image.png

服务访问点 SAP

在同一系统中相邻两层的实体进行交互(即交换信息) 的地方,通常称为服务访问点 SAP (Service Access Point)
OSI 把层与层之间交换的数据的单位称为服务数据单元 SDU

这里需要和前面的协议数据单元 PDU进行区分。 多个 SDU 合成为一个 PDU,也可以是一个 SDU 划分为几个 PDU 这两者不是同一个概念。

TCP/IP体系结构

简单看一下即可

image.png
现在互联网使用的 TCP/IP 体系结构已经发生了演变,即某些应用程序可以直接使用 IP 层,或甚至直接使用最下面的网络接口层:
image.png
image.png


实验课

常用的软件命令

首先输入Win + R输入cmd进入DOS界面。

  • ping:用于测试IP地址/域名是否可以连通

基础格式:ping + 域名/IP地址

  1. ping www.baidu.com
  2. ping 118.228.148.143

添加参数

  1. ping www.baidu.com -t // 持续ping该地址
  2. ping www.baidu.com -a // IP地址会变为域名

按住ctrl + c停止操作

  • netstat

    1. netstat -an // 查看所有本地端口状态
    2. netstat -n // 查看有效状态的本地端口
    3. netstat -s // 查看协议信息
    4. netstat -e // 统计网口的数据
  • ipconfig

    1. ipconfig // 显示所有适配器的TCP/IP配置
    2. ipconfig -all // 显示所有适配器完整的TCP/IP配置
  • arp

    1. arp //显示所有接口的ARP缓存表
    2. arp -a // 将IP地址10.0.0.80与物理地址00-AA-00-4F-2A-9C
    3. arp -s //
  • tracert

    1. tracert 10.102.xx.xx // 显示到达10.102.xx.xx的路由
    2. tracert -d 10.102.xx.xx // 显示到达10.102.xx.xx的路由,不把IP地址解析成为域名
  • nbtstat

    1. nbtstat -a 10.102.xx.xx //

    初始IPv4地址

    协议分析软件

    网络仿真软件

    绘制拓扑图

    实验与实验测试