目录
2.1.2.服务访问点 SAP (Services Access Point)
2.2.1.面向连接的服务( Connection-oriented Service)
2.2.2.无连接的服务(Connectionless Service)
4.1980-1990: 体系结构变化, 网络数量激增,应用丰富
5.1990, 2000’s: 商业化, Web, 新的应用
(一)什么是网络?
1.什么是网络?
节点 + 边组成和大小形状无关的拓扑
2.计算机网络?
联网的计算机组成的系统
2.1.节点
- 主机节点:主机及其上面运行的的应用程序
- 数据交换节点:各种网络交换设备
- 第一层:中继器
- 第二层:交换机——链路层
- 第三层:路由器——网络层
- 第四层:负载均衡设备——更高层…….
2.2.边:通信链路
- 接入网链路:主机连接到互联网的链路
- 主干链路:路由器间的链路
2.3.协议
对等层实体在通信过程中应该遵守的规则的集合,包括了语法,语义和时序
协议定义了在两个通信实体之间交换的报文格式和次序,以及在报文传输和/或接收或者其他事件方面所采取的动作。
- 数据多长,几个字段————语法
- 字段取某个值时代表的含义————语义
- 响应事件————次序(时序)\动作
协议分为不同层次,对应不同层次的协议实体。必须要要对等层的实体遵守相同的规范(协议)才能实现通信,不同层次的实体无法通信,因为不同层之间协议不同。
因为协议,不同的厂家生产的设备或软件从而可以互操作。
总的来说,节点和边只是将通信的道路打通。就好比中国的甲和德国的乙打电话,光打通电话还不成,一个讲岳阳话一个讲德语,说啥还是听不懂,所以必须有一个双方约好的统一的交流的格式、时间,顺序等等,这个就是协议。这个协议是甲和乙约定的,那这个时候法国的丙想插进来,欸,不成,这丙啥也听不懂啊,所以不同协议实体无法通信。
3.什么是Intnert?
由TCP/IP协议簇为主来支撑起工作的网络系统
3.1.从网络的角度
Internet——网际、互联网,一堆的网络由网络互联设备连起来的“网络的网络”。
3.2.从具体构成的角度
边+节点
- 数以十亿计、互联的计算机设备(即主机节点)。
- 通信链路
- 分组交换设备(即数据交换节点):转发分组
3.3.从服务的角度
使用通信设施进行通信的分布式的应用进程(网络存在的理由)
向进程提供通信服务(编程接口)的基础设施(包括了应用层以下的所有协议实体)
- 将发送和接收数据的apps与互联网连接起来
- 为apps提供服务选择,类似于邮政服务:
- 无连接不可靠服务——UDP
- 面向连接的可靠服务——TCP
3.4.Internet标准
- RFC:Request for comments
- IETF:Internet Engineering Task Farce
(二)网络结构与通信模式
1.网络结构
- 网络边缘:数据的源和目的
- 主机
- 应用程序(client & server)
- 网络核心:数据交换
- 互联的路由器
- 网络的网络
- 接入网、物理媒体:
- 有线或无线通信链路
如图,这就是一个计算机网络的概念图,可以看到,一个椭圆将整个系统分隔成了两部分。外面是许多直接连进椭圆方形节点,里面是许多圆形节点互连形成复杂的拓扑网络。方形节点为主机节点(host),结构以叫端系统(end system),是信息的源和目的。换句话说,计算机网络中纷飞的报文、分组都来自于这些边缘的主机节点,目的地也是这些主机节点。更具体的来说,这些主机节点就是我们在使用的终端设备,如个人pc,智能手机,随着物联网时代到来,一些智能穿戴设备,智能家居设备也加入进来。
2.通信逻辑
“我”——>网络核心,网络核心—–>其他所有端系统 == “我” —–>其他所有端系统
3.通信模式
3.1.客户端/服务器模式
客户端(从)向服务器(主)请求、接收服务。
资源在服务器,服务器被动响应客户端的请求
问题:可扩展性差,随着连接的客户端增多,在某一个阈值时,服务器处理能力断崖式下降(甚至是宕机),资源集中在服务器,服务器能力有限,一旦宕机,损失很大
3.2.对等(peer2peer)模式
很少(甚至没有)专门的服务器,通信是分布式的,且peer节点之间没有主从关系,在不同会话上,同一台端系统,可能即是服务器,也是客户端。随着网络里peer节点增多,请求的节点越来越多,同时提供服务的节点也越来越多,可扩展性强。
3.3.混合模式
4.基础设施提供服务的两种方式
4.1.面向连接的方式
握手:在数据传输之前做好准备,即两个通信主机之间为连接建立状态
TCP-传输器控制协议(Transmiss Control Protocol)向上层提供的服务是面向连接的
面向连接和有连接
- 面向连接,通信状态只在端系统中维护,基础设施并不知道这是一个面向连接的通信
- 有连接,不只是端系统,基础设施也要维护有连接的通信状态
TCP服务:
- 可靠的、按顺序地传送数据:确认和重传
- 流量控制:发送方不会淹没接收方
- 拥塞控制:当网络拥塞时,发送方降低发送速率
使用TCP的应用:HTTP(web)、FTP(文件传输)、Telnet(远程登陆)、SMTP(e-ail)
4.2.无连接的方式
UDP-用户数据报协议(User Datagram Protocol)
UDP服务:
- 无连接
- 不可靠数据传输
- 无流量控制
- 无拥塞控制
使用UDP的应用:流媒体、远程会议、DNS、Internet 电话
(三)网络核心:路由器的网状网络
1.基本问题:数据怎么通过网络进行传输
电路交换:为每个呼叫预留一条专有电路,如电话网
分组交换:
- 将要传输的数据分成一个个单位:分组
- 将分组从一个路由器传到相邻路由器(hop),一段段从源端传到目的端
- 每段:采用链路的最大传输能力(带宽)
2.电路交换
端到端的资源被分配给从源端到目的端的呼叫”call“,
连接的建立,是由信令系统在网络核心当中为两者之间的通信的分配一条独享的链路,此时沿着发送方和接收方之间路径上的交换机都将为该连接维护连接状态。通常,一条链路路可以用复用的方式分成若干个线路(piece),每个通信的call使用一个piece。连接建立后,双方开始通信 。
实际上,通信连接的建立就是信令系统在网络核心中,挑选出空闲的、且能够连接源和目标的piece并使其连接成一条线路 。
独享资源:不同享,每个呼叫一旦建立起来就能够保证性能,如果被分配的资源没有数据发送,被分配的资源就会被浪费(no sharing),通常被传统电话网络采用。
图中,每段链路有四条线路:
此呼叫使用了上面链路的第二个,右边链路的第一个线路(piece)
网络资源(如带宽)被分成片
为呼叫分片:如果某个呼叫没有数据,则其资源片处于空闲状态(不共享)
将带宽分成片
- 频分复用
- 时分复用
- 波分复用
详细参考:计网补充:线路交换
计算题:在一个电路交换网络上,从主机A到主机B发送一个640000比特的文件需要多长时间?
- 所有的链路为1.536Mpbs
- 每条链路使用时隙数为24的TDM
- 建立端到端的电路需500ms
每条链路的速率(一个时间片):1.536Mbps/24 = 64kbps
640000b/64kbps = 10s
T = 建立连接时间+传输时延 = 10.5s
这里的T是A发完最后一个比特的时间,B接收完最后一个比特还要经过传播时延。
电路交换不适合计算机之间的通信
- 连接建立时间长
- 计算机之间的通信由突发性,如果使用线路交换,则浪费的片较多
- 可靠性不高:路由宕机影响巨大
在电路交换网络中,在端系统间通信会话期间,预留了端系统间沿路径通信所需要的资源(缓存,链路传输速率)在分组交换网络中.这些资源则不是预留的;会话的报文按需使用这些资源,其后果可能是不得不等待(即排队)接入通信线路。一个简单的类比是,考虑两家餐馆,一家需要顾客预订,而另一家不需要预订,但不保证能安排顾客。对于需要预订的那家餐馆,我们在离开家之前必须承受先打电话预订的麻烦,但当我们到达该餐馆时,原则上我们能够立即入座并点菜,对于不需要预订的那家餐馆,我们不必麻烦地预订餐桌,但当我们到达该餐馆时,也许不得不先等待一张餐桌空闲后才能入座。
因特网尽最大努力以实时方式交付分组,但它不做任何保证。
3.分组交换
在各种网络应用中、端系统彼此交换报文(message)。报文能够包含协议设计者需要的任何东西,报文可以执行一种控制功能,也可以包含数据,为了从源端系统向目的端系统发送一个报文,源将长报文划分为较小的数据块,称之为分组 (packet)。
3.1.以分组为单位存储-转发
存储转发传输是指在交换机能够开始向输出链路传输该分组的第一个比特之前,必 1须接收到整个分组。
- 网络带宽资源不再分成一个个片,传输时使用全部带宽
- 主机之间传输的数据被分为一个个分组(pocket)
- 分组每次移动一跳(hop)
- 在转发之前必须收到整个分组
- 延迟比线路交换要大
- 有排队时延
在这个简单例子中,该路由器的任务相当简单:将分组从一条(输 入)链路转移到另一条唯一的连接链路。 在上图所示的特定时刻,源已经传输了分组的一部分,分组l的前沿已经到达了路由器。因为该路由器应用了存储转发机制,所以此时它还不能传输已经接收的比特,而是必须先缓存(即“存储")该分组的比特。仅当路由器已经接收完了该分组的所有比特后,它才能开始向出链路传输(即“转发”)该分组。
源在时刻0开始传输,在时刻L/R秒, 因为该路由器刚好接收到整个分组,所以它能够朝着目的地向出链路开始传输分组;在时刻2L/R,路由器已经传输了整个分组,并且整个分组已经被目的地接收。所以一个分组的总时延是2L/R。如果交换机一旦比特到达就转发比特(不必首先收到整个分组),则因为比特没有在路由器保存,总时延将是L/R。
现在来计算从源开始发送第一个分组到目的地接收到所有三个分组所需的时间。 与前面一样,在时刻L/R路由器开始转发第一个分组。而在时刻L/R源也开始发送第二个分组,因为它已经完成了第一个分组的完整发送。因此,在时刻2L/R,目的地已经收到第一个分组并且路由器已经收到第二个分组。类似地,在时刻3L/R,目的地巳经收到前两个分组并且路由器已经收到第三个分组。最后在时刻4L/R,目的地已经收到所有3 个分组。
考虑下列一般情况:通过由N条速率均为R的链路组成的路径(所以, 在源和目的地之间有N-1台路由器),从源到目的地发送一个分组。应用如上相同的逻 辑,我们看到端到端时延是:
3.2.为什么需要先存储再转发?
存储-转发,每个节点需要收全发过来的分组才进行转发,这里就势必会消耗一个接收的时延,为什么不直接收到了就转发呢?仔细想一下,如果收到了字节就转发,那实际上就是不分片的电路连接嘛,如果这个时候你发一个足够长的分组(假设能够将这条链路塞满),如果交换节点收到比特就转发,那么只要你的分组发出去,这整条链路即相当于被你独占了。只要你还没传完,别人就一直用不了这个链路。如果是存储-转发,那么在第一个交换节点存储你发的分组时,这条链路的其他跳链路给别的客户端发的分组使用,这时每个人最多独占一跳的链路资源。牺牲一些时延来换取共享性。
3.3.排队延迟和丢失
每台分组交换机有多条链路与之相连。对于每条相连的链路,该分组交换机具有一个 输出缓存(outputbuffer, 也称为输出队列(outputqueue)),如果到达的分组需要传输到某条链路,但发现该链路正忙于传输其他分组,该到达分组必须在输出缓存中等待。
存储-转发除了存储时会有时延,有时候更重要的是排队时延,如果到达速率 > 链路的输出速率,分组将会排队,如果一直排到路由器缓存用完了,后面再来的分组将会被丢弃。
所以,更多的时延、可能的数据丢失,都是分组交换为了获取共享性付出的代价。
4.网络核心的关键功能
- 路由:决定分组采用源到目标的路径(全局)
- 转发:将分组从路由器的输入链路转移到输出链路(局部)
路由实体通过路由算法算出路由表,路由器根据路由表决定如何转发
统计多路复用: 特殊的时分复用
为什么说分组交换比线路交换支持的用户多?(定量分析)
1Mb/s链路
每个用户:
- 活动时100kb/s
- 10%的时间是活动的(突发性强)
电路交换:10个用户
分组交换:
当同时使用人数>9的时候,网络会挂掉,所有我们可以假设有m个用户,支持不了的概率:
当m = 35时,Pn为0.0004,即在有用户35个人的情况下,网络挂掉的概率是0.4%。
两个问题:为什么这里分组交换不能支持十个人同时上网?
这里有一个流量强度的概念,当网络中流量强度为1的时候,网络就会挂掉,所以分组交换这里不能满打满算的使用这么多带宽,需要留有余量。
网络挂掉的概率是0.4%,那这算不算能够支持35个人使用呢?
这里的0.4%是指用户流量大于带宽的概率,但是别忘了我们还有补丁:路由器缓存,当用户流量大于带宽的时候,多的分组就会进入缓存排队,当网络没那么繁忙的时候再发出去。
分组交换适用于突发式数据传输
- 资源共享
- 简单,不必建立呼叫
过度使用会造成网络拥塞:分组延迟和丢失
- 对可靠地数据传输需要协议来约束:拥塞控制
如何提供类似电路交换的服务?(多媒体应用服务)
5.分组交换分类
分组的存储转发一段一段从源端传到目标端,按照有无网络层的连接,分成:
5.1.数据报网络
- 分组的目标地址决定下一跳
- 在不同的阶段,路由可以改变
- 类似:问路
- Internent
工作原理:
- 在通信之前,无须建立起一个连接,也不需要维护路由器状态,有数据就传输
- 每一个分组都独立路由(路径不一样,可能会失序)
- 路由器根据分组的目标地址进行路由
在数据报网络中,每个数据分组携带目的地址,每台路由器有一个将目的地址映射到链路接口的转发表。当分组到达路由器时,路由器使用该分组的目的地址在转发表中查找适当的输出链路接口,每个分组独立选路(因为转发表可能更新)。
5.2.虚电路网络
- 每个分组都带标签(虚电路标识 VC ID),标签决定下一跳
- 在呼叫建立时(握手)决定路径,在整个呼叫中路径保持不变
- 采用虚电路方式传输时,物理媒体被理解为由多个子信道(称之为逻辑信道LC)组成,子信道的串接形成虚电路(VC),利用不同的虚电路来支持不同的用户数据的传输。
- 路由器维持每个呼叫的状态信息
- X.25 和ATM
采用虚电路进行数据传输的过程
虚电路建立:发送方发送含有地址信息的特定的控制信息块(如:呼叫分组),该信息块途经的每个中间结点根据当前的逻辑信道(LC)使用状况,分配LC,并建立输入和输出LC映射表,所有中间结点分配的LC的串接形成虚电路(VC)。
数据传输:站点发送的所有分组均沿着相同的VC传输,分组的发收顺序完全相同;
虚电路释放:数据传输完毕,采用特定的控制信息块(如:拆除分组),释放该虚电路。通信的双方都可发起释放虚电路的动作。
由于虚电路的建立和释放需要占用一定的时间,因此虚电路方式不适合站点之间具有频繁连接和交换短小数据的应用,例如:交互式的通信。
用于虚电路网络中虚电路的建立、维护和拆除的协议称为虚电路信令协议(Signaling protocol)。
6.网络类型
(四)接入网络和物理媒体
1.怎样将端系统和边缘路由器连接?
接入网:将端系统物理连接到其边缘路由器(edgerouter)的网络
- 住宅接入网络:DSL、电缆、FTTH、拨号和卫星
- 单位接入网络 (学校、公司):以太网和WiFi
- 广域无线接入网络:
2.重要指标
- 接入网络的带宽 (bits per second)
- 共享/专用
3.家庭接入
将上网数据调制加载音频信号上,在电话线上传输,在局端将其中的数据解调出来,反之亦然。
- 调频
- 调幅
- 调相位
- 综合调制
这里是共享电话线可靠的4khz来传输互联网信息。
由于是共享电话线的带宽,所以通常这种拨号调制上网的速率比较低,大概是56kps的速度直接接入路由器(通常更低),而且不能同时上网和打电话,不能总是在线,所以上面这种方式已经被淘汰。
3.1.digital subscriber line (DSL)
随着电话线的和发展,我们可以将属于电话的频率还给电话网,将互联网传输信息的频率调制到更高,范围更广。将语言和数据的线路分在不同频段进行专属传输。
每个用户的DSL 调制解调器使用现有的电话线(即双绞铜线)与位于电话公司的本地中心局(CO)中的数字用户线接入复用器(DSLAM)交换数据。家庭的DSL调制解调器(DSL modem)得到数字数据后将其转换为高频音,以通过电话线传输给本地中心局。来自许多家庭的模拟信号在DSLAM处被转换回数字形式。
这种方法使单根DSL线路看起来就像有3根单独的线路一样,因此一个电话呼叫和一 个因特网连接能够同时共享DSL链路。(后面将描述这种频分复用技术)
采用现存的到交换局DSLAM的电话线
- DSL线路上的数据被传到互联网
- DSL线路上的语音被传到电话网
< 2.5 Mbps上行传输速率(typically < 1 Mbps)
< 24 Mbps下行传输速率(typically < 10 Mbps)
这种上传下行速率大小不等的叫ADSL(非对称调制解调接入)
3.2.线缆网络
有线电视信号线缆双向改造,通过FDM在不同频段传输不同信道的数据,数字电视和上网数据(上下行)。
线缆因特网接入需要特殊的调制解调器,这种调制解调器称为电缆调制解调器(cable modem)。如同DSL调制解调器,电缆调制解调器通常是一个外部设备,通过一个以太网端口连接到家庭PC。在电缆头端,电缆调制解调器端接系统(CableModem Termination System, CMTS)与DSL网络的DSLAM具有类似的功能,即将来自许多下行家庭中的电缆调制解调器发送的模拟信号转换回数字形式
上行的数据通过接入控制的方式协调许多用户共享线路,即一个分布式多路访问协议来协调传输和避免碰撞。
往上走,使用的就是光纤接入,往下走用的就是同轴电缆。所以这种方式也叫为混合光纤同轴系统HFC: hybrid fiber coax
- 非对称: 最高30Mbps的下行传输速率, 2 Mbps 上行传输速率
- 线缆和光纤网络将个家庭用户接入到 ISP 路由器
- 各用户共享到线缆头端的接入网络
- 与DSL不同, DSL每个用户一个专用线路到CO(central office)
3.3.光纤到户(FTTH)
一种提供更高速 率的新兴技术是光纤到户(FiberTo The Home , FTTH),顾名思义 FTTH概念简单,从本地中心局直接到家庭提供了一条光纤路径。
从本地中心局到家庭有几种有竞争性的光纤分布方案。最简单的光纤分布网络称为直 接光纤,从本地中心局到每户设置一根光纤。更为一般的是,从中心局出来的每根光纤实 际上由许多家庭共享,直到相对接近这些家庭的位置,该光纤才分成每户一根光纤。进行 这种分配有两种有竞争性的光纤分布体系结构:主动光纤网络(ActiveOptical Network, AON)和被动光纤网络(PassiveOptical Network, PON)。
这里,我们简要讨论一下PON,下图显示了使用PON分布体系结构的FTTH。每个家庭具有一个光纤网络端接器(OpticalNetwork Termi nator, ONT) , 它由专门的光纤连接到邻近的分配器(splitter)。该分配器把一些家庭(通 常少千100个)集结到一根共享的光纤,该光纤再连接到本地电话和公司的中心局中的光纤线路端接器(OpticalLine Terminator , OLT)。该OLT提供了光信号和电信号之间的转换,经过本地电话公司路由器与因特网相连。在家庭中,用户将一台家庭路由器(通常是无线路由器)与ONT相连,并经过这台家庭路由器接入因特网。在PON体系结构中,所有从OLT发送到分配器的分组在分配器(类似于一个电缆头端)处复制。
4.企业接入网络
4.1.局域网(LAN)
在公司和大学校园以及越来越多的家庭环境中,使用局域网(LAN)将端系统连接到 边缘路由器。尽管有许多不同类型的 局域网技术,但是以太网到目前为止 是公司、大学和家庭网络中最为流行 的接入技术。
通过交换机一层一层级连,经常被企业或者大学等机构采用
- 10 Mbps, 100Mbps, 1Gbps, 10Gbps传输率
- 现在,端系统经常直接接到以太网络交换机上
4.2.无线接入网络
各无线端系统通过基站(或者叫接入点)共享无线接入网络(端系统到无线路由器)
5.广域无线接入
iPhone和安卓等设备应用了与蜂窝移动电话相同的无线基础设施,通过蜂窝网提供商 运营的基站来发送和接收分组。与WiFi不同的是,一个用户仅需要位于基站的数万米(而不是几十米)范围内。
6.物理媒体
Bit: 在发送-接收对间传播
物理链路:连接每个发送-接收对之间的物理媒体
6.1.导引型媒体:(传播的衰减少)
信号沿着固体媒介被导引:同轴电缆、光纤、 双绞线
6.1.1.双绞线 (TP)
两根绝缘铜导线拧合,最便宜并且最常用的导引型传输媒体是就双绞铜线。
为什么要绞合起来?
这两根线被绞合起来,以减少邻近类似的双绞线的电气干扰。通常许多双绞线捆扎在一起形成一根电缆,并在这些双绞线外面覆盖上保护性防护层。
20世纪80年代出现光纤技术时,许多人因为双绞线比特速率低而轻视它,某些人甚至认为光纤技术将完全代替双绞线。但双绞线不是那么容易被抛弃的。现代的双绞线技术例如6a类电缆能够达到lOGbps的数据传输速率,距离长达100m。双绞线最终已经作为高速LAN联网的主导性解决方案。
- 5类:100Mbps 以太网,Gbps 千兆位以太网
- 6类:10Gbps万兆以太网
6.1.2.同轴电缆
同轴电缆由两个铜导体组成,但是这两个导体是同心的而不是并行 的。借助于这种结构及特殊的绝缘体和保护层,同轴电缆能够达到较高的数据传输速率。
- 基带电缆:
- 电缆上一个单个信道
- Ethernet
- 宽带电缆:
- 电缆上有多个信道
- HFC
6.1.3.光纤和光缆
- 导引光脉冲的媒体,每个脉冲表示一个bit,在玻璃纤维中传输
- 高速:一根光纤能够支持极高的比特速率,点到点的高速传输(如10Gps-100Gbps传输速率 )
- 低误码率:在两个中继器之间可以有很长的距离,不受电磁噪声的干扰
- 安全,很难窃听
这些特征使得光纤成为长途导引型传输媒体,特别是跨海链路。
6.2.非导引型媒体
开放的空间传输电磁波或者光信号,在电磁或者光信号中承载数字数据
6.2.1.无线链路
- 开放空间传输电磁波,携带要传输的数据
- 无需物理“线缆”
- 双向
- 传播环境效应:
- 反射
- 吸收
- 干扰
6.2.2.无线链路类型:
地面微波
- 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端到端延迟
- 同步静止卫星和低轨卫星
(五)Internet结构和ISP
1. 互联网络结构:网络的网络
- 端系统通过接入ISPs (Internet Service Providers)连接到互联网
- 接入ISPs相应的必须是互联的,因此任何两个端系统可相互发送分组到对方
- 导致的“网络的网络”非常复杂,发展和演化是通过经济的和国家的政策来驱动的
端系统通过因特网服务提供商(Internet Service Provider, ISP)接人因特网,包括如本地电缆或电话公司那样的住宅区ISP、公司ISP、大学ISP,在机场、旅馆、咖啡店和其他公共场所提供WiFi接入的ISP,以及为智能手机和其他设备提供移动接入的蜂窝数据 ISP。每个ISP自身就是一个由多台分组交换机和多段通信链路组成的网络。各ISP为端系统提供了各种不同类型的网络接入,包括如线缆调制解调器或DSL那样的住宅宽带接入、 高速局域网接入和移动无线接人。ISP也为内容提供者提供因特网接入服务,将Web站点 和视频服务器直接连入因特网。因特网就是将端系统彼此互联,因此为端系统提供接入的 lSP也必须互联。较低层的ISP通过国家的、国际的较高层ISP (如Level 3 Communica tions、AT&T、Sprint和NTT)互联起来。较高层ISP是由通过高速光纤链路互联的高速路由器组成的。无论是较高层还是较低层ISP网络,它们每个都是独立管理的,运行着IP协议,遵从一定的命名和地址规则。
让我们采用渐进方法来描述当前互联网的结构:
问题: 给定数百万接入ISPs,如何将它们互联到一起
方案一:将这些接入网全连接,如下图
如果以这样的方式,可扩展性太差,如果接入网到了一定的规模,这个系统的性能会下降得非常快。需要连接的数量会非常多,付出的代价会非常大。
方案二:将每个接入ISP都连接到全局ISP(全局范围内覆盖),如下图
这样的结构才是适配计算机网络的的结构。但是,如果全局ISP是可行的业务,那会有竞争者,绝不会只有一家独大,有利可图,一定会有竞争,如下图:
投资加大,市场规模加大,出现了多家ISP,不同用户可能使用的的是不同的ISP,但是用户需要的的是一个全局的ISP,就需要通过ISP之间的合作完成业务的扩展,这时肯定会有互联,对等互联的结算关系,如下图:
随着资本投入,市场扩大,更多的人参与进来,业务会细分(全球接入和区域接入),区域网络将出现,用与将接入ISPs连接到全局ISPs。
然后内容提供商网络(Internet Content Providers,e.g: Google,Microsoft, Akamai) 可能会构建它们自己的网络,将它们的服务、内容更加靠近端用户,向用户提供更好的服务,减少自己的运营支出。
- 很多内容提供商(如:Google, Akamai )可能会部署自己的网络,连接自己的在各地的DC(数据中心),走自己的数据
- 连接若干local ISP和各级(包括一层)ISP,更加靠近用户
问题:为什么ICP想要自己铺设通信线路和服务器而不是租用现成的ISP?
- ICP常年租用ISP,费用高昂
- ISP并不能为ICP提供更优质的服务
ICP通常将数据中心接近那些大的ISP机房,这样的话ICP仅仅需要付出一点点代价租用ISP当一个转接,客户如果需要ICP的数据仅仅只是最开始接入网的一段需要使用到ISP的线路,当数据传输传到ISP机房,直接就转到了ICP的数据中心,然后再在ICP布置的数据中心中拉取数据。这样不仅更节约成本,还能为客户提供更好的服务。
2.ISP之间的连接
在网络的最中心,一些为数不多的充分连接的大范围网络(分布广、节点有限、但是之间有着多重连接)
- POP: 高层ISP面向客户网络的接入点,PoP存在于等级结构的所有层次,但底层(接入ISP)等级除外。一个POP只是提供商网络中的一台或多台路由器 (在相同位置)群组,其中客户ISP能够与提供商ISP连接。对于要与提供商POP连接的客户网络,它能从第三方电信提供商租用高速链路将它的路由器之一直接连接到位于该 POP的一台路由器。
- 多宿(multi home):任何ISP(除了第一层ISP)可以与两个或更多提供商ISP连接。
- 对等:2个ISP对等互接,不涉及费用结算
- IXP:多个对等ISP互联互通之处,通常不涉及费用结算(对等接入)
- ICP自己部署专用网络,同时和各级ISP连接
- “tier-1” commercial ISPs (e.g., Level 3, Sprint, AT&T, NTT), 国家或者国际范围的覆盖
- content provider network (e.g., Google): 将它们的数据中心接入ISP,方便周边用户的访问;通常私有网络之间用专网绕过第一层ISP和区域ISPs
3.松散的层次模型
中心:第一层ISP(如UUNet, BBN/Genuity, Sprint,AT&T)国家/国际覆盖,速率极高
- 直接与其他第一层ISP相连
- 与大量的第二层ISP和其他客户网络相连
第二层ISP: 更小些的 (通常是区域性的) ISP
与一个或多个第一层ISPs,也可能与其他第二层ISP
第三层ISP与其他本地ISP
接入网 (与端系统最近)
一个分组要经过许多网络!
(六)分组延时、丢失和吞吐量
之前说过,因特网能够看成是一种基础设施,该基础设施为运行在端 系统上的分布式应用提供服务。在理想情况下,我们希望因特网服务能够在任意两个端系 统之间随心所欲地瞬间移动数据而没有任何数据丢失。然而,这是一个极高的目标,实践 中难以达到。与之相反,计算机网络必定要限制在端系统之间的吞吐量(每秒能够传送的 数据量),在端系统之间引入时延,而且实际上也会丢失分组。
1. 分组丢失和延时是怎样发生的?
在路由器当中,每个路径都有相对应的队列作为缓冲,如果当前路径中没有数据传输,那么来了分组就能传,如果当前路径正有分组在传输,那再收到的分组就要在队列里排队。如果这个时候来了很多分组,那么就有很长的排队时延。当然,队列长度是有限的,如果队列已经排满,那么接下来再收到的分组就会被丢弃。
问题:队列的大小为什么不设置成非常大呢?
在网络通信中,有一个可容忍的最大的时延,如果超过这个时延,那么这个数据收不收到其实就没什么意义了。可以理解为一个时效性的问题。
总结就是:在路由器缓冲区的分组队列中,分组到达链路的速率超过了链路输出的能力,产生排队时延,队列排满后,丢弃再接收的分组。
2.四种分组延时
分组传输中,并不只有排队延迟,还有其他我们看不见的事情产生了时间的开销。
2.1.处理延迟
当一个节点收到一个分组后,并不是收到就传走,还要做一下处理。
- 检查bit级的差错。看有没有bit上的数据出错,乱序,重复和丢失。
- 检查分组的首部然后查路由表决定将分组导向何处。
这里的时间开销,我们叫做处理延迟。这个延迟一般是确定的。
2.2.排队延迟
一个分组在队列上等待的事件。
排队时延具有随机性,这和互联网的特性相关,如果某一时刻这个网络数据很多,非常拥塞,那么就会有较高的排队时延。
2.3.传输时延
路由器将一个分组比特全部发射到链路的时间。
- R=链路带宽(bps)
- L=分组长度(bits)
- 将分组发送到链路上的时间= L/R
2.4.传播时延
分组在物理链路中传输所花费的时间。
- d = 物理链路的长度
- s = 电磁波在媒体上的传播速度(~2×108 m/sec)
- 传播延时 = d/s
因为s足够快,所以如果传输距离很短,那么这个传播时延其实可以忽略不计。
举个栗子:
一号车队类比:(互联网WAN)
- 汽车以100 km/hr 的速度前进
- 收费站服务每辆车需 12s
- 汽车~bit; 车队 ~ 分组
问题:在车队在第二个收费站排列好之前需要多长时间?(即:从车队的第一辆车到达第一个收费站开始计时,到这个车队的最后一辆车离开第二个收费站,共需要多少时间?)
- 将车队从收费站输送到公路上的时间 = 12*10 =120s(传输延迟)
- 最后一辆车从第一个收费站到第二个收费站的传播时间:100km/(100km/hr)= 60min
总花费时间为62min。
二号车队类比:(局域网LAN)
- 汽车以1000 km/hr 的速度传播汽车
- 收费站服务每辆车需 1分钟
问题:在所有的汽车被第一个收费站服务之前,汽车会到达第二个收费站吗?
Yes!7分钟后,第一辆汽车到达了第二个收费站,而第一个收费站仍有3辆汽车
3.节点延时
dnodal = dproc + dqueue + dtrans + dprop
dproc = 处理延时
- 通常是微秒数量级或更少
dqueue = 排队延时
- 取决于拥塞程度
dtrans = 传输延时
- = L/R, 对低速率的链路而言很大(如拨号),通常为微秒级到毫秒级
dprop = 传播延时
- 几微秒到几百毫秒
4.流量强度
- R=链路带宽 (bps)
- L=分组长度 (bits)
- a=分组到达队列的平均速率:每秒钟平均到达分组数量(分组数/s)
流量强度 = La/R(分子分母量纲相同)
I >> i;queue delay >>∞
- La/R ~ 0: 平均排队延时很小
- La/R -> 1: 延时变得很大
- La/R > 1: 比特到达队列的速率超过了从该队列输出的速率,平均排队延时将趋向无穷大!
通常,到达队列的过程是随机的,即到达并不遵循任何模式,分组之间的时间间隔是随机的。在这种更为真实的情况下,批La/R通常不足以全面地表征时延的统计量。不过,直观地理韶排队时延的范围很有用。特别是如果流量强度接近0,则几乎没有分组到达并且到达间隔很大,那么到达的分组将不可能在队列中发现别的分组。因此,平均排队时延将接近0。另一方面,当流量强度接 近1时,当到达速率超过传输能力(由于分组到达速率的波动)时将存在时间间隔,在这些时段中将形成队列。当到达速率小于传输能力时, 队列的长度将缩短。无论如何,随着流量强度接近1 , 平均排队长度变得越来越长。
设计系统时流量强度不能大于1!
问题:为什么流量强度等于1时候,排队时延是无穷大?
根据我的直觉上来说,当流量强度等于1的时候,刚好需要传输的的比特就等于该网络的带宽,这样的话,整个网络的使用效率简直是完美·。那为啥当I = 1的时候网络就会挂掉呢?让我们用数学的视角看待这个问题:
一定要好好学数学!数学太重要了!
其实《自顶向下方法》有很重要的一句,到达队列的过程是随机的,即到达并不遵循任何模式,分组之间的时间间隔是随机的。在分组到来是随机的情况下,流量强度为1,就是说只要有一任何一个bit随机多来了,整个链路就堵死了,因为没有任何空间让这个bit插进去。
5.Internet的延时和路由
Internet 的延时和路由是什么样的呢?
Traceroute 诊断程序: 提供从源端,经过路由器,到目的的延时测量
For all i:
- 沿着目的的路径,向每个路由器发送3个探测分组
- 路由器 i 将向发送方返回一个分组
- 发送方对发送和回复之间间隔计时
在Windows系统下:Tracerert hostname
- 如Tracerert www.gucas.ac.cn
- 更完整的例子:tracert [-d] [-h maximum_hops] [-j computer-list] [-wtimeout] target_name
- 请见帮助:http://www.linkwan.com/gb/broadmeter/article/trace-help.htm
原理补充:互联网控制报文(ICMP)(简略的说)
ICMP在Traceroute中的原理如下:
通过发送探测报文来获取链路地址信息。第一个探测报文TTL(time to live 生存时间)为1,到达第一个路由器时,TTL减1为0所以丢掉这个探测包,同时向源主机发回ICMP时间超过报文,这时源主机就获得了第一个路由器的IP地址;接着源主机发送第二个探测报文,TTL增1为2,到达第一个路由器TTL减1为1并转发探测包到第二个路由器,这时TTL减1为0,丢掉这个探测包并向源主机发回ICMP时间超过报文,源主机就获得了第二个路由器的IP地址;以此类推,直到探测报文到达traceroute的目的地,这时源主机就获得了到目的地的每一跳路由的IP地址。
用来传送ICMP 报文的IP 数据包上实际上有不少字段。但是实际上与ICMP 协议相关的只有7 个子段。
- 协议;
- 源IP 地址;
- 目的IP 地址;
- 生存时间;
这四个包含在IP 首部的字段。
- 类型;
- 代码;
- 选项数据;
这三个包含在ICMP数据部分的字段。
这里面,协议字段值是1。源IP 地址和目的IP 地址是用来交流ICMP 报文的地址信息,没有特殊意义。
而对于理解ICMP 本身,重要的是类型,代码,选项数据三个字段。这里面的可以称为核心的重要字段是类型,代码这两个字段。所有ICMP 用来交流错误通知和信息询问的报文,都是由类型和代码的组合来表示的。RFC 定义了15种类型。“报文不可到达”这样的错误通知和“回送请求”这样的信息查询是由类型字段来区分的。ICMP报文由类型来表达它的大概意义,需要传递细小的信息时由代码来分类。进一步,需要向对方传送数据的时候,用选项数据字段来放置。
整个流程如下:
6.分组丢失
- 链路的队列缓冲区容量有限
- 当分组到达一个满的队列时,该分组将会丢失
- 丢失的分组可能会被前一个节点或者源端系统重传,或根本不重传(三种命运)
7.吞吐量
在源端和目标端之间传输的速率(数据量/单位时间)
- 瞬间吞吐量: 在一个时间点的速率
- 平均吞吐量: 在一个长时间内平均值
瓶颈链路:端到端路径上,限制端到端吞吐的链路
端到端平均吞吐=min{R1,R2 ,…,Rn }
举个栗子:互联网场景
真实场景下,一段链路绝不是只有一个人在用,所以大部分时候的瓶颈链路并不是物理带宽最小的链路,而是整条链路能共享到到的带宽最小的那段链路。
(七)协议层次
1.概述
首先我们要知道,计算机网络是一个非常复杂的系统,甚至可能是最复杂的人工系统。
1.1.功能繁杂
数字信号的物理信号承载、点到点、路由、rdt、进程区分、应用等
1.2.元素众多
主机、路由器、各种媒体的链路、应用、协议、硬件, 软件等
所以现在的问题是:如何实现如此复杂的系统?
解决复杂问题的大致思路无非就是简而治之,将系统模块化的拆解分开实现。模块化有两个思路:


方案二
- 方案一:将系统拆分为若干模块,每个模块实现一个或一组功能,各模块之间平面性的互相调用:任何一个模块都可以调用任何一个模块所提供的功能和服务。
- 方案二:将系统拆分为若干层(模块),每层(模块)实现一个或一组功能,上层可以调用相邻下层提供的服务和功能,且仅相邻的两个层之间可以调用和被调用,不允许(不建议)跨层调用。
计算机网络,就是以第二种方案设计和实现的。这样就把功能非常复杂的计算机网络的功能分解成一个个功能层次明确的层次,每个一层实现了一个或一组功能,每一层的功能通过层间的接口向上层提供服务。
计算机网络如何通过分层的思想来实现一些复杂的功能呢?
举个栗子:
两个异地哲学家需要交流思想,但是他们语言不通,还隔得很远。我们将用分层的思想来解决两个异地哲学家操着不同的语言来进行哲学思想交流得这样一个复杂问题。
我们可以设计三个层次:
- 最下面是秘书层:解决异地通信的问题
- 然后是翻译层:解决表示转换的问题
- 最上层是哲学家层:实现哲学思想交流
流程:
- 哲学家将他的哲学思想以信件的形式通过本地的层间接口交给下一层的翻译层。
- 翻译层拿到哲学思想后,将信件内容转换成双方商量好的公用语言翻译这个文稿。加上控制信息,例如:信件要交给对方哪个翻译等等。再把处理好的信件交给秘书层。
- 秘书层再借助下层提供的服务将信件传给对方。
- 对方秘书收到信件,拆开信封拿出信交给翻译。
- 翻译层将公共语言的信件翻译成这个哲学家的语言。
- 然后将翻译出来的稿件交给哲学家。
这里我们可以看到分层解决问题的好处:
- 概念化:结构清晰,便于标示网络组件,以及描述其相互关系
- 将复杂的问题分解为三个简单又互相独立的子问题,每个问题比较单一。
- 结构化:模块化更易于维护和系统升级如果出现技术的更新,改变某一层服务的实现不影响系统中的其他层次。如哲学家突然想要使用另一种语言,换个翻译整个系统就能正常运行。
坏处就是降低了使用效率。
分层的一个潜在缺点是一层可能冗余较低层的功能。例如,许多协议栈在基于每段链路和基于端到端两种情况 下,都提供了差错恢复。第二种潜在的缺点是某层的功能可能需要仅在其他某层才出现的 信息(如时间戳值),这违反了层次分离的目标。
2.层次化方式实现复杂网络功能
- 将网络复杂的功能分成功能明确的层次,每一层实现了其中一个或一组功能,功能中有可以被其上层调用的功能——即本层为上层提供的服务。(为上层提供的服务是本层功能的子集)。
- 本层协议实体相互交互执行本层的协议动作,交换一些控制信息,目的是实现本层功能(对等协议实体之间交换pdu),通过接口为上层提供更好的服务
- 在实现本层协议的时候,直接利用了下层所提供的服务
- 本层的服务:借助下层服务实现的本层协议实体之间交互(对等实体之间交换pdu)带来的新功能(上层可以利用的服务)+更下层所提供的服务
比如由第n层提供的服务可能包括报文从网络的 一边到另一边的可靠交付。这可能是通过使用第n-1层的边缘到边缘的不可靠报文传送 服务,加上第n层的检测和重传丢失报文的功能来实现的
2.1.一些概念
2.1.1.服务( Service)
低层实体向上层实体提供它们之间的通信的能力(服务是垂直的关系)
- 服务用户(service user)
- 服务提供者(service provider )
2.1.2.服务访问点 SAP (Services Access Point)
上层使用下层提供的服务通过层间的接口—地点。
- 地址(address):下层的一个实体支撑着上层的多个实体,SAP有标志不同上层实体的作用。
举个栗子:
现在TCP为三个应用提供服务,这些使用服务的应用叫做服务用户,TCP就是他们的服务提供者。在服务提供者与服务用户的层间接口上,用来区分不同的上层服务用户。在传输层向应用层提供服务的时候中,所谓套接字就是层间的SAP。
2.1.3.原语(primitive)
上层使用下层服务的形式,高层使用低层提供的服务,以及低层向高层提供服务都是通过服务访问原语来进行交互的-----形式
原语意义:
请求原语(Request): 用户实体要求服务做某项工作
指示原语(Indication): 用户实体被告知某事件发生
响应原语(Response) :用户实体表示对某事件的响应
确认原语:(Confirm): 用户实体收到关于它的请求的答复
举个栗子:
服务用户需要请求建立连接和发送数据,就发出“连接请求”(CONNECT_request)原语,服务提供者执行这一请求后,将用“指示”(indication)原语通知接收方的用户实体,该原语地址段内所指向的接收方的对等实体会得到一个“连接指示”(CONNECT_indication)原语,通知它有人想要与它建立连接。接到“连接指示”原语的实体使用“连接响应”(CONNECT_response)原语表示它是否愿意接受建立连接的建议。但无论接收方是否接受该请求,请求建立连接的一方都可以通过接收“连接确认”(CONNECT_confirm)原语而获知接收方的态度(事实上传输层以及其他层的服务用户要绝建立连接请求不是采用CONNECT_response原语而是采用DISCONNECT_request原语)。
原语的参数:
原语可以带参数,而且大多数原语都带有参数。
- “连接请求”原语的参数可能指明它要与哪个机器连接、需要的服务类别和在该连接上使用的最大报文长度。
- “连接指示”原语的参数可包含呼叫者的标志、需要的服务类别和建议的最大报文长度。
- 如果被呼叫的实体不同意呼叫体建立的最大报文长度,它可能在“连接响应”原语中提出一个新的建议,呼叫方会从“连接确认”原语中获知。
这一协商过程的细节属于协议的内容。例如,在两个关于最大报文长度的建议不一致的情况下,协议可能规定选择较小的值。
服务有“有确认”和“无确认”之分。有确认服务,包括“请求”、“指示”、“响应”和“确认”4个原语。无确认服务只有“请求”和“指示”两个原语。建立连接的服务总是有确认服务,可用“连接响应”作肯定应答,表示同意建立连接;或者用“断连请求”(DISCONNECT_request)表示拒绝,作否定应答。数据传送既可以是有确认的也可是无确认的,这取决于发送方是否需要确认。
2.2.服务的类型
面向连接的服务和无连接的服务
2.2.1.面向连接的服务( Connection-oriented Service)
连接(Connection):两个通信实体为进行通信而建立的一种结合
面向连接的服务通信的过程:建立连接,通信,拆除连接
面向连接的服务的例子:网络层的连接被成为虚电路
适用范围:对于大的数据块要传输,不适合小的零星报文
特点:保序
服务类型:
- 可靠的信息流 传送页面(可靠的获得,通过接收方的确认)
- 可靠的字节流 远程登录
- 不可靠的连接 数字化声音
2.2.2.无连接的服务(Connectionless Service)
无连接服务:两个对等层实体在通信前不需要建立一个连接,不预留资源;不需要通信双方都是活跃;(例:寄信)
特点:不可靠、可能重复、可能失序
IP分组,数据包;
适用范围:适合传送零星数据;
服务类型:
- 不可靠的数据报 电子方式的函件
- 有确认的数据报 挂号信
- 请求回答 信息查询
2.2.3.服务和协议的区别
- 服务是网络体系结构中各层向它的上层提供的一组原语(操作)。尽管服务定义了该层能够代表它的用户完成的操作,但丝毫也未涉及这些操作是如何实现的。服务描述两层之间的接口,下层是服务提供者,上层是服务用户。
- 协议是定义同层对等实体间交换帧、数据包的格式和意义的一组规则。网络各层实体利用协议来实现它们的服务。只要不改变提供给用户的服务和接口,实体可以随意地改变它们所使用的协议。这样,服务和协议就完全被分离开来。
2.2.4.服务与协议的联系
- 本层协议的实现要靠下层提供的服务来实现
- 本层实体通过协议为上层提供更高级的服务
不知道对不对:协议驱使服务,服务实现协议
3.数据单元
- 服务数据单元(SDU):上层交给相邻下层的要传输的数据。
- 接口控制信息(ICI):经过层间接口需要加上的控制信息,以便于更加顺利的穿过层间接口。
- 加上本层的控制信息,协议数据单元(PDU):上层的SDU前面加上本层的控制信息,形成了本层的协议数据单元。
4.Internet 协议栈
4.1.应用层(网络应用交换应用报文)
应用层协议分布在多个端系统上,而一个端系统中的应用程序使用协议与另一个端系统中的应用程序交换信息分组。我们把这种位于应用层的信息分组称为报文(rnessage)。
- 为人类用户或者其他应用进程提供网络应用服务
- FTP, SMTP, HTTP,DNS
4.2.传输层(主机之间的数据传输)
因特网的运输层在应用程序端点之间传送应用层报文,把运输层的分组称为报文段(segment),
- 在网络层提供的端到端通信基础上,细分为进程到进程,将不可靠的通信变成可靠地通信
- TCP, UDP
4.3.网络层(end to end)
为数据报从源到目的选择路由,进行以分组为单位的端到端的数据传输(E2E)
- 主机主机之间的通信,端到端通信,不可靠
- IP, 路由协议
4.4.链路层(节点到节点)
相邻网络节点间的传输以帧为单位的数据(P2P)
- 2个相邻点的通信,点到点通信,可靠或不可靠
- 点对对协议PPP, 802.11(wifi), Ethernet
因为数据报从源到目的地传 送通常需要经过几条链路,一个数据报可能被沿途不同链路上的不同链路层协议处理。例 如,一个数据报可能被一段链路上的以太网和下一段链路上的PPP所处理。网络层将受到 来自每个不同的链路层协议的不同服务。
4.5.物理层
在线路上传送比特
- 发送端:将bit转化为物理信号(光信号,电信号,电磁波信号等等)承载在物理链路上出去
- 接收端:从物理链路上接收物理信号并将其转回原来的数据。
虽然链路层的任务是将整个帧从一个网络元素移动到邻近的网络元素,而物理层的任务是将该帧中的一个个比特从一个节点移动到下一个节点。在这层中的协议仍然是链路相关的,并且进一步与该链路(例如,双绞铜线、单模光纤)的实际传输媒体相关。例如,以太网具有许多物理层协议:一个是关于双绞铜线的,另一个是关于同轴电缆的,还有一个是关于光纤的等等。在每种场合中,跨越这些链路移动一个比特是以不同的方式进行的。
ISO/OSI 参考模型:除了以上五层,还有下面两层:
4.6.表示层(ISO/OSI 参考模型)
允许应用解释传输的数据,
- e.g., 加密,压缩,机器相关的表示转换
4.7.会话层(ISO/OSI 参考模型)
数据交换的同步,检查点,恢复
- 建立会话,拆会话,维持会话等等
在现行的互联网协议栈中没有这两层,表示转换和会话管理的功能,都交给应用层完成,或者说留给应用程序开发者处理。应用程序开发者决定 一个服务是否是重要的,如果该服务重要,应用程序开发者就应该在应用程序中构建该功能。
封装和解封装
在发送主机端,一个应用层报文(application-layer message) (图中的M)被传送给运输层。在最简单的情况下, 运输层收取到报文并附上附加信息(所谓运输层首部信息,图中的Hi)该首部将被接收端的运输层使用。应用层报文和运输层首部信息一道构成了运输层报文段(transport layer segment)。运输层报文段因此封装了应用层报文。附加的信息也许包括了下列信息: 允许接收端运输层向上向适当的应用程序交付报文的信息;差错检测位信息,该信息让接收方能够判断报文中的比特是否在途中已被改变。运输层则向网络层传递该报文段,网络层增加了如源和目的端系统地址等网络层首部信息(图中的Hn)生成了网络层数 据报(network-layerdatagram)。该数据报接下来被传递给链路层,链路层(自然而然地) 增加它自己的链路层首部信息并生成链路层帧(link-layerframe)。所以我们看到,在每一层,一个分组具有两种类型的字段:首部字段和有效载荷字段(payload field)。有效载荷通常是来自上一层的分组。
4.8.各层次的协议数据单元
- 应用层:报文(message)
- 传输层:报文段(segment):TCP段,UDP数据报
- 网络层:分组packet(如果无连接方式:数据报datagram)
- 数据链路层:帧(frame)
- 物理层:位(bit)
(八)历史
1.早期(1960以前)计算机网络
线路交换网络
线路交换的特性使得其不适合计算机之间的通信
- 线路建立时间过长
- 独享方式占用通信资源,不适合突发性很强的计算机之间的通信
- 可靠性不高:非常不适合军事通信
三个小组独立地开展分组交换的研究
- 1961: Kleinrock(MIT),排队论,展现了分组交换的有效性
- 1964: Baran(美国兰德公司) – 军用网络上的分组交换
- 1964:Donald(英国)等,NPL
2.1961-1972: 早期的分组交换概念
1967: 美国高级研究计划研究局考虑ARPAnet
1969: 第一个 ARPAnet节点开始工作,UCLA
- IMP:接口报文处理机
1969年底: 此时 ARPAnet4个节点
1972:ARPAnet 公众演示:第一次当众扑街。
网络控制协议是第一个端系统直接的主机-主机协议
- NCP协议:相当于传输层和网络层在一起,支持应用开发
第一个e-mail 程序(BBN)
此时ARPAnet有15个节点
3.1972-1980: 专用网络和网络互联
出现了很多对以后来说重要的网络形式,雨后春笋
- 1970: ALOHAnet,夏威夷上的微波网络
- 1973: Metcalfe在博士论文中提出了Ethernet
- ATM网络
ALOHAnet,Telenet,Cyclades法国等
1970后期,网络体系结构的必要性
- 专用的体系结构: DECnet, SNA, XNA
- 标准化的体系结构
1974: 网际互联的Cerf and Kahn 体系结构
Cerf and Kahn 网络互联原则:
- 极简、自治
- 尽力而为(best effort)服务模型
- 无状态的路由器
- 分布控制
定义了今天的Internet体系结构
1979: ARPAnet的规模在持续增加,体系结构也在酝酿着变化,以支持网络互联和其他目的(性能)需求
- 节点数目增加,有200个节点
4.1980-1990: 体系结构变化, 网络数量激增,应用丰富
1983: TCP/IP部署,标记日
- NCP分化成2个层次,TCP/IP从而出现UDP
- 覆盖式IP解决网络互联问题
- 主机设备和网络交换设备分开
1982: smtp e-mail协议定义
1983: DNS 定义,完成域名到IP地址的转换
1985: ftp 协议定义
1988: TCP拥塞控制
其他网络形式的发展
- 新的国家级网络: Csnet,BITnet, NSFnet, Minitel
- 1985年:ISO/OSI提出,时机不对且太繁琐
100,000主机连接到网络联邦
5.1990, 2000’s: 商业化, Web, 新的应用
1990年代初: NSF对ARPAnet 的访问网,双主干,ARPAnet退役
1991: NSF放宽了对NSFnet用于商业目的的限制 (1995退役),ASFNET非盈利性机构维护,后面叫Internet
UNIX 中TCP/IP的免费捆绑
1990年代初: Web
- hypertext [Bush 1945, Nelson1960’s]
- HTML, HTTP: Berners-Lee
- 1994: Mosaic (Netscape,andreesen)
- 1990年代后期: Web的商业化
6.1990后期 – 21世纪:
- TCP/IP体系结构的包容性,在其上部署应用便捷,出现非常多的应用
- 新一代杀手级应用(即时讯息,P2P 文件共享,社交网络等)更进一步促进互联网的发展
- 安全问题不断出现和修订(互联网的补丁对策)
- 2001网络泡沫,使得一些好公司沉淀下来(谷歌,微软,苹果,Yahoo,思科)
- 主干网的速率达到Gbps
7.2005-现在
~50+亿主机:包括智能手机和平板
宽带接入的快速部署
高速无线接入无处不在:移动互联时代
- 4G部署,5G蓄势待发
- 带宽大,终端性能高,价格便宜,应用不断增多
在线社交网络等新型应用的出现:
- Facebook: 10亿用户
- 微信,qq:数十亿用户
内容提供商 (Google, Microsoft)创建他们自己的网络
- 通过自己的专用网络提供对搜索、视频内容和电子邮件的即刻访问
电子商务,大学,企业在云中运行他们的服务 (eg, Amazon EC2)
体系结构酝酿着大的变化,未来网络蠢蠢欲动