Protocol Engineering and Application Research Laboratory (PEARL)

Goals

In Protocol Engineering and Application Research Laboratory (PEARL), we study the network protocols which are the important interfaces to glue components in large systems. With well-designed protocols, systems can operate smoothly, problems can be diagonized independently, and new services can be created easily. Although protocol design still seems an art to many people, we hope that through disciplined training, students can acquire the knowledge and experience in protocol engineering, which would make them outstanding in future competition.

For prospective students

Our laboratory applies protocol engineering to develop innovative applications. Recently we focus on delivering IP Telephony with WebRTC, and applying SDN to mitigate Distributed Denial-of-Service (DDoS). For students who would like to know more about these topics, you are encouraged to read the following articles:
  1. Rashik Shadman, Ahmed Anu Wahab, Michael Manno, Matthew Lukaszewski, Daqing Hou, and Faraz Hussain, "Keystroke Dynamics: Concepts, Techniques, and Applications," ACM Computing Survey, April 2025. https://doi.org/10.1145/3733103
  2. Stuart Fox, "FBI: Russian Spies Hide Codes in Online Photos", MSNBC.com , 08 Sept. 2011.
  3. Sidi Wu et al., "StegoGAN: Leveraging Steganography for Non-Bijective Image-to-Image Translation," 2024 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Seattle, USA, 2024, pp.7922-7931, doi: 10.1109/CVPR52733.2024.00757.
  4. Maliheh Shirvanian and Nitesh Saxena, "On the Security and Usability of Crypto Phones", ACSAC 2015: Proceedings of the 31st Annual Computer Security Applications Conference, December 2015, pp. 21–30.
  5. Robert Durst, Terrence Champion, Brian Witten, Eric Miller and Luigi Spagnuolo, "Testing and evaluating computer intrusion detection systems", Communications of the ACM, Volume 42, Issue 7, July 1999, pp. 53–61.
  6. Samuel Greengard, "The new face of war", Communications of the ACM, Volume 53, Issue 12, December 2010, pp. 20–22.
  7. Luis López et al., "Kurento: The WebRTC Modular Media Server", Proceedings of the 2016 ACM on Multimedia Conference, September 2016.
  8. Carol Davids, Gaston Ormazabal, and Radu State, "Real-time communications: topics for research and methods of collaboration", ACM SIGCOMM Computer Communication Review: Volume 44 Issue 3, July 2014.
  9. J. Lubacz, W. Mazurczyk, and K. Szczypiorski, "Vice over IP", IEEE Spectrum, Vol. 47, No.2, pp.42-47, 2010. doi:10.1109/MSPEC.2010.5397787
  10. LILY HAY NEWMAN, "Mysterious 'MuslimCrypt' App Helps Jihadists Send Covert Messages", WIRED, Mar. 29, 2019.
  11. Ahmed Ibrahim, "Steganalysis in Computer Forensics", 5th Australian Digital Forensics Conference, Edith Cowan University, Perth Western Australia, December 3rd, 2007.
  12. Steven J. Vaughan-Nichols, "The next-generation Internet protocol IPv6 gets real", ZDNet, February 12, 2014.
  13. R. Jain, S. Paul, "Network virtualization and software defined networking for cloud computing: a survey", IEEE Communications Magazine, Vol. 51, No. 11, pp.24-31, 2013.
  14. "A Purpose-Built Global Network: Google's Move to SDN", Communications of the ACM, March 2016, Vol. 59 No. 3, Pages 46-54. DOI:10.1145/2814326

Reading

Many students feel puzzled about how to choose the "right" laboratory to join. This is a common question for many undergraduate students. In undergraduate courses like Data Structures, Algorithms, Linear Algebra, and Logic Design, we only learned fundamental knowledge for "future researches". Therefore, if your past study only concentrated on textbooks, naturally it would be difficult for you to determine what topic you would like to further explore.

A good way to help you learning the recent development about computer science and get you familiar with new research topics is to read magazines. You may think of PC Magazine which provides rich contents about new products and technology news. Well, although PC Magazine provides many useful information and can get you acquainted with many terminologies, for students in computer science I would like to recommend the Communications of the ACM (CACM). I started reading articles in this magazine when I was a junior. It is very informative and can let you see what other students and scholars are doing in computer science.

In case you felt the articles in CACM is a little lengthy for you, you may start from ACM TechNews. The length of each article is about 200 words, which should be easy for you to read an article everyday. My suggestion is that you should start reading a technical article in each week to broaden you knowledge in computer science. After a semester, it should be easy for you to read articles on CACM. Before you finish your capstone project, you should have read 50 technical papers.

Video

There are some interesting video clips which can motivate yourselves to think about what you want to do and what skills you want to learn when you join a laboratory. These are my recommendation:
  1. Randy Pausch Last Lecture: Achieving Your Childhood Dreams (Chinese subtitle)
  2. Steve Jobs' 2005 Stanford Commencement Address: Three Stories

Disciplines

This laboratory is renowned for disciplined working atmosphere. We believe that well discplined working style can lead to high efficiency. You may ask senior members to know what that means.

Preparation before we talk

  1. Come with your partner to discuss what topics you want to work on. Make an appointment in advance.
  2. Mail me your transcript. Tell me one or two courses which you found to be most interesting in your undergraduate study. Identify one or two tasks which you are good at, and interested with.
  3. What do you expect from the training in this laboratory? Tell me how you expect yourself to be different after one year, three years, or five years. Or even better, tell me your childhood dream.
  4. Decisions will be made quickly in two weeks.

Sample Letter for Making an Appointment

[Student 1]:

At present, there are few professional courses that I have learned (most of the elective courses in our department are open to junior and higher courses). The programming languages I have learned are only C and C++. I am not good at Python, but I plan to learn deeply about it by myself during this summer vacation. For the undergraduate project, I am interested in the field of Internet Communications Protocol and SDN. I hope to learn more about the professional knowledge of these fields in the next year. In the future, after finishing the institute, I plan to get a master's degree in Taiwan before entering the workplace.

After your guidance this year, I learned a lot about the way and the attitude of doing things(also the tips of dealing with people). I sincerely hope that you could be my advisor for the project when I am a junior. I believe that I will make greater progress in the future, which will be of great help to enter society.

[Student 2]:

I developed a passion for networking in courses, Python Programming & PyTroy. Last semester, I was amazed by networking when you explained how strong IPv6 is by "IPv6 can provide 3.4x(10^38) IP addresses, in short, it can do as 42.9 billion IPv4 addresses in 42.9 billion universes with 42.9 billion galaxies, and there are 42.9 billion planets in every single galaxy!". This semester, moreover, after researching other lab topics, I found I am personally extremely interested in SDN(NFV). I hope to do deep research with it and let it be my capstone during the seminar. If possible, I would love to start working on it in your lab this summer.

Furthermore, by extensive research experience in your lab, I expected to learn the core of well-preparation and divide-and-conquer. For the future, I would like to apply an aboard university to broaden my horizon and bring new things back to Taiwan.

Would you be available to meet at 14:00 next Tuesday (break between Possibility and Tech News)? Besides, our transcripts are attached below. We are looking forward to hearing from you!