计算机网络(一)

news2025/1/12 1:03:12

计算机网络

    • 1 概述
      • 1.1 计算机网络的作用
      • 1.2 因特网概述
        • 1.2.1 网络的网络
        • 1.2.2 Internet和internet的区别
        • 1.2.3 因特网发展的三个阶段
        • 1.2.4 ISP介绍
        • 1.2.5 ISP分类
          • 1.2.5.1 主干ISP
          • 1.2.5.2 地区ISP
          • 1.2.5.3 本地ISP
        • 1.2.6 因特网交换点 IXP
      • 1.3 因特网的组成
        • 1.3.1 因特网的边缘部分
          • 1.3.1.1 客户-服务器方式
          • 1.3.1.2 对等连接方式
        • 1.3.2 因特网的核心部分
          • 1.3.2.1 电路交换
          • 1.3.2.2 分组交换
            • 1.3.2.2.1 分组交换的缺点
          • 1.3.2.3 电路交换、报文交换、分组交换
      • 1.4 计算机网络的类别
        • 1.4.1 按作用范围分类
          • 1.4.1.1 广域网(WAN)
          • 1.4.1.2 城域网(MAN)
          • 1.4.1.3 局域网(LAN)
          • 1.4.1.4 个人区域网(PAN)
        • 1.4.2 按网络的使用者分类
          • 1.4.2.1 公用网
          • 1.4.2.2 专用网
      • 1.5 计算机网络的性能
        • 1.5.1 计算机网络的性能指标
          • 1.5.1.1 速率
            • 1.5.1.1.1 通信领域和计算机领域的数据单位
          • 1.5.1.2 带宽
          • 1.5.1.3 吞吐量
          • 1.5.1.4 时延
          • 1.5.1.5 时延带宽积
          • 1.5.1.6 往返时间RTT
          • 1.5.1.7 利用率
        • 1.5.2 计算机网络的非性能特征
      • 1.6 计算机网络体系结构
        • 1.6.1 协议
        • 1.6.2 层次划分
          • 1.6.2.1 分层的好处
          • 1.6.2.2 分层的缺点
          • 1.6.2.3 各层的功能
        • 1.6.3 五层协议的体系结构
          • 1.6.3.1 应用层
          • 1.6.3.2 运输层
          • 1.6.3.3 网络层
          • 1.6.3.4 数据链路层
          • 1.6.3.5 物理层
        • 1.6.4 实体、协议、服务和服务访问点
        • 1.6.5 TCP/IP的体系结构

1 概述

1.1 计算机网络的作用

  网络已经成为信息社会的命脉和发展知识经济的重要基础。网络对社会生活的很多方面以及对社会经济的发展已经产生了不可估量的影响。
  计算机网络向用户提供的最重要的功能有两个,即:
  (1) 连通性。
  就是计算机网络使上网用户之间都可以交换信息。
  (2) 共享。
  共享就是指资源共享。资源共享的含义是多方面的。可以是信息共享、软件共享,也可以是硬件共享。

1.2 因特网概述

1.2.1 网络的网络

  网络由若干结点和连接这些结点的链路组成。网络中的结点可以是计算机、集线器、交换机或路由器等。
  网络和网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网,因此互联网是“网络的网络”。
  因特网是世界上最大的互连网络(用户数以亿计,互连的网络数以百万计)。习惯上,大家把连接在因特网上的计算机都称为主机。

1.2.2 Internet和internet的区别

  以小写字母i开始的internet(互联网或互连网)是一个通用名词,它泛指由多个计算机网络互连而成的网络。在这些网络之间的通信协议(即通信规则)可以是任意的。
  以大写字母I开始的Internet(因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用TCP/IP协议族作为通信的规则。

1.2.3 因特网发展的三个阶段

  因特网的基础结构大体上经历了三个阶段的演进。
  第一阶段是从单个网络ARPANET向互联网发展的过程。
  第二阶段的特点是建成了三级结构的因特网。分为主干网、地区网和校园网(或企业网)。
  第三阶段的特点是逐渐形成了多层次 ISP(Internet Service Provider) 结构的因特网。

1.2.4 ISP介绍

  ISP可以从因特网管理机构申请到很多IP地址,同时拥有通信线路以及路由器等连网设备,因此任何机构和个人只要向某个ISP交纳规定的费用,就可从该ISP获取所需IP地址的使用权,并可通过该ISP接入到因特网。IP地址的管理机构不会把一个单个的IP地址分配给单个用户,而是把一批IP地址有偿租赁给经审查合格的ISP。由此可见,现在的因特网已不是某个单个组织所拥有而是全世界无数大大小小的ISP所共同拥有的,这就是因特网也称为“网络的网络”的原因。

1.2.5 ISP分类

  根据提供服务的覆盖面积大小以及所拥有的IP地址数目的不同,ISP也分成为不同的层次:主干ISP、地区ISP和本地ISP。

1.2.5.1 主干ISP

  主干ISP由几个专门的公司创建和维持,服务面积最大(一般都能够覆盖国家范围),并且还拥有高速主干网。有一些地区ISP网络也可直接与主干ISP相连。

1.2.5.2 地区ISP

  地区ISP是一些较小的ISP。这些地区ISP通过一个或多个主干ISP连接起来。它们位于等级中的第二层,数据率也低一些。

1.2.5.3 本地ISP

  本地ISP给端用户提供直接的服务。本地ISP可以连接到地区ISP,也可直接连接到主干ISP。绝大多数的端用户都是连接到本地ISP的。本地ISP可以是一个仅仅提供因特网服务的公司,也可以是一个拥有网络并向自己的雇员提供服务的企业,或者是一个运行自己的网络的非营利机构。本地ISP可以与地区ISP或主干ISP连接。

1.2.6 因特网交换点 IXP

  从原理上讲,只要每一个本地ISP都安装了路由器连接到某个地区ISP,而每一个地区ISP也有路由器连接到主干ISP,那么在这些相互连接的ISP的共同合作下,就可以完成因特网中的所有的分组转发任务。但随着因特网上数据流量的急剧增长,人们开始研究如何更快地转发分组,以及如何更加有效地利用网络资源。于是,因特网交换点 IXP (Internet eXchange Point)就应运而生了。
  因特网交换点IXP的主要作用就是允许两个网络直接相连并交换分组,而不需要再通过第三个网络来转发分组。现在许多IXP在进行对等交换分组时,都互相不收费。但本地ISP或地区ISP通过IXP向高层的IXP转发分组时,则需要交纳一定的费用。IXP的结构非常复杂。典型的IXP由一个或多个网络交换机组成,许多ISP再连接到这些网络交换机的相关端口上。IXP常采用工作在数据链路层的网络交换机,这些网络交换机都用局域网互连起来。

1.3 因特网的组成

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

1.3.1 因特网的边缘部分

  主机A的某个进程和主机B上的另一个进程进行通信。这种说法通常可以简称为“计算机之间通信”。在网络边缘的端系统之间的通信方式通常可划分为两大类:客户-服务器方式(C/S方式)和对等方式(P2P方式)。

1.3.1.1 客户-服务器方式

  客户和服务器都是指通信中所涉及的两个应用进程。客户-服务器方式所描述的是进程之间服务和被服务的关系。客户是服务请求方,服务器是服务提供方。服务请求方和服务提供方都要使用网络核心部分所提供的服务。在实际应用中,客户程序和服务器程序通常还具有以下一些主要特点。
  客户程序:
  (1) 被用户调用后运行,在通信时主动向远地服务器发起通信(请求服务)。因此,客户程序必须知道服务器程序的地址。
  (2) 不需要特殊的硬件和很复杂的操作系统。
  服务器程序:
  (1) 是一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。
  (2) 系统启动后即自动调用并一直不断地运行着,被动地等待并接受来自各地的客户的通信请求。因此,服务器程序不需要知道客户程序的地址。
  (3) 一般需要有强大的硬件和高级的操作系统支持。
  客户与服务器的通信关系建立后,通信可以是双向的,客户和服务器都可发送和接收数据。

1.3.1.2 对等连接方式

  对等连接(peer-to-peer,简写为P2P)是指两个主机在通信时并不区分哪一个是服务请求方还是服务提供方。只要两个主机都运行了对等连接软件(P2P软件),它们就可以进行平等的、对等连接通信。这时,双方都可以下载对方已经存储在硬盘中的共享文档。因此这种工作方式也称为P2P文件共享。实际上,对等连接方式从本质上看仍然是使用客户-服务器方式,只是对等连接中的每一个主机既是客户又同时是服务器。

1.3.2 因特网的核心部分

  网络核心部分是因特网中最复杂的部分,因为网络中的核心部分要向网络边缘中的大量主机提供连通性,使边缘部分中的任何一台主机都能够向其他主机通信。
  在网络核心部分起特殊作用的是路由器(router),它是一种专用计算机(但不是主机)。路由器是实现分组交换的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。

1.3.2.1 电路交换

  经过“建立连接(占用通信资源)→通话(一直占用通信资源)→释放连接(归还通信资源)”三个步骤的交换方式称为电路交换。电路交换的一个重要特点就是在通话的全部时间内,通话的两个用户始终占用端到端的通信资源。当使用电路交换来传送计算机数据时,其线路的传输效率往往很低。

1.3.2.2 分组交换

  分组交换则采用存储转发技术。通常我们把要发送的整块数据称为一个报文。在发送报文之前,先把较长的报文划分成为一个个更小的等长数据段,在每一个数据段前面,加上一些必要的控制信息组成的首部(header)后,就构成了一个分组(packet)。分组又称为“包”,而分组的首部也可称为“包头”。分组是在因特网中传送的数据单元。分组中的“首部”是非常重要的,正是由于分组的首部包含了诸如目的地址和源地址等重要控制信息,每一个分组才能在因特网中独立地选择传输路径,并被正确地交付到分组传输的终点。
  因特网的核心部分是由许多网络和把它们互连起来的路由器组成的,而主机处在因特网的边缘部分。在因特网核心部分的路由器之间一般都用高速链路相连接,而在网络边缘的主机接入到核心部分则通常以相对较低速率的链路相连接。
  路由器是用来转发分组的,即进行分组交换的。路由器收到一个分组,先暂时存储一下,检查其首部,查找转发表,按照首部中的目的地址,找到合适的接口转发出去,把分组交给下一个路由器。这样一步一步地(有时会经过几十个不同的路由器)以存储转发的方式,把分组交付最终的目的主机。各路由器之间必须经常交换彼此掌握的路由信息,以便创建和维持在路由器中的转发表,使得转发表能够在整个网络拓扑发生变化时及时更新。
  路由器暂时存储的是一个个短分组,而不是整个的长报文。短分组是暂存在路由器的存储器(即内存)中而不是存储在磁盘中的。这就保证了较高的交换速率。
  应当注意,分组交换在传送数据之前不必先占用一条端到端的通信资源。分组在哪一段链路上传送时,才占用这段链路的通信资源。分组到达一个路由器后,先暂时存储下来,查找转发表,然后从另一条合适的链路转发出去。分组在传输时就这样一段段地断续占用通信资源,而且还省去了建立连接和释放连接的开销,因而数据的传输效率更高。
  因特网采取了专门的措施,保证了数据的传送具有非常高的可靠性。当网络中的某些结点或链路突然出故障时,在各路由器中运行的路由选择协议(protocol)能够自动找到其他路径转发分组。
  从以上所述可知,采用存储转发的分组交换,实质上采用了在数据通信的过程中断续(或动态)分配传输带宽的策略。这对传送突发式的计算机数据非常合适,使得通信线路的利用率大大提高了。
  为了提高分组交换网的可靠性,因特网的核心部分常采用网状拓扑结构,使得当发生网络拥塞或少数结点、链路出现故障时,路由器可灵活地改变转发路由而不致引起通信的中断或全网的瘫痪。此外,通信网络的主干线路往往由一些高速链路构成,这样就能以较高的数据率迅速地传送计算机数据。
  综上所述,分组交换网的主要优点可归纳如下表所示。

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

  1. 分组在各路由器存储转发时需要排队,这就会造成一定的时延。因此,必须尽量设法减少这种时延。
  2. 分组交换不像电路交换那样通过建立连接来保证通信时所需的各种资源,因而无法确保通信时端到端所需的带宽。
  3. 各分组必须携带的控制信息也造成了一定的开销。整个分组交换网还需要专门的管理和控制机制。

1.3.2.3 电路交换、报文交换、分组交换

  电路交换——整个报文的比特流连续地从源点直达终点,好像在一个管道中传送。
  报文交换——整个报文先传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点。
  分组交换——单个分组(这只是整个报文的一部分)传送到相邻结点,存储下来后查找转发表,转发到下一个结点。
  若要连续传送大量的数据,且其传送时间远大于连接建立时间,则电路交换的传输速率较快。报文交换和分组交换不需要预先分配传输带宽,在传送突发数据时可提高整个网络的信道利用率。由于一个分组的长度往往远小于整个报文的长度,因此分组交换比报文交换的时延小,同时也具有更好的灵活性。

1.4 计算机网络的类别

1.4.1 按作用范围分类

1.4.1.1 广域网(WAN)

  广域网的作用范围通常为几十到几千公里,因而有时也称为远程网。广域网是因特网的核心部分,其任务是通过长距离运送主机所发送的数据。连接广域网各结点交换机的链路一般都是高速链路,具有较大的通信容量。

1.4.1.2 城域网(MAN)

  城域网的作用范围一般是一个城市,可跨越几个街区甚至整个的城市,其作用距离约为5~50km。城域网可以为一个或几个单位所拥有,但也可以是一种公用设施,用来将多个局域网进行互连。目前,很多城域网采用的是以太网技术。

1.4.1.3 局域网(LAN)

  局域网一般用微型计算机或工作站通过高速通信线路相连(速率通常在10Mb/s以上),但地理上则局限在较小的范围(如1km左右)。在局域网发展的初期,一个学校或工厂往往只拥有一个局域网,但现在局域网已非常广泛地使用,一个学校或企业大都拥有许多个互连的局域网(这样的网络常称为校园网或企业网)。

1.4.1.4 个人区域网(PAN)

  个人区域网就是在个人工作的地方把属于个人使用的电子设备(如便携式电脑等)用无线技术连接起来的网络,因此也常称为无线个人区域网WPAN,其范围大约在10 m左右。

1.4.2 按网络的使用者分类

1.4.2.1 公用网

  公用网这是指电信公司(国有或私有)出资建造的大型网络。“公用”的意思就是所有愿意按电信公司的规定交纳费用的人都可以使用这种网络。因此公用网也可称为公众网。如CHINANET。

1.4.2.2 专用网

  专用网是某个部门、某个行业为各自的特殊业务工作需要而建造的网络。这种网络不对外人提供服务。例如,政府、军队、银行、铁路、电力、公安等系统均有本系统的专用网。

1.5 计算机网络的性能

1.5.1 计算机网络的性能指标

1.5.1.1 速率

  网络技术中的速率指的是连接在计算机网络上的主机在数字信道上传送数据的速率,它也称为数据率或比特率。速率的单位是b/s(比特每秒)。当数据率较高时,就可以用kb/s(k = $10^3 $=千)、Mb/s(M = 1 0 6 10^6 106 =兆)、Gb/s(G = 1 0 9 10^9 109 = 吉)或Tb/s(T = 1 0 12 10^{12} 1012 = 太)。上面所说的速率往往是指额定速率或标称速率。

1.5.1.1.1 通信领域和计算机领域的数据单位

  1. 计算机领域中数据的单位:一个字节代表8个比特。“千字节”的“千”用大写K表示,它等于 2 1 0 2^10 210,即1024,而不是 1 0 3 10^3 103。同样,在计算机中,1 MB或1 GB也并非表示 1 0 6 10^6 106 1 0 9 10^9 109个字节,而是表示 2 20 2^{20} 220(1048 576)或 2 30 2^{30} 230(1073 741 824)个字节。
  2. 通信领域小写的k表示 1 0 3 10^3 103而不是1024。

1.5.1.2 带宽

  在计算机网络中,带宽用来表示网络的通信线路传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。也就是说,一条通信链路的“带宽”越宽,其所能传输的“最高数据率”也越高。

1.5.1.3 吞吐量

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

1.5.1.4 时延

  时延是指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。它有时也称为延迟或迟延。
  网络中的时延是由以下几个不同的部分组成的:
  (1)发送时延 发送时延是主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。因此发送时延也叫做“传输时延”。发送时延的计算公式是: 发送时延 = 数据帧长度( b ) 发送速率( b / s ) 发送时延 = \frac{数据帧长度(b)}{发送速率(b/s)} 发送时延=发送速率(b/s数据帧长度(b
  (2)传播时延 传播时延是电磁波在信道中传播一定的距离需要花费的时间。传播时延的计算公式是: 传播时延 = 信道长度( m ) 电磁波在信道中的传播速率( m / s ) 传播时延 = \frac{信道长度(m)}{电磁波在信道中的传播速率(m/s)} 传播时延=电磁波在信道中的传播速率(m/s信道长度(m。电磁波在自由空间的传播速率是光速,即3.0×105km/s。电磁波在网络传输媒体中的传播速率比在自由空间要略低一些:在铜线电缆中的传播速率约为2.3×105km/s,在光纤中的传播速率约为2.0×105km/s。例如,1000km长的光纤线路产生的传播时延大约为5ms。
  (3)处理时延 主机或路由器在收到分组时要花费一定的时间进行处理,例如分析分组的首部、从分组中提取数据部分、进行差错检验或查找适当的路由等等,这就产生了处理时延。
  (4)排队时延 分组在经过网络传输时,要经过许多路由器。但分组在进入路由器后要先在输入队列中排队等待处理。在路由器确定了转发接口后,还要在输出队列中排队等待转发。这就产生了排队时延。排队时延的长短往往取决于网络当时的通信量。当网络的通信量很大时会发生队列溢出,使分组丢失,这相当于排队时延为无穷大。

1.5.1.5 时延带宽积

  把以上讨论的网络性能的两个度量——传播时延和带宽相乘,就得到另一个很有用的度量:传播时延带宽积,即: 时延带宽积 = 传播时延 × 带宽 时延带宽积 = 传播时延 × 带宽 时延带宽积=传播时延×带宽。例如,设某段链路的传播时延为20ms,带宽为10Mb/s,算出: 时延带宽积 = 20 × 1 0 − 3 × 10 × 1 0 6 = 2 × 1 0 5 b i t 时延带宽积 = 20×10^{-3}×10×10^6 = 2×10^5bit 时延带宽积=20×103×10×106=2×105bit。这就表示,若发送端连续发送数据,则在发送的第一个比特即将达到终点时,发送端就已经发送了20万个比特,而这20万个比特都正在链路上向前移动。因此,链路的时延带宽积又称为以比特为单位的链路长度。对于一条正在传送数据的链路,只有在代表链路的管道都充满比特时,链路才得到了充分的利用。

1.5.1.6 往返时间RTT

  在计算机网络中,往返时间RTT也是一个重要的性能指标,它表示从发送方发送数据开始,到发送方收到来自接收方的确认(接收方收到数据后便立即发送确认),总共经历的时间。对于上述例子,往返时间RTT是40ms,而往返时间和带宽的乘积是 4 × 1 0 5 4×10^5 4×105 (bit)。在互联网中,往返时间还包括各中间结点的处理时延、排队时延以及转发数据时的发送时延。
  往返时间带宽积的意义就是当发送方连续发送数据时,即使能够及时收到对方的确认,但已经将许多比特发送到链路上了。对于上述例子,假定数据的接收方及时发现了差错,并告知发送方,使发送方立即停止发送,但这时发送方也已经发送了40万个比特了。

1.5.1.7 利用率

  利用率有信道利用率网络利用率两种。信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。网络利用率则是全网络的信道利用率的加权平均值。信道或网络利用率过高会产生非常大的时延。因此,一些拥有较大主干网的ISP通常控制他们的信道利用率不超过50%。如果超过了就要准备扩容,增大线路的带宽。

1.5.2 计算机网络的非性能特征

  1. **费用:**网络的价格(包括设计和实现的费用)总是必须考虑的,因为网络的性能与其价格密切相关。一般说来,网络的速率越高,其价格也越高。
  2. **质量:**网络的质量取决于网络中所有构件的质量,以及这些构件是怎样组成网络的。高质量的网络往往价格也较高。
  3. **标准化:**网络的硬件和软件的设计既可以按照通用的国际标准,也可以遵循特定的专用网络标准。
  4. **可靠性:**可靠性与网络的质量和性能都有密切关系。
  5. **可扩展性和可升级性:**在构造网络时就应当考虑到今后可能会需要扩展(即规模扩大)和升级(即性能和版本的提高)。网络的性能越高,其扩展费用往往也越高,难度也会相应增加。
  6. **易于管理和维护:**网络如果没有良好的管理和维护,就很难达到和保持所设计的性能。

1.6 计算机网络体系结构

  我们把计算机网络的各层及其协议的集合,称为网络的体系结构。需要强调的是:体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。

1.6.1 协议

  为进行网络中的数据交换而建立的规则、标准或约定称为网络协议。网络协议也可简称为协议。更进一步讲,网络协议主要由以下三个要素组成:
  (1) 语法,即数据与控制信息的结构或格式。
  (2) 语义,即需要发出何种控制信息,完成何种动作以及做出何种响应。
  (3) 同步,即事件实现顺序的详细说明。
  协议通常有两种不同的形式,一种是使用便于人来阅读和理解的文字描述,另一种是使用让计算机能够理解的程序代码。对于非常复杂的计算机网络协议,其结构应该是层次式的。

1.6.2 层次划分

1.6.2.1 分层的好处

  (1) 各层之间是独立的。某一层并不需要知道它的下一层是如何实现的,而仅仅需要知道该层通过层间的接口(即界面)所提供的服务。
  (2) 灵活性好。当任何一层发生变化时(例如由于技术的变化),只要层间接口关系保持不变,则在这层以上或以下各层均不受影响。此外,对某一层提供的服务还可进行修改。当某层提供的服务不再需要时,也可以将这层取消。
  (3) 结构上可分割开。各层都可以采用最合适的技术来实现。
  (4) 易于实现和维护。这种结构使得实现和调试一个庞大而又复杂的系统变得易于处理,因为整个的系统已被分解为若干个相对独立的子系统。
  (5) 能促进标准化工作。因为每一层的功能及其所提供的服务都已有了精确的说明。

1.6.2.2 分层的缺点

  有些功能会在不同的层次中重复出现,因而产生了额外开销。

1.6.2.3 各层的功能

  各层可以只包括一种,也可以包括多种。
  ① 差错控制 使得和网络对等端的相应层次的通信更加可靠。
  ② 流量控制 使得发送端的发送速率不要太快,要使接收端来得及接收。
  ③ 分段和重装 发送端把要发送的数据块划分为更小的单位,在接收端将其还原。
  ④ 复用和分用 发送端几个高层会话复用一条低层的连接,在接收端再进行分用。
  ⑤ 连接建立和释放 交换数据前先建立一条逻辑连接。数据传送结束后释放连接。

1.6.3 五层协议的体系结构

  1983年国际标准化组织ISO形成了著名的开放系统互连基本参考模型(OSI)正式文件,也就是七层协议的体系结构。它的概念清楚,理论也较完整,但它既复杂又不实用。并且当时因特网已经大规模使用了非国际标准TCP/IP。这样,TCP/IP就常被称为是事实上的国际标准。TCP/IP是一个四层的体系结构,它包含应用层、运输层、网际层和网络接口层。我们在学习计算机网络的原理时往往采取折中的办法,即综合OSI和TCP/IP的优点,采用一种只有五层协议的体系结构,如下图,这样既简洁又能将概念阐述清楚。OSI参考模型把对等层次之间传送的数据单位称为该层的协议数据单元PDU。几个层次之间的数据流转很像一个栈的结构,也可以称为协议栈。

在这里插入图片描述

1.6.3.1 应用层

  应用层是体系结构中的最高层。应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。这里的进程就是指主机中正在运行的程序。对于不同的网络应用需要有不同的应用层协议。应用层协议有如:HTTP协议、SMTP协议、FTP协议等,我们将应用层交互的数据单元称为报文。

1.6.3.2 运输层

  运输层的任务就是负责向两个主机中进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。所谓通用,是指并不针对某个特定网络应用,而是多种应用可以使用同一个运输层服务。由于一台主机可同时运行多个进程,因此运输层有复用和分用的功能。复用就是多个应用层进程可同时使用下面运输层的服务,分用与复用相反,是运输层把收到的信息分别交付上面应用层中的相应进程。
  运输层主要使用以下两种协议:
  传输控制协议TCP:提供面向连接的、可靠的数据传输服务,其数据传输的单位是报文段。
  用户数据报协议UDP:提供无连接的、尽最大努力的数据传输服务(不保证数据传输的可靠性),其数据传输的单位是用户数据报。

1.6.3.3 网络层

  网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫作 IP数据报,或简称为数据报。
  网络层的另一个任务就是要选择合适的路由,使源主机运输层所传下来的分组能够通过网络中的路由器找到目的主机。
  因特网是一个很大的互联网,它由大量的异构网络通过路由器相互连接起来。因特网主要的网络层协议是无连接的网际协议IP和许多种路由选择协议,因此因特网的网络层也叫做网际层或IP层。

1.6.3.4 数据链路层

  数据链路层常简称为链路层。我们知道,两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧,在两个相邻结点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。
  在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提取出数据部分,上交给网络层。
  控制信息还使接收端能够检测到所收到的帧中有无差错。如发现有差错,数据链路层就简单地丢弃这个出了差错的帧,以免继续在网络中传送下去白白浪费网络资源。如果需要改正数据在数据链路层传输时出现的差错(这就是说,数据链路层不仅要检错,而且要纠错),那么就要采用可靠传输协议来纠正出现的差错。这种方法会使数据链路层的协议复杂些。

1.6.3.5 物理层

  在物理层上所传数据的单位是比特。发送方发送1(或0)时,接收方应当收到1(或0)而不是0(或1)。因此物理层要考虑用多大的电压代表“1”或“0”,以及接收方如何识别出发送方所发送的比特。物理层还要确定连接电缆的插头应当有多少根引脚以及各条引脚应如何连接。当然,解释比特代表的意思,就不是物理层的任务。请注意,传递信息所利用的一些物理媒体,如双绞线、同轴电缆、光缆、无线信道等,并不在物理层协议之内而是在物理层协议的下面。因此也有人把物理媒体当作第0层。
  在因特网所使用的各种协议中,最重要的和最著名的就是TCP和IP两个协议。现在人们经常提到的TCP/IP并不一定是单指TCP和IP这两个具体的协议,而往往是表示因特网所使用的整个TCP/IP协议族。

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

  当研究开放系统中的信息交换时,往往使用实体这一较为抽象的名词表示任何可发送或接收信息的硬件或软件进程。在许多情况下,实体就是一个特定的软件模块。协议是控制两个对等实体(或多个实体)进行通信的规则的集合。在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。协议的实现保证了能够向上一层提供服务。使用本层服务的实体只能看见服务而无法看见下面的协议。也就是说,下面的协议对上面的实体是透明的。
  协议是“水平的”,即协议是控制对等实体之间通信的规则。但服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。另外,并非在一个层内完成的全部功能都称为服务。只有那些能够被高一层实体“看得见”的功能才能称之为“服务”。上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令在OSI中称为服务原语。
  在同一系统中相邻两层的实体进行交互的地方,通常称为服务访问点SAP 。服务访问点SAP是一个抽象的概念,它实际上就是一个逻辑接口,但这种层间接口和两个设备之间的硬件接口(并行的或串行的)并不一样。OSI把层与层之间交换的数据的单位称为服务数据单元SDU,它可以与协议数据单元PDU不一样。例如,可以是多个SDU合成为一个PDU,也可以是一个SDU划分为几个PDU。
  计算机网络的协议还有一个很重要的特点,就是协议必须把所有不利的条件事先都估计到,而不能假定一切都是正常的和非常理想的。因此,看一个计算机网络协议是否正确,不能只看在正常情况下是否正确,而且还必须非常仔细地检查这个协议能否应付各种异常情况。

1.6.5 TCP/IP的体系结构

  TCP/IP的体系结构比较简单,它只有四层。如下图:

在这里插入图片描述

  TCP/IP协议可以为各式各样的应用提供服务(所谓的everything over IP),同时TCP/IP协议也允许IP协议在各式各样的网络构成的互联网上运行(所谓的IP over everything)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/153917.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

资产管理4大难点,如何破解?

随着企业业务扩大、人员增多,固定资产的数量和种类也会随着增加。此时,如何高效管理企业资产就成为很多企业亟待解决的一大难题。 传统资产管理4大难点 01.资产管理部门需要联系采购部门、使用部门、财务部门等收集数据,汇总难且工作量大&…

vacuum移除不必要的CLOG文件

迫切模式弥补了惰性模式的缺陷。它会扫描所有页面&#xff0c;检查表中的所有元组&#xff0c;更新相关的系统视图&#xff0c;并在可能时删除不必要的CLOG文件与页面。当满足以下条件时&#xff0c;会执行迫切模式。pg_database.datfrozenxid<(OldestXmin-vacuum_freeze_ta…

【多线程】【C++ 知识点】pthread_join学习

目录pthread_join进程id和线程idpthread_join pthread_join() 主线程会进入阻塞装题&#xff0c;pthread_join()之后的代码&#xff0c;只有等待子进程退出之后才能执行。 代码块A pthread_create(&id, NULL, Fn, NULL);pthread_create(&id_1, NULL, Fn, NULL);pthre…

jdk1.8 更替为 oepnJdk8遇到的坑

背景&#xff1a;客户服务器因为说jdk要收费&#xff0c;所以要求将jdk1.8替换为openJdk&#xff0c;本地测试ok&#xff0c;则将服务器的jdk替换为openJdk8&#xff0c;出现一个登录异常&#xff0c;调查发现是一个sso登录的问题&#xff08;单点登录&#xff09;&#xff0c;…

Rhce第一次作业

chrony服务部署&#xff1a;两台机器a: 第一台机器从阿里云同步时间&#xff0c;第二台机器从第一台机器同步时间1.查看防火墙是否关闭&#xff0c;若未关闭&#xff0c;关闭防火墙2.打开chrony配置文件3.向配置文件中写入阿里云时间服务器&#xff0c;并允许两台机器所在的网段…

从0到1完成一个Vue后台管理项目(十八、基础地图绘制)

往期 从0到1完成一个Vue后台管理项目&#xff08;一、创建项目&#xff09; 从0到1完成一个Vue后台管理项目&#xff08;二、使用element-ui&#xff09; 从0到1完成一个Vue后台管理项目&#xff08;三、使用SCSS/LESS&#xff0c;安装图标库&#xff09; 从0到1完成一个Vu…

spring restTemplate的坑----会对String类型的url中的特殊字符进行转义

&#x1f4e2; &#x1f4e2; &#x1f4e2; &#x1f4e3; &#x1f4e3; &#x1f4e3;哈喽&#xff01;大家好&#xff0c;我是「奇点」&#xff0c;江湖人称 singularity。刚工作几年&#xff0c;想和大家一同进步 &#x1f91d; &#x1f91d;一位上进心十足的【Java ToB端…

基于OpenCV实现两种方法测量圆弧长度(步骤 + 源码)

导 读 本文主要介绍基于OpenCV实现两种方法测量圆弧长度(步骤 + 源码)。 背景介绍 要求:如上所示,分别用OpenCV计算出图1和图2中圆弧的长度。因为OpenCV中没有提供现成计算圆弧的方法,所以需要自己编写,本文将提供2种不同的方法来实现,仅供参考。 实现步骤 首…

mmsegmentation 训练Binary segmentation

1.一天最无聊的事从搭环境开始 1.conda create -n swin python3.7 2.conda activate swin 3.conda install pytorch1.7.0 torchvision0.8.0 torchaudio0.7.0 cudatoolkit11.0 4.pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu110/torch1.7.0/index.h…

Keil + STM32学习嵌入式数据结构-01

视频链接 初识数据结构&#xff0c;十天搞定嵌入式数据结构_哔哩哔哩_bilibili 课程目的 学会嵌入式经常使用的数据结构 具备基础知识 具有C语言基础&#xff08;结构体、指针、内存&#xff08;malloc)&#xff09; 具有数据结构的基础知识&#xff0c;因此提及到的基础…

Android 深入系统完全讲解(8)

2 Smali 调试 Smali 是安卓 Apk 反编译出来的格式&#xff0c;类似于我们 PC 上面的汇编语言。语法可以参考这个文 章&#xff1a;https://blog.csdn.net/yuanguozhengjust/article/details/80493963 PC 上的反编译调试工具用 OD 和 IDA&#xff08;这个也可以调试 Android &…

Java 调用 扫描仪的技术该如何选择?

文章目录Java 调用 扫描仪的技术该如何选择?详细介绍;&#xff08;1&#xff09;TWAIN&#xff08;2&#xff09;Kodakimg&#xff08;3&#xff09;Dynamic TWAIN ActiveX&#xff08;4&#xff09;WIA&#xff08;用于桌面应用程序&#xff09;开发应用程序&#xff0c;您可…

计算机组成原理习题一

计算机组成原理习题一 文章目录计算机组成原理习题一题目答案题目 1.某数的IEEE单精度浮点数存储形式为C1F00000H&#xff0c;则其所表示的十进制数真值是多少&#xff1f;要求写出详细求解过程以及最终结果。 2.求出数据10010100110的海明码&#xff0c;可检/纠错一位错&…

【实战篇】40 # 如何实现3D地球可视化?

说明 【跟月影学可视化】学习笔记。 如何实现一个 3D 地球 学习笔记源码实现&#xff1a;https://github.com/kaimo313/visual-learning-demo 整体实现效果如下&#xff1a; 1、绘制一个 3D 球体 <!DOCTYPE html> <html lang"en"><head><m…

五、数据导入与基本的 SELECT 语句

文章目录一、数据导入指令二、基本查询语句2.1 SELECT ...2.2 使用 SELECT 语句查询一个数据表2.3 查询表中的一列或多列三、单表查询3.1 用 DISTINCT 关键字去除结果中的重复行3.2 使用 AS 设置别名3.3 着重号3.4 运算符3.4.1 算术运算符3.4.2 比较运算符3.4.3 逻辑运算符3.4.…

k8s之Deployment

写在前面 本文一起看下Deployment API对象&#xff0c;该对象的作用是保证POD的高可用&#xff0c;即保证POD的可用数量一直维持在某个期望状态中&#xff0c;比如期望状态是有3个POD&#xff0c;当有一个POD意外终止时&#xff0c;则会自动再启动一个新POD&#xff0c;所以De…

Makefile 如何构建Go项目

前言 &#x1f4da; 请问你是如何打包Go语言开发的项目呢&#xff1f; 是直接命令行输入&#xff1f; go build . 开发调试时&#xff1f; go run main.go 但是我们看到开源的Go语言项目运行时是&#xff1a; make build || make install 我们打包运行的这个过程&#xff0…

Mask RCNN网络源码解读(Ⅵ) --- Mask分支及Loss计算

目录 0.先决知识 1.简介 2.mask_rcnn.py解析 2.1 初始化函数 2.2 MaskRCNNHeads类 2.3 MaskRCNNPredictor类 3.RoIHeads类解析 3.1 正向传播过程 3.2 mask部分损失 3.3 maskrcnn_inference 0.先决知识 学习此篇博客之前&#xff0c;读者应有&#xff1a; ①一定的p…

MySQL常用命令 (这些命令专属于MySQL 不属于标准SQL语句)

1、查看MySQL版本 &#xff1a;select version(); ​​​​​​​ ​​​​​​​ ​​​​​​​ 2、创建数据库 &#xff1a;create database 数据库名称; 3、使用/指定数据库&#xff1a;use 数据库名称; 4、查看当前使用的数据库…

硬件系统工程师宝典(3)-----信号完整性分析是个啥?

各位同学大家好&#xff0c;欢迎继续做客电子工程学习圈&#xff0c;今天我们继续来讲这本书&#xff0c;硬件系统工程师宝典。上篇我们读到硬件电路的概要设计需要考虑的问题&#xff0c;相关的可行性分析可以使开发工作事半功倍。信号完整性分析概述今天我们开始学习在高速电…