一、什么是因特网
什么是因特网,这个问题可以从两个方面来回答。其一、根据因特网的具体构成,即构成因特网的基本硬件和软件组件;其二、根据为分布式应用提供服务的联网基础设施来描述因特网
1、具体构成描述
越来越多的非传统因特网物品,如智能手机、平板电脑、电视等设备正在与因特网连接,所有这些设备都称为主机或端系统。端系统通过通信链路和分组交换机连接到一起,当一台端系统像另一台端系统发送数据时,发送端系统将数据分组,并为每段加上首部字节。由此形成的信息包用计算机网络术语来说称为分组。市面上流行着各种类型、各具特色的交换机,两种最著名的是路由器和链路层交换机,这两种类型的交换机朝着最终目的地转发分组,链路层交换机通常用于接入网中,而路由器通常用于网路核心中。
端系统通过因特网服务提供商ISP接入因特网,每个ISP自身就是一个由多台分组交换机和多段通信链路组成的网络。端系统、分组交换机和其他因特网部件都要运行一些协议,这些协议控制着因特网中信息的接受和发送。因特网的主要协议称为TCP/IP。
2、服务描述
与因特网相连的端系统提供了一个套接字接口,该接口规定了运行在一个端系统上的程序请求因特网基础设施向运行在另一个端系统上的特定目的的程序交付数据的方式。因特网套接字接口是一套发送程序必须遵循的规则集合,因此因特网能够将数据交付给目的地。
3、什么是协议
协议定义了在两个或多个通信实体之间交换的报文的格式和顺序,以及报文发送或接受一条报文或其他事件所采取的动作。
二、网络边缘
端系统也称为主机,因为它们容纳应用程序,如Web服务器程序或电子邮件服务器程序。主机有时又被进一步划分为两类:客户端(client)和服务器端(server)
1、接入网
接入网是指将端系统物理连接到边缘路由器的网络。边缘路由器是端系统到任何其他远程端系统的路径上的第一台路由器。通常分为以下几种接入方式:
- 家庭接入:DSL、电缆、FTTH、拨号和卫星;
- 企业(和家庭)接入:以太网和WIFI;
- 广域无线接入:3G和LTE
2、物理媒介
比特从源到目的地传输时,通过一系列“发射器-接收器”对,每个对通过跨越一种物理媒体传播电磁波或光脉冲来发射该比特。物体媒体分为两种:导引型媒体和非导引型媒体,对于导引型媒体,电波沿着固体媒体前行,如光缆、双绞铜或同轴电缆;对于非导引型电缆,电波在空气或外层空间中传播,例如在无线局域网或数字卫星频道中。
三、网络核心
通过网络链路和交换机交换移动数据有两种基本方法,电路交换和分组交换。
1、分组交换
在各种网络应用中,端系统彼此交换报文,报文可以执行一种控制功能,也可以包含数据。为了从源端系统向目的端系统发送一个报文,源将长报文划分为较小的数据块,称之为分组。在源和目的地之间,每个分组都通过通信链路和分组交换机传送。
存储转发传输:多数分组交换机在链路的输入端使用存储转发传输机制。存储转发传输是指在交换机能够开始向输出链路传输该分组的第一个比特之前,必须接受到整个分组。
排队延时和分组丢失:每台分组交换机有多条链路与之相连。对于每条相连的链路,该分组交换机具有一个输出缓存,也称为输出队列,它用于存储路由器准备发往那条链路的分组。如果到达的分组需要传输到某条链路,但该链路正忙于传输其他分组,则该到达分组必须在输出缓存中等待。因此,除了存储转发时延外,分组还要承受输出缓存的排队时延,并且这些时延是变化的,变化程度取决于网络的拥塞程度。如果缓存已经被其他分组充满了,则会出现分组丢失(丢包),到达的分组或已经在排队的分组之一将被丢弃。
转发表和路由选择协议:当源主机要向目的端系统发送一个分组时,源在该分组的首部包含了目的地的IP地址。当一个分组到达网络中的路由器时,路由器检查该分组目的地址的一部分,并向相邻路由器转发该分组。每台路由器都有一个转发表,用于将目的地址映射成输出链路。因特网具有一些特殊的路由选择协议,用于自动设置这些转发表,并且依据这些信息,选择每台路由到每个目的地的最短路径。
2、电路交换
在电路交换网络中,在端系统间通信会话期间,预留了端系统之间沿路径通信所需要的资源(缓存、链路传输速率)。在分组交换网络中,这些资源是不预留的。会话的报文按需使用这些资源,其结果可能是不得不等待接入通信线路。
电路交换网络中的复用:链路中的电路是通过频分复用(FDM)或时分复用(TDM)来实现的。对于FDM,链路的频谱由跨越链路创建的所有连接共享。在连接期间链路为每条连接专用一个频段。对于一条TDM链路,时间被划分为固定期间的帧,并且每个帧又被划分为固定数量的时隙。当网络跨越一条链路创建一条连接时,网络在每个帧中为该连接指定一个时隙。这些时隙专门由该连接单独使用,一个时隙(在每个帧内)可用于传输该连接的数据。
分组交换与电路交换的对比:分组交换的性能能够优于电路交换的性能。电路交换不考虑需求,而预先分配了传输链路的使用,这使得已分配而不需要的链路时间未被利用。另外一方面,分组交换按需分配链路使用。链路传输能力将在所有需要的链路上传输分组的用户之间逐渐分组地被共享。
网络的网络:在任何给定区域,可能有一个区域ISP,区域中的接入ISP与之相连接。每个区域ISP则与第一层ISP相连。较低层的ISP与较高层的ISP相连,较高层的ISP彼此互联。用户和提供商是较低层的ISP的客户,较低层的ISP是较高层的客户。
四、分组交换网中的时延、丢包和吞吐量
1、分组交换网中的时延概述
当分组从一个节点(主机或路由器)沿着这条路径到达后继节点(主机或路由器),该分组的沿途的每个节点经受了几种不同的时延。这些时延中最为重要的是节点处理时延、排队时延、传输时延和传播时延,这些时延总体累加起来是节点总时延
时延的类型:
- 处理时延:检查分部首部和决定将该分组导向何处所需要的时间是处理时延的一部分,处理时延也包括其他因素,如检查比特级别的差错所需要的时间。高速路由器的处理时延通常是微妙或更低的数量级
- 排队时延:在队列中,当分组在链路上等待传输时,它经受排队时延。一个特定分组的排队时延长度将取决于先期到达的正在排队等待向链路传输的分组数量。实际的排队时延可以是毫秒到微妙量级
- 传输时延:用L比特表示该分组的长度,用R bps表示从路由器A到路由器B的链路传输速率,则传输时延为L/R。实际的传输时延通常在毫秒到微妙量级
- 传播时延:一旦一个比特被推向链路,该比特需要向路由器B传播,从该链路的起点到路由器B传播所需要的时间是传播时延,该比特以该链路的速率传播,速率则取决于物理媒体。一旦该分组的最后一个比特传播到节点B,该比特及前面所有的比特被存储与路由器B。在广域网中,传播时延为毫秒量级。
传输时延与传播时延的比较:传输时延是路由器推出分组所需要的时间,它取决于分组长度和链路传输速率,与两台路由器之间的距离无关;传播时延是一个比特从一台路由器传播到另外一台路由器所需要的时间,它取决于两台路由器之间的距离,与分组长度和链路传输速率无关。
2、排队时延与丢包
令a表示分组到达队列的平均速率(单位为分组/秒,即pkt/s),R为传输速率-即从队列中推出比特的速率(单位为b/s),假设所有分组都是由L比特组成的。则比特的平均速率为La bps,比率La/R称为流量强度。如果La/R>1,则比特到达队列的平均速率超过从该队列传输出去的速率。这种情况下,队列趋向无限增加,排队时延将趋向无穷大!因而,设计系统时流量强度不能大于1。随着流量强度接近1,平均排队时延将迅速增加,该强度的少量增加将导致时延大比例增加。
丢包:因为排队容量是有限的,随着流量强度接近1,排队时延并不真正趋向无穷大,相反到达的分组将发现一个满的队列。由于没有地方存储这个分组,路由器将丢弃该分组,即该分组将会丢失。分组丢失的比例随着流量强度增加而增加。
3、端到端时延
除了处理时延、传输时延和传播时延,端系统中还有一些其他重要的时延,例如向共享媒体(如在WiFI)传输分组的端系统可能有意延迟它的传输,把这作为它与其他端系统共享媒体的协议的一部分
4、计算机网络中的吞吐量
考虑主机A向主机B跨计算机网络传送一个大文件,在任何时间瞬间的瞬时吞吐量是主机B接受到该文件的速率。如果该文件由F比特组成,主机B接受到所有F比特用去T秒,则文件传送的平均吞吐量是F/T bps。
五、协议层次及其服务模型
1、分层的体系结构
1、协议分层
协议分层具有概念化和结构化的特优点,分层提供了一种结构化方式来讨论系统组件,模块化使更新系统组件更为容易。分层的一个潜在缺点是一层可能冗余较低层的功能,另外一种潜在的缺点是某层的功能可能需要仅在其他层才出现的信息,这违法了层次分离的目标。各层的所有协议被称为协议栈。因特网的协议栈由5个层次组成:物理层、链路层、网络层、运输层和应用层。
- 应用层是网络应用程序及它们的应用协议存留的地方。因特网的应用层包括许多协议,例如Http、SMTP和FTP。应用层协议分布在多个端系统上,而一个端系统中的应用程序使用协议与另一个端系统中的应用程序交换信息分组。我们把这种位于应用层的信息分组称为报文。
- 因特网的运输层在应用程序端点之间传送应用层报文。在因特网中,由两种运输协议,即TCP和UDP。TCP向它的应用程序提供了面向连接的服务,这种服务包括了应用层报文向目的地确保传递和流量控制,TCP将长报文划分为短报文,并提供拥塞控制机制。UDP协议向它的应用程序提供无连接服务,没有可靠性,没有流量控制,也没有拥塞控制。我们把传输层的分组称为报文段。
- 因特网的网络层负责将称为数据报的网络层分组从一台主机移动到另一台主机。在一台源主机中的因特网运输层协议向网络层递交运输层报文段和目的地址。网络层包括著名的网际协议IP。因特网的网络层也包括决定路由的路由选择协议,它根据该路由将数据报从源传输到目的地。
- 为了将分组从一个节点移动到路径上的下一个节点,网络层必须依靠链路层的服务。特别是在每个节点,网络层将数据报下传给链路层,链路层沿着路径将数据报传递给下一个节点,在该下一个节点,链路层将数据报上传给网络层。因为数据报从源到目的地传输通常需要经过几条链路,一个数据报可能被沿途不同链路上的不同链路层协议处理。网络层将受到来自每个不同链路层协议的不同服务。我们把链路层分组称为帧
- 物理层的任务是将该帧中的一个个比特从一个节点移动到下一个节点。在这层中的协议仍然是链路相关的,并且进一步与该链路的实际传输媒体相关。
2、OSI模型
OSI模型中的7层是:应用层、表示层、会话层、运输层、网络层、链路层、物理层。其中表示层的作用是使通信的应用程序能够解释交换数据的含义,包括数据压缩和数据加密以及数据描述。会话层提供了数据交换的定界和同步功能,包括了建立检查点和恢复方案的方法。这两个缺少的层次通常是留给应用程序开发者处理,让开发者来决定是否构建该功能。
2、封装
主机、路由器和链路层交换机,每个包含了不同的层,反映了它们的功能差异,同时也说明了一个重要的概念:封装。在发送主机端,一个应用层报文被传送给运输层,运输层接受到报文并附上首部信息,被接收端的运输层使用。应用层报文和运输层首部信息构成了运输层报文段。运输层向网络层传递该报文段,网络层增加了如源和目的端系统地址等网络层首部信息,生成了网络层数据报,该数据报接下来传递给链路层,链路层增加它自己的链路层首部信息并生成链路层帧。在每一层,一个分组具有两种类型的字段,首部字段和有效载荷字段,有效载荷字段通常来自上一层的分组。