dowloader------>tracker http 请求中的peer_id是 由dowloader随机产生的吗?
dowloader<------>dowloader handshake 的peer_id 于上一个peer_id相同吗?

解决方案 »

  1.   

    peer_id 不是随机生成的
    peer_id 是自身的标识,它是12个0和当前时间+全球的唯一标识码(guid)的sha校验的前八位,共20位 。
      

  2.   

    请问peer_id 发送到 tracker 服务器后,服务器是不是会把 peer_id 和 当前的 peer 列表一起发回来给 bt 客户端?如果是,发回来后peer_id 有没有发生改变?
      

  3.   

    >>peer_id 不是随机生成的
    peer_id 是自身的标识,它是12个0和当前时间+全球的唯一标识码(guid)的sha校验的前八位,共20位 。以上算法是怎样得到的,bittorrent官方协议上没有这些内容.
      

  4.   

    这里BT是通过WEB服务器来实现的,首先BT会通过分析 torrent 来得到下面一串网址 
    http://btfans.3322.org:6969/announce?info_hash=%CDg%D4%19%AD%96%9D%93%03%DB%E4%FFXA%C6%5D%043%17O&peer_id=%00%00%00%00%00%00%00%00%00%00%00%00%A3E%E0%9BeB%90d&port=6882&uploadED=0&downloadED=0&left=19171922&event=startEDhttp://BTfans.3322.org:6969/announce 是发布服务器的地址 info_hash 是torrent文件中的 info 部分的Sha校验码,WEB通过它在发布列表找到对应的纪录peer_id 是自身的标识,它是12个0和当前时间+全球的唯一标识码(GUID)的Sha校验的前八位,共20位 port 你提供上传的 port IP 你的ip地址,没有的话服务器会自己找到 uploadED downloadED 你上传和下载了多少,服务器可以用它来做流量分析 left 你还要下载多少个字节 event 状态,告诉服务器你是准备开始下载,还是停止,还是下载完成了   以上这个操作默认 5 分钟做一次,或由服务器设定。 
      

  5.   

    不同的BT客户端有自己的产生风格.总之就是说没有特殊的限制.
    通常一个peerid在一个下载中有效.不过也不是强制的.