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.
在我去学习之前,我已经了解了我的导师C所关注的领域以及我的项目,在一个VPN中实现了一个NAT。因此,我读了一些论文做一些准备。在我的项目开始时,导师C教了我很多关于基础的知识。然而,我仍然无法理解NAT实现的含义。提起这件事,真是太遗憾了。项目和理解NAT和VPN之间的相互关系,我至少花了十二天时间。真正理解这个过程是开始对我来说太难了,我不得不说,即使我确实知道通过互联网传输数据包的基本程序,我还是不能决定。我应该从哪里开始,我该怎么做?。虽然这段时间对我来说绝对是最糟糕的,但在导师C的帮助下,我终于克服了这个问题,开始了我的编程。
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.
在接下来的十天里,我大体上完成了我的程序框架。我最初的计划是获取公共IP地址并提取来自数据包的信息。因此,我必须计算协议的确切位置、源地址和其他东西。在这进程,我必须调用一个函数来找出IP头的类型。然后根据情况建立NAT地图。
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.
在过去的十天里,我开始编译我的程序。显然,我有很多错误要解决。首先,返回值的类型不适合。其次,改变类型的方法。在这个过程中,我的导师建议我建立一个NAT的结构并把它放进去。所有的功能结构的实现部分。的确,在我把它们放在一个结构之后,整个程序看起来更清晰了。但最糟糕的是,当我想将数据类型更改为IP地址类型时,如何直接修改源数据呢?我不得不承认这是我自己的问题,我仍然不熟悉生锈。因此,在修复了一个调试之后,总是会出现更多烦恼的问题。而且,当我终于解决了所有的问题,我仍然不能使用转换功能,它是一个不安全的函数。在阅读了一些文件并询问我的导师之后,我完美地解决了这个问题,完成了整个项目。
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.
这一个月教会了我很多知识,帮助我对美国的研究情况有了更清晰的认识。我的导师C给了我有效的指导,并在我的编程中帮了我很多忙。这里的图书馆太迷人了。许多书和设施都非常友好。就我个人而言,我认为美国大学可以给学生提供更多的东西。解放创新环境,这对我们是有帮助的。除了学术上的学习,我在这里的生活很舒适。这个这里的人通常对外国人很好。我永远不会忘记这次经历。
点击收起