[A Top-Down Approach][第一章 计算机网络和因特网]
标签(空格分隔): 计算机网络
-
介绍基本术语和概念
-
查看构成网络的基本硬件和软件组件.
-
从网络的边缘开始,考察在网络中运行的端系统和网络应用
-
探究计算机的核心,链路和交换机
- 以及,将端系统和网络核心相连接的接入网和物理媒体
-
了解因特网是网络的网络
-
后半部分更加广泛
- 数据的延迟,丢包和吞吐量
- 给出一个端到端吞吐量和延迟的简单定量魔性.
- 协议分层,服务模式
- 网络攻击
- 互联网的历史
- 数据的延迟,丢包和吞吐量
1.1 什么是因特网
回答这种问题的两种方式:
- 描述因特网的具体构成,即软件与硬件
- 分布式应用提供的服务来描述.
1.1.1 具体构成描述
-
主机(host)或者端设备(end system): PC,工作站,服务器,手机,电视,游戏,相机,汽车 -
端系统通过
通信链路(communication link)和分组交换机(packet switch)连接在一起.通信链路:电缆,铜线,光纤和无线电频谱.- 链路传输比率:
bit/s或者bps
- 链路传输比率:
包/分组(packet):端系统发送数据时,发送端需要将数据分段,并为每段加上首部字节.由此形成的信息叫做packet- 在到达目的地之后才会被重新组装
- 在到达目的地之后才会被重新组装
分组交换机:从它的一条入通信链路接收到达的分组,并从它的一条出通信链路转发该分组- 两种最有名的分组交换机
路由器(router):通常用于网络核心链路层交换机(link-layer switch):用于接入网中
- 两种最有名的分组交换机
路径(route/path):一个packet经过的一系列链路和交换机叫做该网络的路径.
-
因特网服务提供商(Internet Service Provide,ISP):-
ISP: 是一个或多个分组交换机和多段通信链组成的网络
-
ISP为端系统提供了不同类型的接入方式- 线缆调制解调器或DSL这样的住宅宽带接入
- 高速局域网接入
- 无线接入
- 56kbps拨号调制解调器接入
-
ISP本身也必须互联- 底层的
ISP通过国家高层的ISP互联起来.- 高层的
ISP通过高速光纤互联的高速路由器组成.
- 高层的
- 底层的
-
ISP都是独立管理,运行着IP协议,遵从一定的命名和地址习惯. -
1.3节再仔细探讨.
-
-
协议(protocol):控制因特网中信息的接收和发送.TCP(Transmission Control Protocol):传输控制协议IP(Internet Protocol):网际协议IP协议定义了路由器和端系统之间发送和介绍packge格式.
-
因特网标准(Internet standard)由
因特网工程任务组(Internet Engineering Task Force,IETF)研发.请求评论(Request For Comment,RFC):IETF的标准文档叫做请求评论.- RFC文档定义了
TCP,IP,HTTP和SMTP等协议 - 目前有6000多个RFC文档
- RFC中文文档链接
- RFC文档定义了
-
其他组织也在指定网络组件的标准.
- 最引人注目的是对网络链路的标准
IEEE 802 LAN/MAN指定了以太网和无线Wifi的标准.
1.1.2 服务描述
从应用程序的角度来描述因特网.
-
电子邮件,Web冲浪,IM,SNS,IP语音,流式视频,P2P,网络电视等等.
-
端系统提供一套与因特网相连的
API,socket编程啥的.
1.1.3 什么是协议

- 一个
协议定义了两个或多个通信实体之间的交换的报文格式和次序,以及报文发送和接受一条报文或其他事情所要采取的动作.
1.2 网络边缘
- 网络边缘: 端系统和应用程序,处于网络的边缘部分的组件.
1.2.1 接入网
接入网(acces network):将端系统连接到其边缘路由器(edge router)的物理链路.- 边缘路由器:端系统到任何其余端系统的路径上第一台路由器
1.家庭接入: DSL,电缆,FTTH,拨号和卫星.
DSL

-
DSL:
数字用户线(Digital Subscriber Line,DSL):利用本地电话公司现有的本地电话基础设施(双绞铜线). -
ISP:本地电话公司
-
每个用户的DSL调制解调器使用现有的电话线与位于本地电话公司的本地中心局(CO)中的
数字用户线接入复用器(DSLAM)来交换数据. -
家庭电话线同时承载了数据和传统的电话信号.
- 高速下行信道: 50kHz~1MHz 频段
- 中速上行信道: 4kHz~50kHz 频段
- 普通的双向电话信道: 0~4kHz频段
-
DSL标准:不对称接入12Mbps下行 和1.8Mpbs上行24Mbps下行 和2.5Mpbs上行
电缆

-
电缆因特网接入(cable Internet access):利用有线电视公司现有的有线电视基础设施. -
混合光纤同轴(Hybrid Fiber Coax,HFC):系统应用了光纤和同轴电缆. -
电缆调制解调器: 电缆因特网接入所需的解调器. -
电缆调制解调器端接系统(Cable Modem Termination System,CMTS)- 类似于
DSL网络中的DSLAM类似的功能 - 将电缆调制解调器发送的模拟信号转换回数字信号发送至互联网.
- 类似于
-
电缆接入网标准:
42.8Mbps下行和30.7Mbps上行
-
重要特征: 共享广播媒体.
- 如果几个用户同时下载一个视频文件,速度将会很慢.
- 因为上行通道也是共享的,需要一个分布式多路访问协议协调传输和避免碰撞.
FTTH
-
FTTH:
光纤到户(Fiber To The Home,FTTH)- 从本地中心局直接到家庭提供一条光纤路径.
-
有几种光纤分布方案
直接光纤:中心局到每户设置一根光纤.AON,PON:每根光纤由多个家庭共享,直到接近家庭时,才每户一根.主动光纤网络(Active Optical Network,AON)- 实际是交换因特网,第五章讨论
被动光纤网络(Passive Optical Network,PON)
-
主要介绍
PON,下图就是PON分布体系

-
光纤网络端接器(Opitical Network Terminator,ONT):由专门的光纤连接到邻近的分配器(splitter)splitter把一些家庭的光纤集结到一根共享的光纤.
-
光纤线路端接器(Opitical Line Terminator,OLT):splitter出来的光纤连接本地电话公司的OLT.OLT提供光信号和电信号之间的转换,经过路由器与因特网连接.
-
电缆接入网标准:
- 有潜力提供千兆比特范围的因特网接入速率.
卫星
- 使用卫星链路提供超过
1Mbps的速率提供
拨号
- 传统电话线拨号接入,通过普通的调制解调器(非DSL).
- 56kbps速率的退伍方式.
2.企业(或家庭) 接入: 以太网和WiFi
- 通常用局域网(LAN)将端用户连接到边缘路由器
- 以太网是目前为止最流行的局域网技术
以太网

-
以太网使用双绞铜线与一台以太网交换机相连. -
以太网交换机或这样相连的网络再与更大的因特网相连.
-
用户通常有
100Mps的接入速率 -
服务器甚至有
1Gbps,甚至10Gbps的接入速率
WiFi
-
接入点:在无线LAN环境,无线用户从一个接入点发送/接受packet,接入点再与企业网连接,企业网再与因特网连接`- 用户必须在接入点几十米范围内.
-
基于
IEEE 802.11技术的无线LAN接入点,叫做Wifi. -
IEEE 802.11标准提供了达54Mbps的共享传输速率.
3.广域无线接入
-
应用了移动电话相同的基础设备-蜂窝网提供商运营的基站来发送接受
pageket -
与
Wifi不同,一个用户仅需要在基站的数万米范围.
3G
3G:第三代无线技术
LTE
LTE(Long-Term Evolution)来源于3G技术.
1.2.2 物理媒体
物理媒体划分为两类:
导引型媒体(guided media)- 电波沿着固体媒体前行,如光缆,双绞铜线或同轴电缆
导引型媒体(unguided media)- 电波在空气或外层空间中传播,例如在无线局域网或数字卫星频道.
- 物理链路成本: 人工成本是材料成本的几个数量级,所以一个建筑可能3种物理链路都安装了.
1.双绞铜线

-
最便宜并且最普遍的引导型传输媒体是双绞铜线.
- 一百年来一直用于电话网
-
双绞线由两根隔离的铜线组成,大概1mm粗,以规则的螺旋形式排列着.
- 两根线绞起来是为了减少附近其余双绞线的电气干扰.
-
无屏蔽双绞线(Unshielded Twisted Pair,UTP): 常用局域网(LAN中- 也是我们日常见得最多的
-
用途:
LAN,DSL,56kbps拨号调制解调器LAN: 能达到10Mbps到10GbpsDSL:10Mbps- 拨号 :
56kpbs
2.同轴电缆

-
同轴电缆: 由两个铜导体组成,但是这两个导体是同心的. -
同轴电缆在电缆电视系统相当普遍
- 电缆电视系统与电缆调制解调器结合,提供因特网接入.
3.光纤
-
光纤是一种细而柔软,能够导引光脉冲的媒体,每个脉冲代表一个比特.
-
光纤被作为长途引导性传输媒体,特别是跨海链路.
- 有极高的速率,十到数百 Gbps
- 不受电磁干扰,100km光缆信号衰减极低,难以被窃听
-
光载波(Optical Carrier,OC)标准- 范围
51.8Mbps~39.8Gbps - 被称为
OC-n,速率为n*51.8Mpbs
- 范围
4.陆地无线电信道
-
无线电信道承载电磁频谱中的信号.
-
极大依赖传播环境和传播距离.
-
陆地无线电信道大致分为三类
- 很短距离(1米或2米): 无线头戴式耳机
- 局域,跨越十到百米:
WLAN - 广域: 蜂窝
(3G,4G),LTE
5.卫星无线电信道
-
同步卫星
- 来回至少280ms延迟
- 用于无法使用其余方式接入互联网的情况
-
近地卫星
- 未来可能用于因特网接入
1.3 网络核心
-
网络核心: 互联网系统的分组交换机和链路构成的网状网络. -
以下加粗线的部分就是网络核心.

1.3.1 分组交换
-
名词:
报文(message)``分组(packet),分组交换机(packet switch)在1.1.1有介绍,不再赘述 -
发送
L比特的packet,速率为R比特/秒,时间为L/R秒
存储转发传输
存储转发传输(store-and-forward transmission): 指在交换机能够开始向输出链路传输该分组的第一个比特之前,必须接收到整个分组.- 多数交换机在链路的输入端都使用了存储转发传输.
有无存储转发传输的区别

-
存储转发传输的总时延为:
2L/R -
没有使用存储转发传输的总时延为
L/R -
所以在一个有
N条速率为R的链路的路径(即有N-1个路由器),发送一个分组的总时延为
-
P个分组经过N个速率为
R的链路的路径的总时延应该为(N+P-1)*(L/R)
排队延时和分组丢失
-
输出队列(output buffer):用于存储路由器准备发往那天链路的packet -
排队延时(queue delay):链路忙着传输别的分组,该分组等待的时间. -
分组丢失(丢包)(packet lost):以为输出队列不是无限的,所以可能将到达的分组或者已经排队的分组之一丢弃.

-
如图里的交换机如果到达率超过了1.5Mbps,就会开始进入输出队列等待.
-
1.4节更详细研究
转发表和路由选择协议
-
转发表(forwarding table):每台路由器都有一个转发表,用于将目的地址(或一部分)映射称为输出链路. -
路由选择协议(routing protocol):因特网具有一些特殊的路由选择协议,用于自动的设置这些转发表.
1.3.2 电路交换
-
电路交换(circuit switching)的基本过程可分为连接建立、信息传送和连接拆除三个阶段
-
在电路交换网络中,端系统间通信会话期间,预留了端系统间通信沿路径所需要的资源(缓存,链路传输速率),也就是维护了一条
连接,这个连接叫做电路. -
传统的电话网络就是电路交换的例子.
1. 电路交换网络中的复用
-
链路中的电路:通过
频分复用(Frequency-Division Multiplexing,FDM)或时分复用(Time-Division Multiplexing,TDM)来实现的.

-
对于
FDM,链路的频谱由跨越链路创建的链接共享.- 每条连接专用一个频段.
- 频段的宽度称为带宽.
-
对于
TDM,时间被划分为固定区间的帧,每帧又划分为固定数量的时隙- 建立连接的时候,每个帧为连接指定一个时隙单独使用.
- 类似于时间片的概念.
- 传输速率为帧速率*一个时隙的比特
-
-
电路交换因为
静默期(silent period)使得效率变低.- 但是具有很好的实时性和传输效率.
- 传输时间也跟链路数量无关(因为不需要存储转发传输)
2. 分组交换和电路交换的对比
虽然分组交换和电路交换在今天的电信网络中都是普遍采用的方式,但趋势是朝着分组交换方向发展的,甚至许多今天的电话交换电话网正在逐渐向分组迁移,特别是,电话网在昂贵的海外电话部分使用分组交换.
1.3.3 网络的网络

网络结构4
存在点(Point of Presence,PoP)-
一个
PoP只是提供商网络中的一台或多台路由器(在相同位置)群组- 对于要与提供商
PoP连接的客户网络,从第三方通信提供商租借高速链路直接将它的路由器之一连接到位于该PoP的一台路由器上.
- 对于要与提供商
-
PoP存在所有等级层次,底层(接入ISP)除外.
-
多宿(muti-home):可以和两个或更多提供商ISP连接.对等(peer)- 产生原因

P2P下载的原理就是如此.(还有所谓的P2P金融)
- 产生原因
因特网交换点(Internet exchange point,IXP)- 中立性:一般由非电信运营商控制的第三方建立并运营;
- 对等:接入IX平台的各家运营商之间交换流量时,一般采用免费对等互联策略(Peering);
- 微利或非盈利性:IX平台本身只提供接入平台,不参与成员间的流量交换,在收费模式上只收取端口占用费,无论是科研机构建立的IX(如香港HKIX)还是商业性质的IX(如AMS-IX)都是如此。
网络结构5
内容提供商网络(content provider network)- 谷歌是一个突出的例子.
- 在书的时间,有30~50个数据中心分布世界各地.
- 数据中心通过专用的
TCP/IP互联,独立于公共因特网
- 通过创建自己的网络,不仅减少了向顶层ISP支付的费用
- 而且对服务最终如何交给用户有了更多的控制
- 7.2.4节将详细讲述.
- 谷歌是一个突出的例子.
1.4 分组交换网的时延,丢包和吞吐量
1.4.1 分组交换网中的时延概述
-
结点处理时延(nodal processing delay)- 包括:
- 检查
packet首部和决定将该分组导向何处所需要的时间 - 检查比特级别的差错所需要的时间
- 检查
- 时间 : 微秒或者更低的数量级.
- 后续 : 交由缓存队列.
- 包括:
-
排队时延(queuing delay)packet在链路等待运输时,经受排队延时.- 时间: 由等待的
packet数量决定,毫秒到微秒数量级.
-
传输时延(transmission dalay)packet在存储转发传输时所花的时间.- 时间:在一段链路中是
L/R,毫秒到微秒级别
-
传播时延(propagation delay)- 速率:
s略小于光速,取决于媒介. - 时间:
d/s,毫秒量级.
- 速率:

1.4.2 排队时延和丢包
-
结点时延最复杂和有趣的是
d.queue -
流量强度(traffic intensity):La/RL: 平均一个分组的比特数.a: 分组到达的平均速率,单位pkt/s,La单位bps.- 当流量强度大于1时,排队延时将无限增大,设计系统时流量强度不能大于1
-
如果
La/R<=1,流量的性质也影响时延.- 周期性到达:每
(L/R)秒到达一个分组,基本没有时延. - 突发形式: 如果
(L/R)N秒同时到达N个分组- 第k个传输分组具有 (k-1)*(L/R)的传播延时
- 随机:一般的情况.

- 周期性到达:每
丢包
-
当队列满时,对丢弃一些分组.
-
对结点的衡量既要考虑时延,也要考虑丢包率
1.4.3 端到端的时延
d.(end-queue)=N*(d.proc+d.trans+d.prop)d.trans=L/R- 不考虑排队时延.
Traceroute
- 一个用来测试经过的路由与时延的程序

端系统,应用程序和其他时延
- 媒体分组化延迟:
IP语音(VoIP)- 在
VoIP中,发送方在向因特网传递分组之前必须用编码化的数字化语音填充一个分组,所消耗的时间就是媒体分组化延迟.
- 在
1.4.4 计算机网络的吞吐性
-
吞吐量是另一个重要的性能测度.
-
瞬间吞吐量(instantaneous throughput):主机A向主机B传输一个文件时,主机B 接收文件的速率 (bps)- 就是所谓的瞬间下载速度
-
瓶颈链路(bot-tlenneck link):min{R1,R2,R3..Rn}是吞吐量.- 对吞吐量的限制大多数接入网.可能仅仅为
min{R1,R2} - 在某些情况,网络核心的链路也可能称为瓶颈链路
- 对吞吐量的限制大多数接入网.可能仅仅为
-
后续再仔细研究.

1.5 协议层次及其服务模型
1.5.1 分层的体系结构
协议分层
-
分层(layer):为了给网络协议的设计提供一个结构,网络设计者以分层的方式组织协议以及实现这些协议的网络硬件和软件.- 每个协议属于这些层次之一.
-
服务模型(service model): 某层向上一层提供的服务. -
一个协议层可以用软件,硬件或者两者结合来实现.
-HTTP,SMTP这样的应用层协议基本再端系统用软件实现,运输层也是如此.- 物理层和数据链路层负责处理跨越特定链路的通信,通常是实现在网络接口卡.
- 网络层通常是硬件和软件的混合体.
-
协议栈(protocol stack):各层的所有协议被称为协议栈.- 由5个层次组成: 物理层,链路层,网络层,运输层和应用层.

(1)应用层
-
应用层是网络应用程序及他们的应用层协议存留的地方.HTTP:提供了Web文档请求和传送SMTP:提供了电子邮件报文的传说FTP:提供两个端文件的传送DNS:域名系统
-
报文(message):这种位于应用层的信息packet称为报文(message)
(2)运输层
-
运输层:在应用程序端点之间传送应用层报文TCP: 提供面向连接的服务(类似于电路交换)- 包括了应用层报文向目的地确保传递和流量控制
- 也将长报文划分为短报文
- 提供拥塞控制机制:当网络拥堵时,源抑制传输速率,
UDP: 提供无连接服务- 不提供不必要服务的服务.
- 没有可靠性,没有流量控制,没有拥塞控制.
-
报文段(segment):位于运输层的packet.
(3) 网络层
网络层:负责将数据报的网络层分组从一台主机移动到另一台主机.- 源主机的运输层协议向网络层递交运输层报文段和目的地址,网络层来处理目的地址.
IP协议:定义了数据报的各个字段,端系统和路由器如何处理字段.路由选择协议
数据报(datagram): 位于网络层的packet.
(4) 链路层
-
链路层:网络层将数据下传给链路层,链路层沿着路径将数据报传递给下一个结点.在下个结点,链路层将数据报上传给网络层. -
链路层提供的服务取决于应用于该链路的特定链路层协议.
- 某些协议基于链路提供可靠传递.,传输结点跨越链路到输出结点.
- 不同于
TCP的可靠传递. TCP提供的是端到端的可靠传递.
- 不同于
- 常用协议:以太网,
WiFi和电缆接入网的DOCSIS协议. - 一个数据报可能被沿途不同链路的不同链路层处理.
- 某些协议基于链路提供可靠传递.,传输结点跨越链路到输出结点.
-
帧(frame):链路层分组.
(5) 网络层
-
物理层: 物理层的任务是将帧中的一个一个比特从一个结点移动到下一个结点.- 与链路(双绞铜线,单模光纤)的实际传输媒介相关.
-
以太网(链路层协议)有许多物理层协议: 关于双绞铜线,关于同轴电缆,关于光纤的.
- 在不同协议,跨越链路时一个比特是以不同方式进行的.
OSI 模型

-
因特网协议栈不是唯一的协议栈.
-
开放系统互联(OSI)模型:20世纪70年代 由ISO提出计算机网络应组织为7层.表示层:使通信的的应用程序解释交换数据的含义.- 这些服务包括压缩和数据加密以及数据描述.
会话层:提供了数据交换定界和同步功能,包括了建立检查点和恢复方案的方法.
-
这两个层次留给因特网程序自己选择.
1.5.2 封装
-
链路层交换机实现了2个层次.
-
路由器实现了3个层次

-
封装(encapsulation)- 首部字段
有效载荷字段(payload field):通常来源于上一层分组.
1.6 面对攻击的网络
-
僵尸网络(botnet) -
病毒(virus): 是一种需要某种形式的用户交互来感染用户设备的恶意软件. -
蠕虫(worm): 是一种无需任何明显用户交互就能进入设备的恶意软件. -
拒绝服务式攻击(Denial-of-Service(DoS) attack): 使得网络,主机,其他基础设施设备不能被合法用户使用.- 弱点攻击
- 向易受攻击的软件和操作系统发送精细的报文来攻击.
- 带宽洪泛
- 发送大量分组,使得接入网络变得拥塞.
- 连接洪泛
- 攻击者在目标主机创建大量的半开或全开
TCP连接.
- 攻击者在目标主机创建大量的半开或全开
- 弱点攻击
-
分布式DoS(Distributed DoS,DDoS):单个主机的DoS会被屏蔽.- 利用僵尸网络.
-
分组嗅探器(packet sniffer):在无线传输设备的附近放置一个被动的接收机,记录每个流经设备的分组副本的被动接收机.- 可能拦截敏感信息,口令,隐私的个人信息.
- 难以检测存在.
- 防御嗅探的方法跟密码学有关.
-
IP哄骗(IP spoofing):将具有虚拟源地址的分组注入Internet的能力叫做IP哄骗..- 只是一个用户冒充另一个用户的许多方式之一.
- 端点鉴别:确信一个报文源自他应当来的地方.
1.7 计算机网络和因特网历史.
1.7.1 分组交换的发展: 1961 ~ 1972
ARPAnet:Internet的直接祖先- 1972年编写了第一个电子邮件的程序.
1.7.2 专用网络和互联网络: 1972 ~ 1980
-
随着网络的数目的增多,研究网络的网络(互联网)时机成熟
-
TCP,UDP,IP.
-
以太网协议为了连接多台PC,打印机和共享磁盘在一起的需求激励的.
1.7.3 网络激增: 1980 ~ 1990
NCP向TCP/IP迁移.DNS域名系统
1.7.4 因特网爆炸: 20 世纪 90 年代
World Wide Web应用程序的出现- 谷歌和
Bing,亚马逊,eBay,Facebook. HTML,HTTP,Web服务器,浏览器- 2001年 因特网股票崩盘.
1.7.5 最新发展
- 高速
- 专用网络
- 云
- 社交
1.8 小结
- 从网络的边缘开始,观察端系统和应用程序,以及在端系统的运输服务.
- 接入网的链路层技术和物理媒体.
- 进入网络核心钻研
- 分组交换和电路交换
- 研究全球因特网的结构.
- 计算机网络研究领域的主题.
- 时延,吞吐量和丢包.