计算机网络知识梳理
概念和功能
参考: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)
计算机网络的分类
按分布范围分类
广域网WAN(交换技术)、城域网MAN、局域网LAN(广播技术)、个人区域网PAN。应该按最大通信距离和实现技术分类,而不是主机距离。
按使用者分类
公用网和专用网
按交换技术分类
电路交换、报文交换和分组交换
其中报文交换和分组交换使用存储转发技术。
按拓扑结构分类
星型、环型、网状型、总线型。。
按传输技术分类
广播网络:共享公共通信信道
点对点网络:使用存储转发和路由选择机制
计算机网络标准化
为了实现不同厂商软硬件连通,计算机网络必须遵从统一的标准。
目前流行的标准为 TCP/IP. 也有权威机构制定的法定标准 OSI。
标准化审批流程:
因特网草案->建议标准(RFC 文档)->(草案标准->)因特网标准
相关组织:
ISO、ITU、IEEE、IETF
性能指标
速度相关指标
速率
每单位时间传输的数据量。
带宽
单位时间内从某一点到另一点能通过的最高数据率。(发送速率)
吞吐量
单位时间内通过某个网络的数据量。
时间相关指标
时延
分为发送时延(传输时延)、传播时延、排队时延和处理时延。
发送时延:将数据从机器内部推送到信道上的时间。
传播时延:在信道上传播的时间。取决于电磁波传播速度和链路长度。
排队时延:等待输出/输入链路可用的时间。
处理时延:寻找合适的出口信道以及检错的时间。
时延带宽积
传播时延和带宽的乘积。单位一般为 bit.
感觉可以理解为信息通量(?),可以描述某段链路现在有多少正在传播的比特。
往返时延 RTT
从发送数据开始,到发送方收到接收方的确认总共经过的时延。
RTT越大,在收到确认之前可以发送的数据越多。(废话)
有时候也会忽略末端处理时间。
利用率
1) 信道利用率
2)网络利用率
体系结构和参考模型
OSI
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
TCP/IP
应用层、传输层、网际层、网络接口层。
要注意 OSI 的网络层是无连接和面向连接都有,而 TCP/IP 的网络层是无连接;OSI 的传输层是面向连接的,而 TCP/IP 的传输层是无连接+面向连接。
TCP/IP 协议栈
应用层包括 HTTP、FTP、DNS 等协议。
传输层包括 TCP、UDP 等协议。
网际层为 IP 协议。
网络接口层包括 Ethernet、ATM、Frame Relay 等。
5层模型
放一张图看一下数据封装与解封装。
应用层
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 进行通信。
- 每个对话中,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 格式
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. 并不是必要。用于发送其他附加信息。
response message
- status line. 版本号+状态码+短消息。e.g.
HTTP/1.1 200 OK
- header lines. 包括时间、服务端类型等附加信息。
- body. 包括需要传输的对象本身。
- status line. 版本号+状态码+短消息。e.g.
Cookies 技术
cookies 用于维护用户和服务器的状态。
包括四个组件:
- cookie header line of HTTP response message
- cookie header line in next HTTP request message
- cooke file kept on user’s host
- back-end database at Website
传输层
应用层对传输协议的要求
- 数据完整性(文件传输,网上交易)
- 时效性(多媒体通话,在线游戏)
- 吞吐量(Live)
- 安全性
TCP
UDP
为什么 UDP 什么也不保证,也有使用 UDP 的:
答:可以在应用层 build 追加 service 来确保这些要求。
物理层
物理层用于解决传输比特流的方法。
物理层主要任务:确定与传输媒体接口有关的特性、标准
通信基础
经典数据通信模型:
通信方式
- 单工通信。单方交互,只需要一条信道。
- 半双工。两边都可以发送或接收,但不能同时发送和接收。需要两条信道。
- 全双工。可以同时发送和接收。需要两条信道。
数据传输方式
- 串行传输。例如将一个字节的 8 个 bit 由低位到高位按顺序依次发送。
并行传输。例如将 8 个 bit 同时通过 8 条信道发送。相比于串行传输速度更快,费用更高。适合近距离传输。
同步传输(区块传输)。数据以一个数据区块为单位传输。传送时,先送出同步字符,再送出整批数据。
- 异步传输。数据以比特或者小组为单位传输。传送数据时要加起始位和终止位。
其他概念
码元:指一个固定时长的信号波形或数字脉冲。作为数字信号计量单位。码元宽度指时长。有 $x$ 个状态的码元被称为 $x$ 进制码元。
码元传输速率:单位时间内传输的码元量。与进制无关, 只与码元宽度有关。
波特:码元传输速率的单位。1 波特表示每秒传输一个码元。如果一个码元携带 $n\ {\rm bit}$ 信息量,则 $M\ {\rm Baud}$ 的码元传输速率对应每秒能传输 $Mn\ {\rm bit}$ 信息。
带宽(模拟信号):单位为 Hz. 最高频率和最低频率之间的差值。
带宽(数字设备):单位为 bit/s. 前面提到过。链路最高数据传输能力。
通信定理
前置概念:
失真:带宽受限、有噪声、干扰导致的波形磨损。影响因素:码元传输速率,过快容易受磨损;信号传输距离;噪声干扰;传输媒体质量。
码间串扰: 频率过高,导致接收端收到的波形失去了码元之间的清晰界限。
奈氏准则
理想低通(无噪声,带宽受限)条件下,如果要避免码间串扰,极限码元传输速率为 2W Baud. 其中 W 为信道带宽,单位 Hz.
则极限数据传输速率
$V$ 指有几种码元(码元离散电平数目)。
香农定理
在带宽受限且有噪声的信道中,为了不产生误差,信息数据传输存在上限。
信噪比:信号平均功率/噪声平均功率 $S/N$(单位 dB),或者用如下公式表示:
香农定理公式:
编码和调制
信道分类:模拟信道与数字信道(按传输的信号分),无线信号和有线信号(传输介质)