文章目录
目标
1.了解基本术语和概念
2.掌握网络的基本原理
3.为后续章节更深入的学习打下基础
4.方法:以Internet为例子
提纲
什么是Internet ?
什么是协议?
网络边缘
接入网、物理媒体
网络核心:分组交换、线路交换
Internet/ISP结构
性能:丢包、延时、吞吐量
协议层次、服务模型
历史
把提纲串一下:
1.什么是互联网?在这之前,我们会讲,什么是网络?什么是计算机网络?什么是互联网?它的组成是什么?
2.网络中支撑网络工作的一个非常重要的东西叫协议,什么是协议?
3.网络可以分为三个部分:边上,中间,和把边上和中间接在一起的接入网,egde,core,access。分别看一下三个部分的组成、作用和工作原理
先讲网络边缘,再讲把边缘接入核心的接入网,以及支撑接入网的物理媒介
4.核心的工作方式有两种,分组交换和线路交换。什么是线路交换?原理是什么?有什么优缺点?类似,什么是分组交换?怎么工作的?有什么特点、优缺点
5.整个互联网是由一堆网络,通过网络互连设备如路由器连接在一起的。不同的网处在整个互联网中的层次也是不一样的,有的是tier1,有的是tier2,有的是tier3。还有的是跨层的。互联网是怎样的层次结构?每个层次起到什么作用?
6.互联网的RP网络是按分组交换来设计的,分组交换必然涉及到丢包、四大延迟、吞吐量等衡量性能的指标
7.网络是分层的,介绍互联网分层的体系架构
8.介绍互联网的历史
1 什么是Internet?
1.1 什么是网络?
电话网,蜘蛛网,人际网,神经元网络。网络包含:结点和边
网络:结点和边构成的与大小、形状无关的拓扑结构
1.2 什么是计算机网络?
联网的计算机所构成的系统
计算机网络的组成:
-
结点:
- 主机节点(笔记本、iPad、手机、联网的冰箱等)。是数据的源,也是数据的目标
- 数据交换结点(路由器、交换机)。既不是源也不是目标,是转发数据的
-
边:链路。把主机、交换机连接在一起
- 接入网链路:主机连接到互联网的链路
- 主干链路:交换节点间的链路
-
协议:支持互联网工作最重要的一些标准。对等层实体在通信中应该遵守的规则的集合,包括语法、语义、时序
1.3 什么是互联网?从具体构成角度
互联网的协议是以TCP/IP为主的一簇协议,由这些协议支撑起工作的、目前用户人数最多的网络叫互联网
用这些协议,但是不联网的网络叫intranet企业网、内部网
从构成来看,互联网:
- 端系统:设备本身、支撑设备通讯的网络操作系统、在操作系统上的网络应用程序。如:pc、手机、server等
- 数据交换节点:交换机(链路层)、路由器(网络层)等
- 通信链路:网线、光纤等,以及在它们之上支撑它们运转的链路层协议
- 协议:对等层实体在通信中应该遵守的规则的集合,包括语法、语义、时序
1.4 协议
协议定义了在两个或多个通信实体之间交换的报文格式和次序,以及在报文传输和/或接收或其他事件方面所采取的动作
格式:包括语法和语义,两个对等实体对某一信号的理解应该是一致的,不然无法互操作
次序:不能想发就发,得在某个动作之后才可以发
动作:收到报文之后应该做出什么样的内部处理的动作
1.5 什么是互联网?从服务角度
互联网是分布式的应用进程以及为分布式应用进程提供通信服务的基础设置
- 使用通信设施进行通信的分布式应用
- Web、VoIP、email、分布式游戏、电子商务、社交网络
- ……
- 通信基础设施为apps提供编程接口(通信服务)
- 将发送和接收数据的apps与互联网连接起来
- 为app应用提供服务选择,类似于邮政服务:
- 无连接不可靠服务
- 面向连接的可靠服务
2 网络边缘
边缘:各种主机或分布式应用:手机 、电脑、游戏等应用程序。边缘是网络存在的理由
2.1 网络结构
- 网络边缘:
- 主机
- 应用程序(客户端和服务器)
- 网络核心:
- 互连着的路由器
- 网络的网络
- 接入网、物理媒体:
- 有线或者无线通信链路
2.2 应用进程两种通信模式
1.C/S模式(客户端/服务器模式)。客户端向服务器请求、接收服务。如Web浏览器/服务器、email客户端/服务器
C/S模式的缺点:服务器宕机。可扩展性差:随着请求载荷的增加,达到一定阈值时性能会断崖式下降
2.P2P模式(对等模式)。这种模式在一些文件分发系统中大兴其道,例如:迅雷
2.3 基础设施两种传输数据方式
1.面向连接服务
两个端系统在数据传输之前要做好准备(握手、打招呼)。如TCP
TCP(或:面向连接服务)向上层提供的服务的特点:
- 可靠传输(不重复、不丢失、不乱序、不出错)
- 流量控制(一方太快一方太慢就需要流量控制,让快的一方慢一点)
- 拥塞控制(网好发快点,网堵发慢点)
2.无连接服务
数据传输之前不用做准备,直接发。如UDP
UDP(或:无连接服务)向上层提供的服务的特点:
- 不可靠
- 无流量控制(数据产生得多块就发出去多快)
- 无拥塞控制
优点:
- 把主机到主机的通信细分为进程到进程的通信
- 速度快
- 无连接对于事务很简短的请求会大大节省时间,如:域名解析的查询
3 网络核心
网络核心:路由器的网状网络,作用:数据交换
基本问题:数据怎样通过网络进行传输?
- 电路交换:为每个呼叫预留一条专有电路:如电话网
- 分组交换:以分组为单位,存储转发
- 将要传送的数据分成一个个单位:分组
- 将分组从一个路由器传到相邻路由器(hop),一段段最终从源端传到目标端
- 每段:采用链路的最大传输能力(带宽)
3.1 电路交换
两个端系统要通信
首先要通过信令系统在网络核心中为两者分配一条独享的线路
交换节点之间的通信链路可以采用各种方法分解成小片(piece),如:时分多路复用、频分多路复用、波分多路复用、码分多路复用
之后双方利用这条独享的线路双向通信
优点:独享可以保证性能
缺点:独享资源浪费;建立连接时间长;可靠性不高(需要维持通信线路映射关系,宕机就玩完了)
应用:电话网络
波分多路复用:光纤,将波段分成若干个小波段
举例:
3.2 分组交换
3.2.1 以分组为单位存储-转发方式
- 网络带宽资源不再分分为一个个片,传输时使用全部带宽
- 主机之间传输的数据被分为一个个分组
- 以分组为单位在每一个中间结点之间存储-转发
为什么要先存下来再转发呢?如果不存储直接转发,就是一条路线走到底,就是电路交换模式了
3.2.2 存储-转发:分组每次移动一跳( hop )
- 在转发之前,节点必须收到整个分组
- 延迟比线路交换要大
原因:分组交换要把整个分组都收到之后才能转发,而电路交换收到一个比特的数据就能转发一个比特 - 排队时间
下一跳可能正在传其他数据,需要排队
3.2.3 排队延迟和丢失
如果到达速率>链路的输出速率,分组将会排队,等待传输。
如果路由器的缓存用完了,分组将会被抛弃
3.2.4 网络核心的关键功能
路由: 决定分组采用的源到目标的路径(全局)
- 路由算法
转发: 将分组从路由器的输入链路转移到输出链路(局部)
3.2.5 统计多路复用
3.2.6 分组交换vs电路交换
- 同样的网络资源,分组交换允许更多用户使用网络
注意:
1.为什么概率公式是1-9的累加而不是1-10的累加?因为对于分组交换,不能占用线路的全部带宽,否则线路hold不住
2.分组交换在35个用户时0.04%的概率hold不住的前提是收到分组立即转发,但是实际上可以排队的
分组交换
- 适合于对突发式数据传输
- 资源共享
- 简单,不必建立呼叫
- 过度使用会造成网络拥塞:分组延时和丢失
- 对可靠地数据传输需要协议来约束:拥塞控制
- Q:怎样提供类似电路交换的服务?
- 保证音频/视频应用需要的带宽
- 一个仍未解决的问题(chapter 7)
3.2.7 数据报与虚电路
分组交换按照网络层有无连接,分成数据报网络与虚电路网络
- 数据报网络:
- 分组的目标地址决定下一跳
- 在不同的阶段,路由可以改变
- 类似:问路
- Internent
- 虚电路网络:
- 每个分组都带标签(虚电路标识 VC ID),标签决定下一跳
- 在呼叫建立时决定路径,在整个呼叫中路径保持不变
- 路由器维持每个呼叫的状态信息
- X.25和ATM
虚电路的建立靠信令
3.3 小结
4 接入网和物理媒体
4.1 接入方式
4.1.1 住宅接入
modem:调制解调器,可以将计算机信号和电话的脉冲信号相互转换
就是以前用的mao
4.1.2 企业接入
4.1.3 无线接入
4.2 物理媒介
5 Internet结构和ISP
5.1 ISP
前面几小节将网络按照节点和链路类型划分为网络核心、网络边缘、接入网
这一节按关系的远近划分。把关系比较密集的,在一个网络中的设备称之为一个ISP网络,ISP里包括很多小ISP,整个互联网是由很多个ISP组成
问题: 给定数百万接入ISPs,如何将它们互联到一起
将每个接入ISP都连接到全局ISP(全局范围内覆盖)?客户ISPs和提供者ISPs有经济合约
但是,如果全局ISP是可行的业务,那会有竞争者有利可图,一定会有竞争
通过ISP之间的合作可以完成业务的扩展,肯定会有互联,对等互联的结算关系
然后业务会细分(全球接入和区域接入),区域网络将出现,用与将接入ISPs连接到全局ISPs
然 后 内 容 提 供 商 网 络 (Internet Content Providers,e.g., Google,Microsoft, Akamai) 可能会构建它们自己的网络,将它们的服务、内容更加靠近端用户,向用户提供更好的服务,减少自己的运营支出。ISP收的费用太高了,也没办法在全球范围内提供很高质量的服务,于是ICP回在全球范围内布置自己的数据机房DC
ISP:提供接入、提供网
ICP:提供业务
5.2 互联网络结构
6 分组延时、丢失和吞吐量
分组丢失和延时是怎样发生的?
在路由器缓冲区的分组队列
- 延时:分组等待排到队头、被传输
- 丢失:分组到达链路的速率超过了链路输出的能力
既然会丢失,那为什么不把缓冲区弄大一点?缓冲区变大之后,网堵的时候一个分组排两三天,倒是没有丢失,但是延迟大
6.1 延时
6.1.1 四大延时
1.节点处理延时
- 检查 bit级差错
- 检查分组首部和决定将分组导向何处
2.排队延时
- 在输出链路上等待传输的时间
- 依赖于路由器的拥塞程度
3.传输延时
- R=链路带宽(bps)
- L=分组长度(bits)
- 将分组发送到链路上的时间= L/R
- 存储转发延时
4.传播延时
- d =物理链路的长度
- s =在媒体上的传播速度(~2x108 m/sec)
- 传播延时 = d/s
6.1.2 Internet的延时和路由
ICMP协议(互联网控制报协议)
Traceroute诊断程序:提供从源端,经过路由器,到目的的延时测量
- For all i:
- 沿着目的的路径,向每个路由器发送3个探测分组
- 路由器 i将向发送方返回一个分组
- 发送方对发送和回复之间间隔计时
在Windows系统下
- Tracerert hostname
- 如 Tracerert www.gucas.ac.cn
- 更完整的例子
- tracert [-d] [-h maximum_hops] [-j computer-list] [-w
timeout] target_name - 请见帮助:
- http://www.linkwan.com/gb/broadmeter/article/trace-help.htm
- tracert [-d] [-h maximum_hops] [-j computer-list] [-w
- 测试网址:
- www.traceroute.org
- www.linkwan.com
6.2 丢失
- 链路的队列缓冲区容量有限
- 当分组到达一个满的队列时,该分组将会丢失
- 丢失的分组可能会被前一个节点或源端系统重传,或根本不重传
6.3 吞吐量
吞吐量: 在源端和目标端之间传输的速率(数据量/单位时间)
- 瞬间吞吐量:在一个时间点的速率
- 平均吞吐量:在一个长时间内平均值
短板效应:
7 协议层次及服务模型
采用层次化解决问题其中两个个优点:把大问题分解成小问题便于解决;每一层都便于采用新的技术
层次化方式实现复杂网络功能:
- 将网络复杂的功能分层功能明确的层次,每一层实现了其中一个或一组功能,功能中有其上层可以使用的功能:服务
- 本层协议实体相互交互执行本层的协议动作,目的是实现本层功能,通过接口为上层提供更好的服务
- 在实现本层协议的时候,直接利用了下层所提供的服务
- 本层的服务:借助下层服务实现的本层协议实体之间交互带来的新功能(上层可以利用的)+ 更下层所提供的服务
协议和服务之间的关系:
- 协议是对等的水平关系
- 协议的实现借助于下层提供的服务
- 协议实现的目的是为了向上层提供更好的服务
7.1 服务
7.1.1 原语与服务访问点
- 服务( Service):低层实体向上层实体提供它们之间的通信的能力
- 服务用户(service user)
- 服务提供者(service provider )
- 原语(primitive):上层使用下层服务的形式,高层使用低层提供的服务,以及低层向高层提供服务都是通过服务访问原语来进行交互的—形式
例如:socket API是一个应用程序接口,我们可以采用应用进程和操作系统约定的一些函数来创建、使用、关闭socket。函数在这个场景中就是原语 - 服务访问点 SAP (Services Access Point):上层使用下层提供的服务通过层间的接口——地点;
抽象解释:在层间接口上有一系列点来区分不同的上层用户,例如:套接字- 例子:邮箱
- 地址(address):下层的一个实体支撑着上层的多个实体,SAP有标志不同上层实体的作用
- 可以有不同的实现,队列
- 例子:传输层的SAP:端口(port)
7.1.2 服务的类型
- 面向连接的服务( Connection-oriented Service)
- 连接(Connection):两个通信实体为进行通信而建立的一种结合
- 面向连接的服务通信的过程:建立连接,通信,拆除连接
- 面向连接的服务的例子:网络层的连接被成为虚电路
- 适用范围:对于大的数据块要传输;不适合小的零星报文(因为建立与拆除连接需要时间)
- 特点:保序
- 服务类型:
- 可靠的信息流 传送页面(可靠的获得,通过接收方的确认)
- 可靠的字节流 远程登录
- 不可靠的连接 数字化声音
- 无连接的服务(Connectionless Service)
- 无连接服务:两个对等层实体在通信前不需要建立一个连接,不预留资源;不需要通信双方都是活跃;(例:寄信)
- 特点:不可靠、可能重复、可能失序
- IP分组,数据包;
- 适用范围:适合传送零星数据;
- 服务类型:
- 不可靠的数据报 电子方式的函件
- 有确认的数据报 挂号信
- 请求回答 信息查询
7.2 服务和协议
- 服务与协议的区别
- 服务(Service):低层实体向上层实体提供它们之间的通信的能力,是通过原语(primitive)来操作的,垂直
- 协议(protocol):对等层实体(peer entity)之间在相互通信的过程中,需要遵循的规则的集合,水平
- 服务与协议的联系
- 本层协议的实现要靠下层提供的服务来实现
- 本层实体通过协议为上层提供更高级的服务
7.3 数据单元DU
SAP:服务访问点
SDU:服务数据单元。就是上层要传的数据包
ICI:接口控制信息
本层把SDU前面加一些控制信息(头部header),形成本层的PDU
n-PDU:第n层的协议数据单元
n-PDU再往下就作为下一层的SDU
各层次的协议数据单元PDU
- 应用层:报文(message)
- 传输层:报文段(segment):TCP段,UDP数据报
- 网络层:分组packet(如果无连接方式:数据报datagram)
- 数据链路层:帧(frame)
- 物理层:位(bit)
7.4 分层处理和实现复杂系统的好处
- 概念化:结构清晰,便于标示网络组件,以及描述其相互关系
- 分层参考模型
- 结构化:模块化更易于维护和系统升级
- 改变某一层服务的实现不影响系统中的其他层次
- 对于其他层次而言是透明的
- 如改变登机程序并不影响系统的其它部分
- 改变2个秘书使用的通信方式不影响2个翻译的工作
- 改变2个翻译使用的语言也不影响上下2个层次的工作
- 改变某一层服务的实现不影响系统中的其他层次
- 分层思想被认为有害的地方?
- 效率降低
7.5 Internet协议栈
- 应用层:网络应用
- 为人类用户或者其他应用进程提供网络应用服务
- FTP, SMTP, HTTP,DNS
- 传输层:主机之间的数据传输
- 在网络层提供的端到端通信基础上,细分为进程到进程,将不可靠的通信变成可靠地通信
- TCP, UDP
- 网络层:为数据报从源到目的选择路由
- 主机主机之间的通信,端到端通信,不可靠
- IP(转发),路由协议(路由)
- 链路层:相邻网络节点间的数据传输
- 相邻两点的通信,点到点通信,可靠或不可靠
- 点对对协议PPP, 802.11(wifi), Ethernet(以太网)
- 物理层:在线路上传送bit
各个层次提供的服务:
物理层:链路层下来的bit变成电磁波信号或者光信号传播给另一相邻物理层,并将信号转化为bit
链路层:相邻两点之间以帧为单位的传输
网络层:端到端的传播,路由+转发
传输层:进程到进程,把网络层的不可靠变为可靠
应用层:实现各种各样的网络应用
7.6 ISO/OSI 参考模型
8 历史
9 小结