构建像wireshark这样的东西需要什么水平的网络知识?我会采取什么途径来解决这个问题?我对网络不太了解,我认识的每个人都告诉我一些关于 CCNA 或 CISCO 的事情,参加这些课程是否可以让我构建诸如wireshark 之类的工具?如果不是,应该采取哪条路线自学到这个水平?
您至少可以将其分为以下几个主要主题:
如何从操作系统收集数据包 - 操作系统网络堆栈(有时还有驱动程序模型)提供的功能知识。
例如,Wireshark 依靠 libpcap 来完成繁重的工作,它本身需要了解 Linux、BSD 上的捕获方法,并带有自己的 Windows 内核驱动程序(即 WinPcap/Npcap)。
如何解释数据包的内容——了解在哪里可以找到有关各种网络协议的信息。
这主要涉及解码二进制数据,因为 Wireshark 实际上并不参与任何这些协议;最终解释权归用户所有。
如何以一种易于理解的方式呈现数据(以及程序的其他功能)——用户界面设计与编程或网络是一个完全不同的主题,但却是一个非常重要的主题。
(这可能会导致第 2 点的异常——例如,Wireshark确实理解 TCP 连接以提供各种便利功能,例如“关注流”)。
如何实现你设计的用户界面——通用编程;了解操作系统使用的 GUI 工具包(例如,Wireshark 最近从 GTK 迁移到 Qt)。
| 归档时间: |
|
| 查看次数: |
186 次 |
| 最近记录: |