A guideline for students doing networking research

Organized by Yanchao Zhao @ SWIM

email: zhaozola@dislab.nju.edu.cn

1 Introduction

In this article, we provide the required resources and experience to guide the students who are working on networking research.

2 Basic requirements

The basic requirements of a graduate student are self-discipline, self-motivated and great ability of self-learning. Don't be so scared by those selfs. In fact, during every stage of our school life, those selfs are always emphasized by our teachers. Nevertheless, those selfs would play a much more significant role in our graduated life than any other stages, as what is in front of us is the tremendous knowledge which is still booming. We cannot live just by learning and doing research following our advisors. All those selfs together will provide you the foundation to achieve a successful graduate life. Besides these, the other requirement would be English; no more words would be needed to emphasize its significance in computer science research.

3 General research skills

Research, actually, is a set of skills that follow a regular paradigm. In particular, they are first becoming an active reader and listener, and then through effective reading and listening you would gain sets of problems and ideas, with the problem solving skills you would get rid of those problem thoroughly, and the finally requirement is to organized your solution reasonably in your paper. We would guild you with how to acquire these skills.

3.1 Where to find topics and papers

We would not find any topics if we don't read cutting-edge papers. As such, it is especially important for us to find valuable papers to read. Generally we utilize the library and internet resources to retrieve what we desire.

3.2 How to read papers

When find interesting papers, you should try your best to make clear of following questions:

For further reading skills, you could refer to: Efficient Reading of Papers in Science and technology. And the material Finding a topic and beginning Research could help you how to utilize the information in papers and lectures to forge your ideas.

3.3 How to write papers

Considerable guideline is provided: How to write a great research paper, Donald Knuth's Mathematical writing, How and How Not to Write a Good Systems Paper and what need to add is writing of paper is a skill that require iteratively writing and reading for tens of periods, it is especially true for people whose English foundation is not solid enough.

In addition, we are also tend to provide some problem-solving related resources£¬although problem-solving is the thing we are familiar with since primary school. Since, the most of the problem we confront with is much more complex than we have met and require quit formal solving process that we may not experienced. The following materials maybe help: Polya's How to solve it and How to get a solution from Dahua Lin's blog.

What worth to mention that the popular writing tools in scientific field is the Latex rather than MS Word. Compared to MS Word, Latex is not a "what you see is what you get" style of editor. It is rather like a programming tool that even requires a compiler. A famous guideline write by Donald Knuth, also the inventor of Latex, is The TEXBook.

3.4 How to do presentation

Presentation is an oral formation of your works. Thus, the core spiritual is as same as the writing of papers -- clearly present your problem and the background of this problem, the existing solutions, what's your solution's advantage and so on.

The general paradigm of how to do presentation is as follows: How to give a good research talk.

3.5 Other Research-related resources

4 Requirement of Networking Research

In this section, we are prone to provide some materials that would help you enhance the ability in networking research. Although most of these fundamental was supposed to study through lectures, the courses provided by our department may not thoroughly meet our needs. As such, we could resort to MIT Open course to get a systematic study of corresponding subjects.

4.1 Networking fundamental

The corresponding web page of MIT open course subject on computer networking is here.

We recommend the book: "Computer Networking: A Top-Down Approach Featuring the Internet" written by Kurose, J., and K. Ross, as the fundamental textbook for introduction of the networking. For further study in wireless networking, we recommend David Tse's Fundamental of Wireless Communication and Xiang-Yang Li's Wireless Ad Hoc and Sensor Networks Theory and Applications. The fundamental papers list is here, covering the most state-of-the-art areas in wireless networking research.

4.2 Mathematical Background

One of the most important causes for your research is Probability and stochastic process. The following books are strongly recommended: "A First Course in Probability" and "Introduction to Probability Models" written by Sheldon M. Ross, "Probability and Computing, Randomized Algorithms and Probabilistic Analysis" written by Michael Mitzenmacher. Other required math background include: Discrete Mathematics, Combination Optimization, Convex Optimization, Random Graphs, and Game theory.

4.3 Algorithm Design and Analysis

According to ACM curriculum on algorithm, beside the basic algorithm and basic data structure, we should also acquire advanced algorithm knowledge, like LP, network flow, intractability of algorithm and the analysis skills like competitive analysis. The corresponding web page of MIT open course subject on advanced algorithm is here. The recommending textbook is: For general algorithms: the classic algorithm text: Introduction to algorithms and the newly brief algorithm textbook Algorithms. For specific algorithm area: the book Computers and Intractability: A Guide to the Theory of Np-Completeness and also the book: Online Computation and Competitive Analysis.

4.4 Programming

Programming skills are required when we want to verify our works by either simulations or implementations in real world. For simulation we usually use Java or C for writing upper-layer simulations while for lower layer algorithm or protocol NS-2 is essential. A tutorial on NS-2 could be found here.

In terms of implementation, it would be much more difficult than simulation. For implementing a network protocol, dozens of tools is presented. Usually, in this stage, be familiar with click is preferred. Fundamentally, C programming language, especially the networking programming section, is dominating in our everyday implementing and simulation activities.

5 Curtain

This set of materials is not perfect. Any problem or supplement would be extremely welcome. Finally, hope this would be helpful for you.



Yanchao Zhao @ SWIM 2009-09-26