计算机网络

[TOC]

计算机网络 #

因特网 #

工程视角 #

  • 数以百万计的互联计算设备

    运行 网络应用程序

    • 主机,端节系统
    • Pc 工作站,服务器
    • PDA 电话,智能家电
  • 通信链路

    • 光纤,铜缆,无线电,卫星
  • 路由器:将数据分组(数据块)转发通过网络

  • 协议:控制报文的收发

    • e.g TCP, IP, HTTP, FTP, PPP
  • 因特网:“万网之网”

    • 松散的层次结构
    • 公共的 Internet(因特网) vs 专有的 internet (内联网)
  • 因特网标准

    • RFC:Request For Comments
    • IETF: Internet Engineering Task Force(因特网工程部)

服务视角 #

  • 通信系统基础上 运行分布式的应用程序
    • WWW, email, 网络游戏,电子商务,数据库应用,文件共享
  • 所提供的通信服务
    • 无连接 connectionless
      • 类比电信局的电报服务
    • 面向链接 connection-oriented

什么是协议 #

网络协议 #

  • 通信设备之间的交互而不是人们的交往
  • 所有在因特网上的通信活动全部由协议所控制

协议定义网络实体之间信息收发的格式和顺序,以及信息发送和接收后所采取的动作。(语法、语义、同步或规则)

image-20230512020924339

近观网络结构 #

  • 网络边缘:应用程序和主机
  • 网络核心:路由器、万网之网
  • 访问网络,物理介质:通信链路

网络边缘 #

  • 端接系统(主机)
    • 运行应用程序
    • Eg: WWW, email
    • 在网络的边缘上
  • 客户端/服务器(client/server)模型
    • 客户端发出请求,接收来自服务器的服务
  • 对等(peer-peer)模型
    • 主机对称的进行交互
    • e.g. Gnutella

面向连接的服务 #

目的:在端系统间进行数据传输

  • 握手:在数据传输之前设置系统的连接
  • TCP - Transmission Control Protocol
    • 因特网面向连接的服务
TCP 服务 [RFC 793] #
  • 可靠,有序的字节流数据传输
    • 数据丢失:应答和重传
  • 流量控制
    • 发送端不会将接收端“淹没”
  • 拥塞控制
    • 当网络拥塞时发送端需"降低发送速率"

无连接的服务 #

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

  • UDP - User Datagram Protocol [RFC 768] 因特网的无连接服务
    • 不可靠的数据传输
    • 没有流量控制
    • 没有拥塞控制

网络核心 #

  • 由路由器勾结而成的网(眼)
  • 最根本的问题:数据是如何传输病通过网络的
    • 电路交换:为每个通信连接指定电路
    • 分组交换:数据划分成分离“数据块“ 通过网络传输

电路交换 #

为通信(call)在两端需要预留资源

  • 链路带宽,交换能力
  • 专用资源:没有共享
  • 电路交换的通信性能
  • 在通信进行之前要建立连接
网络资源:带宽,划分成片 #
  • 各资源片分配给各个通信链接
  • 如果拥有资源的通信链接没有使用,则该资源片被闲置(idle, 没有共享)
  • 将链路划分成片的方法
    • FDMA 频分
    • TDMA 时分
    • 统计时分

分组交换 #

每个端到端的数据流被划分成分组(packet)

  • 用户 A,B的分组可共享网络资源
  • 每个分组使用全部的链路带宽
  • 资源在必要时才使用

分组交换会导致资源竞争问题

  • 资源可能供不应求
  • 拥塞:分组排队,等待链路资源
  • 在路由器上存储转发:分组一次移动一个步跳
    • 通过链路传输
    • 等待下一条链路
image-20230512023840004

分组交换的过程

  • 将报文划分成较小的数据块 分组 packets
  • 存储转发:交换机等到整个分组到达完毕后,再进行转发或路由接力
  • Q:如果报文以整个形式发送又如何? 参考书p6-7
    • 该方式称为 报文交换 message switch
image-20230512131540861
分组交换 vs 电路交换 #

分组交换使得更多的用户可以 “同时"使用网络

  • 1 Mb/s 链路
  • 每个用户:
    • 100kb/s 当前激活
    • 激活时间为 10%
  • 电路交换
    • 10个用户
  • 分组交换
    • 对 35 个用户来说,概览 10个用户同时激活小于 0.004

分组交换优缺点

  • 在突发性数据传输过程中表现优异
    • 资源共享
    • 无须事先建立链接
  • 过度拥塞:导致分组延迟和丢失
    • 需要协议来保障可靠的数据传输,拥塞控制
路由选择问题 #
  • 目标:将分组沿路由器从信源送达信宿
  • 数据报网络
    • 由信宿地址来决定下一个步跳(hop)
    • 在会话过程中,路由可能发生变化
    • 比喻:开车问路
  • 虚拟路网络
    • 每个分组携带标签(虚电路 ID),由标签来确定下一个步跳
    • 在连接建立阶段确定固定的路由,全部数据通过该路由传递
    • 路由器为每个正在通信中的连接维持状态

访问网络和物理介质 #

如果将端接路由器与端系统进行连接(How to connection end systems to edge router)?

  • 居民区访问网络
  • 企事业单位访问网络
  • 移动访问网络

时刻牢记

  • 访问网络的带宽(b/s)
  • 共享或独占
居民区访问 #
点对点访问 过时了 #
  • 拨号访问
  • ISDN(一线通)
  • ADSL(非对称用户线路)asymmetric digital subscriber line
线缆调制解调器 #
  • HFC: hybrid fiber coax 光纤同轴电缆混合网络
  • 光纤同轴电缆混合网络将家庭连接到 ISP又有器
    • 在若干家庭用户共享访问带宽
    • 关注点:拥塞,规模控制问题
单位访问 #
局域网 #
  • 公司/大学 局域网(LAN)将系统连接到端接路由器
  • 以太网(Ethernet)
    • 共享或专线电缆将端系统连接端系统和路由器
  • 应用: 企事业单位,家庭用户
无线访问网络 #
  • 共享的无线访问网络连接端系统和路由器
  • 无线 LAN:使用无线频谱替代网线
  • 广域无线访问
    • CDPD:通过蜂窝式网络无线访问 ISP 路由器
物理介质 #
  • 物理链路:将链路发送和传输数据的位流

  • 有线介质 guided media: 信号沿固体介质传播

    • 双绞线
      • 两根互相绝缘的铜线
        • 三类线
        • 五类线
    • 同轴电缆
      • 芯线(携带信号)为皮线所缠绕(屏蔽层)
        • 基带:在一条电缆中只有一路信号
        • 带宽:在一条电缆中有多个数据通道
      • 双向传输
    • 光缆
      • 在玻璃纤维中传播光脉冲
      • 高速运行
      • 低误码率
  • 无线介质 unguided media 信号在大气或外层空间自由传播

    使用电磁波谱传送信号,不适用物理”导线“,双向传输,传播会受到环境影响(反射,干扰,障碍物所阻隔)

    • 微波
    • LAN
    • 广域网(蜂窝电话)
    • 卫星
      • 270 ms 端对端延迟
      • 地球同步卫星 vs LEOS (低地球轨道卫星)
分组交换网络的延迟问题 #

分组在端到端传输的过程中会经历 延迟,在每个步跳中产生的延迟,可以分为四种

  • 发射延迟
    • R=链路带宽(b/s)
    • L=分组长度(bits)
    • 将分组位流发送到链路上的时间=L/R
  • 传播延迟
    • d = 物理链路的长度
    • s = 介质中的信号传播速度(~2x10^8 m/s)
    • 传播延迟 = d/s
  • 节点处理(nodal processing)
    • 校验错误
    • 确定输出链路
  • 排队(queueing)
    • 在输出链路中等待被发送
    • 取决于路由器的拥塞程度
    • R = 链路带宽(b/s) L = 分组长度(bits) a = 平均分组到达率
      • 数据流量的强度 = La/R

image-20230512135229553

为什要分层 #

对于复杂的系统

  • 显式的结构使得复杂系统的问题定位和不同组成部分之间的关联讨论成为可能
    • 分层参考模型(reference model)可用于讨论
  • 模块化简化了系统的维护和升级

因特网协议栈 #

  • 应用层(application):支持网络应用 ftp, smtp, http
    • 传输的单位是报文也就是下图的 message
  • 传输层(transport):主机进程间的数据传递
    • 从应用层取得数据
    • 加上地址,校验信息形成“数据报”
    • 向对等实体(peer)发送数据报
    • 等待对等实体在接受后的应答
  • 网络层(network):将数据报从信源传递到信宿
  • 链路层(link):数据在网络上的相邻结点间的传输
  • 物理层(physical):信道上传送的位流

逻辑通信 最终转化为物理通信。

每个层次都从上层取得数据,加上首部信息形成新的数据单元,将新的数据单元传递给下一层次。

image-20230515022311988

因特网简史 #

1961 ~ 1972 :早起的分组交换原理

  • 1961: Kleinrock - 使用排队论证明分组交换网络在数据通信方面的优越性
  • 1964: Baran - 在军用网络中实现分组交换
  • 1967: DARPA 构思了 ARPAnet
  • 1969: 首个 ARPAnet 节点运行
  • 1972
    • ARPAnet 向公众展示
    • NCP(Network Control Protocol)第一个主机间通信的协议
    • 首个电子邮件程序运行
    • ARPAnet 有了 15 个节点

1972 ~ 1980 网络互连,新型和厂商网络

  • 1970: ALOHAnet 卫星网络,Hawaii
  • 1973: Metcalfe 在其博士论文中建议了 Ethernet
  • 1974: Cerf 和 Kahn 提出网络互连的体系结构
    • Cerf 和 Kahn‘s 网络互连的原则
      • Minimalism, autonomy , no internal changes required to interconnect networks
      • best effort service model
      • stateless routers
      • decentralized control
    • 定义了今天因特网的体系结构
  • late70’s : 厂家标准:DECnet, SNA, XNA
  • late 70’s 交换固定长度的分组(ATM的先驱)
  • 1979: ARPAnet有了 200 节点

1980 ~ 1990 新的协议,网络的大量增殖

  • 1982: 定义了 smtp email 协议
  • 1983: 开始使用 TCP/IP
  • 1983: 定义了 DNS用于 name-to-IP-address 转换
  • 1985: 定义了 ftp 协议
  • 1988: TCP 拥塞控制
  • 新的国家级网络:
    • Csnet, BITnet, NSFnet, Minitel
    • 100000 台主机加入到网络联盟中

1990’s 商业化, WWW

  • Early 1990’s : ARPAnet 退役
  • 1991: NSF 取消了禁止商业化使用 NSFnet 的限制(退役,1995)
  • early 1990‘s :WWW
    • 超文本链接[Bush 1954, Nelson 1960’s]
    • HTML, http: Berners Lee
    • 1994: Moscai, later Netscape
    • late 1990’s : WWW 的商业化