1. 什么是因特网
1.1 构成描述
- 因特网是一个世界范围的计算机网络。
- 网络中端系统通过通信链路和分组交换机连接到一起。
- 链路的传输速率以bit/s度量。
- 交换机中,两种最著名的是路由器和链路层交换机。
- 链路层交换机常用于接入网中,而路由器通常位于网络核心中。
- 端系统通过因特网服务提供商(Internet Service Provider,ISP)接入因特网。
- 端系统、分组交换机和其他因特网部件都要运行一系列的协议,这些协议控制因特网中信息的接受和发送。
- TCP(Transaction Control Protocol,传输控制协议)和IP(Internet Protocol,网际协议)是因特网中最重要的两个协议。
1.2 服务描述
- 因特网为应用程序提供服务。
- 应用程序涉及多个相互交换数据的端系统,称为分布式应用程序。
- 与因特网相连的应用程序提供了一个套接字借口(socket interface),是一套规则的集合。规定了在端系统上运行的应用程序请求因特网基础设施向另一个端系统上运行的应用程序交付数据的方式。
1.3 什么是协议
- 协议定义了连个或多个通信实体之间交换数据的报文格式和顺序,以及发送报文/接受报文或其他事件所采取的动作。
2. 网络边缘
- 把与因特网相连的设备称为端系统,因为他们位于网络的边缘。端系统包括桌面计算机、服务器、移动设备等。
- 端系统也称为主机,因为他们运行应用程序。
- 主机有时又进一步分为两类:客户和服务器。
- 现在大部分的搜索等服务器属于大型数据中心,一个大型数据中心由数万甚至数十万服务器组成。
2.1 接入网
- 接入网:是指使用物理连接将端系统连接到网络边缘路由器的网络。
- 家庭接入
- 如今宽带接入有两种最流行的类型:数字用户线(Digital Subscriber Line,DSL)和电缆。
- DSL接入使用现有电话线,与位于电话公司的本地中心局(CO)中的数字用户线接入复用器(DSLAM)交换数据。本地电话公司是它的ISP。
- 电缆因特网接入利用有线电视公司现有的有线电视基础设施。电缆接入需要特殊的调制解调器,这种解调器称为电缆调制解调器。
- 一种更高速率的新兴技术是光纤到户(Fiber To The Home,FTTH),从本地中心局直接到家庭提供一条光纤。(其实现在这个是最普遍的,因为书比较老)
- 企业接入
- 公司和大学以及越来越多的家庭环境,使用局域网(LAN)将端系统连接到边缘路由器。有多种不同的局域网技术,以太网到目前为止是最流行的。
无线的局域网更加流行,基于IEEE.802.11技术的称为WIFI。
- 广域网接入
移动通信技术:3G,4G(LTE),5G
2.2 物理媒体
- 数据通过物理媒体发送传输电磁波或光脉冲来发送比特。
- 物理媒体分成两种了类型:导引型媒体和非导引型媒体。导引型沿着固体媒体前行,如光缆、双绞线、同轴电缆等,非导引型在空气或外层空间中传播,如无线局域网和卫星通信等。
- 双绞铜线
数据速率能从10Mbps到10Gbps,速率取决于线的粗细以及传输方式和距离。6a类电缆能达到10Gbps,距离长达100m。
- 同轴电缆
在电缆电视系统中比较常见,常与电缆调制解调器结合起来,能为住宅用户提供数十Mbps速率的因特网接入。
- 光纤
- 柔软的,导引光脉冲的媒体,每个脉冲代表一个bit。
- 支持极高的比特速率,能高达数十甚至上百Gbps。不受电磁干扰,100km的信号衰减都极低。但是光设备成本较高。
- 陆地无线电信道
极大依赖于传播 环境和距离。电磁波的路径损耗,多径衰落,干扰等。
- 卫星无线电信道
通信中常用两类卫星:同步卫星和近轨卫星。
由于巨大的传播距离,会引入传播时延,但能提供无法使用DSL或电缆接入区域以数百Mbps的速率。
3. 网络核心
3.1 分组交换
- 在各种应用中,端系统彼此交换报文,从源系统向目的系统发送报文,源将长报文划分为较小的数据块,称为分组。在源和目的之间,分组通过通信链路和分组交换机传送。
- 存储转发传输
- 多数分组交换机在链路的输入端使用存储转发传输(store-and-forward transmission)机制。
- 交换机必须接受整个分组才能向输出链路传送第一个比特,这所花的时间为传输时延。
- 假设分组长度为L,传输时延为R,有N条链路,忽略传播时延,总的端到端时延为: d 端到端 = N L R d_{端到端}=N\frac{L}{R} d端到端=NRL
- 排队时延和分组丢失
- 对于每条相连的链路,该分组交换机具有一个输出缓存(也称为输出队列),用于存储路由器准备发往输出链路的分组。
- 当分组到达后要传输到一条输出链路,但是输出链路正在传输其他的分组,则新分组会在输出链路中等待。所以除了存储转发时延外,还有输出缓存的排队时延。该时延是变化的,取决于网络拥塞的程度。
- 当输出缓存已满,新到来分组则会出现分组丢失,新到来的分组或已经排队的分组之一会被丢弃。
- 转发表和路由选择协议
- 每台路由器都具有一个转发表,用于将目的地址映射成输出链路。
- 因特网具有一些特殊的路由选择协议,用来自动地设置这些转发表。
3.2 电路交换
- 通过网络链路和交换机移动数据有两种基本方法:电路交换和分组交换。
- 电路交换
- 电路交换在端系统的会话期间,会预留真个延路径通信所需要的资源(缓存,链路传输速率等)。所以能够确保以恒定的速率向接收方传送数据。
- 电路交换中的复用是通过频分复用(Frequency-Division Multiplexing,FDM)或时分复用(Time-Division Multiplexing,TDM)来实现的。
- 频分复用将整个频谱划分为多个频段,将频段分给不同的用户使用。时分复用将时间分为时隙,不同的时隙给不同的用户使用,由于时隙切换快,用户并不感知。
3.3 网路的网路
如今的网路,可以称为网络的网络,有如下几种网结构的进阶之路。
- 网络结构1:用单一的全球传输ISP互联所有的接入ISP。
网络结构一,需要建造庞大的全球传输ISP,耗资巨大,自然会向接入ISP收取高额费用。
- 网络结构2:由数十万的接入ISP和多个全球传输ISP组成。
在网络结构1的基础上,某个公司可能觉得全球传输ISP有利可图,就会建造多个全球传输ISP。对于接入ISP来说就有了多个选择。
当然,这多个全球传输ISP必须是互联的
- 网络结构3:多层级ISP,最上层为全球传输ISP,下层为国家级ISP,再下层为省级和城级。
国家级接入全球传输ISP,下层的再接入上层的ISP,形成ISP的分层网络。
- 网络结构4:
在网络结构3的基础上,加入存在点(Point of Presence,PoP)、多宿、对等和因特网交换点。
- PoP存在于等级结构的所有层次,底层(接入ISP)除外。
- 除第一层ISP外,其他ISP都可以与多个ISP连接,称为多宿。好处是即使一个出现故障,还是能通过其他的ISP进行网络连接。
- 处于同一层的ISP可以直接与其他ISP相连而不用付费用,这称为对等。
- 第三方公司能够创建一个因特网交换点(Internet Exchange Point,IXP),IXP是一个汇合点,多个ISP在这里对等。
第四层结构由接入ISP、区域ISP、第一层ISP、PoP、多宿、对等和IXP组成
- 网络结构5:
- 在网络结构4的顶部增加内容提供商(content provider network)构建而成。谷歌就是典型的例子。
- 通过创建自己的网络,内容提供商不仅减少了向顶层ISP支付的费用,而且对其服务最终如何交付给用户有了更多的控制。
4. 分组交换网中的时延、丢包和吞吐量
4.1 分组交换中的时延概述
- 分组从一台主机通过一系列路由器传输到另一台主机,会有不同类型的时延,其中最重要的是节点处理时延、排队时延、传输时延和传播时延,这些加起来称为节点总时延。
- 处理时延:检查分组头部和决定将该分组导向何处的时间。
- 排队时延:在链路上等待传输时的时延,当前面有分组在等待传输时,会产生排队时延。(输出缓存有数据待传输)
- 传输时延:将分组的比特推向链路所需要的时间。传输时延为L/R,L是分组长度,R是链路的速率。
- 传播时延:在链路中传播的时间,从链路的起点,到另一个路由器,取决于物理媒介。
4.2 排队时延及丢包
- 排队时延常用统计量来表述,如平均排队时延,排队时延的方差等。
- 流量强度:La/R,L为分组长度,a为分组到达的平均速率,R为传输速率。流量强度设计为小于1,当流量强度接近于1时,排队时延急剧增加。
- 当缓存队列已满,路由器则会选择丢弃分组,称为丢包。
4.3 端到端时延
- 端到端时延是N条链路乘以处理时延、传输时延和传播时延的总和。
- 可以使用Traceroute工具测量端到端时延,该工具会记录分组的往返时间和所经过的路由器的名字和地址。
4.4 计算机网络中的吞吐量
- 瞬时吞吐量:某一瞬间主机接收到文件的速率。
- 平均吞吐量:主机接收一段数据除以所用时间。
- 对于路由器转发的简单链路模型,是一种瓶颈链路,其吞吐量是传输速率和传播速率的小值。
- 在当今的网络中,网络核心通常具有较高速率的链路,用户使用接入网接入网络,接入网通常速率很低。所以吞吐量的限制是接入网的速率。
5. 协议层次及服务模型
5.1 分层体系结构
- 利用分层体系结构,可以将庞大且复杂的系统按结构进行划分,使其逻辑更加清晰,设计更加合理。
- 网络的设计者以分层的方式组织协议以及实现这些协议的网络硬件和软件。
- 一个协议层能够由硬件、软件或两种的结合来实现
- 协议分层具有概念化和结构化的优点
- 各层的所有协议组成协议栈
- 因特网协议栈分为五层
- 应用层:应用层信息分组称为报文
- 运输层:应用程序端点之间传送应用层报文,运输层分区称为报文段
- 网络层:主机之间的通信,网络层数据称为数据报
- 链路层:通过路由器路由数据包,链路层数据称为帧
- 物理层:将帧按比特从一个节点传送到另一个节点
- OSI模型
- 国际标准化组织(ISO)提出的开放系统互连模型(OSI)。
- 七层为:应用层、表示层、会话层、运输层、网络层、数据链路层和物理层。
- 表示层的作用是使应用程序能够解释交换数据的含义
- 会话层提供了数据交换的定界和同步功能
5.2 封装
- 每层的数据会封装上对应的协议头部然后交给下层,最后发送,而接收也是需要层层解封后获取源数据
5.3 面对攻击的网络
- 病毒:一种需要交互才能感染的恶意软件
- 蠕虫:不需要交互就能进入设备的恶意软件
- 一种宽泛类型的安全性威胁称为拒绝服务攻击(Denial-of-Service,DoS)
- 大多数DoS是以下三种:
- 弱点攻击:向主机上的易受攻击的应用程序或操作系统发送制作精细的报文。
- 带宽洪泛:向目的主机发送大量报文,导致真实有用的报文不能到达。
- 连接洪泛:在目的主机中建立大量的半开或全开的TCP连接,导致正常的连接断开。
- 分组嗅探器:能够记录每个流经的分组的副本,能够窃取重要资料
- IP哄骗:将具有虚假原地址的分组注入因特网的能力。只是一个用户冒充另一个用户的一种手段之一。可以通过端点鉴别解决这个问题。