红魔咖啡馆

头发越掉越多,头发越掉越少

0%

【计算机网络】网络概述

网络概念

  • 网络:由点和边构成的,与大小和形状无关的拓扑

  • 计算机网络:

    • 计算机网络中的点包括主机节点(各种设备)、数据交换节点(中继器、交换机、路由器等)

    • 边称为通信链路,包括接入链路(access):主机连接到互联网的链路;主干链路(backbone):路由器间的链路

    • 还包括协议,即计算机网络中的标准

  • 互联网:以TCP/IP为主的一簇协议支撑的,应用最 的一种网络

    • 端系统/主机:设备本身,操作系统,网络应用程序
    • 分组交换设备:不同层次由不同设备负责(路由器-网络层,交换机-通信层)
    • 通信链路
    • 协议:对等层的实体进行通信时遵守的一系列规则(即控制发送接收消息的标准)
    • 互联网是网络的网络:不同网络通过一系列网络交换节点相连
    • Internet标准:以IETF(互联网工程任务组)发布的RFC(请求评述)文档形式
    • 互联网还是为分布式应用提供通信接口的基础设施,将发送和接收数据的apps和互联网连接起来,并为app应用提供服务选择(TCP,UDP等)

网络结构

  • 网络边缘:包括主机和应用程序
  • 网络核心:由数据交换节点构成的网络,网络的网络
  • 接入网:边缘接入核心的路径

网络边缘

网络边缘包括分布式应用以及为其提供通信服务的基础设施

可以将应用层下的所有部分看作基础设施

模式

客户端/服务器模式(C/S模式):

​ 客户端向服务器主动请求、接受服务,因此要求服务器先启动,客户端后启动

​ 缺点:可扩展性、可靠性较差,随着请求负载增加,能力下降,当达到一定阈值时,会断崖式下降

对等模式(Peer2Peer模式):

​ 每个分布式应用进程从某些会话来看是客户端,从另一些会话来看是服务器,即分布式应用可以是客户端也可以是服务器

​ 这样的去中心化使得当请求资源的节点变多时,提供资源的节点也在变多

​ 如BitTorrent的原理,可以多片段同时下载,使得加载速度变快

提供通信服务的方式

面向连接的通信方式(TCP):

两个通信主机在连接前要握手,即建立连接状态,做好准备

特性:

  • 可靠的,按顺序的传送数据:包括确认和重传
  • 流量控制:发送方不会淹没接收方
  • 拥塞控制:网络拥塞时,发送方可以降低发送速率

应用:HTTP,FTP,SMTP等

无连接的通信方式(UDP):

无连接服务,不需要确认,因此不可靠数据传输、无流量和拥塞控制

但是速度快,实时性强

应用:实时流媒体,远程会议,DNS等

网络核心

网络核心是实现数据交换的网状网络

电路交换

端到端的资源被分配给从源端到目标端的呼叫

实现通信需要通过信令系统,在网络中为两者分配一条独享线路

通过各种方式可将节点间的线路分成若干小片(piece),信令系统从两者间挑出空闲的若干片连接起来,分配方式包括频分、时分、波分、码分等

这样分配的线路可以保障性能

如果这样的通信没有数据发送,被分配的资源就会被浪费

注意:传输时需要时间,所以接受到的时间应该是发送时间+传输时间(发送的同时也可以接受,不需要算两遍)

通常被电话网络采用

缺点:不适合计算机之间的通信,建立连接时间长,浪费片会很多

分组交换

分组交换

转发方式:

分组(packet)为单位存储,网络带宽资源不再分为一片,传输时使用全部带宽;通过存储→转发的方式在每个交换节点之间进行数据交换,这一个过程称为一跳(hop)

转发之前,每个交换节点需要将分组完全存储下来,在空闲的时候转发到下一个节点,这样可以避免交换过程占用整条链路

但这种方法延迟要比电路交换更大,而且会有排队延迟(多个分组排队传输),例如在一个速率为R bps的链路中,一个长度L bits分组的存储转发延时为\(\frac{L}{R}s\)

分类:

数据报回路

  • 分组携带的目标地址决定下一跳
  • 无需建立连接,有数据就可以传输
  • 每个分组都独立路由
  • 在不同阶段,路由可以改变

虚电路回路

  • 每个分组带有标签
  • 呼叫建立时通过信令决定路径(类似握手),整个呼叫中路径保持不变
  • 路由器维持每个呼叫的状态信息

排队延迟:

如果到达速率大于链路的输出速率,分组就会开始排队传输

当排队的分组将路由器的缓存用完了,分组就会被丢弃

统计多路复用:

分组交换对多个输入采用的分配模式类似于TDM(时分),但分组交换的时间片划分方式不少固定的,是一种按需分配, 称为统计多路复用(Statistical TDM)

缺点:滥用可能导致网络拥塞

网络核心的功能

  • 路由:查询路由表决定分组采用的源到目标的路径,使用了路由算法
  • 转发: 将分组从路由器的输入链路转移到输出链路

接入网和物理媒体

接入网将边缘设备接入网络核心

接入网络方式

modem(调制解调器)

调制解调器可以将信号通过调频、调幅、调相等使得数据以音频载波等形式来传输,一侧调制后另一侧接受到可以解调

这样我们可以通过已有的电话线并接上猫就可以传输数据

缺点是带宽比较窄,且不能同时打电话和上网

DSL

仍然采用已有电话线,将频率分开,0-4kHz用于语音通讯传入电话网,4kHz以上,以非对称模式,一部分用于上行,另一部分用于下行(占比更多)传入互联网,这两部分仍然使用调制解调方式

若上行和下行带宽不对称,称为ADSL

线缆网络

将有线电视信号线缆双向改造,使用FDM(频分复用)技术在不同频段传输不同信道数据,如数字电视信号和上下行上网数据,用户通过Cable Modem接入互联网

采用HFC接入方式接入,也是非对称的,各个用户共享到线缆头端的接入网络,上网用户越多,每个用户实际带宽越窄

无线接入方式

将端系统通过基站(接入点)连接到路由器

  • WLANs:一般在建筑物内部使用
  • 广域无线接入:由移动蜂窝网络运营商提供,范围大

物理媒体

处于第零层,在发送-接受对之间传输bit用

分为

  • 导引型介质:信号在有形的介质上传播
  • 非导引型介质:信号在开放空间自由传播

导引型介质

  • 双绞线:两根绝缘铜线拧在一起
  • 同轴电缆:两根同心的铜导线,双向,宽带电缆上有多个信道,基带电缆上是单一信道
  • 光纤/光缆:使用玻璃纤维传递光脉冲,每个脉冲传递1bit,高速点到点的传输带宽,有低误码率和安全性

非导引型介质

  • 地面微波
  • LAN(如WIFI)
  • wide-area(如移动数据)
  • 卫星

互联网结构和ISP

互联网结构

端系统是通过接入ISP(互联网服务提供商)连接到互联网,而接入ISP相应的必须是互联的,任何两个端系统可以相互发送分组到对方,这导致网络的网络变得复杂

若将每两个ISP相连,则可以达到\(O(n^2)\)的规模,不可扩展

若将每个ISP接入全局ISP,则因为经济关系肯定会有竞争,产生多个全局ISP;多个ISP也可以产生合作,完成业务扩展;业务也可以细分,产生全球接入与区域接入

对于ICP(互联网内容提供商),若它依赖的ISP收费过高、质量不好等原因,它自己也可以实现通过全球建立DC(数据中心),铺设专门的线缆;且DC建立在ISP周围,用户可以通过ISP快速访问数据

互联网结构

因此互联网结构可以概括为:

  • 以第一层ISP为中心,实现国家或国际覆盖,他们通过peer2peer或IXP直接与其他第一层ISP相连,向下与大量第二层ISP和其他客户网络相连
  • 第二层ISP通常是区域性的,他们与一个或多个第一层ISP,也可能与其他第二层ISP互联
  • 第三层ISP或Local ISP将终端接入网

ISP的连接

  • POP:高层ISP面向客户网络的接入点,如一个底层ISP接入多个高层ISP,涉及费用结算
  • 对等接入:两个ISP对等互联,不涉及费用结算
  • IXP:多个对等ISP互联互通之处,不涉及费用结算
  • ICP专网,同时和各级ISP互联

分组延时、丢失和吞吐量

产生原因

路由器缓冲区存在一个分组队列,当有其他分组正在传输,当前分组需要排在这个分组队列中,等待它前面的释放完毕再输出

队列容量是有限的,若队列溢出,当前分组就会被丢弃掉,这就是分组延迟和丢失的原理

延迟类型

  • 节点处理延时:

    • 检查bit级差错
    • 检查分组首部和决定将分组导向何处
  • 排队延时:

    • 输出链路上等待传输的时间
    • 依赖于流量强度\(I=\frac{La}{R}\),其中分组长度为L bits,传输带宽为R bps,分组到达队列的平均速率a
    • 流量强度I处于0到1之间,趋近于1时,排队延迟趋近于无穷大,因此设计系统时流量强度不能大于等于1
  • 传输延时:

    若分组长度为L bits,传输带宽为R bps,则传输需要的时间为\(\frac{L}{R}\)

  • 传播延时:

    若物理链路长度为d,在媒体上的传播速度为s,则传播延时为\(\frac{d}{s}\)

关系

总的节点延时是上面的数据之和

Traceroute

互联网的延时和路由可以通过Traceroute诊断程序测试,它提供从源端经过路由器到目的的延时测量

  • 对于从源到目标的第i个路由器,发送三个测量分组
  • 路由器将数据包返回给发送者
  • 发送者测量从传输和回复之间的时间间隔

原理:利用了ICMP(互联网控制报文)协议,每个IP的header中有一个TTL(生存时间)字段,当到达一个路由器时,TTL-1,若到某个路由器,TTL减为0,则该分组抛掉,并通过ICMP告诉源主机

执行Traceroute的时候,将第i个分组的TTL字段设置为i,当分组被第i个路由器抛掉后,会向源主机通知其IP,这样源主机就可以知道分组来回的时间(称为RTT);当分组达到目标主机,让分组对应的上传的端口没有应用守护,使得目标端口不可达,通知源主机,这样源主机就能知道结束

吞吐量

在源和目标端之间传输的速率(数据量除以单位时间)

分为:

  • 瞬间吞吐量:在一个时间点的速率
  • 平均吞吐量:在一个长时间内的平均值

多个链路不同吞吐量遵循短板效应,其中限制端到端吞吐量的路径上的某条链路称为瓶颈链路

若第i跳通过的链路中,有n个连接在使用,则每个连接占用的带宽是\(\frac{1}{n}\)因此每个连接的端到端吞吐量其实是每段连接上当前连接占用带宽的最小值

协议层次和服务模型

协议层次

网络是一个很复杂的系统,由各种元素和设备组成,这么复杂的网络功能是通过层次化来实现的:

  • 将网络复杂的功能,分成一层层功能明确的层次,每一层实现一种一个或一组功能,功能中有其上层可以使用的服务
  • 对等层通过协议实体相互交互,为了实现本层功能,通过接口更好为上层提供服务
  • 实现本层协议时直接利用了下层的服务

服务

服务是底层实体向上层实体提供它们之间的通信的能力:分为服务用户和服务提供者

原语

是上层使用下层服务的形式,高层使用底层的服务,底层向高层提供服务都是通过服务访问原语来交互的

服务访问点(SAP)

接口上的具体位置,用于区分不同上层用户,如传输层的SAP端口

类型

  • 面向连接的服务:

    两个通信实体为了进行通信而建立一种结合,为通信做好准备,表现在资源准备和控制变量置位,服务过程包括建立连接,通信,拆除。这种服务通常是可靠的

  • 无连接的服务:

    两个对等层实体通信前不需要建立一个连接,不预留资源,通信发起时不知道对方是否活跃,是不可靠的服务

服务与协议

  • 服务是低层实体向上层实体提供它们之间的通信能力,是通过原语操作的,传输方向是垂直的
  • 协议是对等层实体之间再相互通信的过程中,需要遵循的规则集合,传输方向是水平的
  • 本层协议的实现要靠下层提供的服务来实现
  • 本层实体通过协议为上层提供更高级的服务

数据单元

数据单元

数据单元用于层间传输数据:

  • 上层传来SDU(服务器数据单元),SDU加入一些接口信息,形成IDU以便穿过接口
  • 本层拿到SDU后,会加上本层需要的附加信息(Header),形成本层的PDU(协议数据单元)
  • 对等层协议实体之间交换都是通过本层的PDU实现交换的

当SDU过大时,会将SDU分为多块,每块都会加上Header作为PDU

当SDU过小时,会把若干SDU合在一起,加上Header作为PDU

Internet协议栈

互联网分为五个层次,自下而上分别是:

物理层

负责传输比特数据

发送端负责将上层传下来的帧以比特换为物理信号,通过介质传输给对方

接收端负责将介质中的物理信号还原为原来的数据

链路层

在物理层提供的服务的基础上,在相邻两点之间传输以帧为单位的数据

负责的是将若干比特按一定规律组合为一帧,实现的是点到点之间的传输

包括PPP,以太网,WLAN协议

网络层

实现源主机到目标主机之间的数据报传输

实现的是端到端之间的传输,且传输不可靠

包括IP和路由协议

传输层

实现主机之间的数据传输,在网络层提供的端到端通信基础上细分为进程到进程

通过TCP/UDP将不可靠的通信变为可靠的通信

应用层

为用户或其他应用进程提供网络应用服务

包括很多协议,如FTP,SMTP,HTTP,DNS等

ISO/OSI参考模型

这种模型多了两层:

  • 表示层:允许应用解释传输的数据
  • 会话层:数据交换的同步,检查点,恢复

互联网协议栈这两层靠应用层自己实现

各个层次的协议数据单元

  • 应用层:报文
  • 传输层:报文段:TCP段、UDP数据报
  • 网络层:分组packet(若无连接方式:数据报datagram)
  • 数据链路层:帧
  • 物理层:位

封装与解封装

  • 传输层:使用传输层报头Ht封装应用层报文M,以创建报文段,Ht用于传输层协议实现其服务
  • 网络层:用网络层报头Hn封装传输层报文段,以创建数据报,Hn用于网络层协议实现其服务
  • 链路层:使用链路层报头Hl创建链路层帧,封装网络数据报
解/封装

其中,中间经过交换机还需要两层封装解封装,经过路由器需要三层封装解封装

端到端