第1章 了解计算机网络和因特网

第一章 计算机网络和因特网

这一章目标其实就是:从整体上粗线地勾勒出计算机网络的概貌

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m3qitBh8-1617367603946)(/Users/mac/Desktop/计算机网络/blog/第1章 计算机网络和因特网/1.png)]

一、什么是因特网?

我们使用一种特定的计算机网络,即公用因特网,作为讨论计算机网络及其协议的主要载体。

什么是因特网?

回答这个问题有两种方式:

其一:描述因特网的具体构成

其二:根据为分布式应用提供服务的联网基础设置来描述。

具体构成描述

我们日常使用的智能手机、PC、平板电脑等这些设备都称为主机(host),或端系统(end system)。

端系统通过通信链路分组交换机连接到一起。

端系统通过因特网服务提供商(Internet Service Provider,ISP)接入因特网,如本地电缆或电话公司那样的住宅ISP,公司ISP、大学ISP,为智能手机和其他设备提供移动接入的蜂窝数据ISP

每个ISP自身就是一个由多台分组交换机和多段通信链路组成的网络。

因特网就是将端系统彼此互联,因此为端系统提供接入的ISP也必须互联。较低层的ISP通过国家的、国际的较高层的ISP互联起来。

无论较高层还是较低层ISP,都是独立管理的,运行着IP协议,遵循一定的命名和地址规则。

端系统分组交换机和其他因特网部件都要运行一系列协议,TCP(传输控制协议)和IP(网际协议)是因特网中最重要的两个协议!因特网的主要协议统称为TCP/IP

服务描述

前面辨识了因特网的一些部件,我们也可以从一个不同的角度:为应用程序提供服务的基础设施的角度来描述因特网

大家所知道的例如多人游戏、视频会议的应用程序涉及多个相互交换数据端系统,故他们被称为:分布式应用程序

与因特网相连的端系统提供了一个套接字接口(socket interface),该接口规定了运行在一个端系统上的程序请求因特网基础设施向另一个端系统上的特定目的地程序交付数据的方式。

类比:假定Alice使用邮政服务向Bob发送一封信。

当然,Alice不能只写信然后把信丢出窗户。相反,邮政局要求Alice将信放入一个信封中,写上Bob全名、地址、邮政编码,封上信封,贴上邮票,最后将信封丢进一个邮局的邮政服务信箱中。

同理,因特网也有一个发送数据的程序必须遵循套接字接口!

什么是协议?

首先给出定义一个协议的关键元素:

协议(protocol)定义了在两个或多个通信实体之间交换的报文的格式和顺序,以及报文发送和/或接收一条报文或其他事件所采取的动作。

大家可能熟悉的一个计算机网络协议为例:考虑当你向一个Web服务器发出请求(即你在Web浏览器中键入一个Web网页的URL)时所发生的情况:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WKwIuohh-1617367603949)(/Users/mac/Desktop/计算机网络/blog/第1章 计算机网络和因特网/2.jpg)]

首先,你的计算机向该Web服务器发送一条连接请求报文,并等待回答。该Web服务器将最终能接收到连接请求报文,并返回一条连接响应报文。得知请求该Web文档正常以后,计算机则在一条GET报文中发送要从这台Web服务器上取回的网页名字。最后,Web服务器向计算机返回该Web网页(文件)。

关于以上过程,推荐一篇博客写的十分详细:当你在浏览器地址栏输入URL按下回车之后发生了什么???

二、网络边缘

通常,我们把与因特网相连的计算机和其他设备成为端系统。因为它们位于因特网的边缘,故而被称为端系统

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WZb8gbK2-1617367603951)(/Users/mac/Desktop/计算机网络/blog/第1章 计算机网络和因特网/3.jpg)]

端系统也称为主机,因为它们容纳(即运行)应用程序,如Web浏览器程序、Web服务器程序、电子邮件客户程序或电子邮件服务器程序等。

主机有时又被进一步划分为两类:客户(client)和服务器(server)

接入网

考虑了位于“网络边缘”的应用程序和端系统后,我们接下来考虑接入网,这是指将端系统物理连接到其边缘路由器(edge router)的网络。

边缘路由器是:端系统到任何其他远程端系统的路径上的第一台路由器。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xFMzbNtv-1617367603954)(/Users/mac/Desktop/计算机网络/blog/第1章 计算机网络和因特网/4.jpg)]

  • 家庭接入:DSL、电缆、FTTH、拨号、卫星
  • 企业(和家庭)接入:以太网、WiFi
  • 光与无线接入:3G和LTE

物理媒介

物理媒体分成两种类型:导引型媒体(guided media)和非导引型媒体 (unguided media) 对于导引型媒体,电波沿着固体媒体前行,如光缆双绞铜线同轴电缆。对于非导引型媒体,电波在空气或外层空间中传播,例如在无线局域网数字卫星频道中。

  1. 双绞铜线
  2. 同轴电缆
  3. 光纤
  4. 陆地无线电信道
  5. 卫星无线电信道

三、网络核心

现在,我们深入研究网络核心,即由互联因特网端系统的分组交换机和链路构成的网状网络

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PgOQWZgd-1617367603955)(/Users/mac/Desktop/计算机网络/blog/第1章 计算机网络和因特网/5.jpg)]

分组交换

分组交换在计算机网络中十分重要。

在各种网络应用中,端系统彼此交换报文(报文能够包含协议设计者需要的任何东西,可以执行一些控制功能,可以包含数据)

为了从源端系统目的端系统发送了一个报文,源将长报文划分为较小的数据块,称之为分组(packet)。在源和目的地之间,每个分组都通过通信链路分组交换机传送。(交换机主要有两类:路由器链路层交换机

存储转发

多数分组交换机在链路的输入端使用存储转发传输机制。存储转发传输:是指在交换机能够开始向输出链路传输该分组的第一个比特之前,必须接收到整个分组

排队时延、分组丢失

每台分组交换机有多条链路与之相连。对于每条相连的链路,该分组交换机具有一个输出缓存(output buffer,也称为输出队列(output queue)),它用于存储路由器准备发往那条链路的分组。该输出缓存在分组交换中起着重要的作用。如果到达的分组需要传输到某条链路,但发现该链路正忙于传输其他分组,该到达分组必须在输出缓存中等待

因此,除了存储转发时延以外,分组还要承受输岀缓存的排队时延(queuing delay)。这些时延是变化的,变化的程度取决于网络的拥塞程度。因为缓存空间的大小是有限的,一个到达的分组可能发现该缓存已被其他等待传输的分组完全充满了。在此情况下,将出现分组丢失(丢包)(packet loss),到达的分组或已经排队的分组之一将被丢弃。

转发表、路由选择协议

路由器怎样决定它应当向哪条链路进行转发呢?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-guygiWep-1617367603956)(/Users/mac/Desktop/计算机网络/blog/第1章 计算机网络和因特网/6.jpg)]

在因特网中,每个端系统具有一个称为IP地址的地址。当源主机要向目的端系统发送一个分组时,源在该分组的首部包含了目的地的IP地址。如同邮政地址那样,该地址具有一种等级结构。当一个分组到达网络中的路由器时,路由器检查该分组的目的地址的一部分,并向一台相邻路由器转发该分组。

更特别的是,每台路由器具有一个转发表(forwarding table),用于将目的地址(或目的地址的一部分)映射成为输岀链路。当某分组到达一台路由器时,路由器检查该地址,并用这个目的地址搜索其转发表,以发现适当的出链路。路由器则将分组导向该出链路

但是!转发表是如何配置的呢

在学习网络层的数据平面时,会深入这个问题。现在仅仅告诉大家,具有一些特殊的路由选择协议(routing protocol),用于自动的设置这些转发表

电路交换

电路交换网络中,在端系统通信会话期间,预留了端系统间沿路径通信所需要的资源(缓存,链路传输速率)。在分组交换网络中,这些资源不是预留的,会话的报文按需使用这些资源,其后果可能是不得不等待(即排队)接入通信线路。

  • 频分复用(Frequency-Division Multiplexing,FDM),在连接期间为每条连接专用一个频段。
  • 时分复用(Time-Division Multiplexing,TDM),对于一条TDM链路,时间被划分为固定期间的帧,并且每个帧又被划分为固定数量的时隙。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VeW8NBSx-1617367603957)(/Users/mac/Desktop/计算机网络/blog/第1章 计算机网络和因特网/7.jpg)]

分组交换与电路交换的对比

在描述了电路交换和分组交换之后,我们来对比一下这两者。

分组交换的批评者经常争辩说,分组交换不适合实时服务(例如,电话和视频会议),因为它的端到端时延是可变的和不可预测的(主要是因为排队时延的变动和不可预测所致)。

分组交换的支持者却争辩道:①它提供了比电路交换更好的带宽共享;②它比电路交换更简单、更有效,实现

成本更低。

概括而言,嫌餐馆预订麻烦的人宁可要分组交换而不愿意要电路交换。

分组交换为什么更有效呢

我们看一个简单的例子:

假定多个用户共享一条1Mbps链路,再假定每个用户活跃周期是变化的,某用户时而以100kbps恒定速率产生数据,时而静止——这时用户不产生数据。进一步假定该用户仅有10%的时间活跃(余下的90%的时间空闲下来喝咖啡)。

  • 对于电路交换,在所有的时间内必须为每个用户预留100kbps。例如,对于电路交换的TDM,如果一个1s的帧被划分为10个时隙,每个时隙为100ms,则每帧将为每个用户分配一个时隙。因此,该电路交换链路仅能支持10 ( =lMbps/l00kbps)个并发的用户。

  • 对于分组交换,一个特定用户活跃的概率是0.1 (即10% )。如果有35个用户,有11或更多个并发活跃用户的概率大约是0. 0004。当有10个或更少并发用户(以概率0. 9996发生)时,到达的聚合数据速率小于或等于该链路的输出速率1Mbps。 因此,当有10个或更少的活跃用户时,通过该链路的分组流基本上没有时延,这与电路交换的情况一样。当同时活跃用户超过10个时,分组的聚合到达速率超过该链路的输出容量,则输出队列将开始变长。(一直增长到聚合输入速率重新低于1Mbps,此后该队列长度才会减少。)因为在本例子中同时活跃用户超过10个的概率极小,分组交换差不多总是提供了与电路交换相同的性能,并且允许在用户数量是其3倍时情况也是如此。

我们现在考虑第二个简单的例子:

假定有10个用户,某个用户突然产生1000个 1000比特的分组,而其他用户则保持静默,不产生分组。

  • 在每帧具有10个时隙并且每个时隙包含1000比特的TDM电路交换情况下,活跃用户仅能使用每帧中的一个时隙来传输数 据,而每个帧中剩余的9个时隙保持空闲。该活跃用户传输完所有106比特数据需要10s的时间。

  • 分组交换情况下,活跃用户能够连续地以1Mbps的全部链路速率发送其分组,因为没有其他用户产生分组与该活跃用户的分组进行复用。在此情况下,该活跃用户的所有数据将在1s内发送完毕。

上面的例子从两个方面表明了分组交换的性能能够优于电路交换的性能。这些例子也强调了在多个数据流之间共享链路传输数据的两种形式的关键差异电路交换不考虑需求,而预先分配了传输链路的使用,这使得已分配而并不需要的链路事件未被利用。另一方面,分组交换按需分配链路使用。链路传输功能将在所有需要的链路上传输分组的用户之间逐分组被共享。

网络的网络

因特网是一个网络的网络,其结构复杂,由十多个第一层ISP和数 十万个较低层ISP组成。ISP覆盖的区域多种多样,有些跨越多个大洲和大洋,有些限于狭窄的地理区域。较低层的ISP与较高层的ISP相连,较高层ISP彼此互联。用户和内容提供商是较低层ISP的客户,较低层ISP是较高层ISP的客户。近年来,主要的内容提供商也已经创建自己的网络,直接在可能的地方与较低层ISP互联。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iuNqRwMx-1617367603959)(/Users/mac/Desktop/计算机网络/blog/第1章 计算机网络和因特网/8.jpg)]

四、分组交换网中的时延、丢包、吞吐量

在理想情况下,我们希望因特网服务能够在任意两个端系统之间随心所欲地瞬间移动数据而没有任何数据丢失。然而,这是一个极高的目标实践中难以达到。

与之相反,计算机网络必定要限制在端系统之间的吞吐量(每秒能够传送的数据量),在端系统之间引入时延,而且实际上也会丢失分组。

分组交换中时延的概念

当分组从一个节点(主机或路由器)沿着这条路径到后继节点(主机或路由器),该分组在沿途的每个节点经受了几种不同类型的时延

这些时延最为重要的是节点处理时延(nodal processing delay)、 排队时延(queuing delay)、传输时延 (transmission delay)、传播时延(propagation delay),这些时延总体累加起来是节点总时延(tolal nodal delay)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mR1w8umw-1617367603961)(/Users/mac/Desktop/计算机网络/blog/第1章 计算机网络和因特网/9.jpg)]
(1)处理时延

检查分组首部决定该分组导向何处所需要的时间是处理时延的一部分。

(2)排队时延

在队列中,当分组在链路上等待传输时,它经受排队时延

(3)传输时延

L比特表示该分组的长度,用R bps(即b/s)表示从路由器A到路由器B的链路传输速率传输时延是:L/R

(4)传播时延

一旦一个比特被推向链路,该比特需要向路由器B传播。从该链路的起点到路由器B传播所需要的时间是传播时延

排队时延、丢包

  • 排队时延

a表示分组到达队列的平均速率。

比率:La/R被称为流量强度。它在估计排队时延的范围方面经常起着重要的作用,如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gWoQzKte-1617367603961)(/Users/mac/Desktop/计算机网络/blog/第1章 计算机网络和因特网/10.jpg)]

随着流量强度接近于1,平均排队时延迅速增加。该强度的少量增加将导致时延大比例增加。

  • 丢包

因为该排队容量是有限的,随着流量强度接近1,排队时延并不真正趋向无穷大。相反,到达的分组将发现一个满的队列。由于没有地方存储这个分组,路由器将丢弃(drop) 该分组,即该分组将会丢失(lost) 。

端系统的角度看,上述丢包现象看起来是一个分组已经传输到网络核心,但它绝不会从网络发送到目的地。分组丢失的比例随着流量强度增加而增加。因此,一个节点的性能常常不仅根据时延来度量,而且根据丢包的概率来度量。

端到端时延

端到端时延指的是:从源到目的地的总时延。前面一直讨论的是节点时延,即在单台路由器上的时延

吞吐量

对于这种简单的两链路网络,其吞吐量是min{Rc, Rs}, 这就是说,它是瓶颈链路 (bottleneck link)的传输速率:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZDGrvh9i-1617367603962)(/Users/mac/Desktop/计算机网络/blog/第1章 计算机网络和因特网/11.jpg)]

一个在服务器和客户之间具有N条链路的网络,这N条链路的传输速率分别是R1,R2,R3,…,Rn应用对两条链路网络的分析方法,我们发现从服务器到 客户的文件传输吞吐量是min{R1,R2,R3,…,Rn},这同样仍是沿着服务器和客户之间路径的瓶颈链路的速率:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xEgqhjkL-1617367603963)(/Users/mac/Desktop/计算机网络/blog/第1章 计算机网络和因特网/12.jpg)]

下面例子更一般地说明了吞吐量不仅取决于沿着路径的传输速率而且取决于干扰流量。特别是,如果许多其他的数据流也通过这条链路流动,一条具有高传输速率的链 路仍然可能成为文件传输的瓶颈链路:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E8oI739K-1617367603964)(/Users/mac/Desktop/计算机网络/blog/第1章 计算机网络和因特网/13.jpg)]

五、协议层次及其服务模型

接下来我们讨论组织网络体系结构

分组的体系结构

协议分层

为了给网络协议的设计提供一个结构,网络设计者以分层的方式组织协议以及实现这些协议的网络硬件和软件。每个协议属于这些层次之一。

我们再次关注某层向他的上一层提供的服务,即所谓一层的服务模型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dbf5emT9-1617367603965)(/Users/mac/Desktop/计算机网络/blog/第1章 计算机网络和因特网/14.jpg)]

(1)应用层

应用层是网络应用程序及它们的应用层协议存留的地方。因特网的应用层包括许多协议,例如HTTP(它提供了Web文档的请求和传送)、SMTP (它提供了电子邮件报文的传 输)和FTP (它提供两个端系统之间的文件传送)。我们将看到,某些网络功能,如将主机名转换成32比特的网络地址的协议域名系统(DNS) 完成的。

应用层协议分布在多个端系统上,而一个端系统中的应用程序使用协议与另一个端系统中的应用程序交换信息分组。我们把这种位于应用层的信息分组称为报文(message)。

(2)运输层

因特网的运输层在应用程序端点之间传送应用层报文。在因特网中,有两种运输协议,即TCPUDP,利用其中的任一个都能运输应用层报文TCP向它的应用程序提供了面向连接的服务。这种服务包括了应用层报文向目的地的确保传递和流量控制(即发送方/接收方速率匹配)。TCP也将长报文划分为短报文,并提供拥塞控制机制,因此当网络拥塞时,源抑制其传输速率。UDP协议向它的应用程序提供无连接服务。这是一种不提供不必要服务的服务,没有可靠性,没有流量控制,也没有拥塞控制。我们把运输层的分组称为报文段 (segment) 。

(3)网络层

因特网的网络层负责将称为数据报(datagram) 的网络层分组从一台主机移动到另一台主机。在一台源主机中的因特网运输层协议(TCP或UDP)向网络层递交运输层报文段和目的地址,就像你通过邮政服务寄信件时提供一个目的地址一样。

因特网的网络层包括著名的网际协议IP,该协议定义了在数据报中的各个字段以及端系统和路由器如何作用于这些字段。IP仅有一个,所有具有网络层的因特网组件必须运行 IP。因特网的网络层也包括决定路由的路由选择协议,它根据该路由将数据报从源传输到目的地。因特网具有许多路由选择协议。因特网是一个网络的网络,并且在一个网络中,其网络管理者能够运行所希望的任何路由选择协议。尽管网络层包括了网际协议和一些路由选择协议,但通常把它简单地称为IP层,这反映了 IP是将因特网连接在一起的黏合剂这样的事实。

(4)链路层

因特网的网络层通过源和目的地之间的一系列路由器路由数据报。为了将分组从一个节点 (主机或路由器)移动到路径上的下一个节点,网络层必须依靠该链路层的服务。特别是在每个节点,网络层将数据报下传给链路层,链路层沿着路径将数据报传递给下一个节点。在该下一个节点,链路层将数据报上传给网络层。 由链路层提供的服务取决于应用于该链路的特定链路层协议。例如,某些协议基于链路提供可靠传递,从传输节点跨越一条链路到接收节点。值得注意的是,这种可靠的传递服务不同于TCP的可靠传递服务,TCP提供从一个端系统到另一个端系统的可靠交付。链路层的例子包括以太网、WiFi和电缆接入网的DOCSIS协议。因为数据报从源到目的地传 送通常需要经过几条链路,一个数据报可能被沿途不同链路上的不同链路层协议处理。例如,一个数据报可能被一段链路上的以太网和下一段链路上的PPP所处理。网络层将受到 来自每个不同的链路层协议的不同服务。我们把链路层分组称为(framie)。

(5)物理层

虽然链路层的任务是将整个帧从一个网络元素移动到邻近的网络元素,而物理层的任务是将该帧中的一个个比特从一个节点移动到下一个节点。在这层中的协议仍然是链路相关的,并且进一步与该链路(例如,双绞铜线、单模光纤)的实际传输媒体相关。例如,以太网具有许多物理层协议:一个是关于双绞铜线的,另一个是关于同轴电缆的,还有一个是关于光纤的,等等。在每种场合中,跨越这些链路移动一个比特是以不同的方式进行的。

OSI模型

国际标准化组织(ISO)提出计算机网络围绕7层来组织,称为开方系统互连OSI)模型:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UTdElJI8-1617367603966)(/Users/mac/Desktop/计算机网络/blog/第1章 计算机网络和因特网/15.jpg)]

封装

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OyhrZTXX-1617367603971)(/Users/mac/Desktop/计算机网络/blog/第1章 计算机网络和因特网/16.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JZm80SOv-1617367603974)(/Users/mac/Desktop/计算机网络/blog/第1章 计算机网络和因特网/17.jpg)]

数据从发送端系统的协议栈向下,沿着中间的链路层交换机和路由器的协议栈上上下下,然后向上到达接收端系统的协议栈。路由器和链路层交换机都是分组交换机。与端系统类似,路由器和链路层交换机以多层次的方式组织它们的网络硬件和软件。而路由器和链路层交换机并不实现协议栈中的所有层次。链路层交换机实现了第一层和第二层;路由器实现了第一层到第三层。例如,这意味着因特网路由器能够实现IP协议(一种第三层协议),而链路层交换机则不能。我们将在后面看到,尽管链路层交换机不能识别IP地址,但它们能够识别第二层地址,如以太网地址。值得注意的是,主机实现了所有5个层次,这与因特网体系结构将它的复杂性放在网络边缘的观点是一致的。

说明了一个重要概念:封装(encapsulation)。在发送主机端,一个应用层被传送给运输层。在最简单的情况下,运输层收取到报文并附上附加信息,该首部将被接收端的运输层使用。应用层报文和运输层首部信息一道构成了运输层报文段(transport-layer segment) 。 运输层报文段因此封装了应用层报文。附加的信息也许包括了下列信息:允许接收端运输层向上向适当的应用程序交付报文的信息;差错检测位信息,该信息让接收方能够判断报文中的比特是否在途中已被改变。运输层则向网络层传递该报文段,网络层增加了如源和目的端系统地址等网络层首部信息生成了网络层数 据报(network-layer datagTam)。该数据报接下来被传递给链路层,链路层(自然而然地) 增加它自己的链路层首部信息并生成链路层帧(link-layer frame)。所以我们看到,在每一层,一个分组具有两种类型的字段:首部字段和有效载荷字段(payload field)。有效载荷通常是来自上一层的分组。

六、面对攻击的网络

网络安全领域主要探讨以下问题:

坏家伙如何攻击计算机网络,如何防御以免受他们的攻击,或者更好的是设计能够事先免除这样的攻击的新型体系结构。面对经常发生的各种各样的现有攻击以及新型和更具摧毁性的未来攻击的威胁,网络安全已经成为近年来计算机网络领域的中心主题。

七、计算机网络和因特网的历史

  • 分组交换的发展:1961〜1972

  • 专用网络和网络互联:1972~980

  • 网络的激增:1980-1990

  • 因特网爆炸:20世纪90年代

  • 最新发展

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值