计算机网络(1):开始

计算机网络(1):开始

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

21世纪的一些重要特征就是数字化、网络化和信息化,是一个以网络为核心的信息时代。要实现信息化就必须依靠完善的网络,因为网络可以非常迅速地传递信息。因此网络现在已经成为信息社会的命脉和发展知识经济的重要基础。网络对社会生活的很多方面以及对社会经济的发展已经产生了不可估量的影响。

通常所说的网络是指“三网",即电信网络、有线电视网络和计算机网络。 这三种网络向用户提供的服务不同。
电信网络的用户可得到电话、电报以及传真等服务。
有线电视网络的用户能够观看各种电视节目。
计算机网络则可使用户能够迅速传送数据文件,以及从网络上查找并获取各种有用资料,包括图像和视频文件。

计算机网络向用户提供的最重要的功能有两个,即:
(1)连通性: 所谓连通性(connectivity),就是计算机网络使上网用户之间都可以交换、共享信息。
(2)共享: 所谓共享就是指资源共享。资源共享的含义是多方面的。可以是信息共享、软件共享,也可以是硬件共享。

因特网概述

网络(network)由若干结点(node)和连接这些结点的链路(link)组成。
网络中的结点可以是计算机、集线器、交换机或路由器等。
如图给出了一个具有四个结点和三条链路的网络。
在这里插入图片描述

因特网(Internet) 是世界上最大的互连网络(用户数以亿计,互连的网络数以百万计)。
习惯上,大家把连接在因特网上的计算机都称为主机(host)
因特网也常常用一朵云来表示,下图表示许多主机连接在因特网上。这种表示方法是把主机画在网络的外边,而网络内部的细节(即路由器怎样把许多网络连接起来)往往会省略。
在这里插入图片描述

网络把许多计算机连接在一起,而因特网则把许多网络连接在一起。

因特网发展的三个阶段:
第一阶段是从单个网络 ARPANET 向互联网发展的过程。
1983 年 TCP/IP 协议成为 ARPANET 上的标准协议。
人们把 1983 年作为因特网的诞生时间。

第二阶段的特点是建成了三级结构的因特网。
三级计算机网络,分为主干网、地区网和校园网(或企业网)。

第三阶段的特点是逐渐形成了多层次 ISP 结构的因特网。
出现了因特网服务提供者 ISP (Internet Service Provider)。
根据提供服务的覆盖面积大小以及所拥有的IP 地址数目的不同,ISP 也分成为不同的层次。

因特网发展的三个阶段内容来源:https://developer.aliyun.com/article/885905

基于 ISP 的多层结构的因特网的概念示意图
在这里插入图片描述

所有的因特网标准都是以 RFC 的形式在因特网上发表。RFC (Request For Comments)的意思就是“请求评论” 。所有的RFC文档都可从因特网上免费下载[W-RFC]。
制订因特网的正式标准要经过以下的四个阶段[RFC 2026]:
(1)因特网草案(Internet Draft)——在这个阶段还不是RFC文档。
(2)建议标准(Proposed Standard)——从这个阶段开始就成为RFC文档。
(3)草案标准(Draft Standard)。
(4)因特网标准(Internet Standard)。

因特网的组成

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

边缘部分

处在因特网边缘的部分就是连接在因特网上的所有的主机。这些主机又称为端系统(endsystem),“端”就是“末端”的意思(即因特网的末端)。
端系统可以是一台普通个人电脑,也可以是一台非常昂贵的大型计算机。端系统的拥有者可以是个人,也可以是单位(如学校、企业、政府机关等),也可以是某个ISP(即 ISP不仅仅是向端系统提供服务,它也可以拥有一些端系统)。
边缘部分利用核心部分所提供的服务,使众多主机之间能够互相通信并交换或共享信息。

主机 A 和主机 B 进行通信是:主机 A 的某个进程和主机 B上 的另一个进程进行通信。

在网络边缘的端系统中运行的程序之间的通信方式通常可划分为两大类:客户服务器方式(C/S方式)和对等方式(P2P方式)。

客户服务器方式

这种方式在因特网上是最常用的,也是传统的方式。
客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户服务器方式所描述的是进程之间服务和被服务的关系。
主机 A 运行客户程序而主机 B 运行服务器程序。在这种情况下,A 是客户而 B 是服务器。客户A向服务器B发出请求服务,而服务器B向客户A提供服务。最主要的特征就是:
1.客户是服务请求方,服务器是服务提供方。
2.服务请求方和服务提供方都要使用网络核心部分所提供的服务。

在实际应用中,客户程序和服务器程序的一些主要特点。
客户程序:
(1)被用户调用后运行,在通信时主动向远地服务器发起通信(请求服务)。因此,客户程序必须知道服务器程序的地址
(2)不需要特殊的硬件和很复杂的操作系统。
服务器程序:
(1)是一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。
(2)系统启动后即自动调用并一直不断地运行着,被动地等待并接受来自各地的客户的通信请求。因此,服务器程序不需要知道客户程序的地址

客户与服务器的通信关系建立后,通信可以是双向的,客户和服务器都可发送和接收数据。
客户和服务器本来都指的是计算机进程(软件)。使用计算机的人是计算机的“用户”(user)而不是“客户”(client)。

对等连接方式

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

对等连接工作方式可支持大量对等用户(如上百万个)同时工作。

因特网的核心部分

网络核心部分是因特网中最复杂的部分,因为网络中的核心部分要向网络边缘中的大量主机提供连通性,使边缘部分中的任何一个主机都能够向其他主机通信(即传送或接收各种形式的数据)

在网络核心部分起特殊作用的是在路由器(router)。路由器是一种专用计算机(但不是主机)。如果没有路由器,再多的网络也无法构建成因特网。
路由器是实现分组交换(packet switching)的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。

电路交换

两部电话只需要用一对电线就能够互相连接起来。但若有 5 部电话要两两相连,则需要10对电线,显然,若N部电话要两两相连,就需要N(N-1)/2对电线。每一部电话都连接到交换机上,而交换机使用交换的方法,让电话用户彼此之间可以很方便地通信。
从通信资源的分配角度来看,“交换”(switching)就是按照某种方式动态地分配传输线路的资源。
电路交换:建立连接(占用通信资源)→通话(一直占用通信资源)→释放连接(归还通信资源)三个步骤的交换方式称为电路交换。
在这里插入图片描述

电路交换的一个重要特点就是在通话的全部时间内,通话的两个用户始终占用端到端的通信资源。

当使用电路交换来传送计算机数据时,其线路的传输效率往往很低。这是因为计算机数据是突发式地出现在传输线路上,因此线路上真正用来传送数据的时间往往不到 10% 甚至 1%。实际上,已被用户占用的通信线路在绝大部分时间里都是空闲的。

分组交换

分组交换则采用存储转发技术
把一个报文划分为几个分组的概念。通常我们把要发送的整块数据称为一个报文(message)。在发送报文之前,先把较长的报文划分成为一个个更小的等长数据段,在每一个数据段前面,加上一些必要的控制信息组成的首部(header)后,就构成了一个分组(packet)。分组又称为“”,而分组的首部也可称为“包头”。
分组是在因特网中传送的数据单元。分组中的“首部”是非常重要的,正是由于分组的首部包含了诸如目的地址和源地址等重要控制信息,每一个分组才能在因特网中独立地选择传输路径。
在这里插入图片描述

因特网的核心部分是由许多网络和把它们互连起来的路由器组成,而主机处在因特网的边缘部分。
在因特网核心部分的路由器之间一般都用高速链路相连接,而在网络边缘的主机接入到核心部分则通常以相对较低速率的链路相连接。

主机和路由器都是计算机,但它们的作用很不一样:主机是为用户进行信息处理的,并且可以和其他主机通过网络交换信息。路由器则是用来转发分组的,即进行分组交换的。
路由器收到一个分组,先暂时存储下来,再检查其首部,查找转发表,按照首部中的目的地址,找到合适的接口转发出去,把分组交给下一个路由器。这样一步一步地(有时会经过几十个不同的路由器)以存储转发的方式,把分组交付到最终的目的主机。
各路由器之间必须经常交换彼此掌握的路由信息,以便创建和维持在路由器中的转发表,使得转发表能够在整个网络拓扑发生变化时及时更新。

如果把单个的网络简化成一条链路,则路由器成为核心部分的结点

需要注意的是,路由器暂时存储的是一个个短分组,而不是整个的长报文。短分组是暂存在路由器的存储器(即内存)中而不是存储在磁盘中。这就保证了较高的交换速率。如果通信量太大,路由器会把分组沿着另一个路由转发到其他路由器。

因特网可以容许非常多的主机同时进行通信,而一个主机中的多个进程(即正在运行中的多道程序)也可以各自和不同主机中的不同进程进行通信

应当注意,分组交换在传送数据之前不必先占用一条端到端的通信资源
分组在哪段链路上传送才占用这段链路的通信资源。分组到达一个路由器后,先暂时存储下来,查找转发表,然后从另一条合适的链路转发出去。分组在传输时就这样一段段地断续占用通信资源,而且还省去了建立连接和释放连接的开销,因而数据的传输效率更高。

采用存储转发的分组交换,实质上是采用了在数据通信的过程中断续(或动态〉分配传输带宽的策略。这对传送突发式的计算机数据非常合适,使得通信线路的利用率大大提高了。

归纳:分组交换的特点

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

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

三种交换方式在数据传送阶段的主要特点:
电路交换:整个报文的比特流连续地从源点直达终点,好像在一个管道中传送。
报文交换:整个报文先传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点。
分组交换:单个分组(这只是整个报文的一部分)传送到相邻结点,存储下来后查找转发表,转发到下一个结点。

计算机网络的类别

最简单的定义:一些互相连接的、自治的计算机的集合。

不同作用范围的网络

(1)广域网WAN (Wide Area Network)
广域网的作用范围通常为几十到几千公里,因而有时也称为远程网(long haul network)。
广域网是因特网的核心部分,其任务是通过长距离(例如,跨越不同的国家)运送主机所发送的数据。连接广域网各结点交换机的链路一般都是高速链路,具有较大的通信容量。
(2)城域网MAN (Metropolitan Area Network)
城域网的作用范围一般是一个城市,可跨越几个街区甚至整个的城市,其作用距离约为5~50 km。】城域网可以为一个或几个单位所拥有,但也可以是一种公用设施,用来将多个局域网进行互连。目前很多城域网采用的是以太网技术,因此有时也常并入局域网的范围进行讨论。
(3)局域网LAN (Local Area Network)
局域网一般用微型计算机或工作站通过高速通信线路相连(速率通常在10 Mb/s 以上),但地理上则局限在较小的范围(如1km 左右)。
一个学校或企业大都拥有许多个互连的局域网(这样的网络常称为校园网或企业网)。
(4)个人区域网PAN (Personal Area Network)
个人区域网就是在个人工作地方把属于个人使用的电子设备(如便携式电脑等)用无线技术连接起来的网络,因此也常称为无线个人区域网WPAN (Wireless PAN),其范围大约在10 m左右。

若中央处理机之间的距离非常近(如仅1米的数量级或甚至更小些),则一般就称之为 多处理机系统,而不称它为计算机网络。

不同使用者的网络

(1)公用网(public network)
指电信公司(国有或私有)出资建造的大型网络。公用网也可称为公众网。
(2)专用网(private network)
这是某个部门为本单位的特殊业务工作的需要而建造的网络。

用来把用户接入到因特网的网络

接入网AN (Access Network),它又称为本地接入网或居民接入网。是一类比较特殊的计算机网络。
用户必须通过 ISP 才能接入到因特网。由于从用户家中接入到因特网可以使用的技术有许多种,因此就出现了可以使用多种接入网技术连接到因特网的情况。接入网本身既不属于因特网的核心部分,也不属于因特网的边缘部分。实际上,由ISP提供的接入网只是起到让用户能够与因特网连接的“桥梁”作用。

计算机网络的性能

性能指标

速率

计算机发送出的信号都是数字形式的。
比特(bit)是计算机中数据量的单位,也是信息论中使用的信息量的单位。
网络技术中的速率指的是连接在计算机网络上的主机在数字信道上传送数据的速率,它也称为数据率(data rate)或比特率(bitrate)
速率是计算机网络中最重要的一个性能指标。速率的单位是 b/s(比特每秒)(或bit/s,有时也写为bps,即 bit per second)。

带宽

(1)带宽本来是指某个信号具有的频带宽度。 信号的带宽是指该信号所包含的各种不同频率成份所占据的频率范围。
这种意义的带宽的单位是赫(或千赫、兆赫、吉赫等)。过去, 通信的主干线路传送的是模拟信号(即连续变化的信号)。因此,表示通信线路允许通过的信号频带范围就称为线路的带宽(或通频带)。
(2)在计算机网络中,带宽用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“ 最高数据率”。
这种意义的带宽的单位是“比特每秒”,记为b/s。

吞吐量

**吞吐量(throughput)**表示在单位时间内通过某个网络(或信道、接口)的数据量。
吞吐量更经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。吞吐量受网络的带宽或网络的额定速率的限制 。例如,对于一个100 Mb/s的以太网,其额定速率是100 Mb/s,那么这个数值也是该以太网的吞吐量的绝对上限值。
有时吞吐量还可用每秒传送的字节数或帧数来表示。

时延

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

(1)发送时延
发送时延(transmission delay)是主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
因此发送时延也叫做传输时延。发送时延的计算公式是:
发送时延 = 数据帧长度(b) 信道带宽(b/s) \text{发送时延} = \frac{ \text{数据帧长度(b)} }{ \text{信道带宽(b/s)} } 发送时延=信道带宽(b/s)数据帧长度(b)

对于一定的网络,发送时延并非固定不变,而是与发送的帧长(单位是比特)成正比,与信道带宽成反比。

(2)传播时延
传播时延(propagation delay)是电磁波在信道中传播一定的距离需要花费的时间。
传播时延的计算公式是:
传播时延 = 信道长度(m) 电磁波在信道上的传播速率(m/s) \text{传播时延} = \frac{ \text{信道长度(m)} }{ \text{电磁波在信道上的传播速率(m/s)} } 传播时延=电磁波在信道上的传播速率(m/s)信道长度(m)

电磁波在自由空间的传播速率是光速,即 3.0×10^5 km/s。电磁波在网络传输媒体中的传播速率比在自由空间要略低一些:在铜线电缆中的传播速率约为 2.3×10^5 km/s,在光纤中的传播速率约为 2.0× 10^5 km/s。

(3)处理时延
主机或路由器在收到分组时要花费一定的时间进行处理,例如分析分组的首部、从分组中提取数据部分、进行差错检验或查找适当的路由等等,这就产生了处理时延。
(4)排队时延
分组在经过网络传输时,要经过许多的路由器。但分组在进入路由器后要先在输入队列中排队等待处理。在路由器确定了转发接口后,还要在输出队列中排队等待转发。这就产生了排队时延。排队时延的长短往往取决于网络当时的通信量。当网络的通信量很大时会发生队列溢出,使分组丢失,这相当于排队时延为无穷大。

数据在网络中经历的总时延就是四种时延之和:
总时延 = 发送时延+传播时延+处理时延+排队时延 总时延=发送时延+传播时延+处理时延+排队时延 总时延=发送时延+传播时延+处理时延+排队时延

对于高速网络链路,提高的仅仅是数据的发送速率而不是比特在链路上的传播速率。荷载信息的电磁波在通信线路上的传播速率(这是光速的数量级)与数据的发送速率并无关系。提高数据的发送速率只是减小了数据的发送时延
数据的发送速率的单位是每秒发送多少个比特,是指某个点或某个接口上的发送速率
传播速率的单位是每秒传播多少公里,是指传输线路上比特的传播速率
因此,通常所说的“光纤信道的传输速率高”是指向光纤信道发送数据的速率可以很高,而光纤信道的传播速率实际上还要比铜线的传播速率还略低一点。

时延带宽积

传播时延带宽积,即
时延带宽积 = 传播时延 × 带宽 时延带宽积=传播时延×带宽 时延带宽积=传播时延×带宽

链路的时延带宽积又称为以比特为单位的链路长度

在这里插入图片描述
这是一个代表链路的圆柱形管道,管道的长度是链路的传播时延(现在以时间作为单位来表示链路长度),而管道的截面积是链路的带宽。因此时延带宽积就表示这个管道的体积,表示这样的链路可容纳多少个比特。
管道中的比特数表示从发送端发出的但尚未达到接收端的比特。对于一条正在传送数据的链路,只有在代表链路的管道都充满比特时,链路才得到充分的利用。

往返时间 RTT

往返时间RTT (Round-Trip Time),表示从发送方发送数据开始,到发送方收到来自接收方的确认(接收方收到数据后便立即发送确认),总共经历的时间。
在互联网中,往返时间还包括各中间结点的处理时延、排队时延以及转发数据时的发送时延。
往返时间与所发送的分组长度有关。发送很长的数据块的往返时间,应当比发送很短的数据块的往返时间要多些。
往返时间带宽积的意义就是当发送方连续发送数据时,即使能够及时收到对方的确认,但已经将许多比特发送到链路上了。

利用率

利用率有信道利用率和网络利用率两种。
信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。
网络利用率则是全网络的信道利用率的加权平均值。
信道利用率并非越高越好:当某信道的利用率增大时,该信道引起的时延也就迅速增加。
当网络的通信量很少时,网络产生的时延并不大。但在网络通信量不断增大的情况下,由于分组在网络结点(路由器或结点交换机〉进行处理时需要排队等候,因此网络引起的时延就会增大。
如果令 D 0 D_0 D0 表示网络空闲时的时延, D D D 表示网络当前的时延,那么在适当的假定条件下,可以用下面的简单公式来表示 D D D D 0 D_0 D0和利用率 U U U 之间的关系:
D = D 0 1 − U D = \frac{D_0}{1-U} D=1UD0

这里 U U U 是网络的利用率,数值在 0 到 1 之间。当网络的利用率达到其容量的 1/2 时,时延就要加倍。
特别值得注意的就是:当网络的利用率接近最大值1时,网络的时延就趋于无穷大。

计算机网络体系结构

协议与划分层次

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

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

假定在 主机1 和 主机⒉之间通过一个通信网络传送文件。这是一件比较复杂的工作,因为需要做不少的工作。划分层次:
在这里插入图片描述

可以将要做的工作划分为三类。
第一类工作与传送文件直接有关。例如,发送端的文件传送应用程序应当确信接收端的文件管理程序已做好接收和存储文件的准备。若两个主机所用的文件格式不一样,则至少其中的一个主机应完成文件格式的转换。这两件工作可用一个文件传送模块来完成。这样,两个主机可将文件传送模块作为最高的一层。在这两个模块之间的虚线表示两个主机系统交换文件和一些有关文件交换的命令。

但是,并不想让文件传送模块完成全部工作的细节,这样会使文件传送模块过于复杂。可以再设立一个通信服务模块,用来保证文件和文件传送命令可靠地在两个系统之间交换。

同样道理,再构造一个网络接入模块,让这个模块负责做与网络接口细节有关的工作,并向上层提供服务,使上面的通信服务模块能够完成可靠通信的任务。

划分层次的好处:
(1)各层之间是独立的。可将一个难以处理的复杂问题分解为若干个较容易处理的更小一些的问题。
(2)灵活性好。当任何一层发生变化时(例如由于技术的变化),只要层间接口关系保持不变,则在这层以上或以下各层均不受影响。
(3)结构上可分割开。各层都可以采用最合适的技术来实现。
(4)易于实现和维护。使得实现和调试一个庞大而又复杂的系统变得易于处理。
(5)能促进标准化工作。因为每一层的功能及其所提供的服务都已有了精确的说明。

分层时应注意使每一层的功能非常明确。若层数太少,就会使每一层的协议太复杂。但层数太多又会在描述和综合各层功能的系统工程任务时遇到较多的困难。
通常各层所要完成的功能主要有以下一些(可以只包括一种,也可以包括多种):
①差错控制―使得和网络对等端的相应层次的通信更加可靠。
②流量控制—使得发送端的发送速率不要太快,要使接收端来得及接收。
③分段和重装―发送端将要发送的数据块划分为更小的单位,在接收端将其还原。
④复用和分用发送端几个高层会话复用一条低层的连接,在接收端再进行分用。
⑤连接建立和释放―交换数据前先建立一条逻辑连接。数据传送结束后释放连接。

分层的缺点:有些功能会在不同的层次中重复出现,产生额外开销。

把计算机网络的各层及其协议的集合,称为网络的体系结构(architecture)
换种说法,计算机网络的体系结构就是这个计算机网络及其构件所应完成的功能的精确定义
体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件

具有五层协议的体系结构

在这里插入图片描述

(1)应用层(application layer)
应用层是体系结构中的最高层。应用层直接为用户的应用进程提供服务。这里的进程就是指正在运行的程序。
(2)运输层(transport layer)运输层
任务是负责向两个主机中进程之间的通信提供服务。由于一个主机可同时运行多个进程,因此运输层有复用和分用的功能。复用就是多个应用层进程可同时使用下面运输层的服务,分用则是运输层把收到的信息分别交付给上面应用层中的相应的进程。

运输层主要使用以下两种协议:
①传输控制协议TCP (Transmission Control Protocol)—面向连接的,数据传输的单位是报文(segment),能够提供可靠的交付。
②用户数据报协议UDP(User Datagram Protocol)—无连接的,数据传输的单位是用户数据报,不保证提供可靠的交付,只能提供“尽最大努力交付(best-effort delivery)”。

(3)网络层(network layer)
网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。
在 TCP/IP 体系中,由于网络层使用IP协议,因此分组也叫作 IP数据报,或简称为数据报
运输层的“用户数据报UDP”和网络层的“IP数据报”是不一样的。
网络层的另一个任务就是要选择合适的路由,使源主机运输层所传下来的分组,能够通过网络中的路由器找到目的主机。
对于由广播信道构成的分组交换网,路由选择的问题很简单,因此这种网络的网络层非常简单,甚至可以没有。
因特网是一个很大的互联网,它由大量的异构(heterogeneous)网络通过路由器(router)相互连接起来。因特网主要的网络层协议是无连接的网际协议IP (Internet Protocol)和许多种路由选择协议,因此因特网的网络层也叫做网际层或 IP层。

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

在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提取出数据部分,上交给网络层。
控制信息还使接收端能够检测到所收到的帧中有无差错。如发现有差错,数据链路层就简单地丢弃这个出了差错的帧,以免继续传送下去白白浪费网络资源。如果需要改正错误,就由运输层的TCP协议来完成。

(5)物理层(physical layer)
在物理层上所传数据的单位是比特。物理层的任务就是透明地传送比特流。也就是说,发送方发送1(或0)时,接收方应当收到1(或0)而不是0(或1)。因此物理层要考虑用多大的电压代表“1”或“0”,以及接收方如何识别出发送方所发送的比特。物理层还要确定连接电缆的插头应当有多少根引脚以及各条引脚应如何连接。
哪几个比特代表什么意思,则不是物理层所要管的。传递信息所利用的一些物理媒体,如双绞线、同轴电缆、光缆、无线信道等,并不在物理层协议之内而是在物理层协议的下面。因此也有人把物理媒体当做第 0 层。

会话层: 通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)。
表示层: 可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。如有必要,表示层会通过使用一种通格式来实现多种数据格式之间的转换。
应用层: 是最靠近用户的OSI层。这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务。

OSI 参考模型把对等层次之间传送的数据单位称为该层的协议数据单元 PDU(ProtocolData Unit)

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

当研究开放系统中的信息交换时,往往使用实体(entity) 表示任何可发送或接收信息的硬件或软件进程。在许多情况下,实体就是一个特定的软件模块。
协议是控制两个对等实体(或多个实体)进行通信的规则的集合。协议的语法方面的规则定义了所交换的信息的格式,而协议的语义方面的规则就定义了发送者或接收者所要完成的操作。
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。

协议和服务在概念上不一样:
1.协议的实现保证了能够向上一层提供服务。使用本层服务的实体只能看见服务而无法看见下面的协议。下面的协议对上面的实体是透明的。
2.协议是“水平的”,即协议是控制对等实体之间通信的规则。但服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。
3.并非在一个层内完成的全部功能都称为服务。只有那些能够被高一层实体“看得见”的功能才能称之为“服务”。上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令在OSI中称为服务原语。

在同一系统中相邻两层的实体进行交互(即交换信息)的地方,通常称为服务访问点SAP(Service Access Point)。
服务访问点SAP是一个抽象的概念,实际上就是一个逻辑接口,但这种层间接口和两个设备之间的硬件接口(并行的或串行的)并不一样。OSI 把层与层之间交换的数据的单位称为服务数据单元SDU(Service Data Unit) ,它可以与 PDU 不一样。例如,可以是多个SDU合成为一个PDU,也可以是一个SDU划分为几个PDU。

相邻两层之间的关系:
在这里插入图片描述
第 n 层的两个“实体(n)”之间通过“协议(n)”进行通信,而第n +1层的两个“实体(n+ 1)”之间则通过另外的“协议(n +1)”进行通信(每一层都使用不同的协议)。
第 n 层向上面的第 n+1 层所提供的服务实际上已包括了在它以下各层所提供的服务。
第 n 层的实体对第 n +1 层的实体就相当于一个服务提供者。在服务提供者的上一层的实体又称为“服务用户”,因为它使用下层服务提供者所提供的服务。

TCP/IP 体系结构

1.表示1:路由器在转发分组时最高只用到网络层而没有使用运输层和应用层。
在这里插入图片描述

2.分层次画出具体的协议来表示TCP/IP协议族,它的特点是上下两头大而中间小:应用层和网络接口层都有多种协议,而中间的IP层很小,上层的各种协议都向下汇聚到一个 IP 协议中。
在这里插入图片描述

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

谢希仁第五版《计算机网络》学习笔记

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32/STM8资源节约主义设计方式

STM32/STM8资源节约主义设计方式 在小资源芯片进行代码设计时,如STM32C0系列,STM8系列,因为官方库本身要包含各种场景应用特征的支持,所以会有一些冗余的代码占用更多FLASH空间。当需要实现资源占用最简化设计方式时,…

AAAI中稿心得

很幸运我们的一篇工作中稿了AAAI2024,题目是 Self-Prompt Mechanism for Few-Shot Image Recognition. 很高兴能在研二的上学期中稿一篇a会保底,也是我中稿的第一篇工作,成为我申请博士的资本。最重要的是,让枯燥无味的科研&#…

3.3【窗口】窗口的几何形状(二,窗口属性)

写在前面 应用程序使用窗口来显示内容。一些属性决定了窗口及其内容的大小和位置。其他属性决定了窗口内容的外观和解释。 了解窗口属性引用的两个坐标系非常重要。如果你知道你正在使用的坐标系,那么为你的窗口属性选择设置值会容易得多,并且会更有意义。 一,显示相关属…

12.16~12.17图的存储方式(邻接矩阵,邻接表),相应定义与构建,PTA特性(要初始化),BFS抓牛,判断题

图的存储方式 邻接矩阵 #include<iostream> using namespace std; #define maxn; struct tu {int juzhen[maxn][maxn];//行为起点&#xff0c;列为终点&#xff0c;即第一个为起点&#xff0c;第二个为终点//确定一个点的出度&#xff0c;就固定行&#xff0c;即第一个…

读取小数部分

1.题目描述 2.题目分析 //假设字符串为 char arr[] "123.4500"; 1. 找到小数点位置和末尾位置 代码如下&#xff1a; char* start strchr(arr, .);//找到小数点位置char* end start strlen(start) - 1;//找到末尾位置 如果有不知道strchr()用法的同学&#xf…

力扣刷题记录(10)LeetCode:51、37

51. N 皇后 应为各个皇后之间不能同行&#xff0c;所以一行只能有一个皇后。我们可以遍历每一行的各个位置&#xff0c;判断该位置是否可以放置皇后&#xff0c;一行放置一个。当一个皇后的位置已经在这一行确定了&#xff0c;我们就可以遍历下一行来确定下一个皇后在下一行的位…

使用drawio绘制依赖关系图

使用drawio绘制依赖关系图 drawio是一款强大的图表绘制软件&#xff0c;支持在线云端版本以及windows, macOS, linux安装版。 如果想在线直接使用&#xff0c;则直接输入网址draw.io或者使用drawon(桌案), drawon.cn内部完整的集成了drawio的所有功能&#xff0c;并实现了云端存…

libxls - 编译

文章目录 libxls - 编译概述笔记静态库工程测试控制台exe工程测试备注备注END libxls - 编译 概述 想处理.xls格式的excel文件. 查了一下libxls库可以干这个事. 库地址 https://github.com/libxls/libxls.git 但是这个库的makefile写的有问题, 在mingw和WSL下都编译不了. 好在…

【Python从入门到进阶】44、Scrapy的基本介绍和安装

接上篇《43.验证码识别工具结合requests的使用》 上一篇我们学习了如何使用验证码识别工具进行登录验证的自动识别。本篇我们开启一个新的章节&#xff0c;来学习一下快速、高层次的屏幕抓取和web抓取框架Scrapy。 一、Scrapy框架的背景和特点 Scrapy框架是一个为了爬取网站数…

Diva配置——Communication Tests

关联文章:CANoe.Diva生成测试用例 Diva目录 一、CANoe.Diva简介二、Communication Tests配置一、CANoe.Diva简介 CANoe.DiVa 是一种 CANoe 选项,用于对 ECU 中的诊断软件实施进行自动化测试。 可以通过CANdelaStudio制作的CDD或ODX文件,经过Diva配置自动生成测试用例和测试脚…

PyCharm community 安装教程

目录 链接cudatoolkit 下载地址&#xff1a;https://www.jetbrains.com/pycharm/download/other.html 双击打开 安装路径&#xff0c;可自行更换到D盘 不导入设置 链接cudatoolkit

Github 2023-12-18 开源项目周报 Top14

根据Github Trendings的统计&#xff0c;本周(2023-12-18统计)共有14个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量TypeScript项目4Python项目4Jupyter Notebook项目3非开发语言项目1JavaScript项目1Rust项目1Go项目1 基于项目…