第一章计算机网络

计算机网络

文章目录

1.2 因特网概述

1. 网络、互联网(互联网)和因特网

  • 网络(Network)由若干**结点(Node)和连接这些结点的链路(Link)**组成。比如图1中左侧网络是由四个节点和三个链路组成。


图1 网络

  • 多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网(或互联网)。因此,互联网是"网络的网络(Network of Networks)"
  • 因特尔(Internet)是世界上最大的互联网络(用户数以亿计,互联的网络数以百万计)。

internet与Internet的区别 internet(互联网或互连网)是一个通用名词,它泛指由多个计算机网络互连而成的网络。在这些网络之间的通信协议可以是任意的。

Internet(因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用TCP/IP协议族作为通信的规则,其前身是美国的ARPANET。

2. 因特网发展的三个阶段


图2 因特网的发展

因特网服务提供者ISP(Internet Service Provider)


图3 ISP

基于ISP的三层结构的因特网


图4 基于ISP的三层结构的因特网

3. 因特网的标准化工作

  • 因特网的标准化工作对因特网的发展起到了非常重要的作用。
  • 因特网在制定其标准上的一个很大的特点是面向公众。
    • 因特网所有的RFC(Request For Comments)技术文档都可从因特网上免费下载;(http://www.ietf.org/rfc.html)
    • 任何人都可以随时用电子邮件发表对某个文档的意见或建议。
  • 因特网协会ISOC是一个国际性组织,它负责对因特网进行全面管理,以及在世界范围内促进其发展和使用.
    • 因特网体系结构委员会IAB,负责管理因特网有关协议的开发;
    • 因特网工程部IETF,负责研究中短期工程问题,主要针对协议的开发和标准化;
    • 因特网研究部IRTF,从事理论方面的研究和开发一些需要长期考虑的问题。
  • 制订因特网的正式标准要经过以下4个阶段:
    • (1)因特网草案(在这个阶段还不是RFC文档)
    • (2)建议标准(从这个阶段开始就成为RFC文档)
    • (3)草案标准
    • (4)因特网标准

4. 因特网的组成

  • 边缘部分
    由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
  • 核心部分
    由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。


图5 因特网的组成

1.3 三种交换方式

电路交换(Circuit Switching)

  • 电话交换机接通电话线的方式 称为电路交换;
  • 从通信资源的分配角度来看,交换(Switching)就是按照某种方式动态地分配传输线路的资源;
  • 电路交换的三个步骤:
    • 建立连接(分配通信资源)
    • 通话(一直占用通信资源)
    • 释放连接(归还通信资源)

图6 两两电话机用电话线直接相连到使用电话交换机相连


图7 电话减缓及相连

问题: 可以用电话交换机来传送计算机数据吗?

答:当使用电路交换来传送计算机数据时,其线路的传输效率往往很低。这是因为计算机数据是突发式地出现在传输线路上的。

  • 比如当用户正在输入和编辑一份待传输的文件时,用户所占用的通信资源暂时未被利用,该通信资源也不能被其他用户利用,宝贵的通信资源白白被浪费了。

因此计算机网络通常采用分组交换,而不是电路交换

分组交换(Packet Switching)


图8 因特网一部分

假设图8是因特网的一部分,在因特网中,最重要的分组交换就是路由器(R1------R5)。它负责将各种网络互联起来,并对接收到的分组进行转发,也就是进行分组交换。

分组交换中:

  • 发送方需要构造分组、发送分组。也就是将报文分组成一个个包并发送出去。
  • 路由器需要缓存分组、转发分组。也就是先接受到包,再根据包的包头找到地址发送给下一个路由器或者接收方
  • 接收方需要接受分组、还原报文。也就是接收来自路由器转发的包,将一个个的包去掉包头后,再还原成一个完整的报文。

与分组交换类似,报文交换中的交换节点也采用存储转发方式,但报文交换对报文的大小没有限制,这就要求交换节点需要有较大的缓存空间。需要注意的是,报文交换主要用于早期的电报通信网,现在较少使用,通常被较先进的分组交换方式所取代。

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


图9 三种交换方式

图9中横坐标表示有四个结点交换机,纵坐标表示时间。

电路交换优缺点

优点

  • 通信时延小,因为通信线路为通信双方用户专用,数据直达,因此通信时延非常小。
  • 有序传输,因为通信双方之间只有一条专用的通信线路,数据只在这一条线路上传输,因此不存在失序问题。
  • 没有冲突, 不同的通信双方拥有不同的信道,不会出现争用物理信道的问题
  • 适用范围广, 电路交换既适用于传输模拟信号,也是用于传输数字信号,
  • 实时性强, 主要得益于其通信时延小的优点。
  • 控制简单, 电路交换的节点交换机及其控制都比较简单。

缺点:

  • 建立连接时间长: 电路交换的平局连接时间对计算机通信来说太长。
  • 线路独占,使用效率底, 电路交换一旦建立连接,物理通路就被通信双方独占,即使通信线路空闲,也不能供其他用户使用。因而信道利用率底
  • 灵活性差, 只要连接所建立的物理通路中的任何一点出现了故障,就必须重新拨号建立连接。
  • 难以规模化, 电路交换时,数据直达,不同类型、不同规格、不同速率的终端很难相互进行通信,也难以在通信过程中进行差错控制。
报文交换优缺点

优点:

  • 无需建立连接, 可随时发送报文
  • 动态分配线路, 结点交换机会选择一条合适的空闲线路,将报文发送出去。
  • 提高线路可靠性, 一条线路发生故障会传给另一条线路。
  • 提高线路利用率
  • 提供多目标服务, 一个报文可发送给多个目标用户。

缺点:

  • 引起了转发时延: 报文要经历结点交换机存储转发的过程
  • 需要较大存储缓存空间:
  • 需要传输额外的信息量: 因为报文需要携带目标地址,源地址等信息
分组交换优缺点:

优点

  • 无需建立连接
  • 线路利用率高
  • **相对于报文交换而言,简化了存储管理:**因为分组的长度固定,相应缓冲区的大小固定,管理起来相对比较容易。
  • **加速传输,**由于分组是逐个传输的,这就使得后一个分组的存储操作与前一个分组的转发操作可以同时进行。
  • 减少出错概率和重发数据量

缺点:

  • 引起了转发时延:
  • 需要传输额外的信息量:
  • 对于数据报服务,存在失序、丢失或重复分组的问题;对于虚电路服务,存在呼叫建立、数据传输和虚电路释放三个过程

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

计算机网络的定义

  • 计算机网络的精确定义并未统一
  • 计算机网络的最简单的定义是:一些互相连接 的、自治的计算机的集合。
    • 互连 是指计算机之间可以通过有线或无线的方式进行数据通信;
    • 自治 是指独立的计算机,它有自己的硬件和软件,可以单独运行使用;
    • 集合 是指至少需要两台计算机
  • 计算机网络的较好的定义是:计算机网络主要是由一些通用的、可编程的硬件互连 而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据 ,并能支持广泛的和日益增长 的应用。
    • 计算机网络所连接的硬件,并不限于一般的计算机,而是包含了智能手机等智能硬件。
    • 计算机网络并非专门用来传送数据,而是能够支持很多种的应用(包括今后可能出现的各种应用)


图10 非计算机网络

图10中并非是计算机网络,因为图中所示的各终端机只是具有显示和输入设备的终端,而并不是自治的计算机,因此这只是一个运行分时系统的大型机系统。

计算机网络的分类

按交换技术分类:

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

按使用者分类:

  • 公用网:公用网是指电信公司出资建造的大型网络,"公用"的意思就是所有愿意按电信公司的规定交纳费用的人都可以使用这种网络,因此也称为公众网
  • 专用网:专用网是指某个部门为本单位的特殊业务工作的需要而建造的网络,这种网络不向本单位以外的人提供服务。例如。军队。铁路、电力等系统均有本系统的专用网。

按传输介质分类:

  • 有线网络:包括双绞线网络、光纤网络
  • 无线网络:无线局域网所使用的WiFi技术,目前应用比较普遍。

按覆盖范围分类:

  • 广域网WAN
  • 城域网MAN
  • 局域网LAN
  • 个域网PAN

按拓扑结构分类:

  • 总线型网络
  • 星型网络
  • 环形网络
  • 网状型网络

1.5 计算机网络的性能指标

性能指标可以从不同的方面来度量计算机网络的性能

常用的计算机网络的性能指标有以下8个:

速率


带宽

其实,"带宽"的这两种表述之间有着密切的联系。一条通信线路的"频带宽度"越宽,其所传输数据的"最高数据率"也越高。

吞吐量

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

时延

网络时延是由三部分构成:分别为发送时延、传播时延、处理时延

**发送时延:**源主机将分组法网传输线路,需要花费的时间

**传播时延:**代表分组的电信号在链路上传输,需要花费的时间

**处理时延:**路由器接到分组后,对其进行存储转发,花费的时间。

时延带宽积

  • 若发送端连续发送数据,则在所发送的第一个比特即将到达终点时,发送端就已经发送了时延带宽积个比特
  • 链路的时延带宽积又称为以

往返时间

  • 在许多情况下,因特网上的信息不仅仅单方向传输,而是双向交互;
  • 我们有时很需要知道双向交互一次所需的时间;
  • 因此,往返时间RTT(Round-Trip Time)也是一个重要的性能指标。

利用率

  • 利用率包括

    • 信道利用率:用来表示某信道有百分之几的时间是被利用的(有数据通过)
    • 网络利用率:全网络的信道利用率的加权平均
  • 根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增加;

  • 因此,信道利用率并非越高越好;

  • 如果令Do表示网络空闲时的时延,D表示网络当前的时延,那么在适当的假定条件下,可以用下面的简单公式来表示D、Do和利用率U之间的关系:

    • 当网络的利用率达到50%时,时延就要加倍;
    • 当网络的利用率超过50%时,时延急剧增大;
    • 当网络的利用率接近100%时,时延就趋于无穷大;
    • 因此,一些拥有较大主干网的ISP通常会控制它们的信道利用率不超过50%。如果超过了,就要准备扩容,增大线路的带宽。
  • 也不能使信道利用率太低,这会使宝贵的通信资源被白白浪费。应该使用一些机制,可以根据情况动态调整输入到网络中的通信量,使网络利用率保持在一个合理的范围内。

D = D 0 1 − U D = \frac{D_{0}}{1-U} D=1−UD0

丢包率

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

1.6 计算机网络体系结构

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

OSI标准失败的原因可归纳为:

  • OSI的专家们缺乏实际经验,他们在完成OSI标准是没有商业驱动力
  • OSI的协议实现起来过分复杂,而且运行效率很低
  • OSI标准的制定周期太长,因为使得按OSI标准生产的设备无法及时进入市场
  • OSI的层次划分也不太合理,有些功能在多个层次中重复出现。
  • TCP/IP体系结构的网络接口层并没有规定什么具体的内容,这样做的目的是可以互联全世界各种不同的网络接口,例如有线的以太网接口、无线局域网的WiFi接口,而不是限定只有一种或几种网络接口,因此本质上TCP/IP体系结构只有上面的三层。
  • IP协议是TCP/IP体系结构网际层的核心协议。
    • IP协议可以将不同的网络接口进行互联,并向其上的TCP协议和UDP协议提供网络互连服务
    • 一方面负责互联不同的网络接口 ,也就是IP over everthing。另一方面,为各种网络应用提供服务,即Everything over IP。
  • TCP和UDP是TCP/IP体系结构运输层的两个重要协议。
    • TCP协议在享受IP协议提供的网络互联服务的基础上,可向应用层的相应协议提供可靠传输的服务;
    • UPD协议在享受IP协议提供的网络互联服务的基础上,可向应用层的相应协议提供不可靠传输的服务
  • TCP/IP体系结构的应用层包含了大量的应用层协议,例如HTTP、SMTP、DNS、RTP等。

在TCP/IP协议体系中包含有大量的协议,IP协议和TCP协议是其中非常重要的两个协议,因此,用TCP/IP这两个大协议来表示整个协议大家族,常称为TCP/IP协议族。

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

  • 计算机网络是个非常复杂的系统。早在最初的ARPANET设计时就提出了分层的设计理念。

  • "分层"可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。

    下面,我们按照由简单到复杂的顺序,来看看实现计算机网络要面临哪些主要的问题,以及如何将这些问题划分到相应的层次,层层处理。

这些问题全部划归到物理层,实现两台计算机通过信号传输比特0或1了

严格来说,传输媒体并不属于物理层,它并不包含在体系结构中。

主机A------E通过总线互联,构成了一个总线型网络(需要说明的是,这种总线网络已被淘汰,现在常用的是使用以太网交换机将多台主机互联形成的交换式以太网)。假设已经解决了物理层问题,也就是主机间可以发送信号来传输比特0或1了。

  • 如何标识网络中的各主机(主机编址问题,例如MAC地址),比如A主机发送信号给C主机,那么C主机怎么知道是发给自己的,其它一个总线上的主机又怎么知道不是发给自己的。
  • 如何从信号所表示的一连串比特流中区分出地址和数据,也就是需要解决分组的封装格式问题。
  • 如何协调各主机征用总线

将这些问题全部划归到数据链路层,实现分组在一个网络上传输了

这是一个由3个路由器,4个网络(N1------N4)互联起来的小型互联网。

  • 如何标识各网络以及网络中的各主机(网络和主机共同编址的问题,例如IP地址)。

    • 比如IP地址的前三个十进制数用来标识网络,第四个十进制数用来标识主机。
    • 在本例中,网络N1的网络号为192.168.1,该网络上的笔记本电脑,服务器,以及路由器接口的IP地址的前三个数应该都是192.168.1,因为它们都在网络N1上。而第四个十进制数分别为1、2、254,各不相同,用来标识自己。同理网络N2上的传输地址。
  • 路由器如何转发分组,如何进行路由选择。因为源主机到目的主机之间的传输路径往往不止一条,分组从原主机到目的主机可走不同的路径。

数据链路层使用的连环计地址是mac,而网络层使用的是路由器地址是ip地址

这些问题都划归到网络层,实现分组在网络间传输的问题

当一台主机运行了浏览器和QQ,另一台服务器中运行着与网络通信相关的服务器进程。

  • 如何解决进程之间基于网络的通信问题,比如某个时刻,主机收到了来自服务器的分组,那么这些分组应该交给浏览器进程处理还是交给QQ进程处理?

  • 出现传输错误(误码、丢包),如何处理?

这些问题全部划归到运输层。实现进程之间基于网络的通信

  • 通过应用进程间的交互来完成特定的网络应用。在前面的基础上,只需制定各种应用层协议,并按协议标准编写相应的应用程序。

这些问题全部划归到应用层

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

网络拓扑如上所示,主机属于网络N1,Web服务器属于网络N2,两者通过路由器互联。使用主机中的浏览器来访问Web服务器,当输入网址后,Web服务器收到请求后,会发回相应的响应,主机的浏览器收到相应的响应后,将其解析为具体的网页内容显示出来。

主机过程如下:

  • 首先主机的应用层按照HTTP协议构建一个HTTP请求报文------HTTP。应用层再将HTTP请求报文交付给运输层处理

  • 运输层给HTTP请求报文添加一个TCP首部 ,使之成为TCP报文段 ------HTTP+TCP。该首部的作用是为了区分应用进程以及实现可靠传输。运输层将TCP报文交付给网络层处理。

  • 网络层给TCP报文添加一个IP首部,使之成为IP数据报 ------HTTP+TCP+IP。该首部的作用主要是为了使IP数据报可以在互联网上传输,也就是被路由器转发。网络层将IP数据包交付给数据链路层处理。

  • 数据链路层给IP数据报添加一个首部和一个尾部使之成为帧------ETH+HTTP+TCP+IP+ETH。该首部的作用是为了让帧在一个链路上或一个网络上传输,能够被相应的主机接收。数据链路层将帧交付给物理层

  • 物理层将帧看作是比特流 ,如果网络N1是以太网,因此物理层还会给该比特流前面添加前导码,其作用是为了让目的主机做好接受帧的准备。物理层将其变换成相应的信号发送到传输媒体。

  • 信号通过传输媒体到达路由器

路由器处理过程如下:

  • 物理层将信号变换成比特流,去掉前导码后,将其交付给数据链路层,实际上交付的帧。
  • 数据链路层将帧的首部和尾部去掉后,将其交付给网络层,这实际上交付的是IP数据报。
  • 网络层解析IP数据报的首部,从中提取出网络地址,然后查找自身的路由表,确定转发端口,以便进行转发。网络层将IP数据报交付给数据链路层
  • 数据链路层给IP数据报添加一个首部和一个尾部使之成为帧,数据链路层将帧交付给物理层。
  • 物理层将帧看作是比特流,如果网络N1是以太网,因此物理层还会给该比特流前面添加前导码,物理层将其变换成相应的信号发送到传输媒体。
  • 信号通过传输媒体到达Web服务器

Web服务器的处理过程如下:

  • 物理层将信号变换成比特流,去掉前导码后,将其交付给数据链路层,实际上交付的帧。
  • 数据链路层将帧的首部和尾部去掉后,将其交付给网络层,这实际上交付的是IP数据报。
  • 网络层将IP数据报的首部去掉后,将其交付给运输层,实际上交付的是TCP报文段。
  • 运输层将TCP报文段的首部去掉后,将其交付给应用层,实际上交付的是HTTP请求报文
  • 应用层对HTTP请求报文进行解析,然后给主机发回HTTP响应报文。

发回HTTP响应报文的过程同理。

4. 计算机网络体系结构中的专用术语

实体

任何可发送或接收信息的硬件或软件工程。

**对等实体:**收发双方中相同层次中的实体

比如通信双方的网卡、正在进行通信的应用进程都是对等实体。

协议

控制两个对等实体进行逻辑通信的规则的集合

  • 协议的三要素 语法 语义 同步
    • 语法:定义所交换信息的格式
    • 语义:定义收发双方所要完成的操作
    • 同步:定义收发双方的时序关系
服务
  • 在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。
  • 要实现本层协议,还需要使用下面一层所提供的服务。
  • 协议是"水平的",服务是"垂直的"。
  • 实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是"透明"的。能用就行,没必要看懂服务具体逻辑。

服务访问点

  • 在同一系统中相邻两层的实体交换信息逻辑接口 ,用于区分不同的服务类型
    • 数据链路层的服务访问点为帧的"类型"字段。
    • 网络层的服务访问点为IP数据报首部中的"协议字段"。
    • 运输层的服务访问点为"端口号"。

服务原语

  • 上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语

协议数据单元PDU 对等层次之间传送的数据包称为该层的协议数据单元。

服务数据单元SDU 同一系统内,层与层之间交换的数据包称为服务数据单元。

多个SDU可以合成为一个PDU;

一个SDU也可划分为几个PDU。

相关推荐
明月看潮生2 分钟前
青少年编程与数学 02-003 Go语言网络编程 15课题、Go语言URL编程
开发语言·网络·青少年编程·golang·编程与数学
龙哥说跨境1 小时前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
懒大王就是我1 小时前
C语言网络编程 -- TCP/iP协议
c语言·网络·tcp/ip
Elaine2023911 小时前
06 网络编程基础
java·网络
海绵波波1073 小时前
Webserver(4.3)TCP通信实现
服务器·网络·tcp/ip
幺零九零零5 小时前
【计算机网络】TCP协议面试常考(一)
服务器·tcp/ip·计算机网络
热爱跑步的恒川5 小时前
【论文复现】基于图卷积网络的轻量化推荐模型
网络·人工智能·开源·aigc·ai编程
云飞云共享云桌面6 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
音徽编程8 小时前
Rust异步运行时框架tokio保姆级教程
开发语言·网络·rust
长安初雪10 小时前
Request 和 Response 万字详解
计算机网络·servlet