Understanding the Bittorrent Protocol - networking

I am looking for some books, tutorial sites .
I want to understand how Bittorrent protocol works and later to implement my own tracker .
I don't have a big knowledge in network protocols so I am looking for a newbie stuff .
Have seen following posts but they didn't helped me with my issue :
A BitTorrent client completely written in C#?
Implementing Bittorrent Protocol
Looking for some good books/resources on understanding Bittorrent?
Thanks for help .

The BitTorrent specification is quite easy reading (relatively speaking):
http://www.bittorrent.org/beps/bep_0003.html
The wikipedia page is also surprisingly comprehensive:
http://en.wikipedia.org/wiki/BitTorrent_%28protocol%29

BitTornado has a tracker implementation and it's written in Python, which is easy to read. It's nice to start from something working and then you can try to understand the code based on the protocol. BitTornado is based on original version that Bram Cohen implemented. Tracker is implemented in BitTornado.BT1.track.py

There's a bunch of videos on utube, including:
Stanford Seminar - Bram Cohen

Related

Learning resources for developing custom TinkerPop Vertex Programs

I have read the TinkerPop official docs and provided tutorials on their website. I am looking for further learning resources on developing custom Vertex Programs that cover the fundamentals and anatomy of such programs. Thank you.
There aren't many resources on this topic. Generally speaking you should be comfortable in your understanding of BSP, which is the general processing model that GraphComputer is built on and you should look at the code for the various VertexProgram implementations that already exist in TinkerPop. Finally, I wrote a tutorial on this topic which might be helpful which was inspired by this StackOverflow question.

Is possible to connect to Kafka with Robotframework

I want to connect and test Kafka.
Is it possible to test using RobotFramework.
Any exist library for this.
Thanks
Sarada
I realize this post is 5 years old, but the answer (at least now) is yes!
Repository
Keyword documentation
Sorry I don't have enough experience to provide any tutoring on it (I'm a newb with Kafka), but at least it exists.
Yes, it is possible to interact with and thus test kafka with RobotFramework. Highly unlikely there exists a library for it however, based on a brief web search.
See my earlier response to this old thread that gives a detailed discussion of what you're asking about and how to go about solving it, minus the actual implementation (which is a significant amount of work, hence no one has written and shared such a library yet).
https://groups.google.com/forum/#!topic/robotframework-users/gnfR12xAU4U

Integrating Flex Publisher Licensing into an application

A friend of mine asked me to take a look at using Flex Licensing to protect the distribution of her software. I've spent a bit of time going through the flexera website to see what information I could glean, but I find nothing that tells me how one actually connects their software to the licensing system. Is it an API that allows me to build the functionality into an application? Is it something else? I decided to not put too much time into getting frustrated before asking here if anyone had any experience with this or similar licensing systems.
Regards and thanks!
To answer your question, yes, there is an API.
You can request a trial of their FlexNet Publisher Software to see if it is something you would like to work with. However, I would recommend you contact them to see if their pricing model would fit into your friend's development budget.

Squid Programming

Does anybody know a good tutorial about Squid plug-in development?
There is one in the squid documentation. IIRC it's fairly straightforward - squid forks a process and passes data down a pipe to the process. A somewhat out-of-date but still relevant programmer's guide can be found Here.
Squid is nowadays a pretty modular and extensible platform, so it really depends on what you need to do. Most information can be found in the squid wiki (http://wiki.squid-cache.org)
There is the "helper" family of coprocesses-based extensions (http://wiki.squid-cache.org/Features/AddonHelpers)
redirector helpers (http://wiki.squid-cache.org/Features/Redirectors)
authentication helpers for Basic/NTLM/Digest/Negotiate/Kerberos etc
authorization helpers for LDAP/Active Directory/Session/...
In case you are interested in content modification there is ICAP for out-of-process adaptation and eCAP for in-process adaptation.
I'm sorry I can't post direct links; you'll find the data you need by looking for the relevant keywords in the squid wiki.
You might also find the Add-On Helpers for Request Manipulation topic useful.
You can visit http://www.squid-cache.org/Versions/v3/3.4/cfgman/ to understand the squid completely...
I think the latest version 3.5 has arrived but this webpage can be a solution to your current problem.

Why is Peer-to-Peer programming a hard topic to obtain good research for?

After reading a bit more about how Gnutella and other P2P networks function, I wanted to start my own peer-to-peer system. I went in thinking that I would find plenty of tutorials and language-agnostic guidelines which could be applied, however I was met with a vague simplistic overview.
I could only find very small, precise P2P code which didn't do much more than use client/server architecture on all users, which wasn't really what I was looking for. I wanted something like Gnutella, but there doesn't seem to be any articles out in the open for joining the network.
RFC 4981, with its huge bibliography, could be a very good starting point.
I had to write a basic Gnutella client in C# using Web Services and I think the class notes on the P2P stuff are still available here and here.
You might have better success researching Bittorrent, I believe that the creator has written some papers, and it seems others are as well.
BitTyrant
Bittorent.org, see the developers section
I don't know what platform you are trying to use, but here is a decent article on the subject for .NET.
I've found the TheoryOrg Unofficial BitTorrent Specification to be the best online source for Bittorrent information. Also, the Monotorrent code is fairly simple and easy to understand. There's also a project called "GCT" which implements JGroups style P2P for LAN/Multicast environments, and its code is similarly easy to understand (if a bit buggy).
You can try to read Gnutella2 and try to implement messaging. For reading conceptual material you can read Distributed Systems by Andrew Tannenbaum.
You can have a look at JXTA. It's intention was to be a generic, platform agnostic p2p framework, in contrast to other p2p implementations which are usually for a very specific purpose (such as Gnutella).
Don't be fooled by it's Java appearance, there are binding available for C/C++/C#, but the core protocols are implemented in XML which should translate to any language.
You can also download a free book here.

Resources