应用层(五)
P2P应用
P2P对总是打开的基础设施服务器有最小的依赖,而是成对间歇连接的主机彼此直接通信
C-S结构
P2P结构
最小分发时间
BitTorrent
比特流,一种用于文件分发的流行P2P协议;参与一个特定文件分发的所有对等方的集合被称为一个洪流(torrent),称为种子文件,洪流中有个节点称为tracker,对等方加入就注册它们,并周期性跟踪它们
在torrent中,对等放(peers)彼此下载等长度的文件块(chunk,通常256KB),首次加入无块,只有过一段时间后,累积了更多块后才为其他对等方上载多个块
这个过程中对等方可能私自离开或无私留下奉献
最稀缺优先技术(rarest first)
向对等方周期性请求返回文件块列表,针对此列表集合决定先向对等方请求稀少资源
为决定响应哪个请求,采用tit-for-tat(以牙还牙)策略:A需要确定四个为他上载速度最快的peers(每10s重新评估),每30s随机选一个邻居,假设选中B传送文件块,如果A能成为B的前四位上载者,B也将向A发送数据,最终趋向于双方彼此协调
套接字编程
UDP
- 发送数据前无握手
- 发送方将目的地址IP和端口附在分组上
- 接收方从收到的分组提取IP和端口
- 传输的数据可能丢失或无序
- UDP提供的是在客户端和服务器之间不可靠数据传输
TCP
- 服务器端程序必须运行
- 服务器端必须创建套接字欢迎客户的联系
- 客户端创建TCP套接字,指明IP和服务器进程端口
- C-S建立连接