一、计算机网络概述
1. 基本概念
1.1. 组成:边缘部分,核心部分
边缘部分:直接连接在因特网上的主机(用户);
核心部分:大量网络和连接这些网络的路由器(提供连通性,数据交换功能);
图示:

1.2. 分类
按作用范围分类:
广域网(WAN,Wide Area Network)
局域网(LAN,Local ...)
城域网(MAN,Metropolitan ...)
个人区域网(PAN,Personal ...)
按使用者分类:
公用网
专用网
按拓扑结构分类:
星形
总线
环形
树形
网形
1.3. 主要性能指标
速率:比特 bit,b/s,kb/s,Mb/s,Gb/s;
带宽:数字信道所能传送的最高数据率,单位 bit/s,bps;
时延:数据块从节点进入到传输媒体所需要的时间;
发送时延:从发送数据帧的第一个bit算起到该帧最后一个bit发送完毕所需时间;

传播时延:电磁波在信道中传播花费的时间

- 区分:信号的发送速率和信号在信道上的传输速率
处理时延:交换节点进行数据处理花费的时间(了解);
排队时延:节点缓存队列中分组排队产生的时延(了解);
总时延:

案例:从节点 A 向节点 B 发送数据:

往返时间 RTT:发送方发送数据开始,到发送方收到接收方确认所经历的时间;
信道利用率:信道有数据通过时间的占比;
2. 体系结构
2.1. 计算机网络的分层结构
划分层次的必要性
数据交换必须遵守事先约定好的规则;
明确规定数据交换的格式和同步问题(时序);
网络协议(Network Protocol,简称协议)是网络中数据交换的规则,标准或约定;
计算机网络的体系结构定义
体系结构(architecture)是计算机网络的各层及其协议的集合;
体系结构是计算机网络及其部件所应完成功能的精确定义;
实现(implementation)是遵循上述体系结构的前提下用硬件和软件来实现各项功能;
体系结构为抽象概念,实现为具体方案,是具体运行的计算机软硬件;
2.2. 计算机网络的协议,接口和服务
协议(Protocol)
协议总是指某一层的协议,是对某层同等实体之间的通信规则集合;
三个要素:语法(Syntax),语义(Semantics),同步(Timing);
语法:数据与控制信息的结构或格式;
语义:需要发出何种控制信息,完成何种动作以及做出何种响应;
同步:事件实现顺序的详细说明;
接口(Interface):又称服务访问点,是同一系统相邻两层的实体进行交互的地方;
服务(Service):为保证上层实体间的通信,由下层实体向上层提供的功能;
实体(Entity):表示可以发送或接受信息的硬件或软件;
协议和服务图示

2.3. ISO/OSI 参考模型和 TCP/IP 模型
ISO/OSI 参考模型

分层概览
底部三层(物理,数据链路,网络):依赖网络,需要相关通信协议;
中间传输层:为顶部三层提供相关接口,方便使用底部层的服务(也起到遮蔽作用);
顶部三层(应用,表示,会话):面向用户和应用,需要终端交互协议;
逐层分析
物理层:在信道上传输的原始比特流;
实现电压到 0/1 的转换,一个 bit 对应电压的持续时间,在两个方向上同时传输等;
处理机械和电气过程的结构,以及物理传输介质等问题;
关键技术:信号与接口;
数据链路层:沿着网络在相邻节点间传输数据的技术规范;
负责产生和识别数据帧之间的边界;
帧(Frame)是信息单位,每一帧包含数据和必要的控制信息;
控制信息包括:同步信息(开始和结束),地址信息,错误控制信息和流量控制信息等;
网络层:确定分组从源端到达目的端的路由;
是通信子网的最高层,任务是:选择合适的路由和交换节点,以透明地向目的站传输所发送的分组信息,路由选择是网络层主要工作之一;
网络层传输数据的单位是分组,即将报文分割成等长的组;
传输层:负责从会话层接收数据,必要时将数据分成较小的单位,传递给网络层,同时确保发送给对方的各段信息无误;
传输层是真正的源到目标的“端到端”层;
源端的某程序,利用报文头和控制报文和目标端的类似程序进行对话;
会话层:允许不同机器上的用户建立对应关系,同时提供某些应用相关的增强服务会话;
用途:远程登录,远程传递文件等;
同时还负责管理同步对话。使得网络崩溃后仅需要重传最后一个校验点后的数据;
表示层:管理面向应用的信息语法和语义;
网络交换中使用的数据结构以抽象的方式来定义,并采用标准的编码方式;
表示层管理这些抽象的数据结构,并在计算机内部的表示法和网络标准表示法间转换;
例:微信中的表情包编码和显示;
应用层:直接为用户服务的程序所执行的功能;
应用层包括的功能最多,协议也很多(如虚拟终端协议 VTP);
例:文件传输,电子邮件,远程事务处理等;
TCP/IP 模型(广泛应用,已成为事实上的国际标准)

网络(网际)层:负责把分组发往任何网络,并使分组独立地传向目的地(中间可经过不同物理网络)
到达的顺序和发送顺序可能不同,因此有时需要排序;
定义了标准的分组格式和协议(即 IP 协议);
主要问题:选择分组路由,避免阻塞;
传输层:使源端和目标端主机上的对等实体可以进行通信,类似于 OSI 的传输层;
传输控制协议 TCP:面向连接的协议,允许从一台机器发送的字节流无差错地发送给网上的其他机器;
用户数据报协议 UDP:不可靠地无连接协议,应用于单次的 User-Server 模式的请求—应答式查询;
- 可以快速传输一些对速度要求更高(相对于准确性)的数据,如语音和图像;
应用层:包含所有高层软件的协议
文件传输协议 FTP;
电子邮件协议 SMTP;
邮局协议 POP;
域名服务 DNS:用于将主机名称映射到 IP 地址;
HTTP 协议;
五层结构的体系结构—事实模型:把 OSI 的低两层和 TCP 的高三层结合作为 TCP 协议的结构

- 实际应用中采用的模型,也是教学大纲考点;
案例分析:数据在五层结构之间的传输

:应用层首部,用于应用内部解析消息内容; :传输层首部,用于指示传输层应该把数据给哪个应用(一般是端口号); :网络层首部:核心内容为 IP 地址; :链路层:标志链路的起点和终点;
OSI 参考模型 vs. TCP/IP 模型(了解)
OSI 参考模型
层次的数量和内容选择不是很好;
寻址,流程控制,差错控制在每一层里重复出现,降低系统效率;
数据安全性在设计初期被忽略;
用通信的思想来设计模型,不适合计算机和软件的工作方式,使得严格按照此模型编排的软件效率低;
TCP/IP 模型
在服务、接口与协议的区别上不很清楚,一个好的软件工程应该将功能与实现方法区分开,参考模型不适合于其它非TCP/IP协议族;
TCPP/IP 参考模型的主机-网络层本身并不是实际的一层;
物理层与数据链路层的划分是必要和合理的,而TCP/IP参考模型却没有做到这点。
TCP/IP 中的主要协议结构(重点)
