I’ve started to dive once again into the mess of connection establishment. Network address translation (NAT) is a reality today for most Internet users, and poses a significant hurdle in creating the user-user (or peer-peer) connections. NAT is the process used by your router to provide multiple internal (192.168.x.x) addresses that are all only visible… Continue reading Stunning
Tag: distributed
SP3
I started running a public sp3 server today. It’s a small side-project I’ve hacked together over the last couple weeks to make it easier for people to play with packet spoofing. The server works similarly to a public proxy, but with the trade-off that while it won’t send high-volumes of traffic, it will allow you… Continue reading SP3
IETF and the HRPC working group
The Internet Engineering Task Force, the multi-stakeholder organization which shepherds the standards process for many of the technologies used on-line, is continuing to evolve that process. Protocol standards are already expected to include discussions on their security and privacy implications, in order to force an explicit conversation on those issues and hopefully encourage the development… Continue reading IETF and the HRPC working group
Webrtc-Adapter
WebRTC continues to develop towards an evolving standard, requiring some additional leg work to use it in projects. In yet another attempt at bridging that gap, I’ve been working on maintaining an adapter lessening some of the deviation from standard in current browsers.
https://www.npmjs.org/package/webrtc-adapter
It currently fixes
- Response of format of getStats in Chrome
- Translation to ‘url’ from the standard ‘urls’ when configuration is passed to Firefox
- Emission of the ‘negotiationneeded’ event when a data channel is created in Firefox
The main hope is that this will be easier to include in projects than previous attempts.
Distributed Computing so far
I gave a half-hour presentation on my research at the admitted students weekend earlier. I think I was able to convey some sense of the opportunities that Mudd offers for research, and presented a reasonable face of what it could look like. The talk was an explanation of the concepts behind distributed hash tables, and… Continue reading Distributed Computing so far
on p2p in the browser
The final project I want to accomplish this semester in my distributed computing independent study, is to come up with a way to access p2p capabilities from within the browser. I was originally hoping to do this with JavaScript API that relied behind the scenes on the new flash p2p protocol, rtmfp. The protocol has… Continue reading on p2p in the browser
Torrent Auditor
I have now migrated the python torrent client that I’ve been working on to a google code project. It lives at torrentauditor and now has basic support for actually downloading torrent files. I researched the bittorrent extension protocols this week, but was somewhat frustrated by what I found. Most of the interesting ones are implemented… Continue reading Torrent Auditor
Downloading Torrents
I extended the work from last week in order to actually get data from a swarm. The main change is that new sockets are now allocated for each connection, state is remembered, and the client can actually get so far as to download data from the other peers. What needs to happen still is that… Continue reading Downloading Torrents
Auditing Bit torrent
One of the strengths of bit torrent is that the primary data transfer protocol is entirely separate from the advertisement protocol. This also has created a strain both in discovering other users who have data, and keeping accurate reports of data that was transfered. The first issue is one that has been developed for extensively,… Continue reading Auditing Bit torrent
Talking to Kad
[python] # Standalone Mainline Kad Client # import socket import time import sys import getopt import random import benc import binascii import select client = "AZ"+str(0x05)+"31"; UDPSocket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM); targetID = "".join(chr(random.randrange(0, 256)) for i in xrange(20)); myID = "".join(chr(random.randrange(0, 256)) for i in xrange(20)); reqs = 0; knownHosts={}; knownPorts={}; def sendData(data,host,port): global UDPSocket,reqs; reqs… Continue reading Talking to Kad