《网络协议栈入门》-序言 - C语言音视频技术

/ 0评 / 0

本书 《网络协议栈入门》 采用的代码是 基于 linux 内核 4.4.4 版本的。linux 内核源码下载地址: mirrors.edge.kernel.org

经典网络协议栈的知识比较多,比较复杂,我们做应用开发经常接触的有 MAC 层,IP层,UDP层,TCP层。

但是,在互联网的整个数据通信过程中,不止有上面这4种协议。我们知道 IP 协议是在 MAC 层上面的,如下图所示:

上面的数据包可以通过 在这里下载,百度网盘, 提取码:30we

上面截图 中的 Internet Protocol 就是 IP 协议,前面的 Ethernet II 是在MAC 层,叫以太网协议。最后的 Internet Control Message Protocol 是 ICMP 协议。

虽然在 IP 协议是在 MAC 层上面的,但是 MAC 层 上面不止有 IP 协议。上图还有个 ARP 协议,ARP也是在 MAC 层上面的,还有 SPT (生成树)协议等等也是在 MAC 层上面,所以说 互联网通信中,网络协议是很多的。

《TCP/IP详解卷一》基本上把大多数网络协议都讲了一遍,但实际上,我们做应用开发,有些协议用的不是特别多。例如 SPT 协议,这是一个在 交换机跟路由器 上面使用的协议,主要是为了给交换机路由器使用的,SPT 的协议如下图:

SPT数据包下载,百度网盘, 提取码:efkv

只有做交换机路由器开发的程序员才需要对这个 SPT 的协议深入理解它的实现,对一些数据结构,算法进行优化。

这里我说明一下,严谨的书籍基本会把 路由器,交换机定义得比较那个,实际上这只是两个功能。现在的网络设备中,基本上交换机有的功能,路由器都有。

你可以这样理解 路由器与 交换机,路由器实现了更多的协议,所以路由器的功能比较多。交换机实现的协议比较少,只专注某几个协议,所以功耗小。

例如 路由器 实现了 DHCP 协议,交换机没有实现 DHCP,交换机如果实现了 DHCP,它就不叫交换机了。所以这些只是功能,通过实现协议,来做到某个功能。


由于本书主要是给 做应用开发的程序员看的,例如要理解 UDT,SRT,优化这些直播协议,就需要一些网络的知识。本书主要讲解这些比较常用的网络知识,不会像《TCP/IP详解》把大多数协议都讲解一遍。

《TCP/IP详解》卷一到卷三,一共2500页左右,是一套不可多得的教材,同样也适合做应用开发的程序员看。

我是在参加工作5年之后,2018年脱产花半年时间才把这《TCP/IP详解》3卷书看过一遍。


由于笔者的水平有限, 加之编写的同时还要参与开发工作,文中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果读者有任何宝贵意见,可以加我微信 Loken1。QQ:2338195090。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注