Loading... # 应用层(五) ## P2P应用 P2P对总是打开的基础设施服务器有最小的依赖,而是成对间歇连接的主机彼此直接通信 **C-S结构** ![image-20220329233043910.png](http://xherlock.top/usr/uploads/2022/03/1438703342.png) P2P结构 ![image-20220329233324426.png](http://xherlock.top/usr/uploads/2022/03/1523746673.png) **最小分发时间** ![image-20220329233405623.png](http://xherlock.top/usr/uploads/2022/03/1929090509.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](http://xherlock.top/usr/uploads/2022/03/2551480472.png) ![image-20220330084318077.png](http://xherlock.top/usr/uploads/2022/03/3431827164.png) ![image-20220330084329293.png](http://xherlock.top/usr/uploads/2022/03/1866003550.png) ### TCP * 服务器端程序必须运行 * 服务器端必须创建套接字欢迎客户的联系 * 客户端创建TCP套接字,指明IP和服务器进程端口 * C-S建立连接 ![image-20220330090956277.png](http://xherlock.top/usr/uploads/2022/03/705534814.png) ![image-20220330091009048.png](http://xherlock.top/usr/uploads/2022/03/1766509013.png) ![image-20220330091019549.png](http://xherlock.top/usr/uploads/2022/03/1438367510.png) 最后修改:2022 年 03 月 30 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏