深入学习计算机网络-自顶向下方法-计算机网络和因特网(一)

深入学习计算机网络-自顶向下方法-计算机网络和因特网(一)

前言:

以《计算机网络-自顶向下方法》-詹姆斯·F.库罗斯 著 此书为教材,以中科大《计算机网络》为课程,学习笔记记录整理,本书共有八个单元,以每单元进行总结整理。本文阅读学习大概需要600+分钟,当作复习回顾用。

目录:

0X00 什么是因特网?

0X01网络边缘

0X02网络核心

0x03接入网和物理媒介

0X04Internet结构和ISP

0X05分组延时丢失和吞吐量

0X06协议层次和分组模型

0X07历史

0X08小结

0X00什么是因特网?

在看书的过程时得知,所谓因特网就是一种特定的计算机网络,他是计算机网络以及协议的主要载体。那么什么是因特网?我们不妨将这个问题逐层剖开,一层一层来回答,什么是网络?什么是计算机网络?什么是协议?什么是互联网?

什么是网络?

网络是由若干节点和连接这些节点的链路构成,表示诸多对象及其相互联系,如神经元大脑网络,公路网等等。

什么是计算机网络?

由上面我们的知什么是网络,其实说白了就是一些边跟一些节点,然后根据节点的不同叫做不同的网络(个人理解),那么计算机网络就是联网的计算机所构成的系统,包括 主机节点(电脑 手机 联网的冰箱等 是数据的源 也是数据的目标 如web服务器)。

那么计算机网络中除了主机节点还有什么呢? 我们不妨想一下平常在家玩时候所用的“猫”modem 以及路由器, 包括大型企业使用的交换机等等?他们是不是也属于计算机网络的一部分呢?当然,不然把家里的路由器拔了试试还能不能上网。

所以计算机网络中的节点就分为主机节点数据交换节点

数据交换节点 路由器(网络层) 交换机(链路层) 既不是源也不是目标 只是一个数据中转节点。

在网络拓扑图中画⚪叫数据交换节点 画方形的是主机节点

把节点连在一起的叫链路  根据链路两边所连接不同的节点,链路也分为

接入链路:主机接入路由器的路线

骨干链路:交换节点连接交换节点的链路

什么是协议?

协议,网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。它的三要素是:语法语义时序

他跟我们人类的习惯很像,比如如果你要问一个人几点?你要先确定对方是否会理你 然后在询问想询问的内容,而计算机世界里把这些步骤给规范起来,这就是协议

协议

协议:是支撑互联网工作的标准,各个厂商按照协议来生产网络设备。 不同厂商的设备就可以有互操作性

这样不同厂商生产的不同网络设备遵循一个标准,大家就可以相互操作使用,不会出现不兼容等问题。

协议也按不同层次 分为网络层协议 链路层协议等等。

什么是因特网?

TCP/UDP协议为主的一小簇协议簇为主支撑工作的网络 叫因特网

互联网:把很多网络通过网络互联交换设备链接在一起的巨型网络。

因特网是互联网的一种。

从因特网具体构成角度来看:

协议控制发送、接收消息

  • 如TCP(传输控制协议)、IP(网际互连协议)、HTTP(超文本传输协议)、FTP(文件传输协议)、PPP(点对点协议)
  • Internet:“网络的网络”
  • 松散的层次结构,互连的ISP(因特网服务提供商)
  • 公共Internet vs. 专用intranet

Internet标准(在教材p3页 就是互联网标准制定的组织 不多介绍  我也给出链接

  • RFC: Request for comments
  • IETF: Internet Engineering Task Force

互联网所有的协议都是通过RFC文档在IETF的网站上发布的。一个协议可能涉及到很多RFC文档。

从因特网服务角度来看:

使用通信设施进行通信的布式应用

  • Web、VoIP、email、分布式游戏、电子商务、社交网络……

通信基础设施为apps提供编 程接口(通信服务)

将发送和接收数据的apps与互联网连接起来为app应用提供服务选择,类似于邮政服务:

  • 无连接不可靠服务
  • 面向连接的可靠服务

从因特网服务角度来看分布式应用是网络存在的理由 !

0X01网络边缘

网络边缘通常是指网络的接入层(汇接层),就是靠近户端,用于汇聚用户网络(LAN)的网络层面,也就是主机以及主机上应用程序 。

从网络结构来看网络由网络边缘网络核心接入网和物理媒介组成。

从网络类型来看互联网包括三个子系统 网络边缘网络核心网络的接入

网络结构

端系统 

主机包括 计算机操作系统、 网络应用、web服务器、app、 app背后的服务器 设备本身以及支持设备网络通信的操作系统以及操作系统运行的网络通信应用进程。

网络边缘的作用

平常使用的手机 电脑 以及任何的连接网络的设备如智能冰箱等等端系统都是在网络边缘。

网络边缘上的网络应用方便人们进行功能性使用,所以说网络边缘是网络存在的理由。

网络边缘上应用互联的几种模式

c/s模式(客户/服务器模式)

典型的主从模式,服务器先启动,客户端后启动,客户端主动请求 服务器后响应,所有的资源都在服务器,客户端通过访问服务器获得资源。

端系统的联络

存在问题

  • 消耗大:因为用户是通过ODBC连接到数据库的,且每个连接到数据库的用户都会保持一个ODBC连接,会一直占用中央服务器的资源,对服务器的要求很高,资源消耗大。
  • 宕机损失大可靠性不高:因为服务器一旦宕机,所有客户端全都访问不了,业务损失大。
  • 可扩展性差:如果需求增长超过服务器的能力,除了换服务器没有别的办法,无法扩展。

例子: 本站就是例子 你访问Drton1博客网站  你的浏览器就是客户端 而位于广州某处机房就是服务器,你访问服务器然后获得该网页以及上面的资源。

思考:C/S访问网页好像没什么要命的问题,但是我们要知道一个web网页的并没什么带宽流量,一个人访问可能也就占服务器的几十KB的带宽,所以大家一起访问对于几个G带宽的服务器根本没什么,但是如果是下载东西呢?一个人下载还好,大家一起是围攻这个服务器进行下载,那下载速度,蜗牛看了都直呼内行!

所以为了解决这个问题 另一种网络边缘互联模式应运而生,这个概念早在金融领域都已经出现,个人对个人,跳过中介,省去中介费,只不过现在搬到网络上而已。

对等(peer-peer )模式:

个人对个人 资源在个人。 个人a请求个人b时 b是服务器 b请求a 时 b时客户端。 每个节点即使客户端也是服务器。通信是分布式 载荷是分布式,请求资源的节点多 与此同时 提供资源的节点也很多。

特点:

  • 很少(甚至没有)专门的服务器。
  • p2p也是分布式应用进程。
  • 比c/s 访问一个web服务器下载速度快。 大家访问一个就是围攻这个服务器。 p2p 是一个人访问多个资源节点进行下载,比如a访问b下载该资源前一部分,访问c下载中级一部分,访问d下载后边一部分,下载速度大大增加。
  • 如 Gnutella、KaZaA、Emule、迅雷。

网络边缘上主机连接的两种方式

上面说的的是主机上应用的连接方式,那是应用层方面,而现在是两个主机的连接方式,是传输层方面,

TCP 服务 [RFC 793]:

目标:在端系统之间传输数据

握手:在数据传输之前做好准备

人类协议中:你好、你好

两个通信主机之间为连接建立状态

TCP – 传输控制协议(Transmission ControlProtocol )

Internet上面向连接的服务

TCP特点 :可靠地、按顺序地传送数据 确认和重传、流量控制、发送方不会淹没接收方、拥塞控制、当网络拥塞时,发送方降低发送速率

自我理解:TCP就像你去买东西,需要有人给你服务,去一个饭店吃饭,你要确保你饭店有人你才能进行后续的东西比如点菜什么,没人就换一家或者等会再来。当然了TCP需要有人给你服务所以他性能占用高

UDP服务[RFC 768]

目标:在端系统之间传输数据

握手:在数据传输之前未做好准备

人类协议中:我今天下午不在家你到时候直接把东西放在门口就好

UDP – 用户数据报协议(User DatagramProtocol)

Internet上无连接的服务

UDP特点:无连接、不可靠数据传输、无流量控制、无拥塞控制

自我理解:类似于寄信吧,你把信放在信箱里,并没有给邮寄员,等邮寄员来了再取出来,如果有人偷或者一些原因丢了也就丢了 你并不知道丢了 你只管寄出去。所以他是不可靠的,适合那些对可靠性要求不高的应用,比如定时报文等等。同样他对性能消耗低

0X02网络核心

网络核心是由很多路由器组成的网状网路。

网络核心的作用是数据交换。

网络核心工作原理:由路由器 交换机 组成的分布式系统 相互配合协同工作。

那么怎么才能实现网络核心的作用?也就是怎么才能实现数据交换?

电路交换

像我们知道的传统的打电话,电话话就是电路交换,电话通讯之前 要建立一个物理上的线路,随后才能通讯

电路交换

如本图 A用户给D打电话 在拨通之前,A与D建立起了一条物理线路1-2-3-4。建立完毕后 A与D可以开始沟通。

在他们打电话的过程中这四条线路其他用户都不能去用,被他们俩个独享了。但是他们之间通话是非常稳点的性能能够得到保证。

电路交换的特点:

  • 独享资源:不同享
  • 每个呼叫一旦建立起来就能够保证性能
  • 如果呼叫没有数据发送,被分配的资源就会被浪费 (no sharing) 通常被传统电话网络采用

在互联网最早时候,为了能够利用起已经建立的庞大电话网,计算机网络就是采用电路交换的方式进行连接的,那么根据我们生活经验可以知道,当时并非一个区域如果只有一个计算机上网,那么其他计算机就上不了网了,很显然好像跟我们上面所讲不共享有点矛盾,这是为什么?

将带宽进行划分

网络资源(如带宽)被分成 。

比如说一条电话线里面 给他按不同方法如频率或者时间周期等分成很多分,那么他就可以支持多个主机同时上网。

将带宽分成片的三种方法:

  • 频分(Frequency division multiplexing) FDM
  • 时分(Time-division multiplexing) TDM
  • 波分(Wave-division multiplexing)

划分方法FDM:将电磁波按照不同的频率带进行划分,划分出多个片。

TDM:比如将一秒划分多个片,每个片传输不同用户数据。

通过这些方法,一条链路采用电路交换就可以做到多路复用。

同样的如果某个片呼叫没有数据,则其资源片处于空闲状态(不共享)

不过要注意的是如果一个线路被分为十片,那么每个片的传输能力只有原来线路带宽的十分之一。

例子:

在一个电路交换网络上,从主机A到主机B发送一个640,000比特的文件需要多长时间?

  • 所有的链路速率为1.536 Mbps
  • 每条链路使用时隙数为24的TDM
  • 建立端-端的电路需500 ms
  • 根据SI标准,1kB=1000B(字节, Byte),而根据IEC标准,1kiB=1024B   这里是1kb=1000b而不是1024

我们可以知道,640000b=640kb 链路的传输带宽是1.536Mbps,但是主机A跟B传输只会获得这个链路的一片,该链路被分为二十四片,那么每片的传输带宽就是1.536M/24=64kb/s.   那么传输时间 就是640kb/64=10s,而建立链接的时间是0.5s 所以总共就需要10.5s。

要注意的是

  •  电磁波传播线路也需要时间 所以10.5并不意味着对方收到。还要加上传播延迟。
  •  如果线路较短 可以忽略不记 局域网 。
  •  如果线路巨大 不可以忽略不计 广域网。

例题图片2

由此图可以看到如果A 和B两条线无限接近那么传播延迟就无限接近于0,因为电磁波在线路中传播是以光速传播的。

电路交换是否适合计算机网络?

答案是肯定不适合,不然为什么现在不用这种方法反而给他淘汰了呢?

原因:

  • 连接建立时间长      计算机通信都是毫秒级,如果建立线路连接2s 传播2ms 对计算机来说非常不划算。
  • 计算机之间的通信有突发性,如果使用线路交换,则浪费的片较多,计算机的通信具有很强突发性。如果两个主机建立起连接才能通讯,通讯还是独享的话,资源浪费巨大 99%的浪费。
  • 即使这个呼叫没有数据传递,其所占据的片也不能够被别的呼叫使用
  • 可靠性不高,维持很多对主机的通信,核心节点设备一旦宕机,影响范围广。

适合计算机通信的方式-分组交换

网络数据以分组为单位储存-转发方式

网络带宽资源不再分分为一个个片,传输时使用全部带宽

主机之间传输的数据被分为一个个分组

资源共享,按需使用

存储-转发:分组每次移动一跳( hop )

  • 在转发之前,节点必须收到整个分组
  • 延迟比线路交换要大
  • 排队时间

这个很好理解

  • 他的储存延迟要比线路连接转发时候的长。换取了共享性。
  • 如果这个方向的链路有其他的分组在进行转发,那么就要进行排队,也换取了线路共享性。

分组交换数据交换的方式-存储转发

存储转发

被传输到下一个链路之前,整个分组必须到达路由器:存储-转发

在一个速率为R bps的链路,一个长度为L bits 的分组的存储转发延时: L/R s

Example:

本图中L=7.5Mbits   R=1.5Mbits   三次储存转发的延时?

其实很好理解,数据先全部到达第一个路由器才能进行转发到达第二个路由器,全部到达第二个路由器才能进行转发到目标主机,先到达的数据就只能在路由器里先被储存下来等待后续的数据,全部到达后才一起前往下一个,所以一条线路的转发延时就是7.5/1.5=3s,三条路就是15s

分组交换: 排队延迟和丢失

排队延时和抛弃

排队和延迟:

如果到达速率>链路的输出速率:

  • 分组将会排队,等待传输
  • 如果路由器的缓存用完了,分组将会被抛弃

排队延迟是随机的根据当前网络情况,如果前面只有一个分组那就等一次,多的话就等多次。

分组交换是按需使用的,用户有需求就发送数据包,没需求就不发。不存在某个用户一直占用线路

分组交换:统计多路复用

统计多路复用

统计时分多路复用(statistical time division multiplexing,STDM)是指动态地按需分配共用信道的时隙,只将需要传送数据的终端接入共用信道,以提高信道利用率的多路复用技术,简称STDM。

这是术语,说人话就是:出现在分组交换中,多个源主机向同一段链路发送分组,此时用统计多路复用,每个源主机得到的带宽取决于每个源主机的发送量,发的越多,得到的带宽越大,发送一样多的数据则平分该链路的带宽。

简单理解就是你发的越多给你的传输带宽越大,更人性化。

统计多路复用仍然是时间片划分,你发的越多,你获得使用的时间越多。

网络的核心功能

网络的核心功能就是路由转发。

网络核心功能

拿本图举例子  数据包过来到达路由器,路由器检查数据包的头部发现0111,他对照自己已经提前被安排好的路由表发现0111发往2的方向 ,于是将此数据包转发2方向的路由器

分组交换 vs. 电路交换

同样的网络资源,那种交换方式允许更多用户使用网络?

前提条件:

  • 1 Mb/s 链路
  • 每个用户:活动时100 kb/s   用户只有10% 的时间是活动的,使用链路。

对于电路交换:可以同时使用的用户1Mb/100kb=10人

对于分组交换:假设现在有35个用户,同时有十个以内的用户使用的概率是

概率

这里为什么是0-9而不是0-10,是因为流量强度等于1的流量要挂,简单说就是流量强度等于1的话后到的数据包排队时间趋近于无穷 具体后面介绍。

上面那个式子结果是0.9996,也就是说同时10个以上的用户使用链路时候概率是0.0004。

35个用户使用该链路的稳定性是99.6%,明显很好,所以得出结论

    同样的网络资源,分组交换允许更多的用户使用网络

那种交换方式是更适合计算机网络的突发数据特性?

适合于对突发式数据传输特点

  • 资源共享
  • 简单,不必建立呼叫

很明显分组交换非常满足。

过度使用会造成网络拥塞:分组延时和丢失

对可靠地数据传输需要协议来约束:拥塞控制

分组交换的两种方式

数据报

数据报

分组的目标地址决定下一跳

  • 在不同的阶段,路由可以改变
  • 类似:问路
  • 应用:Internent

虚电路

虚电路

图解H0对应B  然后发送A2到B   B以3发送给C   C以0发送给D。

  • 每个分组都带标签(虚电路标识 VC ID),标签决定下一跳
  • 在呼叫建立时决定路径,在整个呼叫中路径保持不变
  • 路由器维持每个呼叫的状态信息
  • 应用:X.25 和ATM

区别

数据报的方式是每个分组到达每个路由的时候,路由可以自己决定下一个转发方向的路由,像人类中的问路,走着问着。而虚电路在呼叫建立多的时候路径就已经决定好了,像出发去一个地方先导航一样。

网络分类

总结一下上面所提到的几种网络连接的方式

网络分类

0X03接入网和物理媒介

上面介绍完了,那么怎样将端系统和边缘路由器连接?

这就要说起接入网的功能了:接入网络的核心, 网络核心能把边缘节点接在一起,从而能让任意的两个端系统进行通信。

住宅接入网络的演化

电话线

电话网

这种方式在早期是最经济型的,因为之前电话网的普及,不用再铺设新的线路,将上网数据调制加载音频信号上,在电话线上传输,在局端将其中的数据解调出来;反之亦然

调制方式

  • 调频
  • 调幅
  • 调相位
  • 综合调制

拨号调制解调器

 问题:56Kbps 的速率直接接入路由器(通常更低)

不能同时上网和打电话:不能总是在线

随着人们对带宽需求越来越大这种方式逐渐淘汰。

使用电话网最经典的是:digital subscriber line (DSL)-数字用户线路  

采用现存的到交换局DSLAM的电话线

下行:向用户家传输的方向

上行:用户向外传输的方向

  • DSL线路上的数据被传到互联网
  •  DSL线路上的语音被传到电话网
  •  < 2.5 Mbps上行传输速率(typically < 1 Mbps)
  • < 24 Mbps下行传输速率(typically < 10 Mbps)

DSL包括DSL包括ADSL(Asymmetric Digital Subscriber Line,非对称数字用户线)、RADSLHDSLVDSL等等,原理相同。

这是最经典的利用已有线路进行接入的方式,还有利用有线电视网。

有线电视网-线缆网络

电视网

但是像电视线路是单向的,所以要改造成双向。

使用有线电视网 : FDM: 在不同频段传输不同信道的数据,数字电视和上网数据(上下行)

                              HFC (hybrid fiber coax):非对称: 最高30Mbps的下行传输速率, 2 Mbps 上行传输速率

线缆和光纤网络将个家庭用户接入到 ISP 路由器

  1. 各用户共享到线缆头端的接入网络
  2. 与DSL不同, DSL每个用户一个专用线路到CO(central office)

除了上述两种方式 还有一种方式是用已经搭建好的电网-电缆传输,但是中国基本没有用过,国外用的多。

企业接入网络

上面那种就是一个区域的住户 在一条链路上然后连接一个ISP 跟外界的网络连接。

企业接入网络这种方式:

企业网

是一个企业直接接入一个ISP,你可以理解ISP是和其他网络连接的中间人,下节具体介绍。

经常被企业或者大学等机构采用

  • 10 Mbps, 100Mbps, 1Gbps, 10Gbps传输率
  • 现在,端系统经常直接接到以太网络交换机上

无线接入网络

各无线端系统共享无线接入网络(端系统到无线路由器)

  • 通过基站或者叫接入点

无线

物理媒体

物理媒体指的是第0层。

物理链路:连接每个发送-接收对之间的物理媒体

导引型媒体:

信号沿着固体媒介被导引:同轴电缆、光纤、 双绞线

非导引型媒体:

开放的空间传输电磁波或者光信号,在电磁或者光信号中承载数字数据

简单说就是无线传播媒体那些东西。

双绞线 (TP):

两根绝缘铜导线拧合

5类:100Mbps 以太网,Gbps 千兆位以太网

6类:10Gbps万兆以太网

双绞线

同轴电缆

  • 两根同轴的铜导线
  • 双向

基带电缆:

  • 电缆上一个单个信道
  • 应用:Ethernet

 宽带电缆:

  • 电缆上有多个信道
  • 应用:HFC

电缆

光纤和光缆

光脉冲,每个脉冲表示一个 bit,在玻璃纤维中传输

Bit: 在发送-接收对间传播

特点:

  • 高速:
  • 点到点的高速传输(如10 Gps-100Gbps传输速率 )
  • 低误码率:在两个中继器之 间可以有很长的距离,不受 电磁噪声的干扰
  • 安全

解释:

安全:光信号以特定角度射入 进行全反射 打出去传播的很远 如果想要获取 必须接受 截获。

光纤分为 单模光纤 只能垂直射入来全反射

多模光纤 可以在一定范围内进行全反射

无线链路

开放空间传输电磁波,携带要传输的数据,无需物理“线缆”,双向传播

传播环境影响:

  • 反射
  • 吸收
  • 干扰

无线链路类型

地面微波 速率

  • e.g. up to 45 Mbps channels

LAN (e.g., WiFi)  速率

  • 11Mbps, 54 Mbps,540Mbps…

wide-area (e.g., 蜂窝) 速率

  • 3G cellular: ~ 几Mbps
  • 4G 10Mbps
  • 5G 数Gbps

卫星 

  • 速率每个信道Kbps 到45Mbps (或者 多个聚集信道)
  • 270 msec端到端延迟
  • 同步静止卫星和低轨卫星
  • 卫星 延迟大

其他想说的

5G推动不积极原因是 没有一个杀手锏一样的应用把几G的带宽能够充分利用起来,在网速发展和应用发展是相辅相成的,一个不行,另一个就发展不起来。

0X04Internet结构和ISP

ISP

网络业务提供商(Internet Service Provider,简称ISP),互联网服务提供商,即向广大用户综合提供互联网接入业务、信息业务、和增值业务的电信运营商。

说白了,这些运营商在一个区域放一个大型交换机,把这个区域的网络跟其他网络连接起来。ISP就是这个功能。

互联网网络结构 -逐渐演化模型

端系统通过接入ISP(Internet Service Providers)连接到互联网

  • 住宅,公司和大学的ISP

接入ISPs相应的必须是互联的 因此任何2个端系统可相互发送分组到对方

导致的“网络的网络”非常复杂

  • 发展和演化是通过经济的和国家的政策来驱动的

让我们采用渐进方法来描述当前互联网的结构

网络演化1

世界上数百万ISP,我们如何把他们全连接到一起呢?让他们互相都能到达,很简单给他们之间都连一条线就好了,如图:

网络演化2

但是问题很明显,这样做消耗的资源太多,花费多,而且如果加入一个新的isp那么是不是还要把它再把所有节点连接一次。所以毋庸置疑被淘汰。

网络演化3

于是乎设置一个核心的全球ISP,其他网络只要连接这些ISP就可以访问其他网络,看起来不错,当然这也是一门非常好的生意,这些全球ISP可以向那些当地的网络进行收费。于是乎只要有利益,就会有竞争。

网络演化4

于是乎很多全球运营商都可以提供这种服务,每个运营商都有很多客户,那么连接A运营商ISP的网络 想访问连接B运营商ISP的网络可以吗?从图上看是不可以的,那怎么办?于是这几家运营商就商量内部互联,这样也可以说是一个不错的卖点,毕竟你连接我的ISP你也可以访问连接其他运营商ISP的网络,这就是合作。

网络演化5

内部连通方式:

peer link (对等连接):就是 每个运营商都出一个路由器 出链路,是平等的

Internet exchange point(IXP) 互联网交换点,通过这些交换点进行联通。

然后呢? 到这里就结束了吗? 试想全球那么多区域国家人口,如果单单几个运营商就想深入各个国家地区去做业务那是很难得,于是这些运营商就把业务进行细分,分为大洲,国家等等,比如在亚洲,中国,印度先接入亚洲的ISP,再接入全球的ISP。

网络演化6

至此,互联网的整体机构大致成型! 但是有一个问题就是他们都是收费的,只要你用的这些ISP 链路你就要给钱,好像也没什么,但是有一些科技巨头不乐意了。比如说谷歌,他有数十亿的用户,每天都要用谷歌的浏览器等等业务,来访问谷歌的数据库,那么问题就出现了,我人在非洲,去访问北美洲的谷歌数据库,跨了这么远,访问速度还慢,还收费,于是这些科技巨头就自己在各大洲部署自己的数据中心,这样的话访问这些数据库就可以就近访问,提升了使用体验,还不用给ISP运营商掏钱了。

网络演化7

至此整个互联网的结构清晰明了。

整理

结构分层:

第一层就是国家型的大型ISP,跟世界联通。

网络演化8

第二层就是区域类的ISP,跟本国其他区域联通

网络演化9

第三层就是居民区的ISP跟第二层ISP联通。

网络演化10

一个主机连接其他主机可能要经过很多很多网络

网络演化11

ISP之间连接方式

POP: 高层ISP面向客户网络的接入点,涉及费用结算,如一个低层ISP接入多个高层ISP,多宿(multi home)

对等接入:2个ISP对等互接,不涉及费用结算

IXP:多个对等ISP互联互通之处,通常不涉及费用结算,对等接入

ICP自己部署专用网络,同时和各级ISP连接,这里的ICP(Internet Content Providers)内容提供商 就是上面说的谷歌这种。

0X05分组延时 丢失 和吞吐量

上面已经说了,计算机网络采用的是分组交换,那么分组交换最大的问题就是比线路交换更多的延迟。

分组丢失和延时是怎样发生的?

分组延时1

为什么不把路由器缓存搞得很大呢?几个G?几个T?

因为如果这样的话排队时间太久,甚至会达到几天,应用层受不了,一直在等待响应。没有意义。

为什么要排队?

因为输出能力<需要传输的能力,所以有排队。

四种分组传播延时

分组延时2

1.节点处理延时

  • 检查 bit级差错
  • 检查分组首部和决定将分组导向何处

2.排队延时

  • 在输出链路上等待传输的 时间
  • 依赖于路由器的拥塞程度

3.传输延时

  • R=链路带宽(bps)
  • L=分组长度(bits)
  • 将分组发送到链路上的时间= L/R
  •  存储转发延时
  • 这是将所有分组比特推向链路所需要的时间,实际的传输时延通常在毫秒到微秒级。

4.传播延时

  • d = 物理链路的长度
  • s = 在媒体上的传播速度(~2×108 m/sec)
  • 传播时延等于两台路由器之间的距离除以传播速率,即传播时延是d/s,期中d是两台路由器之间的距离,s是该链路的传播速率,传播时延在毫秒级

处理延时一般是确定的,而排队延时是随机的。

下面举个例子更加理解这四个延时。

例子:

分组延时3

汽车以100 km/hr 的速度传播,收费站服务每辆车需 12s(传输时间)。

这里其实就是把bit比作汽车,分组比作汽车,来模拟bit在传输中的过程。

Q: 在车队在第二个收费站排列好之前需要多长时间?

每辆车通过100km都需要1h,这是传播延迟,经过收费站要耗时12s,这是传输延时,十辆车的传输延时就是120s,所以总共62min。

例子扩展:汽车以1000 km/hr 的速度传播汽车,收费站服务每辆车需 1分钟,图片还是上图。

Q:在所有的汽车被第一个收费站服务之前,汽车会到达第二个收费站吗?

当然!7分钟后(收费站时间1分组+传播时间6分钟),第一辆汽车到达了第二个收费站,而第一个收费站仍有3辆汽车。

在整个分组被第一个路由器传输之前,第一个比特已经到达了第二个路由器!

分组延时4

排队延时

  • R=链路带宽 (bps)
  • L=分组长度 (bits)
  • a=分组到达队列的平均速率

根据上面三个数量,可以得出一个定义

  • La/R ~ 0: 平均排队延时很小
  • La/R -> 1: 延时变得很大
  • La/R > 1: 比特到达队列的速率超过了从该队列输出的速率,平均排队延时将趋向无穷大!

流量强度 = L*a/R
当流量强度>1的时候,则意味着比特到达队列的平均速率超过从队列中发射出去的速率。这种情况下比特会在队列中不断淤积,所以导致排队延迟不断的增大,所以流量工程中有一条金科玉律:设计系统时流量强度不能大于1

流量强度

Internet的延时和路由

Internet 的延时和路由是什么样的呢?

Traceroute 诊断程序: 提供从源端,经过路由器,到目的的延时测量

For all i:

  • 沿着目的的路径,向每个路由器发送3个探测分组
  • 路由器 i 将向发送方返回一个分组
  • 发送方对发送和回复之间间隔计时

网络追踪

实验:往返延时  这里拿本站ip举例 114.132.49.186  跟踪一下访问这个ip经过的路由和延迟

网络跟踪

可以看到位于河南某地的我访问了位于广州某机房的ip,跳转了13个路由器,其中第一个是我家的路由器,后面就以此区域,市级,省的路由往外面跳,三次的往返延时也给我们列了出来,也有一些请求超时在中间某些节点,这是很正常的现象,因为很多运营商的路由器为了防止DDOS等攻击 就不响应ICMP请求,而我们这个实验原理就是ICMP报文。

实验原理:

运用ICMP协议,互联网控制报文协议,ping也是这个协议,ICMP头部TTL(生存时间) 每过一个路由器 ttl减1。如果减为0,则被抛弃。此时路由报告给源主机。

依据此原理 将ttl设置为1 就是测试第一个路由的往返延时 Round Trip Time

2就是第二个 以此类推。

结束原理 当ICMP报文到达目标主机 访问了一个没有应用进程守护的端口 然后报文被抛弃 随后目标主机进行ICMP反馈 源主机收到 测试结束。 最后收到目标端口不可达的ICMP报文。

分组丢失

链路的队列缓冲区容量有限

  • 当分组到达一个满的队列时,该分组将会丢失
  • 丢失的分组可能会被前一个节点或源端系统重传,或根本不重传

分组丢失

丢失原因:ttl为0

或者队列满了。

如果本条链路可靠 那么上个节点重传。

若不可靠 是源主机重传。如果源主机是udp 那么就不重传。

三种结果

  • 上层重传
  • 源主机重传
  • 抛弃不重传

如果物理层是可靠的 那么上层(链路层)就可以不可靠,下面干了这件事上面就不用干。

如果物理层不可靠 无线等 那么上层就要亡羊补牢,让整体传输变得可靠。

吞吐量

这个简单,看图就容易明白,当时也没做很多笔记。

吞吐量1

吞吐量2

吞吐量3

吞吐量4

0X06协议层次和分组模型

网络是一个复杂的系统!

网络功能繁杂:数字信号的物理信号承载、点到点、路由、rdt、进程区分、应用等

现实来看,网络的许多构成元素和设备:

  • 主机
  • 路由器
  • 各种媒体的链路
  • 应用
  • 协议
  • 硬件, 软件

如何组织和实现这个复杂的网络功能

模块化思想– 就是熟悉的面向对象思想

模块化

模块之间互相调用 有点面向对象的感觉,这种方式硬件基础设计起来难度很大,后来被下一种方式给替代了。

分层次思想-现在采用的方式

分层次

好处:

  • 1)各层之间相互独立:高层是不需要知道底层的功能是采取硬件技术来实现的,它只需要知道通过与底层的接口就可以获得所需要的服务;
  • 2)灵活性好:各层都可以采用最适当的技术来实现,例如某一层的实现技术发生了变化,用硬件代替了软件,只要这一层的功能与接口保持不变,实现技术的变化都并不会对其他各层以及整个系统的工作产生影响;
  • 3)易于实现和标准化:由于采取了规范的层次结构去组织网络功能与协议,因此可以将计算机网络复杂的通信过程,划分为有序的连续动作与有序的交互过程,有利于将网络复杂的通信工作过程化解为一系列可以控制和实现的功能模块,使得复杂的计算机网络系统变得易于设计,实现和标准化

他不允许跨层的调用 只允许相邻层次的调用。

计算机网络采用分层的方式来设计实现,把功能复杂的 分解成简单的方式。

例子-更加生动形象的解释分层式

一、航线系统

两个端系统的交互,就好像我们乘坐飞机去买票一直到到达目的地出站的过程,都是一层一层的去完成,本层完成后进入下一层,然后每层去完成他该完成的事情,最终一个复杂的事情被分解成一些简单的事情。

航线

二、异地哲学家的交流

两个语言不通的哲学家交流,A哲学家先用他自己的语言写好内容,然后给他的翻译官,他的翻译官把该内容翻译成一个对方翻译官能看懂的语言,然后交给邮局,邮局负责把信件邮到目的地,然后目的地的邮局负责把该信件给B哲学家的翻译官,B哲学家负责把信件翻译成B哲学家的语言然后交给B哲学家。

在这个过程中,每个人负责的事务都是清晰的,下层并不知道上层所要干的事情,而上层可以使用下层提供的服务,比如A哲学家就会使用翻译官的翻译。

异地哲学家

这种分层方法的好处 比如 传递时候最下层 可以靠马车 也可以随着科技的进步靠火车运输 而翻译这一层丝毫不用关心下层的实现 相同的哲学家也不用关心翻译采用何种技术进行翻译。

航线层次

把大的问题分解成小的 便于采用新技术 问题是:效率低。上层使用下层的服务,下层向上层提供服务,对等层的模块 通过协议来交换信息,来实现功能。

军队指挥就是分层的体现,协议的目的是为了向上层提供更好的服务 实现靠下层的服务,协议是水平关系。

物理层直接发电磁波 或者光信号 物理层就是士兵了 没什么能借助的。 最上层应用不需要向别的层提供服务

应用层是网络存在的理由,下层提供的服务是被服务层以下所有服务的总和。

服务访问点

服务提供者: TCP

服务访问点:SAP 区分不同的上层用户 发送正确的相关报文,套接字(传输层讲)主要作用就是 传输层下来时候加标注 传过去给对方应用时 加以区分,就像邮寄的时候标注信息一样。

原语就相当于 给TCP说我要你提供什么服务。服务用户 通过SAP告诉服务提供者 我要访问你什么功能,服务提供者通过原语告诉服务用户 我向你提供什么服务。

服务的类型

服务的类型取决于应用的连接方式 ,连接方式如TCP/UDP等。

服务和协议

服务和协议

协议说白了就是上面人跟上面人约好的事情,交给下面人一层层去办。

数据单元

数据单元

n层向n+1层提供服务,下层为上层提供服务。

数据单元

  • SDU 服务数据单元 上层要求下层传的东西
  • ICI 就是本层加的控制信息数据,他俩合成IDU
  • 上层的SDU 加上本层的一些数据信息在头部 形成第n层的PDU 协议数据单元
  • SDU非常大的时候 分解成一个个小块 每个小块都加上第n层的头部 形成第n层的pdu
  • 反之 如果SDU非常小的时候,就把多个SDU合成一个大的

本层的头部信息 一部分来自 ici 有一部分是后加的

每一层PDU都有bodyhead

body来自上面的SDUhead来自上层的ICI,再加上本层的控制信息。

上层的SUD相当于货物 如果货物较多 那么分多个卡车

卡车头就是本层的头部。

每层的PDU都有他自己的称呼

例如:

  • 应用层 – 应用报文
  • 传输层-报文段
  • 网络层-分组,如果无连接叫数据报
  • 链路层的PDU叫帧
  • 物理层 叫位

网络封装过程

虚线是逻辑上的交互,实线是物理上的交互,这个在后面的每个层次时候会更加细讲。

分层处理和实现复杂系统的好处

对付复杂的系统

  • 概念化:结构清晰,便于标示网络组件,以及描述其相互关系
  • 分层参考模型
  • 结构化:模块化更易于维护和系统升级
  • 改变某一层服务的实现不影响系统中的其他层次
  • 对于其他层次而言是透明的
  • 如改变登机程序并不影响系统的其它部分
  • 改变2个秘书使用的通信方式不影响2个翻译的工作
  • 改变2个翻译使用的语言也不影响上下2个层次的工作

分层思想被认为有害的地方?

分层的问题

  • 主要问题 每层的交换导致 效率低

但是对于计算机网络来说是分层的好处比坏处多

Internet协议栈

Inter协议栈、

物理层来说

上层交下来给的帧Frame 转化为电磁波或者光信号,对于接收方 把这些信号给还原回原来的数据。

链路层来说:

(解决点到点)传输以帧为单位的数据,区分那些比特的特殊组合是帧的开始,那些比特的特殊组合是帧的结束 中间的就是帧,在相邻的两点传输以帧为单位来传输,链路层和物理层封装在网卡中 他们俩协议是配套的像ppp 802.11。

网络层来说:

解决端到端的传输。在链路层的基础上 以分组为单位的端到端的数据传输。1.转发(局部) 2.路由(全局)

IP协议转发用的路由协议 一系列协议。

传输层来说:

解决进程到进程,进程对应起来

进程到进程的区分 不能乱 网络层只能主机到主机服务

网络层是不可靠的 可能丢了 乱了 传输层把不可靠的通信服务变成可靠的。不出错 不重复 不丢失 不失序

基本就两种协议TCP,UDP。

应用层来说:

完成应用报文应用报文的交互,应用层的协议是最多的。

ISO/OSI参考模型

ISO参考模型

这两层作用在TCP/IP的体系中应用层自己去做这些事情。

OSI体系虽然是官方提出的标准,但十分有趣的是,OSI虽然是官方提出的,但是由于一些原因,在它被完善之前,由民间开发的TCP/IP早已投入实际使用了,所以它几乎是只存在与教科书中,并没有大范围地投入使用。

封装和解封

封装和解封

到交换机是两层的解封装再封装,到路由器是三层的解封装再封装,到目的完成一个大的解封装。

结合上面给的飞机和翻译家的例子,这个东西就很容易理解了。

 

0X07历史 

历史啊,我就列出来不做解释,感兴趣的可以看看。

历史1

历史2

历史3

历史4

历史5

历史6

历史7

 

0X08小结

小结1

组成角度看 什么是互联网

  • 边缘:端系统(包括应用)+接入网
  • 核心:网络交换设备+通信链路
  • 协议:对等层实体通信过程中遵守的规则的集合      语法,语义,时序

为了实现复杂的网络功能,采用分层方式设计、实现和调试

  • 应用层,传输层,网络层,数据链路层,物理层
  • 协议数据单位:报文,报文段,分组,帧,位

从服务角度看互联网

  • 通信服务基础设施,提供的通信服务:面向连接 无连接
  • 应用

应用之间的交互

  • C/S模式
  • P2P模式

小结2

数据交换

  • 分组数据交换
  • 线路交换

比较线路交换和分组交换

分组交换的2种方式

  • 虚电路
  • 数据报

接入网和物理媒介

 接入网技术:

  • 住宅:ADSL,拨号,cable modem
  • 单位:以太网
  • 无线接入方式

 物理媒介

  • 光纤,同轴电缆,以太网,双绞线

ISP层次结构

小结3

分组交换网络中延迟和丢失是如何发生的

  • 延迟的组成:处理、传输、传播、排队

网络的分层体系结构

  • 分层体系结构
  • 服务
  • 协议数据单元
  • 封装与解封装

历史

 

此文章所有内容都为本作者学习过程中整理发布,因为内容过长,可能内容中存在错误等,欢迎联系本人指正,交流学习。

© 版权声明
THE END
喜欢就支持一下吧
点赞144 分享
评论 共2条

请登录后发表评论