应用层(五)

P2P应用

P2P对总是打开的基础设施服务器有最小的依赖,而是成对间歇连接的主机彼此直接通信

C-S结构

image-20220329233043910.png

P2P结构

image-20220329233324426.png

最小分发时间

image-20220329233405623.png

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提供的是在客户端和服务器之间不可靠数据传输

image-20220330084306528.png

image-20220330084318077.png

image-20220330084329293.png

TCP

  • 服务器端程序必须运行
  • 服务器端必须创建套接字欢迎客户的联系
  • 客户端创建TCP套接字,指明IP和服务器进程端口
  • C-S建立连接

image-20220330090956277.png

image-20220330091009048.png

image-20220330091019549.png

最后修改:2022 年 03 月 30 日
如果觉得我的文章对你有用,请随意赞赏