第一章
1.1什么是因特网
它是一个互联了遍及全世界的数以亿计的计算设备的网络。
注:端系统通过通信链路和分组交换机连接到一起就是网络。 端系统通过因特网服务提供商接入因特网,包括如本地电缆或电话公司那样的住宅区ISP、大学ISP等。每个ISP是一个由多个分组交换机和多段通信链路组成的网络。因特网就是将端系统彼此互联,因此为端系统提供接入的ISP也必须互联。
1.2网络边缘
1.2.1接入网
与因特网相连的计算机和其他设备称为端系统,正是因为它们位于因特网的边缘,故而被称为端系统。 将端系统连接到其边缘路由器的物理链路称为接入网。
- 家庭接入:DSL、电缆、FTTH、拨号和卫星。
- 企业(和家庭)接入:以太网和WiFi
- 广域无线接入:3G和LTE
1.2.2物理媒介
- 双绞铜线:最便宜并且使用最为普遍的引导型传输媒体。最终作为高速LAN联网的主要方式。
- 同轴电缆:与双绞线类似,由两个铜导体组成,但是这两个导体是同心的而不是并行的。能被用作导引型共享媒体。
- 光纤:细而柔软的、能够引导光脉冲的媒体,每个脉冲表示一个比特。不受电磁干扰,长达100km的光缆信号衰减极低,并且很难窃听,安全性好,特别用于跨海链路。
- 陆地无线电信道:承载电磁频率谱中的信号。不需要物理线路,并且具有穿透墙壁、提供与移动用户的连接以及长距离承载信号的能力。
- 卫星无线电信道:一颗卫星连接两个或多个位于地球的微波发射方/接收方,它们被称为地面站。常用两种卫星:同步卫星和近地轨道卫星。
网络核心
1.3.1分组交换
- 存储转发传输
交换机在链路的输入端使用存储转发传输机制。交换机能够开始向输出链路传输该分组的第一个比特之前,必须接受到整个分组。比如一条链路发送一个L比特的分组,链路的传输速率为R比特/秒,则传输该分组的时间为L/R秒,那么在时刻L/R的时候,路由器才开始转发第一个分组。 - 排队时延和分组丢失
每个交换机有多条链路与之相连,对于每条链路该交换机具有一个输出缓存,它用于存储路由器准备发往哪条链路的分组。当发现链路正忙于传输其他分组,该到达分组必须在该输出缓存中等待。因此出现了输出缓存的排队时延。如果某个到达的分组发现缓存已经被其它分组充满,就会发生分组丢失。 - 转发表和路由选择协议
在因特网中,每个端系统具有一个称为IP地址的地址。当源主机要向目的端系统发送一个分组时,源在该分组的首部包含了目的地的IP地址。每台路由器都有一个转发表(将目的地址映射称为输出链路)。
1.3.2电路交换与分组交换的对比
电路交换不考虑需求,预先分配链路使用,使得已分配而并不需要的链路时间未被利用。分组交换按需分配链路,性能高于电路交换。
1.3.3网络的网络
ISP的目标:使所有端系统能够彼此发送分组。
一个简单的想法: 使得每个接入ISP直接与每个其他接入ISP连接。(orz这样的网状设计对于接入ISP费用太高了,将每个接入ISP与世界上数十万个其他接入ISP有一条单独的通信链路)
正当的做法:由十多个第一层ISP和数十万个较低层ISP组成。ISP覆盖范围不同。
分组交换网中的时延、丢包和吞吐量
时延概述
- 处理时延:检查分组首部和决定该分组导向何处所需要的时间。
- 排队时延:在队列中,当分组在链路上等待传输时,它经受排队时延。
- 传输时延:将所有比特传输向链路所需要的时间。传播时延是L/R。(L比特表示分组的长度,R表示路由器之间的传输速率(带宽))
- 传播时延:从该链路的起点到路由器B传输所需要的时间是传播时延。传播时延是d/s。(d是路由器之间的距离,s是该链路的传播速率)
一个形象的比喻
一辆汽车为一个比特的话,那么传输延时就是10辆车全部到达收费站的时间,传播延时就是汽车从一个收费站开往下一收费站所用的时间。
不同时延在不同场景下发挥的作用不同,比如处理时延在连接两台两台位于同一个大学校的路由器的链路而言可能是微不足道的,但是对同步卫星链路互联的两台路由器说是几百毫秒。
排队时延和丢包
结点时延最为复杂和有趣的成分就是排队时延。
令a表示分组到达队列的平均速率,R是传输速率,即从队列中推出比特的速率,假设所有分组都是由L比特组成的,比特到达队列的平均速率是L×a.最后假设队列无限大,可以容纳无限数量的比特。比率La/R被称为流量强度。
在现实中,一条链路前的队列只有有限的容量,随着流量强度接近1,到达的分组发现一个满的队列,由于没有地方存储这个分组,路由器就会丢弃该分组,该分组将会丢失。
所以当强度La/R>1时,则比特到达队列的平均速率超过从该队列传输出去的速率,在这种情况下,队列趋于无界增加,并且排队时延趋向无穷大。
所以设计系统时流量强度不能大于1.
所以当流量强度接近1的时候,平均排队时延迅速增加,因为分组到达率的波动。
端到端时延
之前一直集中在结点时延上,即单台路由器上的时延。现在考虑从源到目的地的总时延。
假设源主机和目的主机之间有N-1台路由器,我们还要假设该网络此时是无拥塞的,在每台路由器和源主机上的处理时延是dproc,每台路由器和源主机的输出速率是Rbps,每条链路的传播时延是dprop,结点时延累加起来,得到端到端时延dend-end = N(dproc+dtrans+dproc)。
吞吐量
简单的讲,对于P2P系统而言,当主机A到主机B传送一个文件,任何时间瞬间的瞬时吞吐量都是主机B接收到该文件的速率(以bps计算)。如果文件由F比特组成,主机B接收到所有F比特用去T秒,则文件传送的平均吞吐量是F/T bps.
举个例子服务器通过路由器转发给客户端消息
想象比特是流体,而链路是管道,那么吞吐量应该为min{ Rc ,Rs }。如上图所示,当Rc为2Mbps且Rs>Rc,无论Rs有多大,吞吐量都是2Mbps。
比如:你下载一个F=32×10的6次方个比特的文件,服务器具有2Mbps的传输速率,你有一条1Mbps的接入链路,最终的吞吐量还是1,传输该文件所需的时间是32秒。
同理,当有n个路由器的时候,吞吐量为min{R1,R2,···,Rn,Rn+1}
我们今天因特网对吞吐量的限制因素通常是接入网。
比如10个服务器和10个客户端与某计算机网络核心相连,同时发生10个下载,假定这10个下载是网络中当时的唯一流量,核心中有一条所有10个下载都要通过的链路,该链路的传输速率表示为R。
一般情况下R比Rs和Rc的速度大很多,所以吞吐量其实仍然是min{Rs,Rc}
如果R和Rs(服务器传输速率)、Rc(接入网传输速率)差不多会出现怎么样的情况呢?
以两个为例,两个下载会平等划分它的传输速率,这时候每个下载的瓶颈不再位于接入网中,而是位于核心中的共享链路了,该瓶颈仅能为每个下载提供1.5Mbps的吞吐量,因此每个下载的端到端吞吐量现在减少到500kps.
模型
因特网模型不是唯一的协议栈,20世纪70年代后期,国际标准化组织提出计算机网络应用组织提出计算机网络组织为大约7层,称为开放系统互联模型。
因特网缺少了在OSI模型中建立的两个层次,这也引起了思考?因特网觉得这两个层次应该交给应用程序设计的过程中实现,所以就会有如今的协议栈。
病毒和蠕虫的区别
病毒:一种需要某种形式的用户交互来感染用户设备的恶意软件。
蠕虫:无需任何明显用户交互就能进入设备的恶意软件。
拒绝服务攻击
1.== 弱点攻击==。向一台目标主机上运行的易受攻击的应用程序或操作系统发送制作精细的报文。
2. 带宽洪泛。向目标主机发送大量的分组,分组过多使目标的接入链路变得拥塞,使得合法的分组无法到达服务器。
3. 连接洪泛。攻击者在目标主机中创建大量的半开或全开TCP连接。该主机因这些连接陷入困境,并停止接受合法的连接。