What Is the Internet?

A Nuts-and-Bolts Description

设备:称为主机(host)端系统(end system)

端系统通过**通信链路(communication link)分组交换机(packet switch)**连接到一起。

通信链路的物理媒体包含:电缆、铜线、光纤和无线电频谱。

端系统向另一台端系统发送数据时,发送端系统将数据分段,并为每段加上首部字节,形成的信息包称为分组(packet),分组到目的端系统被装配成初始数据。

分组交换机:

  • **路由器(router)**通常用于网络核心中
  • **链路层交换机(link-layer swtich)**通常用于接入网中。

端系统通过**因特网服务提供商(Internet Service Provider, ISP)**接入因特网。每个ISP自身就是一个由多台分组交换机和多段通信链路组成的网络。为端系统提供接入得ISP必须互联,低层的ISP通过国家的、国际的高层ISP互联。高层ISP是由通过告诉光纤链路互联的高速路由器组成的。因特网就是将端系统互联,因此为端系统提供的ISP也必须互联起来。无论是较高层还是较低层ISP网络,它们每个都是独立管理的,运行着IP协议,遵从一定的命名和地址规则。

端系统、分组交换机和其他因特网部件都要运行一系列协议(protocol),这些协议控制因特网中信息的接收和发送。**TCP(Transmission Control Protocol, 传输控制协议)IP(Intemnet Protocol,网际协议)**是因特网中两个最为重要的协议。IP协议定义了在路由器和端系统之间发送和接收的分组格式。因特网的主要协议统称为TCP/IP。

A Services Description

涉及多个相互交换数据的端系统的应用程序, 被称为分布式应用程序(distributed application)

与因特网相连的端系统提供了一个套接字接口(socket interface),该接口规定了运行在一个端系统上的程序请求因特网基础设施向运行在另一个端系统上的特定目的地程序交付数据的方式。

What Is a Protocol?

**协议(protocol)**定义了在两个或多个通信实体之间交换的报文的格式和顺序,以及报文发送和/或接收一条报文或其他事件所采取的动作。

掌握计算机网络领域知识的过程就是理解网络协议的构成、原理和工作方式的过程。

The Network Edge

主机 = 端系统。主机有时又被进一步划分为两类:客户(client)服务器(server)。今天, 大部分提供搜索结果、电子邮件、Web页面和视频的服务器都属于大型数据中心(data center)

Access Networks

接入网是指将端系统物理连接到其**边缘路由器(edge rounter)**的物理链路。边缘路由器是端系统到任何其他远程端系统的路径上的第一台路由器。

  • 家庭接人:数字用户线(Digital Subscriber Line, DSL)、电缆(Cable)、光纤入户(FTTH)、拨号(很慢)和卫星
  • 企业(和家庭)接人:以太网和WiFi,以太网是用局域网(LAN)技术,WIFI是无线LAN。现在家庭通常电缆或DSL可以与无线局域网结合使用
  • 广域无线接人:3G和LTE,通过蜂窝网提供商运营的基站发送接收分组。

Physical Media

  • 双绕铜线
  • 同轴电缆
  • 光纤
  • 陆地无线电信道
  • 卫星无线电信道

The Network Core

Packet Switching

  • 在各种网络应用中,端系统彼此交换报文(message)
  • 报文能够包含协议设计者需要的任何东西。报文可以执行一种控制功能,也可以包含数据, 例如电子邮件数据、JPEC图像或MP3音频文件。
  • 为了从源端系统向目的端系统发送一个报文, 源将长报文划分为较小的数据块,称之为分组(packet)
  • 在源和目的地之间,每个分组都通过通信链路和**分组交换机(packet switch)**传送。(交换机主要有两类:路由器(router)链路层交换机(link-layer switch))
存储转发传输
  • 多数分组交换机在链路的输人端使用**存储转发传输(store-and-forward transmission)**机制。存储转发传输是指在交换机能够开始向输出链路传输该分组的第一个比特之前,必须接收到整个分组。
  • 通过由N条速率均为R的链路组成的路径,有N-1台路由器,从源到目的地发送一个分组,端到端时延是$$N\frac{L}{R}$$
排队时延和分组丢失
  • 每台分组交换机有多条链路与之相连。对于每条相连的链路,该分组交换机具有一个输出缓存(output buffer,也称为输出队列(output queue)),它用于存储路由器准备发往那条链路的分组。该输出缓存在分组交换中起着重要的作用。
  • 除了存储转发时延以外,分组还要承受输出缓存的排队时延(queuing delay)。这些时延是变化的,变化的程度取决于网络的拥塞程度。因为缓存空间的大小是有限的,一个到达的分组可能发现该缓存已被其他等待传输的分组完全充满了。在此情况下,将出现分组丢失(丢包)(packet loss),到达的分组或已经排队的分组之一将被丢弃。
转发表和路由选择协议
  • 在因特网中,每个端系统具有一个称为IP地址的地址。
  • 每台路由器具有一个转发表(forwarding table),用于将目的地址(或目的地址的一部分)映射成为输出链路。
  • 因特网具有一些特殊的路由选择协议(routing protocol) ,用于自动地设置这些转发表。
  • 使用Traceroute程序可以看到分组在因特网中所走的端到端路由。

Circuit Switching

通过网络链路和交换机移动数据有两种基本方法:电路交换(circuit switching)分组交换(packet switching)

A Network of Networks

  • 因为接入ISP向全球传输ISP付费,故接人ISP被认为是客户(customer),而全球传输ISP被认为是提供商(provider),
  • 在任何给定的区域,可能有一个区域ISP(regional ISP),区域中的接人ISP与之连接。每个区域ISP则与第一层ISP(tier-1 ISP)连接。第一层ISP类似于我们假想的全球传输ISP,尽管它不是在世界上每个城市中都存在,但它确实存在。
  • 任何ISP〔(除了第一层ISP)可以选择多宿(multi-home),即可以与两个或更多提供商ISP连接。例如,一个接人ISP可能与两个区域ISP多宿,既可以与两个区域ISP多宿,也可以与多个第一层ISP多宿。当一个ISP提供商出现故障,能够继续发送和接收分组。
  • 位于相同等级结构层次的邻近一对ISP能够对等(peer), 也就是说,能够直接将它们的网络连到一起,使它们之间的所有流量经直接连接而不是通过上游的中间ISP传输。当两个ISP对等时,通常不进行结算,即任一个ISP不向其对等付费。因特网交换点(Internet Exchange Point, IXP)多个ISP能够在这里共同对等。
  • 顶部有内容提供商网络(content provider network),数据中心绕过较高层ISP,直接与较低层ISP连接。
  • 今天的因特网是一个网络的网络,其结构复杂,由十多个第一层ISP和数十万个较低层ISP组成。较低层的ISP与较高层的ISP相连,较高层ISP彼此互联。用户和内容提供商是较低层ISP的客户,较低层ISP是较高层ISP的客户。

Delay, Loss, and Throughput in Packet-Switched Networks

Overview of Delay in Packet-Switched Networks

当分组从一个节点(主机或路由器)沿着这条路径到后继节点(主机或路由器),该分组在沿途的冬个节点经受了几种不同类型的时延。这些时延最为重要的是节点处理时延(nodalprocessing delay)排队时延(queuing delay)传输时延(transmission delay)传播时延(propagation delay),这些时延总体累加起来是节点总时延(totalnodal delay)

img

    • 处理时延
    • 检查分组首部和决定将该分组导向何处所需要的时间是处理时延的一部分。
    • 排队时延
    • 在队列中,当分组在链路上等待传输时,它经受排队时延
    • 传输时延
    • 用L比特表示该分组的长度,用Rbps(即b/s)表示从路由器A到路由器B的链路传输速率。链路,速率史=10Mbps;对于100Mbps的以太网链路,速率R=100Mbps。传输时延是L/R。这是将所有分组的比特推向链路(即传输,或者说发射)所需要的时间。
    • 传播时延
    • 一旦一个比特被推向链路,该比特需要向路由器B传播。从该链路的起点到路由器B传播所需要的时间是传播时延。该比特以该链路的传播速率传播。该传播速率取决于该链路的物理媒体(即光纤、双绞铜线等),其速率范围是2x10~3x10m/s,这等于或略小于光速。该传播时延等于两台路由器之间的距离除以传播速率。
  • 传输时延是路由器将分组推出所需要的时间,是分组长度和链路传输速率的函数,而与两台路由器之间的距离无关。

  • 传播时延是一个比特从一台路由器向另一台路由器传播所需要的时间,是两台路由器之间距离的函数,而与分组长度或链路传播速率无关。

Queuing Delay and Packet Loss

  • 节点时延的最为复杂和有趣的成分是排队时延。
  • 与其他三项时延(即、 和 )不同的是,排队时延对不同的分组可能是不同的
  • 令 $a$ 表示分组到达队列的平均速率(单位:分组/秒,即 $pkt/s$);$R$是传输速率,即从队列中推出比特的速率(单位 $bps$:,即$b/s$);假定所以分组都是由$L$比特组成的**,则比特到达队列的平均速率是$La/R > 1$。假定该队列非常大,因此它基本能容纳无限数量的比特。比率$La/R$被称为流量强度(traffic intensity)**。
  • 如果,则比特到达队列的平均速率超过从该队列传输出去的速率,该队列趋向于无限增加,并且排队时延将趋向无穷大!因此,流量工程的一条金科玉律是:设计系统时流量强度不能大于1
  • 在上述讨论中,我们已经假设队列能够容纳无穷多的分组。在现实中,一条链路前的队列只有有限的容量,尽管排队容量极大地依赖于路由器设计和成本。因为该排队容量是有限的,随着流量强度接近1,排队时延并不真正趋向无穷大。相反,到达的分组将发现一个满的队列。由于没有地方存储这个分组,路由器将丢弃(drop)该分组,即该分组将会丢失(lost)
  • 分组丢失的比例随着流量强度增加而增加

End-to-End Delay

假定在源主机和目的主机之间有台路由器。我们还要假设该网络此时是无拥塞的(因此排队时延是微不足道的),在每台路由器和源主机上的处理时延是$d_{proc}$。,每台路由器和源主机的输出速率是$R$ bps,每条链路的传播时延是$d_{prop}$。节点时延累加起来, 得到端到端时延:$d_{end-end}=N(d_{proc}+d_{trans}+d_{prop})$ 式中,其中$L$是分组长度,$d_{trans} = L/R$

Throughput in Computer Networks (计算机网络中的吞吐量)

  • 考虑从主机A到主机B跨越计算机网络传送一个大文件,在任何时间瞬间的瞬时吞吐量(instantaneous throughput)是主机B接收到该文件的速率(以计)。
  • 如果该文件由比特组成,主机B接收到所有F比特用去秒,则文件传送的**平均吞吐量(average throughout)**是

Protocol Layers and Their Service Models

Layered Architecture

协议分层
  • 协议分层的优缺点

    • 优点:协议分层具有概念化和结构化的优点。分层提供了一种结构化方式来讨论系统组件。模块化使更新系统组件更为容易。
    • 缺点:分层的一个潜在缺点是一层可能冗余较低层的功能。第二个潜在的缺点 是某层的功能可能需要仅在其他某层才出现的信息(如时间戳值),这违反了层次分离的目标。
  • 各层的所有协议被称为协议栈(protocol stack)。

    五层因特网协议栈:物理层、链路层、网络层、运输层和应用层

    七层ISO OSI参考模型:物理层、链路层、网络层、运输层、会话层、表示层和应用层

因特网协议栈自顶向下:

  • 应用层

    因特网的应用层包括许多协议,例如HTTP(Web文档请求和传送)、SMTP(电子邮件报文的传输)、FTP(两个端系统之间的文件传送)、DNS(域名系统)等。

    应用层协议分布在多个端的系统上,一个端系统中的应用程序使用协议与另一个端系统中的应用程序交换信息的分组。应用层的信息分组称为报文(message)

  • 运输层

    因特网的运输层在应用程序端点之间传送应用层报文。因特网中有两个运输协议,即TCP和UDP,两个都可以运输应用层报文。

    TCP是面向连接的,这种服务包括了应用层报文向目的地的确保传递流量控制,TCP也将长报文划分为短报文,并提供拥塞控制机制,因此当网络拥塞时,源地址会抑制其传输速率。

    UDP协议提供无连接服务,这是一种不提供不必要服务的服务,没有可靠性,没有流量控制,也没有拥塞控制

    运输层分组称为报文段(segment)

  • 网络层 网络层的分组称为 数据报(datagram)

    因特网的网络层把数据包从一台主机移动到另一台主机。在一台源主机中的因特网运输层协议(TCP或UDP)向网络层递交运输层报文段和目的地址

    网络层中包括IP协议,该协议定义了数据包中的各个字段以及端系统和路由器如何作用于这些字段。

  • 链路层 因特网的网络层通过源和目的地之间的一系列路由器路由数据报。网络层依靠链路层的服务来将分组从结点(主机或路由器)移动到路径上的下一个结点。在每一个结点,网络层将数据报下,链路层沿着路径将数据报传递给下一个结点,在下一个结点,链路层将数据报上传给网络层。

    某些协议基于链路层提供可靠传递,从传输结点跨越一条链路到接收结点,这种可靠传输不同于TCP的可靠传输。(从一个端系统到另一个端系统)

    链路层分组称为 帧(frame)

  • 物理层 链路层的任务是把整个帧从一个网络元素移动到邻近的网络元素,物理层的任务则是把该帧中的一个个比特从一个结点移动到下一个结点,这些仍是和链路相关的,但是是与链路的实际传输媒体相关的。

OSI模型:

  • 表示层

    表示层的作用是使通信的应用程序能够解释交换数据的含义。这些服务包括数据压缩、数据加密以及数据描述。

  • 会话层

    会话层提供了数据交换定界和同步功能,包括了建立检查点和恢复方案的方法。

因特网缺少了OSI模型中的两层,这两层留给应用程序开发者处理。

Encapsulation

数据从发送端系统的协议栈向下,向上和向下经过中间的链路层交换机和路由器协议栈,进而向上到达接收端系统的协议栈。

路由器和链路层交换机并不实现协议栈中的所有层次。链路层交换机实现了链路层和物理层,路由器实现了链路层、物理层和网络层。

封装(encapsulation):

  • 运输层收到应用层报文(application-layer message)并附上运输层首部信息,构成了运输层报文端(transport-layer segment)
  • 网络层增加了如源和目的端系统地址和网络层首部信息,产生网络层数据报(network-layer datagram)
  • 链路层增加链路层首部信息并创建链路层帧(link-layer frame)

在每一层,一个分组都具有两种类型的字段:首部字段和有效载荷字段(payload field),有效符合通常来自上一层的分组。

Reference

  1. Computer Networking: A Top-Down Approach, 6th Edition
  2. CS144 schedule