如何建立PT服务器?
发布网友
发布时间:2022-05-02 19:50
我来回答
共5个回答
热心网友
时间:2022-04-13 03:39
随着Internet的发展,IPv4协议的缺陷表现得越发明显,两个最大的问题就是地址资源耗尽和骨干路由器路由表规模爆炸。下一代IP协议IPv6有效地解决了这些问题,它具有庞大的地址空间、支持流媒体和完善的安全机制等优点,IPv6必会取代IPv4,但这是一个漫长的过程,目前网络资源绝大部分存在于IPv4网络环境中,必须保证纯IPv6网络和现有的IPv4网络能够相互访问。
目前在IPv4网络中部署IPv6网络的基本技术主要有3种:双协议栈、隧道和网络地址翻译/协议翻译(NAT-PT)。IPv4网络和纯IPv6网络通信需要使用NAT-PT技术。针对NAT-PT的各种实现方法,国内外都做了大量工作[1-2],但多数实现比较复杂。本文提出了一种基于Libnet和Libipq实现NAT-PT的方法。
本文的结构如下:第2节,介绍了NAT-PT的思想以及工作原理;第3节,介绍了Libnet和Libipq;第4节给出本系统的框架;第5节,结论。
2 NAT-PT机制
NAT-PT[3]是一种地址和协议转换技术,用来解决IPv4网络和IPv6网络互通的问题,该机制包括两方面的内容:IPv4/IPv6地址映射(NAT)和对IPv4/IPv6分组进行语义翻译(PT),其主要思想是在IPv4节点与IPv6节点通信时,借助二者之间的NAT-PT服务器,把数据报的网络层报头做IPv4与IPv6间的转换,以适应对方网络的协议类型。NAT-PT机制的工作原理[4](设IPv4主机发起会话):
NAT_PT机制中至少有以下几个功能模块:
DNS-ALG:修改DNS请求和应答,以便IPv4网络中的节点和IPv6网络中的节点能够相互解析对端的地址。
Address-Mapping:完成的功能与传统IPv4网络中的NAT功能类似,建立和维护IP地址映射表。
Protocol-Translation:主要进行网络层协议报头的转换以及重新计算传输层协议(如果有)报头中的校验和。
它的通信过程如下:
1.IPv4主机发出查询主机名为A的IP地址的DNS请求,该请求被NAT-PT服务器获取;
2.DNS-ALG将请求修改,然后发给IPv6侧的DNS服务器;
3.DNS服务器应答A主机的IPv6地址;
4.NAT-PT服务器将该IPv6地址存入地址映射表中;
5.在自身维护的IPv4地址池中选择一个IPv4地址与原IPv6地址建立映射关系,并在地址映射表中记录这一映射关系,然后把选中的IPv4地址返回给DNS-ALG;
6.DNS-ALG将此IPv4地址应答发给请求的IPv4主机;
7.IPv4主机以此IP地址为目的地址进行通信;
8.NAT-PT服务器截获使用映射目的地址通信的IP分组,并在地址映射表中查找与目的IPv4地址关联的IPv6地址;
9.地址映射表返回目的主机的IPv6地址;
10.协议转换部分对IP分组进行协议转换,将IPv4报头转变成IPv6报头,重新计算传输层协议(如果有)报头中的校验和,将源地址修改为IPv4 映射地址(形式为0::ffff:a.b.c.d/96) ,目的地址改为目的主机的IPv6地址,并发送。
3 Libnet和Libipq
Libnet是一个小型的接口函数库,提供了低层网络数据报的构造、处理和发送功能。Libnet的开发目的是建立一个简单统一的网络编程接口以屏蔽不同操作系统低层网络编程的差别,使得程序员将精力集中在解决关键问题上。
NetFilter是linux2.4内核中实现数据包过滤、处理和NAT等功能的框架。Libipq是NetFilter框架的重要组成部分。任何时候在任何NetFilter规则链中,数据报都可以被排队转发到用户空间去。用户进程能对数据报进行任何处理。处理结束以后,用户进程可以将该数据报重新注入内核或者设置一个对数据报的目标动作。
4 系统框架
本系统由三个模块组成:Packet_Capture、IPv4 to IPv6和IPv6 to IPv4,各模块功能和流程如下:
Packet_Capture:该模块需要编译为内核可加载的模块,工作在内核空间,负责将符合要求的数据报复制到用户空间,由两个函数组成,分别注册到NetFilter框架下面的IPv4和IPv6的第一个钩子处(NF_IP_PRE_ROUTING和NF_IP6_PRE_ROUTING),这两个函数的功能类似,只是一个适用于IPv4,一个适用于IPv6。
IPv4 to IPv6:该模块工作在用户空间,利用Libipq函数库取得Packet_Capture截获的数据报,依据报头中的信息做出相应的处理,比如地址映射、报头变换、重新计算传输层校验和等并调用Libnet函数库将改变后的数据报发往网络的另一侧。
在进行协议转换的时候需要重新计算传输层协议(如果有)的校验和,在Libnet函数库中并没有为IPv6栈中的TCP校验和计算提供实现,需要自己计算校验和。具体的转换过程:以传输层使用TCP协议为例,调用libnet_build_data函数构造应用层数据,libnet_build_tcp_options构造TCP选项,libnet_build_tcp构造TCP协议头,libnet_build_ipv6构造IPv6协议头,libnet_write()发送数据报。
IPv6 to IPv4:该模块完成的功能与IPv6 to IPv4 恰好相反,把IPv6报头转换成IPv4报头,libnet函数库实现了IPv4栈中的TCP校验和的计算,所以使用libnet_build_tcp()构造TCP协议头时,传递的校验和参数可以为零,libnet函数库自动计算校验和。
5 结论
随着IPv6网络的普及,实现现有的IPv4网络和纯IPv6网络互通显得格外重要,NAT-PT作为一种实现IPv4网络和IPv6网络互通的技术得到了广泛重视。本文给出的实现方法具有以下优点:
第一,实现简单,编程量小,主要依靠流行的函数库实现;
第二,部署简便,可扩展性好;
第三,具有很好的工程应用价值。
———————————————————————————————————
要求都在上面了,要建立,很难,除非你是电脑专家。
热心网友
时间:2022-04-13 04:57
PT(Private Tracker)下载其实也是BT下载的一种,和BT下载有两个最明显的不同,即私密的小范围下载和进行流量统计。BT下载时,BT客户端首先解析.torrent种子文件得到Tracker地址,然后连接Tracker服务器。Tracker服务器回应下载者的请求,提供其他下载者(包括发布者)的IP。下载者再连接其他下载者,根据.torrent文件,两者分别向对方告知自己已经有的块(数据),然后交换对方没有的数据。此时不需要其他服务器参与,分散了单个线路上的数据流量,因此减轻了服务器负担。Tracker是BT下载的一个重要组成部分,用于记录上下载用户的互连信息。而PT下载和BT下载的区别是PT下载的Tracker是私有的,BT下载的Tracker则是公开的。
PT下载是一种小范围的BT下载,通过禁用DHT,有要求地选择并控制用户数量。这样,在有限的范围内,下载的用户基本都可以达到自己带宽的上限。PT下载还通过论坛制度的约束机制将BT的设计理念现实化,真正让用户做到下载的过程中努力上传。因此,PT下载的速度很快,能够让用户带宽得到最大程度的使用,而且种子时效长。
热心网友
时间:2022-04-13 06:32
这个问题有点深...
热心网友
时间:2022-04-13 08:23
支持Windows平台并品种还要多,是太难了,我曾经也为他人查找了很多网址但还是失望啊。
热心网友
时间:2022-04-13 10:31
可以去试试用PGphong,虽然我没试过但据说可以用