返回顶部

计算机网络01:计算机网络概述

目录

第一章 计算机网络概述

1.1 什么是计算机网络

计算机网络就是由多个互联的计算机连接在一起,使用通信系统达到共享数据资源和互相通信的目的的系统。

计算机网络系统与交通系统具有很多相似之处,下面的内容也会以交通系统类比来进行叙述。

1.1.1 计算机网络的特性

计算机网络具有如下特性:

  1. 计算机网络必须连接两个或多个自治的计算机
    • 自治的计算机指一台计算机不需要依赖其他计算机,可以自主独立运行,即计算机之间不存在主从关系
  2. 计算机可以位于地理上的任意位置
  3. 如果两台计算机可以进行数据交流,则称这两台计算机是互联的
  4. 计算机网络不受大小、形状和形式的限制

1.1.2 计算机网络的组成

实际上,所有关于计算机方面的系统或技术都是由两方面组成的:硬件和软件。计算机网络的完善所依托的硬件主要有以下几种:

  • 端系统:主机,大型机,个人计算机,客户端,工作站,服务器等
  • 中间系统(支持端系统彼此互联):路由器(Router),交换机(Switcher)
  • 接口:NIC(网卡),Modem(调制解调器,即俗称的“猫”)
  • 媒介:双绞线(网线),铜轴电缆,光纤,无线连接

其中,端系统指的就是计算资源到达的最终位置,也是利用计算资源的位置;中间系统则是端系统之间进行连接所必需的设备,其地位类似于交通网络中的信号灯。

网络信息到达终端(比如个人计算机)中,终端又该如何使用这个网络信息呢?显然,这种使用方式是具有很强的硬件依赖性的,如果只定义一种使用方式,在终端A中可以正常工作,但在终端B中也许就无法正常运行,而需要重新设计使用方式。为了避免这种情况带来的麻烦,我们可以为每一种终端设计一个接口,接口之外连接外部网络,接口之内则用来适配各种不同的硬件,这样一来,对于某种终端,只需要按照其对应的接口安装一个适配器,就可以自由使用外部网络,这就是接口的优势。而终端上的这种网络适配器就是NIC,即网卡。

媒介指的是主机之间的链路构成,类似交通系统中的公路:汽车只有运行在公路上才能从一个地方运行到另一个地方。常见的网络链路媒介有双绞线(网线)、铜轴电缆、光纤等,近些年无线网络也在迅速普及,其媒介是电磁波。

计算机网络的运行所依赖的软件有以下几种:

  • 协议:CSMA/CD,TCP/IP,UDP,PPP,ATM
  • 应用程序:HTTP,SMTP,FTP,Telnet

协议的内容之后会进行详细叙述,在此只进行一个简单的类比:

交通系统难道有了道路,有了汽车就可以正常运转吗?如果每辆车都可以随心所欲地跑,难免会出现严重的交通事故。因此,交通系统还需要一个极其重要的内容:交通法规。交通法规规定了各个车辆在各种情况下应该如何运行,有了交规才能保证各个车辆有序并安全地运行。而协议在计算机网络中的地位和作用就类似于交通法规:规定了数据应该以何种格式进行传输。

1.1.3 计算机网络的应用

  • 资源共享
    • 硬件(计算资源,硬盘,打印机)
    • 软件(应用程序,如数据库等)
  • 信息共享
    • 在任意位置都可以访问所需信息(文件,数据库等)
    • 搜索能力(www)
  • 通讯
    • 电子邮件
    • 消息广播
  • 移动终端
    • hotspot
    • 3G,4G,5G
    • 可穿戴计算设备

1.1.4 计算机网络的分类

  • 按照网络的拓扑结构分类
    • 拓扑结构:定义了计算机、打印机、路由器、交换机等互联起来的方式

    • 拓朴结构描述了网络设备与物理媒介构成的进行数据传输的路径布局(layout)

    • 下图中每个结点代表一个主机,路径代表物理媒介

    • 总线型拓扑:

      • 各个节点通过链路连接到一条总线上
    • 星型拓扑

      • 是局域网络常用的拓扑结构
    • 扩展星型拓扑(树型拓扑)

      • 当网络节点比较多时,可以采用树型拓扑
      • 可以控制流量,防止网络风暴等
    • 环形拓扑

      • 一个帧从一个节点按照一定的方向开始访问其他节点,如果某一个节点有消息需要传递给其他结点,则在帧经过此节点时将信息和目的地址装载到帧上,当帧经过目的节点时将数据发送给该节点。

      • 单环拓扑结构

      • 双环拓扑结构

  • 按照网络规模分类:
    • 局域网 LAN
      • 地理范围最小
      • 一个区域的一组计算机通过链路连接或者无线连接
    • 广域网 LAN
      • 地理范围较小
      • 一个较大的区域内的计算机互联互通
    • 因特网 Internet
      • 网络之网络,即由各种网络之间互联形成的全球性网络
      • 用户只要获得允许,就可以从任何一个主机获得消息,即使主机位于远端
  • 按照网络边界分类
    • 内联网 Intranet
      • 私有网络
      • 在一个企业/机构的内部,提供相对封闭的网络环境
      • 分层次进行开放,有权限的人员才能够访问,而外来人员的访问则受到限制
    • 外联网 Extranet
      • 私有网络
      • 使用互联网技术和公共通信系统来确保企业的合作伙伴可以访问企业内部的信息或操作
      • 可以看作一个企业或公司的内联网的一部分扩展到了公司的外部,由获得许可的外部人员访问

1.1.5 因特网

因特网:由大量互联的计算设备彼此互联,连接到一个通信网络上实现通信和共享资源。

在互联网中,主机即表示端系统。在主机中运行着各种网络应用程序。

主机与主机之间通过通信链路与分组交换机实现互联互通:

  • 链路:光纤、电缆、卫星通信

  • 网络带宽:衡量网络数据的传输速率的量,单位为bit/s,即bps

  • 分组交换机

    • 对到达的分组进行转发
    • 路由器与交换机
  • 协议

    • 控制发送和接收消息的方式
    • 例如:TCP、IP、HTTP、FTP、PPP
  • 互联网:网络之网络

    • ISP:网络提供商(层次结构的)
    • 松散的层次结构
  • 网络标准

    • RFC
    • IETF

1.1.6 协议

什么是协议?人类之间的交流是遵循一定的协议的,如果你想与另一个人对话,你需要说”你好“,根据另一个人的回答再决定你的下一句话。而在计算机网络中,主机之间的数据交换也是遵循一定的协议的:

与人类交流的协议不同,计算机网络协议交流的主体是机器设备而不是人。所有的网络通信都会受到这个协议的制约,也因此才实现了网络通信格式的规范化,使得处理网络数据的过程更加简单。

计算机网络定义了网络实体之间发送和接收的消息的格式和顺序,还有收到消息后的行为。以邮政系统为例,如果A给B写了一封信,这封信该如何通过邮政系统到达B的手中?如果直接将这封信放到邮箱里,邮递员并不知道这封信该从哪里寄往哪里,也不知道这封信到底是要寄出的信件还是刚刚收到的信件。正确方式是,将这封信件装在信封里,写地址,贴邮票,再放到信箱中,这样邮递员才有足够的信息将这封信寄到正确的地址。从这个过程来看,信件的传递需要遵循邮政系统的规则,网络中信息的交流同样需要协议来规范。

1.1.7 从服务的角度看待因特网

因特网是为应用程序提供服务的基础设施。这些应用程序包括:

  • Web程序
  • VoIP
  • Email
  • ……

因特网也提供了应用程序的编程接口。

1.2 因特网的历史

1.2.1 1961~1972年:早期的分组交换原则

  • 1961年:Kleinrock队列理论证明了分组交换的有效性
  • 1964年:RAND公司的Paul Baran在军方网络中使用了分组交换技术
    • 注:Paul Baran 被誉为分组交换技术的三个奠基人之一
  • 1967年:美国高级研究计划署构思ARPAnet
    • 互联网的前身就是阿帕网(ARPANET,又称ARPA网)
  • 1969年:第一个可操作的ARPAnet结点诞生
  • 1972年:
    • ARPAnet向公众展示
    • NCP(Network Control Protocal,网络控制协议)第一个主机到主机的协议诞生
    • 第一个电子邮件程序诞生
    • ARPAnet有了十五个结点

1.2.2 1972~1980:互联网络,新型专有网络

  • 1970年:夏威夷的ALOHAnet卫星网络诞生
  • 1974年:Cerf和Kahn——互联网络的体系结构
    • 国际计算机协会(ACM)于2005年2月16日宣布Vinton G.CerfRobert E.Kahn为2004年A.M.图灵奖获得者。
    • 1973年,Cerf加入了Kahn所在的一个国防远景规划局(ARPA)的项目,将三个独立的网络连接成要给完整的“网络之网”。他们试图发展一个开放体系的网络模型,使得不同种类的网络之间可以相互通讯,不受具体硬件和软件配置的影响,并且具有足够的灵活性和端到端的可靠性来克服子网络之间的传输错误和不一致。他们的合作最终达成共识:在网络之间需要一个“网关”来容纳不同的界面和数据包。这就意味着需要在一个全球性的网络上指定一些主机,为此他们提出了互联网协议(IP)地址的概念。
    • 在加州大学洛杉矶分校读研究生期间,Cerf曾经为现在所说的ARPANET工作,为ARPA的最雏形的分组交换网络的主机对主机的协议作过相关工作。Kahn,在加入ARPA之前,就已经在BBN(Bolt Beranek and Newman)领导了ARPANET分组交换的体系开发,1972年在第一届国际计算机通讯大会上展示了ARPANET。当时ARPANET就把大约40台不同的计算机连接起来,并且示范了世界上第一例网络电子邮件的应用。
    • 1974年5月,他们发表了一篇论文,描述了一种新的通讯方法,称之为路径信息或数据包的传输控制协议(TCP)。象一个装着一封信的信封一样,TCP把连续的信息流打断成片,装在称为“数据报”的信封中,并标上标准化的“来自和去往”的地址,经由基础网络传输到主机上。只有主机能够“打开”信封,阅读内容。
  • 1976年:Xerox (施乐)PARC的以太网
    • Xerox PARC(Xerox Palo Alto Research Center),即施乐帕克研究中心,是施乐公司所成立的最重要的研究机构。
  • 上世纪七十年代早期:专有框架:DECnet、SNA、XNA
    • DECnet是由数字设备公司(Digital Equipment Corporation)推出并支持的一组协议集合,现在的DECnet已经成为HP开放VMS的一部分。
    • IBM系统网络体系结构(IBM Systems Network Architecture)是IBM公司开发的网络体系结构,在IBM的主机环境中得到广泛的应用。
    • XNA:没查到
  • 上世纪七十年代后期:Switching Fixed length Packets(交换固定长度数据包)
  • 1979年:ARPAnet有了2000个结点

1.2.3 1980~1990:新的协议,网络的继续发展

  • 1983年:TCP/IP的部署
  • 1982年:定义smtp电子邮件协议
  • 1983年:DNS(域名解析)定义了名称到IP地址的转换
  • 1985年:定义FTP协议
  • 1988年:TCP拥塞控制
  • 新的国际网络:Csnet,BITnet,NSFnet,Minitel
  • 100,000个主机连接到互联网

1.2.4 1990,2000年:商业化,Web,新的应用程序

  • 1990年早期:ARPAnet退出历史舞台
  • 1991年:NSF取消了NSFnet商业用途的限制(1995年停止服务)
  • 1990年早期:Web
    • 超文本(Bush 1945,Nelson 1960年)
      • 1945年,Vannevar Bush提出了被称为“存储扩容器”的概念,形成了今天超文本的基础
      • 1963年,Ted Nelson创造了术语“超文本”。
    • HTML,HTTP:
      • HTML是由Web的发明者 Tim Berners-Lee和同事Danial W.Connolly于1990年创立的一种标记语言
      • 1990年,由Tim Berners-Lee提出HTTP协议,随后WWW联盟成立,组织了IETF小组进一步发布和完善HTTP协议。
    • 1994年:Mosaic浏览器,网景公司
      • NCSA Mosaic,或简称Mosaic,是互联网历史上第一个获得普遍使用和能够显示图片的网页浏览器,由伊利诺伊大学Urbana-Champaign分校的NCSA组织在1993年发表,并于1997年1月7日正式终止开发和支持。
      • 网景通信公司(Netscape Communications Corporation)曾经是美国的一家计算机服务公司,以其生产的同名网页浏览器Netscape Navigator而闻名。1998年11月,网景被美国在线收购。
    • 90年代后期:Web服务的商业化
    • 90年代后期到千禧年:
      • 更多的杀手级应用:即时通信,P2P文件共享
      • 网络安全至上
      • 超过5千万主机,一亿用户
      • 以Gbps的超高速度运行的骨干链路

1.2.5 2005年~现在

  • 超过五十亿的设备连接到互联网(2016年)
    • 智能手机和平板电脑
  • 积极部署宽带接入
  • 越来越多的高速无线接入
  • 在线社交网络的出现:
    • FaceBook:大约1亿用户
  • 服务提供商(Google,Microsoft)创建了自己的网络
    • 绕过Internet,提供对搜索,视频内容,电子邮件等等的“即时”访问
  • 电子商务,大学,在“云”中运行服务的企业(Amazon EC2)

美国每个州的顶级互联网提供商(ISP)(2014):

全球使用网络人数最多的前二十个国家:

互联网相关组织:

1.3 网络边缘

因特网由网络边缘和网络核心组成。

  • 网络边缘:应用程序和主机
  • 网络核心:由路由器之间互联而成,即“网络之网络”

如果需要将主机接入通信系统,需要将其接入网络,这需要物理媒介的存在,由物理媒介构成的通信链路支持数据流动。

1.3.1 网络边缘

即端系统,位于一个网络系统的终端部分

典型模型:

  • Client-Server Model (客户机/主机模型)

客户机就是总是发送请求并接收从服务器端返回的响应的机器端,即“使用者”,“消费者”;而服务器则是接收客户端发送的请求,并将处理请求后得到的信息再返回给客户端的机器,即“生产者”,“提供者”。

服务器端由于需要随时接收客户端发来的响应,因此服务器端总是处于开机状态,并且机器性能通常也很高。

这种模式的典型例子就是Web浏览器。

  • Peer-Peer Model(P2P模型)

客户端与服务器端显然是两个地位不等的机器,而P2P是一个对等模型,即彼此链接的多台计算机之间都处于对等地位,每台计算机都有相等的功能,无主从之分,一台计算机既可以作为服务器,又可以作为工作站,整个网络一般来说不依赖专用的集中服务器,也没有专用的工作站。

这种模式的典型例子是GnutellaKaZaASkyper

1.3.2 面向连接服务 connection-oriented service

什么是连接?用打电话类比,通话之前需要先拨号并等待对方接通,这个过程就类似于建立连接:在两台主机进行网络连接之前,需要先进行物理连接。

两台主机进行连接的全过程需要三步:

  1. 建立连接(握手)
  2. 数据传输
  3. 释放连接

面向连接服务的目的是提供端系统之间的数据传输。这种连接方式最典型的应用就是TCP(Transmission Control Protocal,传输控制协议)。

而网络连接时,数据传输需要的时可靠有序的字节流传输,但在传输过程中,信道可能会受到干扰,因此部分数据分组可能会丢失。那我们应该如何保证可靠的数据传输?

  • 采用确认重传机制

即,从A向B传递数据,如果B完全获取了所有数据,则B会发出消息x“我收到了”,之后A收到消息x确认传递无误,传输结束;但如果B发现丢失了部分数据,则不会发出信息x,A在一段时间后未收到B的确认消息x,则认定B未收到信息,A开始重新传输。

  • 流控制

由于接收端存在缓存,如果一定时间内收到的数据量过大,则可能在接收端会发生数据丢失(淹没)。为了避免这种情况的发生,我们可以采用流控制机制,即控制发送端的发送速率,使得发送端的数据传输不会太快,导致淹没了接收端的缓存。

  • 拥塞控制

由于路由器采用分组转发的方式,如果到达的分组太多,而转发速率太慢,则可能会引起分组在路由器端排队,这种情况称为阻塞。此时如果路由器的缓存容量有限,则可能会有一部分数据丢失。

拥塞控制则减缓了这种情况的发生。它可以控制发送端的速率,降低网络拥塞的概率。

TCP是互联网中的关键协议。TCP协议就提供了流控制和拥塞控制的机制。

1.3.2 无连接服务 connectionless service

即发送数据前并不需要建立连接。此时设备只要有数据要发送,就可以立即发送。这种服务并不需要可靠的数据传输;短信就是一种典型的无连接服务。

无连接服务的目的也是在端系统之间提供数据交流。

端系统中提供无连接服务的协议是UDP(User Datagram Protocal,用户数据报)协议,没有数据流控制,也没有拥塞控制。

显然,无连接服务更适用于对网络延时要求高的应用程序,而不适用于对数据传输精确度要求高的应用程序。

使用TCP协议的应用程序:

  • HTTP(Web)
  • FTP(File Transfer Protocal,文件传输协议)
  • Telnet(Remote Login,远程登录)
  • SWTP(Email)

使用UDP协议的应用程序:

  • Streaming Media(流媒体)
  • Teleconferencing(电话会议)
  • DNS(域名解析)
  • Internet Telephony(网络电话)
  • QQ

1.4 网络核心

网络核心是由相互连接的路由器构成的网状结构。其解决的基本问题是:如何通过网络实现数据的交互?

网络核心中的数据交互方式主要有两种:

  • 电路交换

  • 分组交换

1.4.1 电路交换 Circuit Switching

电路交换中,每个用户独占资源,并不会与其他用户共享,就像一个真实的电路一样。由于互不干扰,这种方式能够保证数据通信的有效性。而这需要有一个建立连接的过程,则电路交换是面向连接的服务。典型应用是电话网络。

电路交换能够保证通信过程中的带宽,保证会话资源的独占。

然而,对于一段物理链路,如果一对主机独享一段光纤,这段物理链路能够提供的带宽会远远大于所需求的带宽,造成很大的资源浪费。为了避免这种情况的出现,我们可以将带宽按照需求进行分片。按照划分的方式,可以分成以下几种:

  • 频分复用 Frequency Division (FDM)
  • 时分复用 Time Division (TDM)
  • 码分复用 Code Division (CDM)

频分复用 Frequency Division (FDM)

频分复用,将频率分成固定的几份,每一个用户独占其中一份。注意,此处的带宽单位为Hz,表示一份频率的单位。典型应用有电视等。

这种概念类似于高速公路,一条高速公路可以分成几个车道,每辆车独占一个车道。

时分复用 Time Division (TDM)

时分复用,将时间划分为帧(Frame),每一帧再划分为时隙。每一个时隙供一个用户独占使用。

但是,这种方式是否存在问题?

假设我们有四个用户ABCD,采用时分复用技术:

四个用户在每个时间帧上的使用情况:

由图所示,在第一个帧中,A和B有数据发送,此时C和D所占据的时隙为空闲状态;在第二个帧中,B和C有数据发送,但A和D所占据的时隙空闲……

显然,每个帧的空白处都有资源,但没有被用户占用,存在资源浪费问题。


一道计算题:

利用电路交换网络从主机A向主机B发送一个大小为\(640K\)比特的文件需要多长时间?假设所有的链路带宽为\(1.536 Mbps\),每条链路采用时分复用技术,划分方式为\(24slot/sec\),端到端建立连接需要的时间为500毫秒。

每个时隙的传播带宽为:\(1.536Mbps\div24=64Kbps\)

传输时间为:\(640K\div64Kbps=10s\)

建立连接需要的时间为:\(0.5s\)

总时间为:\(10.5s\)


计算题:

利用电路交换网络从主机A向主机B发送一个大小为\(640K\)比特的文件需要多长时间?假设所有的链路带宽为\(1.536 Mbps\),每条链路采用频分复用技术,划分方式为\(24channels/fequencies\),端到端建立连接需要的时间为500毫秒。

每个时隙的传播带宽为:\(1.536Mbps\div24=64Kbps\)

传输时间为:\(640K\div64Kbps=10s\)

建立连接需要的时间为:\(0.5s\)

总时间为:\(10.5s\)

1.4.2 分组交换 Packet Switching

将端到端交换的数据流分成一个一个的分组,用户A和B可以共享网络资源,而每一个分组可以使用完整的链路带宽。网络资源按需使用,且带宽不会被分片,也不是专用分配,更不需要预留资源。

然而,分组交换也存在问题:

如果有大量用户要发送数据,用户所需要的资源数可能会超过实际拥有的资源数。

  • 可能会有分组在链路的路由器输出缓存进行排队,即发生拥塞

解决:存储并转发

  • 分组从路由器的输入缓存到输出缓存,在输入缓存接收完分组的所有内容才能够进行转发

A和B的分组序列并没有固定的模式,而是按需分配的,这种分配方式称为统计复用(Statistical Multiplexing)。

两台主机都要向外发送数据,则通过以太网的连接方式与第一个路由器进行连接。对于路由器左端的最大传输速率为10Mbps,但右端的最大传输速率为1.5Mbps。A与B都不会独占链路,而是按需占用链路。

统计时分复用 STDM

四个用户,对时间分帧和时隙,第一个帧中C和D没有数据发送,如果采用TDM,则C和D的时隙部分的资源会被浪费,而如果采用STDM ,则C和D的时隙会按需分配给其他用户。

1.4.3 分组交换与电路交换的比较

分组交换允许共享电路的用户数更多

  • 如果一条链路的带宽为\(1Mb/s\),每个活跃用户占用的带宽为\(100kb/s\)但每个用户只会使用10%的时间,则电路交换能够允许共享的用户数为\(10000\div100=10\)个用户;而如果采用分组交换,如果有35个用户同时使用,则有超过10个用户同时处于活跃状态的概率\(\le0.0004\)
  • 活跃状态:如果要访问一个主页,在浏览器键入地址,点击回车,此时有数据传输到服务器,则此时你处于活跃状态,同理,接收服务器数据的过程中也处于活跃状态;而如果只是浏览网页而没有数据的传输,则不处于活跃状态。
  • 注意:这个运算结果的前提是每个用户只有10%的时间进入活跃状态。如果用户一直处于活跃状态,则分组交换可能会发生拥塞。

分组交换会始终处于优势地位吗?

  • 如前所示,如果用户一直处于活跃状态,则分组交换可能会发生拥塞。而对于突发数据,则分组交换会更有优势。
    • 突发数据:突然间有数据要发送,且有很长时间处于非活跃状态

分组交换可以共享资源

分组交换更加简单,且不涉及到连接的建立。(?)

注意:分组交换可以支持无连接服务,也可以支持面向连接服务。

电路交换需要预留网络资源,能否有一种方式,使得分组交换具有类似电路交换的性能和行为?

  • 即能够给视频应用等提供足够的带宽

1.4.4 分组交换:存储转发

报文交换:将文件看作报文,采用的也是存储转发,其与分组交换的区别在于:发送时不会将报文进行划分,而是整体发送。

那么分组交换和报文交换哪一个用时更短?

假设有一个文件大小为\(L\),文件接收速率为\(R\),则从主机推向链路需要的时间为\(L/R\)。假设不考虑从主机到第一个路由器以及两个路由器之间的传播时间,到达路由器时进行接收,再将其推向下一个路由器,直到另一个主机接收。假设\(L=7.5M bits\),每段链路最大传输速率为\(R=1.5Mbps\),则传输时间为?

  • 如果采用报文交换,则从发送\(L\)到接收所需要的时间为\(3L/R\),即\(15sec\)
  • 如果采用分组交换,每个分组的大小\(l=1.5K\),则时间为\(L/R+2l/R=5.002sec\)
    • 如果有\(m\)个分组,\(n\)个路由器,则传输时间为\(ml/R+nl/R=L/R+nl/R\)

从计算结果可以看出,分组交换的时间明显小于报文交换。

1.4.5 分组交换:转发

目的:从源到目的地通过路由器进行分组的移动

  • 如何选择路径进行转发?——通过路径选择算法(路由算法)

分组交换网络种类

  • 数据报网络
    • 每到达一个结点,都会根据目的地址判断下一个路径
    • 路径可能在会话期间发生改变
  • 蓄电报网络
    • 每一个分组都携带一个标签,由标签决定路径
    • 在网络层提供面向连接服务
    • 在分组转发之前先建立连接,在连接过程中需要保持会话过程,路径是固定的,即发送之前就知道怎么走

网络分类:

数据报网络在网络层提供的是无连接服务,而数据报网络本身不一定是面向连接的还是无连接的,这取决于上一层的协议类型。

1.5 网络接入与物理媒介

主机想要访问因特网,首先需要接入网络。我们可以选择哪些规模的网络接入?

  • 住宅接入
  • 企业接入
  • 移动接入

选择接入方式的因素

  • 带宽
  • 共享还是专线接入
  • 在哪里接入网络
  • 采用哪一个ISP

1.5.1 住宅接入

  • 拨号接入
    • 通过电话线接入网络
    • 最大速率为56kbos
  • DSL 数字用户线
    • 常用的是ADSL,非对称数字用户线
    • 解决了打电话时不能上网的问题
    • 上行速率:1Mbps
    • 下行速率:8Mbps
    • FDM
  • HFC:混合光纤同轴电缆
    • 非对称方式
    • 用户共享接入电源路由器
  • FTTx
    • Fiber To Home:光纤一直铺设到用户家庭可能是居民接入网最后的解决方法

1.5.2 企业接入 Enterprise access network

通过局域网连接端系统和边缘路由器,通过局域网方式进行连接

以太网用户通过双绞线先与交换机进行连接,交换机再与路由器连接

  • 接入点
  • 无线连接方式

以太网和Wifi的方式最初部署在企业内部,现在已经成为了家庭中常见的部署方式。

现在的家用路由器已经把路由器、交换机、无线接入点等等集成到了一起。

无线接入

无线局域网:建筑内部,有距离限制

广域无线接入:借用蜂窝网络

  • 3G,4G,5G

物理媒介

在线路上,无论传输的是光信号还是电信号,都是以二进制比特的形式传输的。

物理链路

  • 导引型媒介
    • 即能够实际看到的线路;例如光纤、电缆等
  • 非导引型媒介
    • 在介质空间中自由传播的;例如无线电、卫星连接等

  • 双绞线
    • 由两根耦合的铜线构成
    • 非屏蔽双绞线
    • 屏蔽双绞线
    • 三类线
    • 五类线
    • 六类线
  • coax 同轴电缆
    • 基带
    • 宽带
  • fiber 光纤
    • 玻璃光纤,承载数字脉冲
    • 支持高速点对点传输
    • 错误率低,传输距离远
  • 广播
    • 易受到干扰
    • 近地卫星
    • 局域网
    • 广域网
    • 蜂窝通信

1.6 因特网结构与ISPs

端系统都需要通过ISP(Internet Service Provider, 网络服务提供商)接入互联网。与其相反,要访问ISP要求端系统必须互联,这样两个主机才能够互相发送数据报。通常来说,网络结构并不是由网络的传输效率、性能等技术因素决定,而是由经济和国家政策等决定。

思考问题 :如何将数以百万计的ISPs互相连接起来呢?

  1. 直接两两互联

显然这样的方式所需要的链路数量非常大,至少为\(O(N^2)\)规模,复杂度非常高,且难以维护。

  1. 建立一个全球范围的ISP,每个接入ISP都与这个全球ISP互联

接入ISP在地理上必须靠近全球ISP,而全球有百万个接入ISP,无法与同一个ISP链接,且一定会出现企业间的竞争,这样就引出了下一个方式:

  1. 多个全球ISp

用高速光纤线路将各个ISP进行对等连接(对等连接即各个ISP间地位平等,没有主从)。多个ISP可以通过因特网交换点(Internet exchange point, IXP)进行连接,使得连接在不同的ISP下的接入ISP之间可以互相通信。

区域ISP:向下与接入ISP进行连接,向上与全球ISP链接。

这样的方式催生出了一个新兴产业:内容服务提供商,他们运行自己的网络给端系统提供服务,典型的内容服务提供商有Google、Microsoft等。

全球的ISP分层设计,每一层有每一层的功能:

全球的ISP网络在逻辑上是层次结构,实际上是同心圆,全球ISP位于中心,次级ISP向外扩展。

位于中心的是第一层ISP,互相之间进行对等连接,主要包括两个类型的商业机构:

  • 商业ISP,例如Sprint,AT&T,NTT等
  • 内容提供网络,例如Google等,负责将数据中心连接到Internet的专用网络,通常会绕过一级区域ISP。

对于第一层ISP,需要给第二层ISP提供服务,而第二层ISP作为消费者需要使用上一层ISP提供的服务,此时提供服务的接口叫做存在点(POT)。

第二层为区域ISP,可能会与一个或多个一级ISP链接;如果与多个一级ISP链接,则称为多宿。第二层ISP需要使用第一层所提供的服务,第二层就是第一层的用户。这一层的ISP之间也可能彼此对等连接,且不需要付费,因为不存在提供服务的关系。这一层ISP之间也可能通过IXP进行连接。

第三层为接入ISP,下一层就是端系统,直接为端系统提供服务。

一个数据报需要穿过许多网络才能够从源主机到达目的主机:

互联网其实就是由不同级别的网络互联而成的。

1.7 延迟,丢包

假设有两个链路,传播速率分别为\(10Mbps、100Mbps\),同时传输\(1bit\)数据,那么这条数据的传播在哪一条链路上传播更快?

  • 一样快

1.7.1 计算机网络的性能

数据率:计算机网络上的主机在数字信道上传送数据的速率,例如:\(100Mbps\) Ethetnet

带宽:频带宽度,单位为Hz

吞吐量:从发送端到接收端传输bit的速率,单位为\(bits/time\space unit\)

1.7.2 信道

信道是一个物理传输的媒介,也可能是一个逻辑通信的链路,可能是有线的,也可能是无线的。可以将信号从一个/多个发送端传输到一个/多个接收端。

衡量信道性能的单位:数据率/Hz

类型:

  • 单向信道:从A到B发送信息只能单向发送
  • 半双工 Half-duplex:信息可以双向传播,但同一时刻只能向一个方向传输
  • 全双工 Full-duplex:信息可以同时双向传播

1.7.3 分组

分组交换可能会引起数据丢失、分组的排队时延。如果A和B都通过路由器发送数据,到达的分组前面可能有其他分组正在发送,则这个分组需要在路由器缓存中排队。排队等待轮到当前分组到达前端进行传输的过程就叫做排队时延,即由分组到达路由器端进行排队等候的时间。

无论是哪一种设备,缓存都是有限的;当到达速率快,而转发速率慢,就可能会将缓存区填满,再到达的分组可能会被丢弃。

1.7.4 四种分组时延

节点处理时延 node processing

一个分组从主机端到达相邻设备上,需要对分组进行处理,比如检测分组是否存在错误;分组达到后还需要检测其目的地址,时间就是节点处理时延。

排队时延 queueing

在中间设备上进行排队等待发送到输出链路上所需要的时间。时间大小取决于路由器的拥塞程度。

这个时延的大小受到网络拥塞程度的影响。一旦到达速率超过转发速率就需要进行排队。我们可以定义一个量进行分析。因为数据是突发的,因此分组并不是平均到达的,以下计算只是从统计量的角度观察排队时延。

假设输出链路带宽\(R\),分组长度为\(L\)(bit),平均到达时间为\(a\space pack/s\),则每个分组每秒到达路由器的速率为\(L/a\)

定义流量强度为\(L\times a/R\)

假设分组到达路由器的概率很小(很长时间才到达一个分组):

  • 如果\(La/R\rightarrow 0\),则直接发送,时延\(\rightarrow0\).
  • 如果\(La/R\rightarrow1\)
    • 如果是均匀到达,到达后可以马上转发;
    • 如果不均匀到达,则产生排队,排队时延增大
  • 如果\(La/R\geq0\),即到达速率超过转发速率,则网络拥塞加重,时延\(\rightarrow\infty\)

传输时延 Transmission delay

一个分组由多个比特组合而成,分组从设备被送上链路所消耗的时间就是传输时延,单位是\(bps\)

\(R\)为链路带宽(速率),\(L\)为分组长度(bit),传输时延为\(L\div R\)

传播时延 Propagation delay

一个分组在链路中都是以信号的形式传播的,信号在信道上进行传播需要的时间。

\(d\)为物理链路的长度,\(s\)为信号在链路上的传播速率,则传播时延为\(d\div s\)。通常来说\(s=2\times 10^8\)

一个小故事:

在互联网发展早期,mit的人员发现电子邮件只能被发送到500英里以内的地方,再远就无法接收。管理员检查后发现,原因是系统升级导致远程服务器的超时时间被设置为0秒,而信号传播又存在传播时延,导致邮件发送时稍微超过3秒后就停止连接,导致无法收到。

如果用旅行过程类比:

  • 假设一个车队有十辆车,公路上有多个收费站,收费站之间的距离为100千米,车的行驶速度为100千米/小时;汽车每经过一个收费站需要消耗12秒。问车队中所有的车从第一个收费站到达第二个收费站所需要的时间为?

我们可以将每辆车看作一个bit,收费站看作路由器,链路上的传输时延为12秒。

第一辆车到达第一个收费站~最后一辆车从第一个收费站出发的时间为\(12 \times 10 = 120\)s;

最后一辆车从第一个收费站到达第二个收费站的时间为\(100km/100km(hr) = 1hr\)

因此答案为\(60min+2min=62min\)

这道题没有考虑一个情况:车在公路上行驶的速度快,可能第一辆车到达第二个收费站,但还有车在第一个服务站服务。

  • 第一个收费站到第二个100Km,传播速率为1000km/h。第一辆车到达第二个收费站,其传播时延是\(0.1h\),第一辆车进行服务的时间为1min,即经过7分钟后第一辆车已经到达第二个收费站。

7min有多少辆车从第一个收费站出去?每一辆车经过收费站需要1min,

还有三辆车在第一个收费站排队。


一个分组经过两个路由器到达目的主机,每一段链路都应该有四种时延,则总时延为:

\(d_{nodal}=d_{proc}+d_{queue}+d_{trans}+d_{prop}\)。其中:

  • \(d_{modal}\)为分组从源主机到达目的主机的总时延
  • \(d_{proc}\)为节点处理时延,通常大小为微秒级
  • \(d_{queue}\)为排队时延,大小取决于网络拥塞的程度
  • \(d_{trans}\)为传输时延,大小为\(L/R\),对于低速链路不能忽略
  • \(d_{prop}\)为传播时延,大小从几微秒到几百微秒

时延带宽积

假设有两个主机A、B,之间距离为\(L=10000Km\),有一条直接链路,带宽为\(R=1Mbps\),假定跨越该链路的传播速度为\(V=2.5\times10^8mps\),则:

  1. 传播时延\(Tp\)为?
  2. \(Tp\)时间内,主机A向链路中发送了多少个bits?
  3. 每两个bit之间的间距\(i\)

解:

  1. \(Tp=L/V=0.04s\)
  2. \(Numb=Tp\times R=1Mbps\times L/V=41943\)\(1Mbps=10^6bps, 1kbps=10^3bps\)
  3. \(i=L/Numb=V/R=238\)

\(L\div V\times R\)就是时延带宽积,表示第一个比特到达目的端时,共发出了多少bit,即链路上最多可以容纳多少bit,也称为以bit为单位的链路长度。

练习:计算端到端的延迟(传输延迟与传播延迟)

计算当左侧的主机开始传播分组的第一个比特到右侧服务器接收到该分组的最后一个bit所需的总时间。已知:

光传播速率为\(3\times10^8m/s\),传输速率单位为\(Mbps\),链路距离单位为\(Km\)。假设一个分组的长度为\(16000bits\),答案单位为\(millsecounds\)

解:

总时间\(t=t_1+t_2+t_3\),其中:

\(t_1=t_{trans}+t_{prop}=16000bits/1000Mbps+1Km/v_{light}\);

\(t_2=t_{trans}+t_{prop}=16000bits/100Mbps+1000Km/v_{light}\);

\(t_3=t_{trans}+t_{prop}=16000bits/1000Mbps+2Km/v_{light}\);

\(t=3.535333 msecs\)

在计算机上衡量时延问题

traceroute程序:从路由器到目的主机共有\(N\)个设备,发送\(3n\)个分组,每一个分组有一个标号,到达第一个路由器的三个分组不转发,而是反馈一条信息并返回主机,该信息包含从主机发出到返回主机的时间,以此类推。

cmd命令:tracert some_address

C:\Users\lenovo>tracert www.163.com

通过最多 30 个跃点跟踪
到 z163ipv6.v.bsgslb.cn [111.26.224.10] 的路由:

  1     6 ms     3 ms     4 ms  192.168.1.1
  2     5 ms    10 ms     5 ms  10.11.0.1
  3     7 ms     6 ms     7 ms  111.45.193.93
  4    16 ms    13 ms    13 ms  211.137.46.121
  5     *        *        *     请求超时。
  6     *        *        *     请求超时。
  7    38 ms    38 ms    39 ms  221.183.50.182
  8     *        *        *     请求超时。
  9     *        *        *     请求超时。
 10     *        *        *     请求超时。
 11     *        *        *     请求超时。
 12    36 ms    36 ms    38 ms  111.26.224.10

跟踪完成。

1.7.5 分组丢失

如果到达的分组超过了路由器的缓存,则新到达的分组就会被丢弃。可能有上层协议对这种情况进行协调处理:

  • 让前一个节点重新发送分组
  • 协调发送端重新发送
  • 忽略

1.7.6 吞吐量

吞吐量就是发送端到接收端进行比特传输的速率。

分为两种:

  • 计时吞吐量:给定时间点的速率
  • 平均吞吐量:较长时间内的平均速率

假设输入端管道传输速率为\(Rs\space bits/sec\),输出端管道传输速率为\(Rc\space bits/sec\)

如果\(Rs<Rc\):吞吐量受到\(Rs\)的限制;如果\(Rs>Rc\),则吞吐量受到\(Rc\)的限制。总之,吞吐量受到瓶颈链路的限制,其期望值应该是\(Rs\)\(Rc\)的最小值。

互联网场景下的吞吐量

核心网络的带宽\(R\)比较大,如果有10台服务器,以\(Rs\)速率连接到因特网,客户端以\(Rc\)连接到因特网,吞吐量限制由\(Rs\)\(Rc\)决定。

1.8 协议分层,服务模型

1.8.1 协议分层

协议定义了网络实体之间发送/接收数据的格式/顺序和接收数据后发生的行为。

协议的三个因素:

  • 语法 Syntax
  • 语义 Sermantic
    • 即接收消息后需要发出什么样的控制信息,做出何种响应
  • 时序 Synchronization
    • 网络实体接收/发送信息的顺序

为什么对协议进行分层?数据的传输过程很复杂:

  • 保证精确的数据传输
  • 发送数据的计算机必须激活数据通信的通路
  • 告诉网络如何找到接收端
  • 检测接收端是否已经准备好接收数据
  • 如果消息格式不同,如何约定发送端的格式统一还是接收端的格式统一
  • 错误检测
  • 处理分组丢失和时延问题

从网络组成山来说,协议的分层也是必要的:

  • 主机
  • 路由器
  • 链路
  • 程序
  • 协议
  • 软硬件

能否有一种网络的组织结构,能够提供讨论网络结构的希望?在讨论互联网结构之前,先看一下对于人类活动的模拟:

如果要坐飞机,需要买票,涉及票务系统、行李托运、检票登机、飞机起飞、飞行、到达目的地、着陆、离开飞机、取行李……很明显,从出发到目的地都涉及到了票务系统、行李、登机口……

每一层的实现都需要下一层提供服务,通过自身采取一些行为,并且依赖于下一层的服务。

邮件系统:

通信接入模块:

网络接入模块:


分层可以带来的好处:

  • 各层之间是独立的,将问题分解为许多子问题
  • 灵活性好,一层的变化不会影响其他层
  • 机构上可以分隔开
  • 易于实现和维护
  • 能够促进标准化工作

每一层要做的工作:

  • 差错控制
  • 流量控制
  • 分段和重装
  • 复用和分开
  • 连接建立和连接释放
  • ……

但分层也不都是好的,层次之间的功能可能存在冗余。且层次越多,效率反而可能越低。

在某些网络中存在跨层的涉及。

1.8.2 ISO.OSI与TCP/IP

ISO.OSI(Open System Interconnection Reference Model,开放系统互联基本参考模型)将网络分为七个层次:

这个标准只是理论上的标准,但不能忽略其作用。很多实际交流和数据通信领域都在讨论这个模型。

TCP/IP:工业驱动标准,是因特网的核心,将网络分为五层:

1.8.3 因特网协议栈

因特网需要一个协议对实体进行控制,这就是因特网协议栈的作用。

应用层:支持网络应用程序

  • FTP,SMTP,HTTP,POP3

传输层:端到端的数据传输

  • TCP,UDP

网络层:从源主机到目的主机提供路由算法

  • IP,路由协议,ICMP,IGMP,RIP

链路层:相邻网络节点间数据传输

  • PPP,Ethernet

物理层:比特在链路上的传输

数据传输过程中,当前层会把信息加上首部和尾部传递给下一层;其中首部封装了数据的起始地址、目的地址等信息,尾部封装了数据错误检测相关的信息。

路由器只实现了下三层,而交换机是链路层的涉笔,只实现了物理层和数据链路层。

给数据加上首部/尾部的过程称为封装(Encapsulation):

1.8.4 PDUS 协议数据单元

PDUS在应用层:报文

传输层:数据报/报文段

网络层:分组,数据报

数据链路层:帧 Frame

物理层:bit

1.8.5 TCP/IP协议族

ARP是将IP地址转换为链路层物理地址的协议,有人认为它是网络层协议,有人认为是链路层的协议。

对于网络层次种的每一层都可以认为是实体(实体:可以发送/接收信息的软件或硬件),相同层次实体之间的通信需要遵循协议。

上一层需要用到下一层的服务,此时只需要知道下一层提供什么样的服务即可,不需要关心如何提供服务。而下一层必须提供一个接口,称为SAP(Service Access Point)。

本层的服务用户只能看见服务而无法看见下面的协议,即下面的协议对上面的服务用户是透明的。

协议是水平的,即协议是控制对等实体之间通信的规则。服务是垂直的,即服务是由下层向上层通过层间接口提供的。上下层垂直方向要访问服务,需要两层都可以理解的语言,这种语言称为交换原语。

协议本身很复杂,必须把所有的不利条件都事先估计到,而不能假定一切都是正常的和非常理想的。看一个计算机网络协议是否正常,不能只看在其在正常情况下是否正确,还必须仔细检查协议能否应付各种异常情况。

posted @ 2020-03-17 12:10  pptcoder  阅读(1205)  评论(0编辑  收藏  举报