POST 数据在实体里 安全性高 效率低 容量大
WEB缓存 条件GET方法 查看是否修改
2.3FTP文件传输协议
? 控制信息是带外传送out-of-band:两个并行TCP连接 一个数据连接 一个控制连接
控制连接一直相连直到会话结束 数据连接每次传送重新建立 ? 保留用户状态:追踪用户在远程目录树上的当前位置
2.4因特网中的电子邮件
? 用户代理user agent ? 邮件服务器
? 简单邮件传输协议SMTP
? 邮件传输协议 持久连接 推协议push protocol
SMTP 用于从发送方的邮件服务器发送报文到接收方的邮件服务器
MIME 多用途因特网邮件扩展Mutipurpose Internet Mail Extension 支持多媒体和非ASCII文本格式
? 邮件访问协议 拉协议 邮件从邮件服务器传送到接收方用户代理
POP3 第三版的邮局协议Post Office Protocol-Version 3 特许 事务处理 更新 功能:下载/删除 IMAP 因特网邮件访问协议
Internet Mail Access Protocol
可以在远程服务器创建层次文件夹 可以
获取报文组件(只获取首部等)
2.5DNS域名系统
? 提供主机名到IP地址转换的目录服务 ? UDP
? 额外作用:主机别名 邮件服务器别名 负载分配
? 分布式层次数据库:根DNS服务器 顶级域TLD Top Level Domain服务器 权威DNS服务器
2.6 P2P应用
扩展性:服务器上传第一个后接收到文件的对等方参与上载 BitTorrent 用于文件分发的流行P2P协议
洪流torrent 参与一个特定文件分发的所有对等方的集合
最稀罕优先rarest first:向被拷贝次数最少的优先请求 用于均衡每个块的拷贝数量 对换算法:4+1 解决免费搭车free-riding问题
Ch3 传输层
为运行在不同主机上的应用进程之间提供了逻辑通信logic
3.1多路复用和多路分解
将两个端系统间IP的交付服务扩展到运行在两个端系统之上的进程间的交付服务 多路分解demultiplexing 将运输层报文段中的数据交付到正确的套接字 多路复用
multiplxing
从源主机不同套接字中收集数据块封装首部信息生成报文段传递到网络
层
要求:①套接字有唯一标识符 ②每个报文段有特殊字段指示要交付的套接字 即源端口号字段 和目的端口号字段
UDP套接字由一个包含目的IP地址和目的端口号的二元组全面标识:两个具有不同源IP地址或源端口好但具有相同目的IP地址和目的端口号的报文段对应同一个套接字
TCP套接字由四元组标识:两个具有不同源IP地址或源端口好但具有相同目的IP地址和目的端口号的报文段对应两个不同套接字
3.2无连接运输 UDP
UDP 用户数据报协议user datagram protocol
多路复用/多路分解功能+轻型差错检测(求和反码) 优点:
? 应用层能更好地控制要发送的数据和时间 适用于实时应用和容忍丢失(无拥塞机制) ? 无需建立连接 (DNS使用它的主要原因)
? 无连接状态 不需维护连接状态(缓存,序号,确认号,参数) ? 分组首部开销小 8字节VS20字节
注意:使用UDP的应用程序,通过自身建立可靠性机制可以实现可靠数据传输
3.3可靠数据传输的原理
ARQ(Automatic Repeat reQuest,自动重复请求协议)
rdt1.0完全可靠信道上的可靠数据传输
未考虑报文段受损
rdt2.0 具有比特差错信道上的可靠数据传输
基于重传机制 停等协议stop-and-wait ? 差错检测detection 校验和
? 接收方反馈(ACK NAK) ACK分组
重传retransmission
?
未考虑ACK或者NAK受损
接受到含混不清的ACK就重发会造成冗余分组duplicate (根本困难是接收方不知道该分组是新的还是重传,引入序号sequence加以区分)
rdt2.1 引入序号机制
在数据分组中引入一个新字段——1bit的序号
接收方只需比较该分组与上一次接收到的分组的序号是否相同就知道是新分组还是重传
rdt2.2 NAK-Free
当发送方接收到对同一分组的两个ACK(即冗余duplicate AKC),即表明后一个分组未收到
rdt3.0 具有比特差错的丢包Lossy信道上的可靠数据传输(比特交换协议)
在rdt2.2考虑了比特差错的基础上再考虑底层信道的丢包问题
校验和、ACK分组、重传、序号+倒计数定时器countdown timer 核心问题:是停等协议 效率低
3.4流水线可靠数据传输协议
信道利用率utilization
发送方实际用于传输的时间与发送时间之比(传输+传播) 注意单位的换算Byte*8对应bps
流水线技术pipelining
? 增加序号范围(每一个传输分组有唯一序号) ? 发送方和接收方缓存分组
解决流水线的差错恢复的两种基本办法:回退N步 选择重传
回退N步 Go-Back-N GBN
允许发送方发送多个分组而不需等待确认,未确认分组数不超过N(窗口长度) 也称滑动窗口协议sliding-window
? 窗口长度:对发送方的限制,用于流量控制和拥塞控制
? 累积确认cumulative acknowledgement:ACK N 表明接收方已收到序号n及其以前的所有分组 ? 超时事件timeout:定时器,超时的未确认分组会重发
接收方:当收到n及其前面所有分组就为n发送ACK,否则丢弃,发送最近收到的分组序号ACK(缓存简单,分组不失序,增加重传,效率较低)