My research report in UCB
Honestly speaking, the research experience was so good that I really wanted to stay in UCB for more time. This month is memorable and valuable that I learned a lot not only about the academic learning but also concerning the local culture. And this experience more or less enforced my determination to continue my academic study in America in the future.
Talking about my research, I’d like to divide it into three period, each period brought me different thinking.
Before I went to the UCB, I had already known the field which my mentor, C is focusing on as well as my project, implement a NAT in a VPN. Therefore, I read some papers to do some preparation. At the beginning of my project, mentor C taught me a lot about the basic knowledge, however, I still couldn’t understand the meaning of the NAT implementation. It was a shame to mention that to start my project and comprehend the interrelationship between NAT and VPN, I spent at least twelve days. And to truly understood this process was so hard for me at first, I have to say that even I did know the basic routine of the packet transmitting via the Internet, I still could not decide where should I start and how should I do. Although this period was absolutely the worst for me, with the help of mentor C, I finally overcame the problem and started my programming.
In the following ten days, I generally complete my program framework. My initial plan was to get the public ip address and extract the information from the data packet. So I have to calculate the exact position of the protocol, source address and something else. After this process, I have to call a function to find out the type of ip header. Then establishing the NAT map according to the situation.
At first, I did not know how to record every ip address in a diagram. My mentor gave me some advice that maybe I could try to use the hash map. Moreover, the rust language has already contained the hash map. Then, I spent a couple of days to learn how to use hash map function in rust, read some documents and try some easy program. After I was quite familiar with its usage, consequently I accomplished my first version of NAT. However, after my first attempt, I found that my program was so repeatedly and I have to put all the functions together. So I continued to modify and improved my whole frame. And it was really interesting that I merely changed my program everyday.
起初，我不知道如何在图表中记录每个IP地址。我的导师给了我一些建议，也许我可以试着使用。此外，rust language已经包含了hash map。然后，我花了几天时间学习如何使用hash map。阅读一些文档，尝试一些简单的程序。在我对它的用法相当熟悉之后，我就完成了。我的第一个版本的NAT。然而，在我第一次尝试之后，我发现我的程序太重复了，我不得不把所有的函数都放进去。在一起。所以我继续修改和改进我的整个框架。真有趣，我只是改变了我的程序。
In the last ten days, I started to compile my program. Obviously I had a lot of faults to fix. Firstly, the type of return value didn’t fit. Secondly, the method to change the type. During this process, my mentor suggested me that I could establish a structure for NAT and put all the functions into the impl part of the structure. It is true that after I put them into one structure, the whole program looked more clear. But the worst thing is, when I wanted to change the type of data to the type of IP address, how could I directly modify the source data? I had to admit that it was my own problem that I still did not get familiar with rust. So after I fixed one debug, there could always appear more problems which were so bothered. Also, when I finally solved all the problems, I still could not use the transmute function, it was an unsafe function. After reading some documents and asking my mentor, I solved it perfectly and finished my whole project.
The process was not easy, and every time when I fix my debug, I felt so frustrated and a little bit collapsed. But I never give up. Meanwhile, I also noticed the American students’ attitudes toward science research. In China, the teacher would show you how to do but seldom tell you why. What’s more, nowadays, China’s researchers always pursue the creativity rather than preciseness. In fact, the most significant thing we should do today is to develop a scientific spirit. First of all, at least let each one engaged in scientific research, understand the essence of science, understand that science not only is the invention of novelty, but also put forward a new theory. It must has a serious attitude, rigorous logic, the correct method of thinking. And what the researchers should do are to put forward the question, doubt the existing theory and do practical researches. This is not only an idea, but also needs to be fulfilled in practice, otherwise it is only an empty sentence. The National Natural Science Foundation should not only encourage the research innovation, it should also encourage those rigorous design, let the people gradually realize the true meaning of scientific research, understand the spirit of science.
This one month taught me so much knowledge and helped me have a more clear understanding of the research circumstance in America. My mentor C gave me efficient guidance and helped me a lot in my programming. And the libraries here are so glamorous that there are so many books and the facilities are very friendly. Personally speaking, I think the American universities could provide students with a more liberate and innovative environment which is definitely helpful for us. Except for academic study, my life here was very comfortable. The people here are generally very kind to foreigners. I will never forget this experience.