《计算机网络:自顶向下方法》笔记:01.计算机网络和因特网
本章思维导图
一、什么是因特网
因特网是一个世界范围的计算机网络,即它是互联了遍及全世界的数以亿计的计算设备的网络。
1.从组成角度看
1.1 节点
网络的(边缘)节点指的是是主机(host)或端系统(end system)包括在上面运行的应用,一般位于网络结构的边缘。端系统是从具体构成角度描述的用语,而主机是从服务角度描述的用语。实际上,这两个术语是通用的,即主机=端系统。
(1)主机有时候分为两类:
- 客户: 桌面PC、移动PC和只能手机
- 服务器:用于发布Web页面,流视频的主机,现在常常依托于大型数据中心。
1.2 边
边一般是指接入网(Access Network),即将端系统连接到其边缘路由器(edge router)的网络,接入网一般也是由通信链路组成,节点通过边向核心网连接
(1)边缘路由器是端系统到任何其他远程端系统的路径上的第一台路由器
(2)链路的传输速率一般以比特/秒度量(bit/s,或bps)来度量
(3)接入网环境和链路类型:
- 家庭接入:数字用户线(DSL,digital subscriber line)、电缆、光纤到户(FTTH, fiber to the home)、拨号、卫星
- 企业(和家庭)接入:以太网和WIFI
- 广域无线接入:3、4、5G
(4)接入网的物理媒介:
- 导引型媒体:光缆、双绞铜线和同轴电缆
- 非导引型媒体:无线局域网或数字卫星频道
1.3 核心
网络核心是由互联网端系统的通信链路(一般会和接入网链路区分开,称为主干网链路,Backbone)和分组交换机构成的网状网络。
网络核心承担着数据交换的功能:路由和转发
数据交换的方式有两种:
1.3.1 分组交换:
(1)分组(packet):当一台端系统向另一台端系统发送数据时,发送端系统将数据分段,并为每段加上首部字节。由此形成的信息报用计算机网络的术语称为分组(packet),也就是包。每个分组都会通过通信链路和分组交换机。
(2)分组交换机有两种类型:
- 路由器(rounter) ,一般处于网络核心,所以下面有关分组交换机的概念用路由器作为主语,也是一样的
- 链路层交换机(link-layer switch),常用于接入网
(3)多数分组交换机在链路的输入端使用存储转发机制。即交换机接收并存储完分组的所有比特后再进行转发
(4)分组交换机具有一个输出缓存(output buffer)(也称为输出队列 output queue),用于存储 路由器准备发往(不是正在发往)某条链路的分组。这种情况会发生在:分组需要传输到A链路,结果A链路正在传其他分组,那么分组就得在交换机的输出缓存中等待。
(5)分组交换机的输出缓存中可能存在多个等待的分组,那么这些等待的分组就得承受输出缓存的排队时延(queue delay),要等待排在他之前的分组传走
(6)当输出缓存里排满了分组,再新来的分组就会出现分组丢失(丢包)(packet lost)。新到达的分组或者已经排队的分组之一将会被丢弃。
(7)分组交换网中的时延组成:
- 处理时延:是因为节点需要解析分组(如检查分组首部和决定分组该导向何处)的必要信息然后决定其出链路(索引转发表等操作)而产生的,通常在微秒或更低数量级
- 排队时延:排队时延是因为分组所对应的出链路前面有其他分组正在传输,所以需要等待该链路的缓冲队列里其他分组传输完毕而产生的(路由器缓冲区中,分组到达链路速率超过链路输出速率),通常在毫秒级到微秒级;
- 流量强度:分组到达的速度 / 结点的处理速度
- 随着流量强度接近于1,平均排队时延将迅速增加。流量工程里一个金科玉律就是:设计系统时流量强度不能大于1,流量强度持续大于1时,就将出现丢包现象
- 一个节点的性能不仅需要根据时延来度量,也需要丢包率来度量
- 传输时延:传输时延是将所有分组的比特推向链路(即将所有分组推出路由器的时间,包越大,链路速度越差,传输时延越长)所有需要的时间,实际的传输时延通常在毫秒到微秒数量级。
- 传播时延:传播时延是指一个比特从一台路由器传播到另一台路由器的时间。一旦分组中的最后一个比特到达路由器就意味着该分组的所有比特都已到达路由器;广域网中,传播时延一般是毫秒级的
(8)传输时延和传播时延的对比:打个比方的话,传输时延就是大卡车经过收费站的时间,而传播时间就是车在行驶到下个收费站的时间
(9)上面讨论的是节点的时延,还有端到端的时延,这是从源到目的地的总时延。还有其他一些时延的概念,暂且不提
(10)计算机网络的吞吐量描述了比特经过某个节点的速度,可细分为瞬时吞吐量和平均吞吐量。对于某条路径来说,该路径的吞吐量则是所有节点的吞吐量的最小值(短板效应),所以在如今核心网(骨干网)配置了高速链路的情况下,限制因特网吞吐量的因素常常是接入网。
(11)每台分组交换机具有一个转发表(forwarding table): 用于将分组中包含的目的地址(或目的地址的一部分)映射成输出链路。即决定将分组转发到哪条链路,随后下一个路由器再决定该分组继续转发到哪条链路
(12)因特网具有一些特殊的路由选择协议,用于自动设置转发表。
(13)分组交换的
- 优点:
- 按需分配链路使用,使得带宽共享,允许更多用户
- 简单有效(不用建立呼叫),成本低
- 缺点:
- 有延时、丢包,不适合实时服务
1.3.2 电路交换
(1)电路交换(circuit switching)要让网络在发送方发送信息前要和接受方之间建立一条连接。
(2)电路交换网络中的复用:
- 频分复用(Frequency-Division Multiplexing, FDM)
- 时分复用(Time-Division Multiplexing, TDM)
- 波分复用(Wave-Division Multiplexing, WDM)
(3)电路交换的
- 优点:独享的电路,性能得到保障
- 缺点:需要预留传输链路,容易造成资源浪费(可以用餐厅预订理解这点,电路交换是座位被别人预定了,就不能给其他人用,分组交换就是来一个用一个)
(4)显然,数据交换的趋势是朝着分组交换发展的
1.4 框架图
清楚了三个组成部分,可以看下这张框架图,其中终端设备为边缘节点(主机/端系统),红线为边(接入网),蓝线部分为核心(核心网/骨干网)
2.从服务角度看
因特网为应用程序提供服务的基础设施
二、ISP层次结构
ISP(internet sercice provider): 因特网服务提供商
ISP的层次结构就是:网络的网络。
今天的因特网是一个网络的网络,其结构复杂,由十多个第一层ISP和数十万个较低层ISP组成。ISP覆盖的区域多种多样,有些跨越多个大洲和大洋,有些限于狭窄的地理区域。较低层的ISP与较高层的ISP相连,较高层ISP彼此互联。用户和内容提供商(ICP)是较低层ISP的客户,较低层ISP是较高层ISP的客户。近年来,主要的内容提供商也已经创建自己的网络,直接在可能的地方与较低层ISP互联(这样可以提供更好且便宜的服务)。
三、计算机网络的协议层次和服务模型
1.协议
协议(protocol):对等层实体通信过程中遵守规则(如报文格式、次序、发送或接收的动作)的集合,控制着因特网中信息的接收和发送,是水平结构。
因特网的主要协议统称为TCP/IP(Transmission Control protocol 传输控制协议) (Internet Protocol 网际协议)
1.1 协议分层
计算机网络采用分层的体系结构,分层的体系结构因为提供模块化而具有很高的价值,同时也易于服务实现的多样性:某一层对其上一层提供服务,同时它可以利用下一层提供的服务。只要对上提供的服务和对下利用的服务没有变化,其层内部的实现并不会对系统结构产生影响
1.1.1 TCP/IP五层模型
将各层的所有协议组合起来,称为协议栈。因特网的协议栈由5个层次组成,每层有各自的功能和协议数据单元(传输的东西叫啥)(PDU,Protocol Data Unit)
功能描述 | 通信主体 | 协议数据单元 | 常见协议 | |
---|---|---|---|---|
应用层 | 为用户或其他应用提供网络应用服务 | 应用到应用 | 报文 | FTP/SMTP/HTTP |
运输层 | 在应用程序端点之间传输应用层报文 | 进程到进程 | 报文段 | TCP/UDP |
网络层 | 将数据报从从一台主机移动到另一台主机 | 端(主机)到端(主机) | 分组(TCP)/数据报(UDP) | IP |
链路层 | 相邻网络节点间的数据传输 | 点到点 | 帧 | PPP/802.11(WIFI) |
物理层 | 在物理线路上传输bit | 物理线路 | 位 | 物理层协议 |
主机实现了所有5个层次,这与因特网体系结构将它的复杂性放在网络边缘的观点是一致的。
值得一提的是,路由器和链路层交换机与端系统类似,也以多层次的方式组织它们的网络硬件和软件,但并不实现协议栈中的所有层次。链路层交换机实现了第一层和第二层;路由器实现了第一层到第三层。
例如,这意味着因特网路由器能够实现IP协议(一种第三层协议),而链路层交换机则不能。我们将在后面看到,尽管链路层交换机不能识别P地址,但它们能够识别第二层地址,如以太网地址。
1.1.2 OSI七层模型
国际标准化组织(ISO)提出过开放系统互连模型(OSI)。OSI的模型一共有7层,从下到上依次为:物理层,链路层,网络层,传输层,会话层,表示层,应用层。相比因特网体系结构,OSI多了两层。因特网将两层的功能留给了开发者自行实现。
会话层:数据交换的同步,检查点,恢复
表示层:允许应用解释传输的数据, 例如加密,压缩,机器相关的表示转换
1.2 协议分层的优缺点
优点:(1)概念化,结构清晰;(2)模块化,易于维护和升级
缺点:效率相对较低
1.3 封装和解封装
一个分组,在不同的层次有不同的称谓,是因为它们经过每一层的时候就被该层封装上了属于该层的相关信息;于是,每一分层的分组有两种类型的字段:首部字段和有效负载;其中有效负载即为来自上一层的分组数据,而首部字段就是该层加上的必要信息;分组不断被封装以实现各层协议规定的相关功能。解封装就是把这些封装的信息拆解出来,传到对应的层。
整个网络对应协议层次的封装和解封装见下图:
2.服务
服务指低层实体向上层实体提供他们之间通信的能力,是垂直结构
(1)原语(primitive):上层使用下层服务的形式(—般是函数的调用)
(2)服务访问点(SAP:Services Access Point):上层使用下层提供的服务时,通过层间的接口
3.协议和服务的联系和区别
联系:
本层协议的实现要靠下层提供的服务
本层实体通过协议向上层提供更高级的服务
区别:
- 服务:低层实体向上层实体提供它们之间的通信的能力,是通过原语(primitive)来操作的,垂直结构
- 协议:对等层实体(peer entity)之间在相互通信的过程中,需要遵循的规则的集合,水平结构