第1章:计算机网络

网络是什么?

网络就是节点和边产生的无关大小的拓扑结构。计算机网络就是主机节点与数据交换节点及链路产生的拓扑结构。

节点按照作用分为:主机节点和数据交换节点。

数据交换节点按照层级分为:负载均衡器,路由器,交换机,中继器。

链路按照是否与主机节点相连分为:接入链接和骨干链路。

如果从服务角度来看,那就是使用通信设施进行通信的分布式应用以及为分布式应用提供编程接口(通信服务)的基础设施。一般服务分为无连接不可靠服务和面向连接的可靠服务。

协议

协议就是对等实体通信过程中所要遵循的规则集合,包括语义,语法和时序以及在报文传输和接收或其他事件方面所采取的动作。

Internet标准

  • RFC:Request for comments

  • IETF:Internet Engineering Task Force

1 网络边缘

  • 网络边缘:

    • 主机

    • 应用程序

  • 网络核心:

    • 路由器

    • 网络的网络

  • 接入网:

    • 有线或者无线通信链路

端系统

  • 运行应用程序

  • 如web,email等

  • 在网络的边缘

客户/服务端模式

  • 客户端向服务端发送/接收服务

  • 可靠性和可扩展性比较差

对等(peer-peer)模式

  • 很少甚至没有专门的服务器

  • 如Gnutella,KaZaA,Emule

  • 管理比较困难

面向连接的可靠服务

  • 目标:在端系统之间传输数据

  • 握手:在数据传输之前做好准备

  • TCP - 传输控制协议【RFC793】

    • Internet上面向连接的服务

    • 可靠的,按顺序的传输数据

      • 确认和重传

    • 流量控制

      • 发送方不会淹没接收方

    • 拥塞控制

      • 当网络拥塞时,发送方减低发送速率

  • TCP应用

    • HTTP,FTP。Telnet,SMTP

无连接服务

  • 目标:在端系统之间传输数据

  • UDP:用户数据报协议【RFC 768】

    • 无连接

    • 不可靠

    • 无流量控制

    • 无拥塞控制

  • UDP应用

    • 流媒体,远程会议,DNS

2 网络核心

  • 网络核心:路由器的网状网络

  • 基本问题:数据怎么通过网络进行传输

    • 电路交换:为每个呼叫预留一个专属线路,如电话网

    • 分组交换:

      • 分组:将要传输的数据分成一个个单位

      • 将分组从路由器传到相邻路由器(hop),一段段最终从源端传递到目标端

      • 每段:采用链路的最大传输能力(带宽)

电路交换

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

  • 独享资源:不同享

    • 每个呼叫一旦建立起来就能够保证性能

  • 如果呼叫没有数据发送,被分配的资源就会被浪费(no sharing)

  • 通常被传统电话网采用

网络资源(如带宽)被分成片

  • 为呼叫分配片

  • 如果某个呼叫没有数据,则该资源片处于空闲状态

将带宽分成片(pieces)

  • 频分(Frequency-division multiplexing)

  • 时分(Time-division multiplexing)

  • 波分(Wave-division multiplexing)

  • 计算机连接不适合使用电路交换方式

    • 计算机连接具有突发性,电路交换在没有数据传输时也不能共享

    • 连接建立时间长,每次连接都需要建立通道

    • 可靠性不高?

分组交换

以分组(packet)为单位存储-转发方式

  • 网络带宽资源在传输时不再分为一个个片,而是直接使用全部带宽。

  • 主机之间的传输分为一个个分组

资源共享,按需使用:

  • 存储-转发:分组每次移动一跳(hop)

    • 在转发之前,节点必须收到整个分组

    • example:

      • 在一个传输速率为R bps的线路上传输Lbits长度的分组每一条的存储时延为 L/R s

    • 排队时间

      • 分组的到达速度 > 链路的输出速度,分组将会排队,等待传输

      • 如果路由器的缓存用完了,分组将会被丢弃

    • 延迟比电路交换要大

采用时分复用链路资源,分组交换没有固定模式,这种叫 统计多路复用

分组交换按照是否有网络层连接,分为:

  • 数据报网络

    • 分组的目标地址决定下一跳

    • 在不同的阶段,路由可以改变

    • 类似于问路

    • internet

    • 工作原理

      • 在通信之前无需建立连接,有数据就能发

      • 每一个分组都独立路由,可能会乱序

      • 路由器根据分组的目标地址进行路由

  • 虚电路网络

    • 每个分组带标签(虚电路标识VC ID),标签决定下一跳

    • 在呼叫建立时决定路由路径,在整个呼叫中路径保持不变

    • 路由器保存每个呼叫的状态信息

    • X.25/ATM

    • 工作原理

      • 每次传输数据之前都需要建立虚电路表

网络核心的作用

  • 路由:决定分组采用的源到目标的路径

    • 使用路由表记录,记录由路由算法计算

  • 转发:将分组从路由器的输入链路转移到输出链路

3 接入网和物理媒体

怎样将端系统和边缘路由器连接?

  • 住宅接入网络

  • 单位接入网络

  • 无线接入网络

住宅接入:modem

  • 将上网数据调制加载音频信号上,在电话线上传输,在局端将其中的数据解调出来,反之亦然

    • 调频

    • 调幅

    • 调相位

    • 综合调制

  • 拨号调制调解器

    • 56Kbps的速率直接联入路由器(通常更低)

    • 不能同时上网和打电话,不能总是在线

4 分组延时、丢失和吞吐量

分组丢失和延时是怎么发生的?

  • 在路由器的缓冲区的分组队列

    • 分组到达的速率超过了链路输出的速度

    • 分组等待排到队头,被传输

    • 队列满了后再有分组到达会被丢弃

      • 丢失的分组可能被前一个节点或源端系统重传也可能根本不重传

  • 四种延迟

    • 节点处理延迟:

      • 检查bit级差错

      • 检查分组首部和决定将分组导向何处

    • 排队延时:

      • 在输出链路上等待输出的时间

      • 依赖于路由器的拥塞程度,取决于流量强度 I = La/R (a为组数量)

      • 设计系统时流量强度不能大于1!

    • 传输延时:

      • 将分组发送到链路上的时间

      • 存储转发延时

    • 传播延时:

      • d=物理链路长度

      • s=在媒体上的传播速度

      • 传播延时:d/s

吞吐量

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

  • 瞬间吞吐量:在一个时间点的速率

  • 平均吞吐量:在一段时间内的平均值

瓶颈链路:端到端路径上,限制端到端吞吐的链路

5 协议层次和服务模型

层次化方式实现复杂网络功能:

  • 服务:将网络中复杂的功能分成功能明确的层次,每一层实现了其中一个或一组功能,功能中有其上层可以使用的功能

  • 本层协议实体互相交互执行本层的协议动作,目的是为了更好的实现功能,通过接口为上层提供更好的服务

  • 在实现本层协议的时候直接使用了下层提供的服务

  • 本层服务:利用下层提供的功能实现的本层协议实体之间交互带来的新功能(上层可以利用)+更下层提供的服务

服务和服务访问点

  • 服务(service):底层实体向上层提供的通信的能力

    • 服务用户

    • 服务提供者

  • 原语(primitive):上层使用下层的服务,下层为上层提供提供,都是通过服务访问原语来进行交互的

  • 服务访问点(Service Access Point):上层使用下层提供的服务通过层间的统一接口

    • 下层服务提供者用来分辨上层服务使用者

面向连接的服务

  • 连接:两个通信实体为进行通信而建立的一种结合

  • 面向连接的服务通信过程:建立连接,通信,拆除连接

无连接的服务

  • 无连接服务:两个对等实体在通信前不需要建立连接,不预留资源,不需要通信双方都是活跃

数据单元-DU

协议栈

作用
DU

应用层

为应用进程或人类用户提供网络应用服务

message

传输层

进程到进程的区分,向上提供可靠的信息传输服务

segment

网络层

源主机到目标主机的端到端的数据传输

packet,无连接为datagram

链路层

在相邻两点中传输数据

frame

物理层

将报文转换为bit在物理链路传输

bit

最后更新于