概述篇
计算机网络在信息时代的作用
- 计算机网络已由一种通讯基础设施发展成为一种重要的信息服务基础设施。
- 计算机网络已经像水、电、煤气这些基础设施一样,成为我们生活中不可或缺的一部分。
因特网概述
网络、互连网(互联网)和因特网
网络(Network)由若干结点(Node)和连接这些结点的链路(Link)组成。
在如下例子中,4个节点和3段链路就构成了一个简单的网络。
多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互连网(互联网)。
因此互联网是“网络的网络(Network of Networks)”。
因特网(Internet)是世界上最大的互联网络(用户数以亿计,互连的网络数以百万计)。
internet和Internet的区别
- internet(互联网或互连网)是一个通用名词,它泛指由多个计算机网络互连而成的网络。在这些网络之间的通讯协议可以是任意的。
- Internet(因特网)则是一个专用名词,它是指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用TCP/IP协议族作为通信的规则,其前身是美国的ARPANET。
因特网发展的三个阶段
因特网服务提供者ISP
(Internet Service Provider)
普通用户是如何接入到因特网的呢?
答:通过ISP接入因特网
ISP可以从因特网管理机构申请到成块的IP地址,同时拥有通信线路以及路由器等联网设备。任何机构和个人只需缴纳费用,就可从ISP的得到所需要的IP地址。
因为因特网上的主机都必须有IP地址才能进行通信,这样就可以通过该ISP接入到因特网
中国的三大ISP
:中国电信,中国联通和中国移动
基于ISP的三层结构的因特网
第一层ISP通常也被称为因特网主干网,一般都能够覆盖国际性区域范围,并拥有高速链路和交换设备。第一层ISP之间直接互联。
第二层的ISP和一些大公司都是第一层ISP的用户,通常具有区域性或国家性覆盖规模,与少数第一层ISP相连接。
第三层ISP又称为本地ISP,它们是第二层的用户且只拥有本地范围的网络。一般的校园网或者企业网,以及住宅用户和无线移动用户,都是第三层ISP的用户。
一旦某个用户能够接入到因特网,那么他也可以成为一个ISP,所需要做的就是购买一些如调制解调器或路由器这样的设备,让其他用户可以和他相连。
因特网的标准化工作
- 因特网的标准化工作对因特网的发展起到了非常重要的作用。
- 因特网在制定其标准上的一个很大的特点是面向公众。
- 因特网所有的RFC(Request For Comments)技术文档都可以从因特网上免费下载。
- 任何人都可以随时用电子邮件发表对某个文档的意见或建议。
- 因特网协会ISOC是一个国际性组织,它负责对因特网进行全面管理,以及在世界范围内促进发展和作用。
- 因特网体系结构委员会IAB,负责管理因特网有关协议的开发。
- 因特网工程部IETF,负责研究中短期工程问题,主要针对协议的开发和标准化。
- 因特网研究部IRTF,从事理论方面的研究和开发一些需要长期考虑的问题。
制订因特网的正式标准要经过以下4个阶段:
- 因特网草案(在这个阶段还不是RFC文档)
- 建议标准(从这个阶段开始就成为RFC文档)
- 草案标准
- 因特网标准
因特网的组成
因特网的拓扑结构虽然十分复杂,并且在地理上覆盖了全球,但从功能上看,可以划分为以下两个部分。
边缘部分
由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
核心部分
由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
路由器是一种专用计算机,但我们不称它为主机,路由器是实现分组交换的关键构件,其任务是转发收到的分组,这是网络核心最重要的部分。
处在互联网边缘的部分就是连接在互联网上的所有的主机。这些主机又称为端系统 (end system)。
端系统在功能上可能有很大的差别:
- 小的端系统可以是一台普通个人电脑,具有上网功能的智能手机、网络摄像头等。
- 大的端系统则可以是一台非常昂贵的大型计算机。
- 端系统的拥有者可以是个人,也可以是单位(如学校、企业、政府机关等),当然也可以是某个ISP。
端系统之间的通信方式通常可划分为两大类:
客户-服务器方式(C/S):
- 客户 (client) 和服务器 (server) 都是指通信中所涉及的两个应用进程。
- 客户 - 服务器方式所描述的是进程之间服务和被服务的关系。
- 客户是服务的请求方,服务器是服务的提供方。
对等连接方式(peer-to-peer:P2P):
- 对等连接是指两个主机在通信时并不区分哪一个是服务请求方还是服务提供方。
- 只要两个主机都运行了对等连接软件 ( P2P 软件) ,它们就可以进行平等的、对等连接通信。
- 双方都可以下载对方已经存储在硬盘中的共享文档。
三种交换方式
电路交换(Circuit Switching)
传统两两相连的方式,当电话数量很多时,电话线就也会非常的多,这样是非常不方便的。
所以要使得每一部电话能够很方便地和另一部电话进行通信,就应该使用一个中间设备将这些电话连接起来,这个中间设备就是电话交换机。
每一部电话都连接到电话交换机上,可以把电话交换机简单地看成是一个有多个开关的开关器,可以将需要通信的任意两部电话的电话线路按需接通,从而大大减少了连接的电话线数量。
当电话数量增多时,就要使用很多彼此连接起来的电话交换机来完成全网的交换任务。
用这样的方法就构成了覆盖全世界的电信网。
电话交换机接通电话线的方式称为电路交换。
从通信资源的分配角度来看,交换(Switching)就是按照某种方式动态地分配传输线路的资源。
电路交换的三个步骤:
- 建立连接(分配通信资源)
- 通话(一直占用通信资源)
- 释放连接(归还通信资源)
这里就引发一个问题:如果使用电路交换来传送计算机数据,是否可行?
尽管采用电路交换可以实现计算机之间的数据传送,但其线路的传输效率往往很低。这是因为计算机数据是突发式地出现在传输线路上的。所以计算机通常采用的是分组交换,而不是电路交换。
分组交换(Packet Switching)
在因特网中,最重要的分组交换机就是路由器。
它负责将各种网络互连起来,并对接收到的分组进行转发,也就是进行分组交换。
我们来看一个例子:
假设主机H6的用户要给主机H2的用户发送一条消息,通常我们把表示该消息的整块数据称作一个报文。在发送报文之前,先把较长的报文划分成为一个个更小的等长数据段。
在每一个数据段前面,加上一些由必要的控制信息组成的首部后,就构成了一个分组,也可简称为“包”,相应的首部也可以称为“包头”。
那么,添加首部的作用是什么?这不是额外增加了传输量吗?
首先,首部包含了分组的目的地址,否则分组传输路径中的各分组交换机(也就是各路由器)就不知道如何转发分组了。
分组交换机收到一个分组后,先将分组暂时存储下来,再检查其首部,按照首部的目的地址进行查表转发,找到合适的转发接口,通过该接口将分组转发给下一个分组交换机。
在本例中,主机H6将所构造出的各分组依次发送出去,各分组经过途中各分组交换机的存储转发,最终达到主机H2。
主机H2在收到这些分组后,去掉他们的首部,将各数据段组合还原出原始报文。
需要注意的是接受顺序可能和发送顺序并不相同。
在本例中,对于可能出现的分组丢失、误码、重复等问题并没有演示。(后续介绍)
接下来我们看一下它们的职责:
发送方:
- 构造分组
- 发送分组
路由器:
- 缓存分组
- 转发分组
接收方:
- 接收分组
- 还原报文
报文交换(Message Switching)
报文交换中的交换结点也采用存储转发方式,但报文交换对报文的大小没有限制,这就要求交换结点需要较大的缓存空间。报文交换主要用于早期的电报通信网,现在较少使用,通常被较先进的分组交换方式所取代。
三种交换方式的对比
假设A,B,C,D是分组传输路径所要经过的4个结点交换机,纵坐标为时间
电路交换:
- 通信之前首先要建立连接;连接建立好之后,就可以使用已建立好的连接进行数据传送;数据传送后,需释放连接,以归还之前建立连接所占用的通信线路资源。
- 一旦建立连接,中间的各结点交换机就是直通形式的,比特流可以直达终点;
报文交换:
- 可以随时发送报文,而不需要事先建立连接;整个报文先传送到相邻结点交换机,全部存储下来后进行查表转发,转发到下一个结点交换机。
- 整个报文需要在各结点交换机上进行存储转发,由于不限制报文大小,因此需要各结点交换机都具有较大的缓存空间。
分组交换:
- 可以随时发送分组,而不需要事先建立连接。构成原始报文的一个个分组,依次在各结点交换机上存储转发。各结点交换机在发送分组的同时,还缓存接收到的分组。
- 构成原始报文的一个个分组,在各结点交换机上进行存储转发,相比报文交换,减少了转发时延,还可以避免过长的报文长时间占用链路,同时也有利于进行差错控制。
小总结
计算机网络的定义和分类
计算机网络的定义
计算机网络的精确定义并未统一。
计算机网络的最简单的定义是:一些互相连接的、自治的计算机的集合。
- 互连:是指计算机之间可以通过有线或无线的方式进行数据通信
- 自治:是指独立的计算机,他有自己的硬件和软件,可以单独运行使用
- 集合:是指至少需要两台计算机
计算机网络的较好的定义是:计算机网络主要是由一些通用的,可编程的硬件(一定包含有中央处理机CPU)互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
- 计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手机等智能硬件。
- 计算机网络并非专门用来传送数据,而是能够支持很多种的应用(包括今后可能出现的各种应用)。
计算机网络的分类
按交换技术分类:
- 电路交换网络
- 报文交换网络
- 分组交换网络
按使用者分类:
- 公用网
- 专用网
按传输介质分类:
- 有线网络
- 无线网络
按覆盖范围分类:
- 广域网WAN(Wide Area Network):作用范围通常为几十到几千公里,因而有时也称为远程网(long haul network)。广域网是互联网的核心部分,其任务是通过长距离(例如,跨越不同的国家)运送主机所发送的数据。
- 城域网MAN:作用范围一般是一个城市,可跨越几个街区甚至整个城市。
- 局域网LAN:一般用微型计算机或工作站通过高速通信线路相连(速率通常在 10 Mbit/s 以上),但地理上范围较小(1 KM 左右)。
- 个域网PAN:就是在个人工作的地方把个人使用的电子设备用无线技术连接起来的网络。
按拓扑结构分类:
- 总线型网络:使用单根传输线把计算机连接起来。它的优点是容易、增减结点方便、节省线路;缺点是重负载时通信效率不高,总线任意一处出现故障,则全网瘫痪。
- 星型网络:将每个计算机都以单独的线路与中央设备相连。中央设备早期是计算机,后来是集线器,现在一般是交换机和路由器。便于网络的集中控制和管理,因为端用户之间的通信必须经过中央设备。缺点是成本高,中央设备对故障敏感。
- 环形网络:将所有计算机的网络接口连接成一个环。最经典的例子是令牌环局域网。环可以是单环也可以是双环,环中信号是单向传输的。
- 网状型网络:一般情况下,每个结点至少由两条路径与其它节点相连。多用在广域网中。其优点是可靠性高,缺点是控制复杂、线路成本高。
计算机网络的性能指标
性能指标可以从不同的方面来度量计算机网络的性能。
常用的计算机网络的性能有如下8个:
- 速率
- 带宽
- 吞吐量
- 时延
- 时延带宽积
- 往返时间
- 利用率
- 丢包率
速率
了解速率之前,我们先了解什么是比特。
比特:就是计算机中数据量的单位,也是信息论中信息量的单位。一个比特就是二进制数字中的一个1或者0。
常用的数据量单位:
接下来我们了解一下什么是速率:连接在计算机网络上的主机在数字信道上传送比特的速率,也称为比特率和数据率。
常用的数据量单位:
带宽
带宽在模拟信号系统中的意义
- 信号所包含的各种不同频率成分所占据的频率范围。
- 单位:Hz(kHz,MHz,GHz)
带宽在计算机网络中的意义
- 用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络的某一点到另一点所能通过的“最高数据率”。
- 单位:b/s(kb/s,Mb/s,Gb/s,Tb/s)
其实“带宽”的这两种表述之间有着密切的联系。一条通信线路的“频带宽度”越宽,其所传输的数据“最高数据率”也就越高。
吞吐量
吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量。
吞吐量被经常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。
吞吐量受网络的带宽或额定速率的限制。
带宽1 Gb/s的以太网,代表其额定速率是1 Gb/s,这个数值也是该以太网的吞吐量的绝对上限值。因此,对于带宽1 Gb/s的以太网,可能实际吞吐量只有 700 Mb/s,甚至更低。
注意:吞吐量还可以用每秒传送的字节数或帧数表示
时延
时延时指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。
网络时延由几部分组成:
- 发送时延:主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
- 传播时延:电磁波在信道中传播一定的距离需要花费的时间。
- 处理时延:主机或路由器在收到分组时要花费一定时间进行处理。
- 排队时延:分组在进过网络传输时,要经过许多路由器。但分组在进入路由器后要先在输入队列中排队等待处理。
问题:网络总延迟中是传播时延占主导还是发送时延占主导?
当处理时延忽略不计时,发送时延和传播时延谁占主导,要具体情况具体分析
时延带宽积
首先根据名字可以知道时延带宽积就是时延和带宽的乘积。
那时延又分为发送时延,传播时延,处理时延三部分构成,那究竟是哪一个时延呢?答案是传播时延。
时延带宽积 = 传播时延 * 带宽
若发送端连续发送数据,则在所发送的第一个比特即将到达终点时,发送端就已经发送了时延带宽积个比特。
链路的时延带宽积又称为“以比特为单位的链路长度”。
往返时间
在很多情况下,因特网上的信息不仅仅单方面传输,而是双向交互。
我们有时需要知道双向交互一次所需要的时间。因此往返时间RTT(Round-Tirp Time)也是一个重要的性能指标。
我们来看一个例子:
以太网上的某台主机要与无限局域网中的某台主机进行信息交互。往返时间RTT是指从源主机发送分组开始,直到源主机收到来自目的主机的确认分组为止,所需要的时间。
根据之前的内容我们可以想一下,到底在以太网耗时较多还是无线局域网又或者是卫星链路呢?
答案为:卫星链路耗时较多。
一般情况下,卫星链路的距离比较远。所带来的传播时延比较大。
利用率
利用率包括两种:
- 信道利用率:用来表示某信道有百分之几的时间是被利用的(有数据通过)。
- 网络利用率:全网络的信道利用率的加权平均。
根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增加。
因此,信道利用率并非越高越好。
如果使用D0表示网络空闲时的时延,D表示网络当前的时延,那么在适当的假定条件下,可以用下面的简单公式来表示D、D0和利用率U之间的关系:
- 当网络的利用率达到50%时,时延就要加倍。
- 当网络的利用率超过50%时,时延急剧增大。
- 当网络的利用率接近100%时,时延就趋于无穷大。
- 因此,一些拥有较大主干网的ISP通常会控制它们的信道利用率不超过50%,如果超过了,就准备扩容,增大线路的带宽。
当然,也不能使信道利用率太低,这会使宝贵的通信资源被白白浪费。应该使用一些机制,可以根据情况动态调整输入到网络中的通信量,使网络利用率保持在一个合理的范围内。
丢包率
丢包率即分组丢失率,是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率。
丢包率具体可分为接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等。
分组丢失主要情况分为两种:
1.分组在传输过程中出现误码,被结点丢弃。
如下图所示,主机发送的分组在传输过程中出现了误码,当分组进入传输路径中的交换机后,被结点交换机检测出了误码,进而被丢弃。
2.分组到达一台队列已满的分组交换机后时被丢弃,在通信量较大时就可能造成网络拥塞。
如图所示,假设路由器R5当前的输入缓冲区已满,此时主机发送的分组到达该路由器,路由器没有存储空间暂存该分组,只能将其丢弃。
需要说明的是:实际上,路由器会根据自身的拥塞控制方法,在输入缓存还未满的时候就主动丢弃分组。
因此丢包率反映了网络的拥塞情况。
- 无拥塞时丢包率为0。
- 轻度拥塞时路径丢包率为1%~4%
- 严重拥塞时枯井丢包率为5%~15%
计算机网络体系结构
常见的计算机网络体系结构
如今用的最多的是TCP/IP体系结构,现今规模最大的、覆盖全球的、基于TCP/IP的互联网并未使用OSI标准。
TCP/IP体系结构相当于将OSI体系结构的物理层和数据链路层合并为了网络接口层,并去掉了会话层和表示层。
TCP/IP在网络层使用的协议是IP协议,IP协议的意思是网际协议,因此TCP/IP体系结构的网络层称为网际层
在用户主机的操作系统中,通常都带有符合TCP/IP体系结构标准的TCP/IP协议族。
而用于网络互连的路由器中,也带有符合TCP/IP体系结构标准的TCP/IP协议族。
只不过路由器一般只包含网络接口层和网际层。
TCP/IP体系结构中的网络接口层并没有规定什么具体的内容,这样做的目的就是为了可以互连全世界不同的网络接口,例如有线的以太网接口,无线局域网的WiFi接口,而不限定仅使用一种或几种网络接口。
因此,本质上TCP/IP体系结构只有上面的三层。
IP协议是TCP/IP体系结构中网际层的核心协议。
TCP和UDP是TCP/IP体系结构中运输层的两个重要协议。
TCP/IP体系结构中的应用层包含了大量的应用层协议,例如:HTTP、SMTP、DNS、RTP等等。
IP协议可以将不同的网络接口进行互连,并向其上的TCP协议和UDP协议提供网络互连服务。
TCP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的相应协议提供可靠传输的服务。
UDP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的相应协议提供不可靠传输的服务。
IP协议作为TCP/IP体系结构中的核心协议,一方面负责互连不同的网络接口,另一方面为各种网络应用提供服务。
TCP/IP体系结构中最重要的是 IP协议和 TCP协议,因此用TCP和IP来表示整个协议大家族。
该文中使用五层协议的原理体系结构,来方便理解。
计算机网络体系结分层的必要性
计算机网络是个非常复杂的系统,早在最初的ARPANET设计时就提出了分层的设计理念。
"分层"可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较容易研究和处理。
下面,我们按照由简单到复杂的顺序,来看看实现计算机网络要面临哪些主要的问题,以及如何将这些问题划分到响应的层次,层层处理。
物理层
我们首先看最简单的情况,两台计算机通过一根网线进行连接。
我们需要考虑以下问题:
- 采用怎样的传输媒体(介质)
- 采用怎样的物理接口
- 使用怎样的信号来表示比特0和1
解决了这些问题就可以进行数据传输了,而这些问题我们可以划分到物理层
。
但我们需要说明一点,严格来说,传输媒体并不属于物理层,它并不包含在体系结构之中。
数据链路层
实用的计算机网络,一般由多台主机构成。
例如下图通过总线互连,构成了一个总线型网络。
假设,我们已经解决了物理层的问题,也就是说,主机间可以发送信号来传输比特0或1了。
我们接下来看看,在这样一个总线型网络上,还面临什么样的问题需要解决。
假设A需要发送数据给C,但是,表示数据的信号会通过总线传播给总线上的每一台主机。
主机C如何知道该数据是发送给自己的,自己要接收?
而其它主机又如何知道数据并不是发送给自己的,自己应该拒绝呢?
- 如何标识网络中的各主机(主机编址问题,例如MAC地址)
- 目的主机如何从信号所表示的一连串比特流中区分出地址和数据
- 如何协调各主机争用总线
需要说明的是,这种总线型的网络早已淘汰,现在常用的是使用以太网交换机将多台主机互连形成的交换式以太网。
我们将这些问题划归到数据链路层
。
我们发现只要解决了物理层和数据链路层各自所面临的问题,我们就可以实现分组在一个网络上传输了。
但是我们平常使用的因特网,是由非常多的网络和路由器互连起来的,仅解决物理层和数据链路层还是不能正常工作。
网络层
我们来看下面这个例子,这是一个由3个路由器,4个网络互连起来的小型互联网。
在之前的例子中仅有一个网络,我们不需要对网络进行标识。
而在本例中存在多个网络,很显然,我们面临如何标识各网络以及网络中各主机的问题。
- 如何标识各网络以及网络中的各主机(网络和主机共同编址的问题,例如IP地址)
我们再来看另一个问题。源主机与目的主机之间的传输路径往往不止一条。分组从源主机到目的主机可走不同的路径。
- 这样就引出了路由器如何转发分组的问题
- 以及如何进行路由选择的问题
这些问题我们都划归到网络层。
运输层
至此,如果我们解决了物理层、数据链路层以及网络层各自的问题,则可以实现分组在网络间传输的问题。
但是,对于计算机网络应用而言,这仍然不够。
例如,假设这台主机中运行着两个与网络通信相关的应用进程,一个是浏览器进程,另一个是QQ进程。这台服务器中运行着与网络通信相关的服务器进程。某个时刻,主机收到了来自服务器的分组,那么,这些分组应该交给浏览器进程处理呢?还是QQ进程处理?
- 如何解决进程之间基于网络的通信问题
- 出现传输错误时(例如误码,丢包等),如何处理
我们将这些问题全部划归到运输层
。
应用层
当解决以上的问题,我们就可以进程之间基于网络的通信。
在此基础上,只需制定各种应用层协议,并按协议标准编写相应的应用程序,通过应用进程间的交互来完成特定的网络应用。
例如,支持万维网应用的HTTP协议、支持电子邮件的SMTP协议、支持文件传输的FTP协议等。
我们将这些问题全部划归到应用层
。
小总结
计算机网络体系结构分层思想举例
假设,网络拓扑如下图所示:
主机属于网络N1,Web服务器属于网络N2,N1和N2通过路由器互连。
我们使用主机中的浏览器来访问Web服务器,当输入网址后,主机会向Web服务器发送请求。
Web服务器收到请求后,会发回相应的响应。主机收到响应后,将其解析为具体的网页内容显示出来。
主机和Web服务器之间基于网络的通信,实际上是主机中的浏览器应用进程与Web服务器中的Web服务器应用进程之间基于网络的通信。
那么,体系结构中的各层在整个过程中起到怎样的作用呢?
从主机端按体系结构自顶向下的顺序来看:
应用层按HTTP协议的规定,构建一个HTTP请求报文,随后应用层将HTTP请求报文交付给运输层处理。
运输层给HTTP请求报文添加一个TCP首部,使之成文TCP报文段。(该首部的作用主要是为了区分应用进程,以及实现可靠传输)。随后运输层将TCP报文段交给网络层处理。
网络层给TCP报文段添加一个IP首部,使之成为IP数据报。(该首部的作用是为了使IP数据报,可以在互联网上传输,也就是被路由器转发)。随后网络层交付给数据链路层处理。
数据链路层给IP数据报添加一个首部和一个尾部,使之成为帧。(该首部的作用主要是为了让帧能够在一段链路上或一个网络上传输),能够被相应的目的主机接收。而尾部的帧是为了让目的主机检查所接收到的帧是否有误码。随后交付给物理层。
物理层将帧看作是比特流,由于网络N1是以太网,因此物理层还会给该比特流前面添加前导码。起作用是为了让目的主机做好接收帧的准备。随后将比特流变换成响应的信号发送给传输媒体。
我们接下来看路由器的处理过程:
物理层将信号变换为比特流,然后去掉前导码,将其交付给数据链路层,交付的其实是帧。
数据链路层将帧的首部和尾部去掉后,交付给网络层,交付的其实是IP数据报。
网络层解析IP数据包的首部,从中提取出目的网络地址,然后查找自身的路由表,确定转发端口。最后将IP数据包交付给数据链路层。
数据链路层给IP数据报添加一个首部和一个尾部使之成为帧。随后交付给物理层。
物理层将数据看作为比特流,由于网络N2是以太网,因此物理层还会给该比特流前面添加前导码。随后变换为响应的信号发送到传输媒体。
信号通过传输媒体到达Web服务器。
我们接下来看Web服务器的处理过程:
物理层将信号变换为比特流,然后去掉前导码后,交付给数据链路层,交付的其实是帧。
数据链路层将帧的首部和尾部去掉后,交付给网络层,交付的其实是IP数据报。
网络层将IP数据报的首部去掉后,交付给运输层,交付的其实是TCP报文段。
运输层将TCP报文段的首部去掉后,将其交付给应用层,交付的其实是HTTP请求报文。
应用层对HTTP请求报文进行解析,然后给主机发回HTTP响应报文。之后和上述类似,层层封装后返回。
计算机网络体系结构中的专用术语
以下介绍的专用术语来源于OSI的七层协议体系结构,但也适用于TCP/IP的四层体系结构和五层协议原理体系结构。
实体
- 实体:任何发送或接收信息的硬件或软件进程。
- 对等实体:收发双方相同层次中的实体。
协议
协议:控制两个对等实体进行逻辑通信的规则的集合
协议的三个要素:
- 语法:定义所交换信息的格式
- 语义:定义收发双方所要完成的操作
- 同步:定义收发双方的时序关系
服务
在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。
要实现本层协议,还需要使用下一层所提供的服务。
协议是"水平的",服务是"垂直的"。
实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下层协议对上层的实体是"透明的"。
服务访问点
在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型。
- 数据链路层的服务访问点为帧的"类型"字段。
- 网络层的服务访问点位IP数据报首部中的"协议字段"。
- 运输层的访问访问点为"端口号"。
服务原语
上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语。
协议数据单元PDU
对等层次之间传送的数据包称为该层的协议数据单元。
例如,物理层对等实体逻辑通信的数据包称为比特流;数据链路层对等实体逻辑通信的数据包称为帧;网络层对等实体逻辑通信的数据包称为分组,如果使用IP协议也成为IP数据报;运输层对等实体逻辑通信的数据包一般根据协议而定,比如使用TCP协议,就称为TCP报文段,使用UDP协议,则称为UDP用户数据报;应用层对等实体逻辑通信的数据包一般称为应用报文。
服务数据单元SDU
同一系统内,层与层之间交换的数据包称为服务数据单元。
多个SDU可以合成一个PDU;一个SDU也可以划分为几个PDU。