`

学习网络之必修必看

阅读更多
TCP/IP协议是当前广域网和局域网通用的网络协议,因此,基于TCP/IP的编程就格外重要。从应用上来说,现在直接利用C层次Socket API进行TCP/IP编程的人确实越来越少了,各种现成的框架(如ACE、Java、.NET FCL)和控件(如IP*Works)大大简化了TCP/IP编程的难度。但是,如果想要在这个领域达到融会贯通的地步,不打下坚实的基础是不可想象的。 正如Richard Stevens在TCP/IP Illustrated中所说,在网络编程领域,开发者所遇到的实际问题中,大约有90%都与开发者对于TCP/IP的理解相关。高层的框架和控件总结了 TCP/IP的主要使用模式,并且进行了抽象和封装,这固然非常好,但是想要真正掌握TCP/IP网络编程的真谛,恐怕需要认真学习下面几本著作。

1.Richard Stevens,TCP/IP Illustrated, Vol.1 / Vol.2 / Vol.3
《 TCP/IP详解(第一卷)协议 》《 TCP/IP详解 卷2:实现 》《 TCP/IP详解卷3:TCP事务协议、HTTP、NNTP和UNIX域协议 》
《 TCP/IP详解卷1:协议(英文版) 》《 TCP/IP详解卷2:实现(英文版)》《 TCP/IP详解卷3:TCP事务协议、HTTP、NNTP和UNIX域协议(英文版)》

  这是一本众望所归的书。自从1994年出版以来,TCP/IP Illustrated就一直是TCP/IP领域具有传奇色彩的圣经级著作。这一套著作共分为三卷,第一卷通过实际动手实验的方式深入探讨TCP/IP协 议,第二卷逐行解释了4.4BSD系统TCP/IP协议栈的15,000行实现代码,第三卷探讨了T/TCP和HTTP等高级协议。整套书最大的特点就是 贴近实战,完全符合程序员的胃口,不空谈,不说教,用实验和代码来说明问题。写作这样的书,对于作者要求非常之高,即使在今天看来,敢于这么写作的作者也 是凤毛麟角。Richard Stevens以他的写作风格和作品,在TCP/IP编程领域竖立起一座丰碑,令其他作者高山仰止,心向往之。在下文将要提到的Effective TCP/IP Programming一书中,甚至把“读Stevens的书”专门列为一个条款。这套著作的地位,可见一斑。

  学习这套书,与其说需要读,不如说需要做。Stevens最强调程序员的两项能力,一是读代码,二是动手实验。他在自己所有的书里都敦促读者将 范例输入电脑,亲自编译、运行和调试。这当然需要花费大量的时间和精力,但是如果有读者能够扎扎实实地这么做,那么他所付出的每一分钟都将会有双倍的回 报。

2.Richard Stevens, UNIX Network Programming, 2/e, Vol.1 / Vol.2
《 UNIX网络编程卷2:进程间通信(影印版·第2版) 》《 UNIX网络编程(第2版)第1卷:套接口API和X/Open传输接口API 》

  又是Richard Stevens,又是经典名著。这本书的第一版问世于1990年,是Stevens的开山之作,一举奠定了Stevens在网络编程领域的重要地位。如果 说TCP/IP Illustrated解答了“什么是TCP/IP”和“TCP/IP是怎么实现的”两个问题,那么这本书则是在回答“怎样运用TCP/IP开发网络应用 程序”的问题。显而易见,这本书的内容更加贴近普通程序员,因此,大多数人是先学习UNP,然后再深入学习TCP/IP Illustrated。

  这也是一本让人伤感的书,Richard Stevens从1997年开始撰写此书第二版,制定了一个宏大的计划,卷1阐述Socket API和TLI API,卷2阐述除Socket之外的其他IPC机制,卷3阐述网络编程应用。应该说,卷1和卷2都是为了给卷3打基础。然而天妒英才,就在世人翘首企盼 第三卷的时候,1999年9月1日,Richard Stevens英年早逝。留下这套未完成的巨著,让人感慨不已。不过最近从Prentice Hall传来好消息,出版社已经找到合适的作者,重新修订这套经典巨著,其中第一卷即将问世,并且已经在Amazon上热卖。相信会有当世高人沿着 Stevens的足迹给我们续写第三卷的,让我们拭目以待。

可选图书:Douglas E. Comer, Internetworking with TCP/IP, Vol.1 / Vol.2 / Vol.3
《 用TCP/IP进行网际互联第一卷:原理、协议与结构(第四版) 》《用TCP/IP进行网际互联-第二卷:设计、实现与内核(第三版) 》《用TCP/IP进行网际互联第三卷:客户-服务器编程与应用(Linux/POSIX套接字版) 》

  这套书也是三卷,前两卷内容与TCP/IP Illustrated相似,最后一卷则偏重应用程序的开发。总体上来看,这三卷书的内容与上述Stevens的两套著作相当。Comer教授的这套书定 位是教材,因此写出来中规中矩,寓精彩于平和之中。读者如果喜欢阅读教材风格的书,这套应该是很好的选择。

3.Jon C. Snader, Effective TCP/IP Programming
(中文版《 高级TCP/IP编程 》,中国电力出版社)
自 彻读Effective C++之后,我总结出一条经验。无论在哪个领域中,一旦掌握基础知识,则应该迅速去寻找该领域中一本名为“Effective XXX”的著作并阅读之,一定可取得事半功倍的效果。Effective C++如此,Effective STL如此,Effective Java如此,这本Effective TCP/IP同样如此,也是一剂功效强大的催化剂。

  本书作者是经验丰富的TCP/IP程序员,他在这本书中总结了44个难得的TCP/IP开发经验,并且将每条经验背后的道理都详细地讲解。毫无疑问,这种“专家经验”型著作对于提高读者水平,能够起到最高效、最直接的作用。

  初学TCP/IP的朋友可能觉得,自己应该先把基本知识熟练掌握,再看这本书,效果会更好。我认为不必如此,您可以在基本观念建立起来之后直接 品读此书。这本书篇幅不大,起点不高,却对很多关键问题进行了全面而细致地介绍,在具体问题的阐述上颇有Richard Stevens之风,也是纯而又纯的程序员风格——拿代码说话。

  系统学习和重点难点的突破相结合,历来是快速掌握一门技术的良方。由Scott Meyers开创的“Effective”之风,已有愈演愈烈之势,这是程序员们的巨大福音。我强烈建议大家,不要放过任何一本以“Effective” 为名的技术书籍。

4. Douglas Schmidt, Steven Huston,C++ Network Programming, Vol.1 / Vol.2 (中文版将分别由华中科技大学出版社和电子工业出版社出版)
《 C++网络编程 卷1:运用ACE和模式消除复杂性 》《 C++网络编程,卷2 基于ACE和框架的系统化复用 》

ACE介绍
今天的网络编程环境是建立在C的基础之上。如果你满足于C层次的TCP/IP编程,那么Stevens的书可以说达到了一个 最高境界,你大可以登东山而小鲁。但是如果再上一个层次,考虑如何运用C++强大的抽象机制是网络编程变得更加富于艺术性,更加高效可靠,那么恐怕必须要 高度重视这套书。

  这套书共两卷,篇幅都不大,主要内容是介绍ACE。在C++领域,由于这套书被Bjarne Stroustrup编入C++ In Depth系列,因此具有崇高的地位。而在网络编程领域,也有人称赞此书为Stevens之后最重要的网络编程著作。作者Douglas Schmidt是C++、网络程序设计和模式领域中国际公认的权威专家,潜心研究C++网络编程已经十多年。他发起的ACE开源项目是目前当之无愧的最优 秀和最成功的C++网络编程环境,不仅具有非常出色的可移植性,而且性能卓越。美国国防部的ARPA已经支持这个项目好几年了,其最终目的是在ACE的基 础上建立可用于现代战争的分布式实时嵌入式系统。毫无疑问,ACE无论在理论上还是在实践中,都是最值得程序员关注的网络编程典范项目,而这一套两卷对 ACE的介绍性书籍,也毫无疑问是最值得网络程序员品读分析的经典。学习这两本书,你可以将经典的基于C API的网络编程知识与现代面向对象、模式和框架等最新技术思想结合起来,从而使你对网络编程的认识上升到一个新的高度。
2
1
分享到:
评论

相关推荐

    机器学习中的必修数学 10节视频课程MP4

    机器学习中的必修数学 10节视频课程,MP4版本,电脑手机都可以随意看。也是学习深度神经网络算法之数学基础。中国老师讲解,易懂,画面清晰!!自己感觉不错,得来不易,分享给大家一起学习

    《计算机网络基础》教学设计.doc

    但是,学生对网络的了解大部分是停留在 网上聊天、BBS论坛、网络游戏以及有限的资料收集,没有一个系统了解网络的构成及相 应的软硬件知识,没有形成有意识地利用网络资源帮助学习。因此,在本节内容中要学 生掌握...

    网络工程师教程(第三版)pdf下载 高清完整版 part3

    网络工程师教程(第三版)是考网络工程师必修的书籍,超清晰电子版下载,需要的可以下载学习,也可以分享下载地址哦!...本书是参加本考试的必备教材,也可作为网络工程从业人员学习网络技术的教材或日常工作的参考用书。

    计算机基本网络维护必备常识

    这是一个想要学习网络的必修课计算机基本网络维护必备常识和概要

    青岛干部网络学院挂机辅助 v2.3.7.zip

    青岛干部网络学院挂机辅助软件为青岛干部网络学院自动学习挂机辅助软件。全自动学习:包含自动选课,学完自动换课程等。只需一次选好要学习的课程,从此实现全自动。 青岛干部网络学院挂机辅助功能: 1、保存账号...

    最新高中语文必修三教案:作文教学学习选择和使用论据归纳.pdf

    最新高中语文必修三教案:作文教学学习选择和使用论据归纳.pdf

    ASP.NET 研究性学习平台

    2003年我国将研究性学习列为教育部发布的《普通高中课程方案(实验)》中的必修课程。研究性学习对改变学生的学习方式、促进教师教学方式的变革、培养学生的创新精神和实践能力具有重要作用。 在大学阶段开展研究性...

    网线制作是搞网络的人的必修课

    专攻网络这一块的话,这是必须要学习的,小小的网线中,也蕴藏着很深的知识!

    计算机网络技术专业介绍.doc

    本专业在培养学生掌握网络相关理论 知识的基础之上,让其了解网络工程实施流程,学习网络工程的建设和部署,使学生具 备从事计算机网络初步设计、网络设备配置、网络管理和安全维护的基本能力,以及基 于Web的软件...

    jQuery全面学习,大学生前端开发必修, jQuery学习资料.zip

    jQuery是一个轻量级的"写的少,做的多"的JavaScript库。目前网络上有大量开源的 JS 框架, 但是 jQuery 是目前最流行的 JS 框架,而且提供了大量的扩展。

    神经网络与深度学习中文版

    高清版 神经网络与深度学习中文版,容易自学习,作为人功智产品必修课。。。

    T7河南干部在线学习辅助 1.0

    湛江干部在线学习辅助功能: ... 2、第一次登录后,软件会自动搜索进度未到100%的必修课程到列表中,默认按学分从大到小排序。...4、软件默认加载必修课程,你也可以在登录后选择选修课程,进行重搜将选修课程加载学习。

    计算机网络技术专业课程标准.doc

    通过本课程的学习,提高学生在网络组建与管理、网 络配置与维护等方面的实际操作能力,使学生具有企业网络的规划、设计、实施与管理 维护能力,是学生顶岗实习前的必修核心课程。 三、教学目标 实现"一个核心,五大...

    修改IP的工具 计算机网络学习的必须工具

    修改IP的工具 计算机网络学习的必须工具 计算机网络是计算机专业学生必修课程 也是一们很重要的课程

    计算机网络技术基础教学大纲.docx

    学时:48 学分:4 开课对象:计算机科学与技术 课程类别:专业技术必修课 一、说明 (一)课程性质 计算机网络基础是计算机科学与技术专业的专业技术必修课程,涵盖了计算机网络理论基础知识、网络互连技术、IP地址...

    《计算机网络安全》-课程标准.doc

    《计算机网络安全》课程标准 一、课程基本信息 适用专业:计算机网络技术 学 时 数:56 课程归口:电子信息系 二、课程性质 本课程为计算机网络技术理论必修课,是以应用为主的网络工程技术类的专业课程。...

    1-1网络体系结构

    网络体系结构网络专业学生学习网络的基本,学生必修学习网络体系结构。

    《计算机网络基础》课程标准.docx

    计算机网络技术应用专业 《计算机网络基础》课程标准 前言 (一)课程定位 《计算机网络基础》是中等职业学校计算机网络专业的一门专业核心课程,也是计算机网络专业一门重要的必修课程,本课程的主要任务是使学生...

    计算机网络安全技术教学大纲.doc

    属于计算机网络安全范畴,是培养学生 计算机网络安全基本理论素质和应用能力的一门必修课,是在学习其它计算机类课程的 基础上展开的。 任务和地位: 本课程理论与实践紧密结合,实用性强,目的在于使学生较全面地...

Global site tag (gtag.js) - Google Analytics