1.1 Overview
Since computers were developed in 1940s, there were often related new technologies being invented. As time passed, many service models are also developed to provide users more selections of services, for examples, World Wide Web (WWW), File Transfer Protocol (FTP), E-Mail, Voice over IP (VoIP), etc. Those network services allow users do various activities, including communications with others.
In the past decade, another network service model, called Peer-to-Peer Network (P2P network for short), is created. It is proposed to act contrarily to the traditional way and connects with each other for sharing resource or contents. In traditional network service architecture, stations act as either a client or a server, but not both. While in P2P network, stations act as both a client and a server. The traditional Client-Server network service architecture faces some problems such as Server is limited in resources owned by itself, e.g.
CPU performance, hard disk storage capacity, network bandwidth, etc, and need to pay additional attentions on the management of a server. Also, machine that play the role of server may attract hacker to attack, finally, it is not easy to invite extra machines to play the role of server for a specific service immediately.
Nowadays, personal computer runs much faster and technologies not only make hard disk storage much larger, but also allow Ethernet bandwidth to reach 1Gbps or even 10 Gbps.
A client already has sufficient ability to act as a server. In the meantime, P2P network grows.
P2P network using Client-Client architecture solves problems resulted from traditional architecture. It can share resources owned by itself, share CPU computing power, hard disk storage, and files. And it is also easy to join an existing P2P network as well as to exit from
the network.
P2P network has plenty of advantages to draw people to jump in, e.g. users can share their files with others, find files which they don’t have from others, and exchange files like they meet with each other. Based on various attractive properties of P2P network, many PC users start to use P2P network to find what they want and feedback to other users. As a result of this situation, P2P network brings other problems.
Problem resulted from P2P network can be categorized into three types. First, P2P network traffic consumes most of bandwidth of the intranet. To an enterprise, it may want to ensure good performance for some critical application; while to an ISP corporation, it may be charged by other upstream ISPs due to P2P traffic. Second, files spread between users in P2P network may violate copyright easily; files broadcasted in P2P network can be any kind of contents which came from different sources. Due to the architecture of P2P network, there is no log to verify who provides the files so that illegal copies of files may be spread everywhere easily, for example, an un-authorized movie. Third, secret documents of corporations or governments may be easily blabbed out without permission because it is unable to record flows in P2P network.
1.2 Motivation and Purpose
With the growing population of P2P networks, the P2P network traffic can occupy up to 90% bandwidth of corporations, schools, and ISP ADSL backbone for home use. Under limited network bandwidth, network manager need to assure that certain service’s quality can be guaranteed. Network manager does not like to see that most of network bandwidth is occupied by P2P network, which causes them a headache. And for a school network manager, he/she concerns whether flows include illegal or un-authorized contents inside in addition to
large P2P flow rate, because downloading such contents will be law suited by copyright held organization. In the same manner, for a corporation network manager, he even concerns whether the business secret is revealed to someone else.
So P2P network traffic does affect existing network systems and brings network managers of corporations or school a troublesome. In addition, few business applications must rely on P2P network, so it is necessary to detect and filter P2P network traffic under certain conditions.
To solve problems caused by P2P network traffic, in this thesis, we propose a system that can recognize and filter P2P network traffic packets efficiently. We expect that it can inspect Internet traffic to find P2P traffic and then filter it out without slow down the traffic flow rate. We also expect that our system will not affect users when they use the network so that users will not be aware the existence of a filter that inspects the traffic.
Owing to the requirement of transparency, we need a high performance inspection algorithm and a machine with sufficient computing power. So we choose to use pipeline technique and realize our algorithm using a network processor. A network processor is dedicated to process related network traffic, the whole hardware design is devoted to processing packets flowing in the Internet. So using network processor is a better choice to deal with packet processing than using a general purpose personal computer.
At present, there are some products related to P2P traffic reorganization and filtering.
But they are quite expensive and hard to be configured by network manager. So if we can take advantage of network processor to achieve same performance then we can achieve a cost-effective design.
In the rest part of this thesis we will introduce the algorithm we used, regarding how and why network processor does better than a regular personal computer with a fast NIC (Network Interface Card), so that we choose it to put our system on.
1.3 Organization of the Thesis
The rest of this thesis is organized as follows. In chapter 2, we will introduce related works and describe both their advantages and disadvantages. In chapter 3, we will describe the whole scenario about our system and discuss the algorithm and hardware architecture in depth. In chapter 4, we will present the implementation of our system. In chapter 5, we will present simulation result. Finally we will give some conclusion and point out some future work in chapter 6.