复习大纲
--第一章 概述
计算机网络的组成
*
##### 网络边缘:主机和网络应用程序(又称为"端系统")
* 端系统中运行的程序之间的通信方式可划分为两大类:
* 客户/服务器方式(C/S方式)

* 对等方式(P2P方式)

* 网络接入方式(P22\~P34)

##### 网络核心:路由器互连、网络的网络
*
###### 电路交换(分为建立连接、通信、释放连接三个阶段)
*
###### 报文交换(PPT中没写,但是王道课程里面有)
*
###### 分组交换(数据首先分成多个分组,每个分组单独传送)
* **(这里会给出时延数据、报文长度、传输速率、请求处理时间等要求计算传播时长)**
网络性能的指标(P71)
##### 带宽
* **速率:连接到网络上的节点在信道上传输数据的速率,也称数据率或比特率、数据传输速率,单位bit/s,b/s或bps**
* **信道:表示向某一方向传送信息的通道,信道≠通信线路,一条通信线路在逻辑上对应一条发送信道和接收信道**
* **带宽指某信道所能传送的最高数据率,单位:bit/s,b/s或bps**
##### 时延(P76\~P79)
* **指数据从网络或链路的一段传送到另一端所需的时间。**
* **总时延=发送时延+传播时延+处理时延+排队时延**
##### 吞吐量:指单位时间内通过某个网络(或信道、接口)的实际数据量
协议和分层体系结构
##### 服务、协议
* **协议是通信实体之间通信所必须遵守的规则,其三要素为语法、语义、同步**
* **服务是下层为紧邻的上层提供的功能调用**
##### OSI参考模型("物联网叔会使用")、TCP/IP模型


--第二章 应用层
网络应用概述
##### 应用层协议的特点:没有通用的协议,每个应用都有专门的协议
##### C/S、P2P、C/S和P2P混合结构(P11\~P22)
##### P2P怎么查找资源?
*
###### 集中式查找:混合P2P
*
###### 洪泛式查找:每个peer都将查询请求转发给相邻的全部Peer
*
###### 分层叠加网查找
##### 进程通信
*
###### P2P应用既运行client进程也运行是server进程
*
###### 不同主机间通信的接口:Sockets
*
###### 进程标识:主机IP地址+进程端口号
##### 传输服务
*
###### 衡量指标:可靠性、实时性、吞吐量、安全性

*
###### TCP服务与UDP服务

DNS(一般使用UDP,服务端口号为53)
###### DNS的功能和名字空间

###### DNS服务器分为根域名服务器、顶级域名服务器、权威域名服务器、本地域名服务器(P41\~43)
###### 迭代查询与递归查询(简单理解一下就是迭代查询是BFS,递归查询是DFS)
###### DNS资源记录
*
###### RR格式:(name,TTL,class,type,value)
* Type:
* A:地址资源记录 name:主机域名 value:IP地址
* NS:权威DNS服务器资源记录 name:域 value:此域的权威DNS服务器的域名
* CNAME:标准名称资源记录 name:域名(别名) value:规范名
* MX:邮件服务器资源记录 name:域 value:此域的邮件服务器的规范名字
* 查询资源记录的命令:`nslookup`
###### DNS的消息格式:DNS包含请求(query)和应答(reply)两个消息,其消息格式相同

WWW应用和HTTP
##### WWW的体系结构
*
###### 以C/S模式工作
*
###### 使用URL标识分布在整个因特网上的页面
* 编址格式:协议名://主机:端口号/文件路径及文件名
*
###### 使用HTTP协议实现通过www上的各种链接获取信息
*
###### 使用HTML标记语言显示页面并标识超链接
*
###### WWW应用客户:
* 浏览器
* web服务器
##### 网页类型
* 静态网页

* 动态网页:如CGI脚本

* 活跃网页:例如Java Applet

##### HTTP:操作过程、消息格式
*
###### 概述
* 采用C/S模型
* 传输层采用TCP
* 无状态协议:服务器端不保存以前的访问记录,对于每个请求都是单独处理
*
###### HTTP操作过程(P69)

##### 持久连接与非持久连接
* 非持久连接:每次传输对象都要重新建立TCP连接,响应时间为2×RRT+文件传输时间(HTTP1.0)
* 采用非流水线机制
* 持久连接:一个TCP连接可以传输多个对象(HTTP1.1)
* 流水线机制:Client可以连续发出多个请求,而不必等待前一个请求的响应完成
##### Cookies和Proxy
* HTTP有两类消息:请求(request),响应(response)
* 消息格式:ASCII
* 请求消息的格式:

* HTTP方法

* HTTP响应消息的格式

* 状态码

*
###### Cookie:Web服务器对于访问用户的标识信息,可用于识别用户、记录用户信息和访问情况(用于保持访问应用)
* 在HTTP响应中包含一行set-cookie头信息
* 在HTTP请求中包含一行cookie头信息
* Client主机中保存一个cookie文件,由浏览器管理
* Server端的后台数据库
* 应用包括:身份认证、购物车、个性化推荐信息、用户会话状态等
* 
*
###### 代理服务器(Proxy Server):目的用于减轻Web服务器的负担,加快访问速度
* 
*
###### 浏览器Caching:浏览器缓存访问过的网页,进一步减少网络负载
* 缓存更新:条件GET(P87)
Email应用
##### 电子邮件系统的构成:用户代理(UA)、邮件服务器(mail servers)、邮件传输协议:SMTP、邮件访问协议:IMAP,POP3
*
###### 邮件服务器采用C/S模式
* 
* 
*
###### SMTP采用C/S模式,传输层协议使用TCP,server端口号为25
* 直接传输:邮件直接从发信人的服务器传输到收信人的服务器,而不从中间服务器转发
* 命令/响应方式交互
* 
*
###### 邮件访问协议:POP3(端口号:110)和IMAP(端口号:143)
* 
* 
*
###### 邮件格式:多媒体扩展
* SMTP不能传送可执行文件或其他的二进制对象,限于传送7为ASCII码,会拒接超过一定长度的邮件
* 通过因特网邮件扩充(MIME)
* 
* 
FTP:文件传输协议
- 用于和远程主机之间上传/下载文件
- C/S模式
- 传输协议使用TCP
- FTP两个连接
- 控制连接
- FTP client 与 FTP server(端口21)建立控制连接
- 进行身份验证
- 传输命令和响应
- 持久连接:在访问期间,控制连接一直存在
- 数据连接
- 需要传输数据时建立数据连接
- 数据传输结束后,连接关闭
- 控制连接
远程登录协议:Telent
-
远程登录:从一台计算机通过网络登录到远程另一台计算机上进行操作
-
Telent特性:
- C/S模型
- 基于TCP,server端口号:23
- 通用、双向、基于8位字符的通信协议
-
NVT:网络仿真终端
- 标准的数据格式
- 实现异构设备的互联
--第三章 传输层:实现端到端的可靠通信
传输层的功能及服务
##### 进程-进程的逻辑通信
##### 复用与解复用
* 多路复用:多个应用进程的消息在同一个网络接口上传输
* 进程标识:16位端口号
* 复用:源端传输层在应用层消息之前加上源端口号和目的端口号
* 解复用:目的端传输层根据端口号确定目的进程
##### 端口号
* 熟知端口(常用端口)
* 服务器进程使用
* 开放、固定值
* 值一般是0\~1023
* 短暂端口
* 客户进程使用
* 由操作系统分配,值不固定
* 值一般是49152\~65535
##### 两种服务:TCP与UDP
* TCP:可靠、按顺序交付
* 建立连接
* 流量控制
* 拥塞控制
* UDP:不可靠、无序交付
##### 传输层不提供时延保障和带宽保障
可靠数据传输的原理
##### 提供可靠传输服务的层次:传输层和数据链路层
##### 可靠传输代表:数据不会丢失、重复、失序(P18\~P50)
##### 
无连接传输协议:UDP
-
简单高效的传输层协议
-
提供"尽力而为"的服务
- UDP数据报可能丢失
- 接受的顺序可能与发送顺序不一致
-
无连接协议
- 在发送数据之前,发送端和接收端没有握手
- 每个UDP数据报都是独立的,与其他的数据报无关
-
相比IP:增强了多路复用/多路分解
-
-
数据格式
-
-
伪报头:只用于校验和的计算,不发送
面向连接的传输协议:TCP
- 面向连接、全双工数据传输、端到端传输
- 连接管理:三次握手建立连接,四步释放连接
- 动态滑动窗口:发送窗口不超过对端通知的接收窗口值
- 采用ARQ协议,流水线方式工作,流量控制,拥塞控制,可靠、按序的字节流传输
- TCP不能保证上层消息的边界
- TCP的报文段
- 发送序号与接收序号
- 控制字段
- 可靠数据传输:序号管理
- 流量控制:防止发送方发送过快导致接收方缓存溢出造成数据丢失
- 基本方法:接收方反馈,限制发送方的发送数据量
- RTT估值=α×RTT估值的历史值+(1-α)×RTT的测量值
- 传输效率问题:
- Nagle算法:一次尽量发送较大的数据量
- Clark算法:只有在较大缓存时,才发送窗口更新通知
拥塞控制的主要原理
-
拥塞即网络边缘主机发送到网络中的负载超出了网络的承载能力
-
特征包括:时延增大(数据包在缓存中排队)、数据包丢失(路由器缓存溢出)
-
-
拥塞控制是全局问题,涉及全网所有的路由器和主机
- 流量控制是局部问题,仅限于发送方和接收方之间
-
拥塞控制
-
开环方法
-
闭环方法
-
TCP拥塞控制方法
- 细节发送端限制发送速率,发送速率近似为cwnd/RTT 字节/秒
- cwnd动态变化,取决于网络拥塞情况
- 发送端感知拥塞
- 当定时器超时或收到3个重复ACK时,即认为有数据丢失
- 发送端随即降低发送速率(降低cwnd)
- 三个机制:慢启动、AIMD、根据拥塞情况调整策略
-
慢启动:启动速率很低,按照指数级增加发送速率直至发现数据丢失(或者达到预先设定的阈值)
-
拥塞窗口达到阈值后,进入拥塞避免(CA)阶段
-
出现数据丢失的情况:MD
-
快速重传机制
-