我学网络分析的原因

    我毕业设计的题目是LINUX下的HTTP/FTP多线程下载。这方面的资料比较少。纵然有源代码,也是一时不能接受的,因为没有HTTP,FTP协议知识。
    那时我对HTTP的理解,仅限于GET,POST等;对FTP,只知道console下的ftp client的内部命令。百无头绪的我,疯狂地在网上找资料。(呵呵,netexpert.cn也是那个时候找到的。)还买了一本外文翻译的介绍TCP/IP协议簇的书,书名好像就是《TCP/IP协议簇》。
    在作了大量的资料摘录后,我对HTTP和FTP协议有了一个大致的了解。但在下载时,命令的组合和顺序我一直不明了。我查看了NetTransport下载HTTP文件和FTP文件的日志,从中知道了许多,如:断点续传的方法,多线程的方法,还有下面说到的最重要的命令格式。
    这个时候,我在NetExpert上逛得也长了,看到各位对网络状况的分析,突生想法:抓包看看NetExpert的传输。我第一次用的协议分析软件是sniffer,难以上手。又用过坛子里说的EtherPeek,也不是很适应。最后,选择了用Ethereal,很喜欢,简洁。
    多次对NetTransport的传输进行抓包,让我对TCP/IP三次握手等原来很抽象的概念第一次有了深入认识。书上画的图,也理解了。同时,也知道了命令的格式。(格式部分还参照了NetTransport日志)
    进入编程阶段,一开始总有这样那样的错误,有些并不是语法错误,用DEBUG并不能排除。这个时候,我就是用Ethereal,分析自己的包,对比正确的下载过程,进行纠正。

    通过自己的毕业设计,我学到了很多,有很深的一点感触就是:学网络,学协议,配合网络分析可以事半功倍!

你可能感兴趣的:(网络,多线程,linux,编程)