概念和功能

参考:Computer Networking: A Top-Down Approach 配套网课, 考研计网

概念:计算机网络是互联的、自治的计算机集合。

功能:包括数据通信和资源共享等。

组成及分类

组成

硬件、软件和协议

不同工作方式

以下各工作方式都属于边缘部分。除了边缘部分外,核心部分用于为边缘部分提供服务。简单来说就是提供接口实现。

C/S 方式

(Client and Server). 客户端与服务端的端到端服务方式。服务端处理/响应客户端发送的请求。

P2P 方式

(Peer to Peer). P2P 方式下不存在专门的服务机,所有端系统既是客户又是服务器。和 C/S 方式相反,请求的主机越多响应越快。

B/S 方式

(Browser and Server). 浏览器到服务器的服务方式。

功能组成

通信子网

一般包括网络层、数据链路层和物理层(OSI)

资源子网

包括应用层、表示层、会话层和传输层(OSI)

计算机网络的分类

  1. 按分布范围分类

    广域网WAN(交换技术)、城域网MAN、局域网LAN(广播技术)、个人区域网PAN。应该按最大通信距离和实现技术分类,而不是主机距离。

  2. 按使用者分类

    公用网和专用网

  3. 按交换技术分类

    电路交换、报文交换和分组交换

    其中报文交换和分组交换使用存储转发技术。

  4. 按拓扑结构分类

    星型、环型、网状型、总线型。。

  5. 按传输技术分类

    广播网络:共享公共通信信道

    点对点网络:使用存储转发和路由选择机制

计算机网络标准化

为了实现不同厂商软硬件连通,计算机网络必须遵从统一的标准。

目前流行的标准为 TCP/IP. 也有权威机构制定的法定标准 OSI。

标准化审批流程:

因特网草案->建议标准(RFC 文档)->(草案标准->)因特网标准

相关组织:

ISO、ITU、IEEE、IETF

性能指标

速度相关指标

  1. 速率

    每单位时间传输的数据量。

  2. 带宽

    单位时间内从某一点到另一点能通过的最高数据率。(发送速率)

  3. 吞吐量

    单位时间内通过某个网络的数据量。

时间相关指标

  1. 时延

    分为发送时延(传输时延)、传播时延排队时延处理时延

    发送时延:将数据从机器内部推送到信道上的时间。

    传播时延:在信道上传播的时间。取决于电磁波传播速度和链路长度。

    排队时延:等待输出/输入链路可用的时间。

    处理时延:寻找合适的出口信道以及检错的时间。

  2. 时延带宽积

    传播时延和带宽的乘积。单位一般为 bit.

    感觉可以理解为信息通量(?),可以描述某段链路现在有多少正在传播的比特。

  3. 往返时延 RTT

    从发送数据开始,到发送方收到接收方的确认总共经过的时延。

    RTT越大,在收到确认之前可以发送的数据越多。(废话)

    有时候也会忽略末端处理时间。

  4. 利用率

    1) 信道利用率

    image-20230506230041895

    2)网络利用率

体系结构和参考模型

OSI

应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。

TCP/IP

应用层、传输层、网际层、网络接口层。

要注意 OSI 的网络层是无连接和面向连接都有,而 TCP/IP 的网络层是无连接;OSI 的传输层是面向连接的,而 TCP/IP 的传输层是无连接+面向连接。

TCP/IP 协议栈

应用层包括 HTTP、FTP、DNS 等协议。

传输层包括 TCP、UDP 等协议。

网际层为 IP 协议。

网络接口层包括 Ethernet、ATM、Frame Relay 等。

5层模型

放一张图看一下数据封装与解封装。

image-20230506232455682

应用层

C/S 通信方式

服务端特点:

  • 主机永远在线
  • 有固定 IP

客户端特点:

  • 与服务端连接
  • 连接非长时间,通常是间歇连接
  • 不与其他客户端通信
  • 动态 IP

C/S 实例:HTTP

客户端 -> web browser,服务端 -> web server

P2P 通信方式

特点:

  • 没有 always-on server
  • 任意 peer 可以向其他 peer 提供服务,或接受服务
  • peers 直接 communicate
  • 与 C/S 中的客户端一样,非长时间连接,且动态 IP

P2P 实例:P2P 文件共享

多主机进程间通信

单一主机内进程间通信:defined by OS

多主机间进程:exchanging message

  • 客户端进程初始化本次通话(communication),服务端进程等待连接。

  • 使用传输层创建的 socket 进行通信。

image-20230511170614277

  • 每个对话中,2 sockets are involved. 每端各一个。

定址

每个进程需要一个 identifier. 我们给每个主机设置一个独有的 32 位 IP 地址。然后,再设置一个端口。端口指向我们具体的进程。

应用层协议

  • 定义 exchanged message 的类型(request,respone)
  • 定义 message 的语法。
  • 定义 message 语义。
  • 定义 rules. 在发送或接收信息后进行什么动作。

open protocols

  • 在 RFC 中定义。所有人都可以查看协议内容
  • allows for interoperability
  • 实例:HTTP、SMTP
  • 独立于系统平台。不受主机影响

HTTP

Web

一个 web page 包含各种各样的对象。包括 html 文件、jpg 图像、等等。每个对象都有自己的 URL. HTTP 使用的是 C/S 模式。

特点

  • 使用 TCP 传输协议。port 80.
  • HTTP 是无状态协议。

non-persistent HTTP

  • 最多只有一个 Web 对象发送 TCP 连接请求。传输多个对象就需要建立多个连接。
  • 第一步(1):HTTP 客户端初始化一个指向 HTTP 服务端的 TCP 连接。
  • 第一步(2): HTTP 服务端接收连接,完成连接后通知服务端。
  • 第二步:客户端将 HTTP request message 息发送至 TCP 套接字(Socket)。消息包括客户端希望获得的单个对象。
  • 第三步:HTTP 服务端接收消息后,将 response message 发送至它的 TCP 套接字。
  • 第四步:HTTP 服务端关闭 TCP 连接
  • 第五步:HTTP 客户端接收到 response message,然后显示对应的 html file.
  • 第六步:假如解析 html 后,其中又有许多 referenced objects,那么又需要重复 1-5 步来获取这些对象的内容。

问题:一次单对象的 non-persistent HTTP 传输需要多长时间:

答:2 个 RTT + 传输文件所需时间(time to trasmit file)

persistent HTTP

persistent HTTP 可以将传输时间从 2 rtts + trasmit time 缩减到 1 rtt + transmit time. 因为传输多个对象只需要初始化一次了。

  • TCP 连接建立后,多个对象都可以向单一 TCP 连接进行串行传输。
  • 和 non-persisent HTTP 不同,在发送 response message 后不会立即关闭连接,而是保持开启。

HTTP 格式

  1. request message

    • request line. 请求方法+URL+其他(HTTP 协议版本)。例: GET xxx.com/index.html HTTP/1.1\r\h。除了 GET 方法外,还有 POST, HEAD, PUT 等。

    • header lines. 包括发出请求的主机名称、浏览器类型、对象类型、首选语言、连接是否 keep-alive 等附加信息。

    • body. 并不是必要。用于发送其他附加信息。

      image-20230514145819758

  2. response message

    • status line. 版本号+状态码+短消息。e.g. HTTP/1.1 200 OK
    • header lines. 包括时间、服务端类型等附加信息。
    • body. 包括需要传输的对象本身。

Cookies 技术

cookies 用于维护用户和服务器的状态。

包括四个组件:

  1. cookie header line of HTTP response message
  2. cookie header line in next HTTP request message
  3. cooke file kept on user’s host
  4. back-end database at Website

image-20230514151403686

传输层

应用层对传输协议的要求

  • 数据完整性(文件传输,网上交易)
  • 时效性(多媒体通话,在线游戏)
  • 吞吐量(Live)
  • 安全性

TCP

image-20230511172941967

UDP

image-20230511172930992

为什么 UDP 什么也不保证,也有使用 UDP 的:

答:可以在应用层 build 追加 service 来确保这些要求。

物理层

物理层用于解决传输比特流的方法。

物理层主要任务:确定与传输媒体接口有关的特性、标准

通信基础

经典数据通信模型:

image-20230507130801711

通信方式

  1. 单工通信。单方交互,只需要一条信道。
  2. 半双工。两边都可以发送或接收,但不能同时发送和接收。需要两条信道。
  3. 全双工。可以同时发送和接收。需要两条信道。

数据传输方式

  1. 串行传输。例如将一个字节的 8 个 bit 由低位到高位按顺序依次发送。
  2. 并行传输。例如将 8 个 bit 同时通过 8 条信道发送。相比于串行传输速度更快,费用更高。适合近距离传输。

  3. 同步传输(区块传输)。数据以一个数据区块为单位传输。传送时,先送出同步字符,再送出整批数据。

  4. 异步传输。数据以比特或者小组为单位传输。传送数据时要加起始位和终止位。

其他概念

码元:指一个固定时长的信号波形或数字脉冲。作为数字信号计量单位。码元宽度指时长。有 $x$ 个状态的码元被称为 $x$ 进制码元。

码元传输速率:单位时间内传输的码元量。与进制无关, 只与码元宽度有关。

波特:码元传输速率的单位。1 波特表示每秒传输一个码元。如果一个码元携带 $n\ {\rm bit}$ 信息量,则 $M\ {\rm Baud}$ 的码元传输速率对应每秒能传输 $Mn\ {\rm bit}$ 信息。

带宽(模拟信号):单位为 Hz. 最高频率和最低频率之间的差值。

带宽(数字设备):单位为 bit/s. 前面提到过。链路最高数据传输能力。

通信定理

前置概念:

失真:带宽受限、有噪声、干扰导致的波形磨损。影响因素:码元传输速率,过快容易受磨损;信号传输距离;噪声干扰;传输媒体质量。

码间串扰: 频率过高,导致接收端收到的波形失去了码元之间的清晰界限。

奈氏准则

理想低通(无噪声,带宽受限)条件下,如果要避免码间串扰,极限码元传输速率为 2W Baud. 其中 W 为信道带宽,单位 Hz.

则极限数据传输速率

$V$ 指有几种码元(码元离散电平数目)。

香农定理

在带宽受限且有噪声的信道中,为了不产生误差,信息数据传输存在上限。

信噪比:信号平均功率/噪声平均功率 $S/N$(单位 dB),或者用如下公式表示:

香农定理公式:

编码和调制

信道分类:模拟信道与数字信道(按传输的信号分),无线信号和有线信号(传输介质)