复习大纲
–第一章 概述
–第二章 应用层
网络应用概述
DNS(一般使用UDP,服务端口号为53)
WWW应用和HTTP
WWW的体系结构
网页类型
静态网页
动态网页:如CGI脚本
活跃网页:例如Java Applet
HTTP:操作过程、消息格式
持久连接与非持久连接
非持久连接:每次传输对象都要重新建立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应用
FTP:文件传输协议
- 用于和远程主机之间上传/下载文件
- C/S模式
- 传输协议使用TCP
- FTP两个连接
- 控制连接
- FTP client 与 FTP server(端口21)建立控制连接
- 进行身份验证
- 传输命令和响应
- 持久连接:在访问期间,控制连接一直存在
- 数据连接
- 需要传输数据时建立数据连接
- 数据传输结束后,连接关闭
- 控制连接
远程登录协议:Telent
远程登录:从一台计算机通过网络登录到远程另一台计算机上进行操作
Telent特性:
- C/S模型
- 基于TCP,server端口号:23
- 通用、双向、基于8位字符的通信协议
NVT:网络仿真终端
- 标准的数据格式
- 实现异构设备的互联
–第三章 传输层:实现端到端的可靠通信
传输层的功能及服务
可靠数据传输的原理
无连接传输协议:UDP
简单高效的传输层协议
提供“尽力而为”的服务
- UDP数据报可能丢失
- 接受的顺序可能与发送顺序不一致
无连接协议
- 在发送数据之前,发送端和接收端没有握手
- 每个UDP数据报都是独立的,与其他的数据报无关
相比IP:增强了多路复用/多路分解
数据格式
伪报头:只用于校验和的计算,不发送
面向连接的传输协议:TCP
- 面向连接、全双工数据传输、端到端传输
- 连接管理:三次握手建立连接,四步释放连接
- 动态滑动窗口:发送窗口不超过对端通知的接收窗口值
- 采用ARQ协议,流水线方式工作,流量控制,拥塞控制,可靠、按序的字节流传输
- TCP不能保证上层消息的边界
- TCP的报文段
- 发送序号与接收序号
- 控制字段
- 可靠数据传输:序号管理
- 流量控制:防止发送方发送过快导致接收方缓存溢出造成数据丢失
- 基本方法:接收方反馈,限制发送方的发送数据量
- RTT估值=α×RTT估值的历史值+(1-α)×RTT的测量值
- 传输效率问题:
- Nagle算法:一次尽量发送较大的数据量
- Clark算法:只有在较大缓存时,才发送窗口更新通知
拥塞控制的主要原理
拥塞即网络边缘主机发送到网络中的负载超出了网络的承载能力
特征包括:时延增大(数据包在缓存中排队)、数据包丢失(路由器缓存溢出)
拥塞控制是全局问题,涉及全网所有的路由器和主机
- 流量控制是局部问题,仅限于发送方和接收方之间
拥塞控制
开环方法
闭环方法
TCP拥塞控制方法
- 细节发送端限制发送速率,发送速率近似为cwnd/RTT 字节/秒
- cwnd动态变化,取决于网络拥塞情况
- 发送端感知拥塞
- 当定时器超时或收到3个重复ACK时,即认为有数据丢失
- 发送端随即降低发送速率(降低cwnd)
- 三个机制:慢启动、AIMD、根据拥塞情况调整策略
慢启动:启动速率很低,按照指数级增加发送速率直至发现数据丢失(或者达到预先设定的阈值)
拥塞窗口达到阈值后,进入拥塞避免(CA)阶段
出现数据丢失的情况:MD
快速重传机制