NAT穿透进行P2P文件传输】的更多相关文章

实现一个简单的p2p文件传输,主要解决NAT穿透问题,使用tcp协议传输. NAT背景介绍 简介 NAT(Network Address Translation ,网络地址转换) 是一种广泛应用的解决IP 短缺的有效方法, NAT 将内网地址转和端口号换成合法的公网地址和端口号,建立一个会话,与公网主机进行通信. NAT 不仅实现地址转换,同时还起到防火墙的作用,隐藏内部网络的拓扑结构,保护内部主机. NAT 不仅完美地解决了 lP 地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并…
c#实现P2P文件分享与传输系统 二.设计 - 续(NAT穿透) 首先要抱歉,因为这些日子较忙,没有写文章,这个系列拖了很久,现在开始继续.  上一篇文章介绍了p2p系统Tracker Server和Peer,以及文件描述符,本篇接着讲NAT Server的部分.由于p2p网络中使用udp报文,所以只介绍udp穿透. 1. NAT类型 NAT(Network Address Translation, 网络地址转换),是指在IP包通过路由设备时,修改其IP地址信息的技术.一般应用是,通过将内网地址…
P2P可以是一种通信模式.一种逻辑网络模型.一种技术.甚至一种理念.在P2P网络中,所有通信节点的地位都是对等的,每个节点都扮演着客户机和服务器双重角色,节点之间通过直接通信实现文件信息.处理器运算能力.存储空间等资源的共享.P2P网络具有分散性.可扩展性.健壮性等特点,这使得P2P技术在信息共享.即时通讯.协同工作.分布式计算.网络存储等领域都有广阔的应用. 由于主机可能位于防火墙或NAT之后,在进行P2P通信之前,我们需要进行检测以确认它们之间能否进行P2P通信以及如何通信.这种技术通常称为…
用java的NIO技术编写的 1. 支持聊天功能 2. 拖拽文件能够实现文件传输功能.也能够是目录 3. 启动时能够选择server端或client端启动 4. 本人原创.学习NIO和java的网络通信一定会不错 5. 下载下来能够直接导致eclipse.然后执行 代码下载路径例如以下: http://download.csdn.net/detail/tqtihihc/8266793 截图:…
c#实现P2P文件分享与传输系统 一.模型 P2P的概念大家都不陌生,也就是所谓的“点对点传输”,即不直接通过服务器,在两台或多台客户端之间传输数据,实现信息交流和资源共享.P2P技术已经发展了很多年了,虽然理论上已经发展了很多的模型,但在实际的网络环境中(尤其是镇里这种环境),究竟怎样的网络结构才具有较好的稳定性和较高的传输性能,还是有很大的争议,每家做P2P的网络公司都会有不同的见解.当前,P2P技术应用的主要目的还是减轻服务器工作压力,本人不才,之前曾在国内某网络软件公司里担任p2p相关的…
最近公司要实现在各种网络环境下面的多屏互动(机顶盒.android phone.iphone及PC端)的需求:由于IP地址资源有限的原因,目前我们使用的各种终端设备都位于局域网后面也就是多台设备共享同一个公网IP:例如:如果位于局域网里面的一个终端Agent A要与互联网上的另一个终端Agent B通信,当A发送的data packet经过局域网出口处的NAT设备时,NAT会将data packet里面的source address字段替换成相应的公网IP和Port,然后再发送data pack…
1.各种网络环境下的P2P通信解决方法: (1)如果通信双方在同一个局域网内,这种情况下可以不借助任何外力直接通过内网地址通信即可:   (2)如果通信双方都在有独立的公网地址,这种情况下当然可以不借助任何外力直接通信即可: (3)如果通信双方一方拥有独立的公网地址另一方在NAT后面,那么可以由位于NAT后面的一方主动发起通信请求: (4)如果通信双方都位于NAT后面,且双方的NAT类型都是cone NAT,那么可以通过一个STUN服务器发现自己的NAT类型以及内网和外网传输地址映射信息,然后通…
NAT IPv4地址只有32位,最多只能提供大致42.9亿个唯一IP地址,当设备越来越多时,IP地址变得越来越稀缺,不能为每个设备都分配一个IP地址.于是,作为NAT规范就出现了.NAT(Network Address Translation,网络地址转换)是1994年提出的,其当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法.每个NAT设备负责维护一个包含本地IP.端口和外网IP.端口的映…
c#实现P2P文件分享与传输系统 二.设计 在上一篇文章中,介绍了P2P网络的常用模型,并确定了EasyP2P系统的框架,本文将就此设计完成它的主要结构和运作流程. 1. 首先是Tracker Server和Peer这两个最重要的模块: Tracker Server负责Peer的信息的收集和跟踪,并向下载节点提供其他节点的信息,实际上就是维护“Peer<-->Resource”之间的这种映射关系,一般来说,在数据结构上,可以把它设计成一个十字链表,当然,也可以用其他结构.当Peer启动时,向T…
转:http://www.cnblogs.com/javaminer/p/3575282.html 最近公司要实现在各种网络环境下面的多屏互动(机顶盒.android phone.iphone及PC端)的需求:由于IP地址资源有限的原因,目前我们使用的各种终端设备都位于局域网后面也就是多台设备共享同一个公网IP:例如:如果位于局域网里面的一个终端Agent A要与互联网上的另一个终端Agent B通信,当A发送的data packet经过局域网出口处的NAT设备时,NAT会将data packe…