计算机网络_概论
计算机网络_概论
需要解决的问题
- 什么是因特网?
- 因特网的组成与结构。
- 因特网中的设备。
- 因特网的分类和工作原理?
- 网络通讯协议。
- 发展历史。
什么是因特网?
把具有独立功能的计算机,通过通信介质和通信设备,按照一定的拓扑结构连接,根据网络协议相互通信,在数据交换基础上,实现资源共享的系统。
基本特点:连通性 + 共享
网络的组成
从功能上说,可以分为:
通信子网(网络核心) + 资源子网(网络边缘)
网络的边缘部分用于提供资源,核心部分承担数据的传输和交换。
graph TD subgraph 位置 A[网络边缘] B[网络核心] end subgraph 功能 C[提供资源] D[数据交换] end A --> C B --> D
从边缘部分的计算机说起,它们被统称为主机(Host)或端系统(End System)。
端系统之间以如下过程进行通讯:
graph LR A((端系统_1)) --"通信链路"--> B[["分组交换机 (Packet Switch)"]] --"通信链路"--> C((端系统_2))
端系统1将传输的信息(报文 message)分段打包,形成 分组 packet 发送到端系统2。其中,链路的 传输速率 以 bps (bit/s) 度量。
分组 packet 通过 分组交换机 packet switch 转发到对应的通讯链路,经过的分组交换机构成该分组的 路径 route/path。
分组的接收与发送都要遵循一系列 协议 protocol。TCP/IP 协议族是最重要的一系列协议。
网络间转发:路由器 Router
网络内转发:链路层交换机 Link-layer switch
从拓扑角度可以分为:
Node + Link + Protocol
graph LR A(("Node(结点)")) --"通信协议"--> B["Link(链路)"] --"通信协议"--> C(("Node(结点)"))
终端节点:数据处理、通信
graph LR A((DTE)) --> B((DCE)) --> C[/Network/]
DTE:数据终端设备
DCE:数据通信设备,如 MODEM
中继节点:延长通讯线路,如中继器、集线器(HUB)
交换节点:数据转发,如交换机(Switch)
graph LR A[Packet] ==> B[[Switch]] ==> C((Terminal_1)) B --> D((Terminal_2))路由节点:连接网络
graph LR A[/Network_1/] --> B[[Router]] --"协议转换、路由选择"--> C[/Network_2/] C --> B[[Router]] --"协议转换、路由选择"--> A
网络边缘
端系统的通信方式:C/S,P2P
端系统如何入网?
端系统通过 因特网服务提供商 ISP,以各种方式接入因特网。
ISP 实质上是多个分组交换机和多段通信链路组成的网络。它们将 IP 地址分发给用户,为用户提供分组转发等服务。
ISP 提供的入网方式:
- 家庭
- 数字用户线 DSL:电话线,【↑ 24Mbps , ↓ 2.5Mbps】,三频段信号(上、下、电话)
- 电缆:有线电视,【↑ 30.7Mbps , ↓ 42.8Mbps】
- 光纤到户 FTTH:AON、PON
- 卫星链路
- 拨号接入:接入模式同于DSL,但只有 56kbps
- 企业(和家庭)
- 以太网:LAN,直接连接以太网交换机
- WiFi:无线LAN
- 广域无线接入
- 3G、4G、5G
- LTE
网络核心
网络核心主要负责提供连通性,由分组交换机和数据链路组成。移动数据的方法有 分组交换 和 电路交换两种。
电路交换
即通信的端系统之间会建立一条专用的物理通路,通信的全部时间内,两个端系统始终占用端到端的通信资源。因此电路交换的传输效率通常很低。
一条电路通过 频分复用(Frequency-Division Multiplexing, FDM)或者 时分复用(Time-Division Multiplexing, TDM)来形成多个链路。
FDM:划分频段,形成各个信道。(各频段之间存在警戒频带)
TDM:将事件划分为固定长度的帧,每一帧划分为固定长度的时隙。(24 时隙指 1 s 被划分为 24 个区间)
分组交换
由路由器 Router 实现分组的转发。
储存转发传输
多数分组交换机的输入端采用 储存转发传输 store-and-forward transmission 机制:
- 路由器接收并缓存完整的一个分组 packet,其长度为 \(L\;bits\);
- 向特定链路转发传输该分组,链路的最大传输速率为 \(R\;bps\);
因此储存转发传输机制中,由 \(N\) 条最大传输速率均为 \(R\;bps\) 的链路组成的路径(共 \(N-1\) 台路由器),端到端时延为: \[ d_{端到端}=N\frac{L}{R} \]
此处仅为发送时延。
排队时延和分组丢失
分组交换机连接着多条链路,每条链路有一个 输出缓存 output buffer(或称 输出队列 output queue)。
如果到达的分组需要传输到某链路,而该链路正好在传输其他分组,那么到达的分组需要在输出缓存中等待,由此产生 排队时延 queue delay。
如果缓存空间已经满了,那么后来到达的分组将会被丢弃,称为 分组丢失(丢包) packet lost。
转发表与路由选择协议
转发表 forward table:将目的地IP(或它的一部分)映射为输出链路。
路由选择协议 routing protocol:自动设置最短路径,从而配置转发表。
对比
分组交换:按需分配。简单高效、灵活可靠、低成本、更好地带宽共享;但是端到端时延不可预测。
电路交换:预先分配链路。
网络结构
存在点(Point of Presence, POP):提供商ISP用于和客户ISP互连的路由器群组。存在于除底层(接入ISP)之外的层次。
多宿(multi-home):客户ISP与多个提供商ISP连接。
对等(peer):同一层次的临近ISP直接连接,通常不进行结算。
因特网交换点(Internet Exchange Point, IXP):多个ISP共同对等的汇合点。
内容提供商网络(content provider network):内容提供商通过设立自己的专用网络,在IXP与较低层ISP对等,同时与高层ISP互联并结算流量,减少了向高层ISP的付费,同时对自己的服务有了更多的控制。
网络体系结构
作为一个非常复杂的系统,因特网是否存在着体系结构?
系统网络体系结构(System Network Architecture, SNA):1974,IBM
开放系统互连参考模型(Open System Interconnection Reference Model, OSI):1977,ISO
但是,OSI标准制定时,缺乏商业驱动力;OSI标准实现复杂,运行效率低;制定周期太长;层次划分不太合理,同一功能在不同层次多次出现。因此,TCP/IP 称为实质上的国际标准。
协议分层
协议是什么?协议是一种规则,确定了交换的数据格式以及相关的行为。
网络协议的要素:
- 语法:数据与控制信息的结构或格式;
- 语义:协议元素的含义,规定其表达的内容;
- 同步:规定事件实现的顺序。
TCP/IP 四层协议 | 五层协议栈 | ISO OSI 七层协议 |
---|---|---|
应用层(Application Layer)
网络应用进程间通信和交互的规则。例如 HTTP(Web文档的请求和传送)、STMP(电子邮件报文的传输)等。
报文(message):应用层之间交互的数据单元。
运输层(Transport Layer)
为两台主机中进程之间的通信提供通用的数据传输服务。
- 传输控制协议(Transmission Control Protocol, TCP):面向连接、可靠;数据传输的单位是报文段(segment)。
- 用户数据协议(User Datagram Protocol, UDP):无连接的、best-effort 的数据传输服务;无可靠性、无流量控制、无拥塞控制。数据传输的单位是用户数据报。
网络层(Network Layer)
将数据报(datagram)从一台主机移动到另一台主机。
网络层的功能是将运输层传递的 segment 和目的地址封装,然后选择合适的路由。为实现功能需要 IP 协议(Internet Protocol)和路由选择协议。因此也被称为 IP 层。
数据链路层(Data Link Layer)
网络层通过路径中的路由器路由数据报,因此需要依靠链路层的服务将分组从一个结点传输至下一个结点。
graph LR A((Host_s)) --"WiFi"--> B[Router_1] --"以太网"--> C[Router_2] --"PPP"--> D((Host_t))
帧(Frame):链路层分组。
物理层(Physical Layer)
将 frame 逐个比特地移动。
例如,根据传输媒体的不同,以太网的物理层协议可以是关于双绞铜线的、关于光纤的、关于同轴电缆的……
封装(encapsulation)
自上而下,分组被加上首部信息或尾部信息,形成新的分组传递给下一层。每一层形成的分组具有两个字段:首部字段和有效载荷字段(payload field)。
路由器将接收到的比特流变为 link-layer frame,解包为 network-layer datagram,获取目的地址后选择转发到的地址,一起打包为 link-layer frame,之后发送。
协议数据单元(Protocol Data Unit, PDU):对等层次之间传送的数据单位。
服务数据单元(Service Data Unit, SDU):层与层之间交换的数据的单位。
PDU是同一层的协议实体之间传送的数据单元;SDU是协议的用户与协议之间传递的数据。
即:\(PDU_n=SDU_{n-1}\)
实体(entity):任何可以发送或接受信息的硬件或软件进程。
服务原语:上层使用下层的服务时所交换的命令。请求(Request)、指示(Indicate)、响应(Response)、证实(Confirm)
服务访问点(Service Access Point, SAP):抽象的、概念上的逻辑接口,用于上下相邻两层交换数据。