《TCP/IP详解 卷2》 笔记: 简介

    《TCP/IP详解 卷2》讲述的是4.4BSD-Lite(1994年发布的一个BSD操作系统的发行版)的TCP/IP协议栈源代码,之后许多Unix和非Unix(包括Linux)操作系统的网络协议栈的实现都参考了它。

    这本书将近900页,讲述了约15000行的代码。这是我第二次阅读如此大篇幅的源代码讲解的书,前前后后,断断续续地花了几个月的时间。我并不是所有的内容都阅读过了,我只关注我感兴趣的内容,所以我阅读了本书约70%的内容。IP选项的处理、IP的分片与重组、IP多播、IGMP协议等章节都被我忽略了。这本书,我主要关注路由的实现和基本的TCP/IP协议栈(主要是IP协议和TCP协议)的实现。读完后,终于对一个完整的TCP/IP协议栈的实现有了大致的了解。我奉劝那些想学习TCP/IP协议的朋友,《TCP/IP详解 卷1》是必看的经典书籍,但是卷2就得看个人能力量力而行了。除非你有几年C语言编程经验和想了解TCP/IP的实现的强烈欲望以及准备好阅读大量源代码的决心,否则别买这本书了。到时候这本书的结果可能就是:甩卖了、送人了、垫显示器了、找不到了。。。买实体书之前,先看看电子版,电子版看得下去再买实体书也不迟。

    新的一年了,准备再把卷2的笔记补充完,算是对自己学习这本书的总结。本书包含的内容太庞杂了,几篇笔记肯定说不清楚,我也没有那么多时间。所以我会介绍网络编程一些常见的系统调用的实现:socket、bind、listen、accept、connect、read、write、shutdown、close。对网络编程感兴趣的同学肯定和我一样对这些系统调用的实现感到好奇吧?这些系统调用的实现都是和协议相关,所以我也会详细介绍TCP协议的实现。

    毫无疑问,笔记的内容会包含大篇幅的源代码。在介绍一个系统调用时,我会列出相关的关键数据结构定义,关键的全局变量,以及关键的函数。对于数据结构的定义,注释都是很直白的英文,如果有必要,我会介绍其中一些重点成员。对于关键的函数,我尽量参考书中加上详细的中文注释。但是,我可能会删掉一些不会影响基本流程的代码片段。这种情况下我都会提前作出说明。

    好了,说了这么多,让我们开始吧!

你可能感兴趣的:(TCPIP详解,卷2)