现在的位置: 首页 > 综合 > 正文

WatTCP

2013年08月12日 ⁄ 综合 ⁄ 共 955字 ⁄ 字号 评论关闭
 一、什么是WatTCP
    应该说很多人都没有听说的WatTCP。因为它是太古老了──dos时代的东西。简单的说,它是dos底下使用的一个网络库。它实现了UDP和TCP协议。UDP和TCP是TCP/IP协议族中最主要的协议。也就是说,用它我们就可以写dos下的网络通信程序了。

二、WatTCP都是可以干什么
    WatTCP是一个网络编程库,使用它可以实现网络通信。比如我们可以使用它写局域网内传输文件的协议。我们知道FTP协议就是基于TCP协议的,所以我们就可以使用WatTCP写一个DOS下的FTP程序(不过,WatTCP并没有实现FTP协议)。一个比较有名的程序Ghost,它在dos下使用的就是WatTCP。是不是,可以使用它写个DOS下的QQ呢?当然,可以。但是,有什么意义呢?

三、为什么分析WatTCP?
    其实就一个主要原因──简单。WatTCP仅仅实现了TCP/IP协议的两个核心协议,所以代码相对简短一些。如果分析linux的网络实现,实非我辈所能为之。还有一个原因就是我以前分析过WatTCP。为它添加过组播协议的实现。

四、如何分析
    我不想再从数据结构分析了。这样做太枯燥。我都代码都是从一个个的函数名开始,最后才是数据结构。不过,很多“大家”都推荐从数据结构开始。因为“程序=算法+数据”,其中数据结构就是算法和数据的结合。但是,数据结构实在太过枯燥,我们可以通过数据结构看到程序的数据组成,但是难以把握数据的流向,更加难以琢磨的是数据的处理方法。索性,我仿照《linux内核源码情景分析》的做法,也来一次情景分析。
    不过,我们的情景是比较少的。主要的情景有以下两个:
    1、数据流从网络上发过来,到达我们机器的网卡,如何一步一步地传输到我们的程序里面的呢?
    2、我们要发送的数据,是如何从程序里面一步一步地发送出去的呢?
    
    当然,我们不能仅仅解释这两个小问题。因为WatTCP协议还干了很多很多其他的事情。这些事情看似并不重要,但是,却关系这我们的数据能不能从本机的网卡传输到远端的网卡。这个就是TCP/IP协议里面所要求的了。虽然我们并不需要,但是,没有了这些工作,数据也就无法传输过去。就好比和平时期我们看上去并不需要军队,都遵守交通次序时不需要交警一样。

抱歉!评论已关闭.