首先要说讲述计算机网络和TCP/IP的书很多。
先要学习网络知识才谈得上编程
讲述计算机网络的最经典的当属Andrew S.Tanenbaum的《计算机网络》第五版,这本书难易适中。
《计算机网络(第5版)》是国内外使用最广泛、最权威的计算机网络经典教材。
目前已经是第五版,本书作者80年代就开发出MINIX,是一个用于操作系统教学的类UNIX(的小型操作系统。而linux就是受其影响。。。。
第五版是2012年出的,也比较新。
作 者: (美)特南鲍姆,(美)韦瑟罗尔 著 严伟,潘爱民 译 丛 书 名:
出 版 社: 清华大学出版社ISBN:9787302274629出版时间:2012-03-01
-----------------------------------------------------------------------------
《计算机网络:自顶向下方法(原书第4版) 》
作 者: (美)库罗斯 著 陈鸣 等 译 丛 书 名:计算机科学丛书出 版 社: 机械工业出版社ISBN:9787111165057出版时间:2009-01-01
《计算机网络系统方法(原书第4版)》
作 者: (美)彼得森(Peterson,L.L.),(美)戴维(Davie,B.S) 著 薛静锋 等 译 丛 书 名:计算机科学丛书出 版 社: 机械工业出版社ISBN:9787111251385出版时间:2009-02-01
如果觉得Tanenbaum的看的不够过瘾可以看这2本,这2本出版的时间和版面的差不多,各有特色,特别是“自顶向下”是一个很好的概念!
------------------------------------------------------------------------------
了解网络知识看看上面的 开发必看下面的
------------------------------------------------------------------------------
如果说只是了解网络基础知识看看上面3本即可,但是要想做开发一定要看下面的
《TCP/IP详解》三卷本,《用TCP/IP进行网际互连》三卷本,《TCP/IP指南》+《IPv6》四卷本
其中TCP/IP详解的作者还写了另外2本经典著作,《Unix环境高级编程》,《Unix网络编程》
作者W.Richard Stevens个人网站 http://www.kohala.com/
大师作品部部经典,可惜1999年去另一个世界维护Unix了。。。。。。。。。
说明:搞Linux网络编程的,想学TCP/IP的一定要看大师W.Richard Stevens这六本书,基本上六本书看完基础也就搭好了。
W.Richard Stevens(1951-1999),国际知名的UNIX和网络专家,受人人尊敬的作家。他的著作有《UNIX网络编程》(两卷本),《UNIX环境高级编程》,《TCP/IP详解》(三卷本)等,同时他还是广受欢迎的教师和顾问。
Stevens先生1951年生于赞比亚,早年,他就读于美国弗吉尼亚州的费什本军事学校,后获得密歇根大学学士、亚利桑那大学系统工程硕士和博士学位。他曾就职于基特峰国家天文台,从事计算机编程。
Stevens先生不幸病逝于1999年9月1日,他的离去是计算机界的巨大损失。
W. Richard Stevens对我们这些学习Unix/Linux的程序员的影响是巨大的,每每捧读老先生的书都会被感动,不仅被他那丰富的知识所折服,更是被他那一丝不苟,严谨治学的态度所倾倒。“他不清楚的,他下决心要弄明白。他知道的,他要努力传授给所有感兴趣的人们!”这就是我们的Stevens!一生能有其一部力作可谓无憾矣!而况七部乎?
一位朋友说:“Stevens的书一定要全部认真地去读的。”我想他是对的。最后,对Stevens在天英灵说声:谢谢您!想必这时他正坐在上帝身边,继续从事他的写作。
W. Richard Stevens Biography
http://www.kohala.co
W. Richard Stevens' Home Page
http://www.kohala.co
W. Richard Stevens on Wikipedia
http://en.wikipedia.
Guru of the Unix gurus
http://archive.salon
----------------------------------------------------------------------------------------------------------------------------------------------------------------
《用TCP/IP进行网际互连第一卷:原理、协议与结构(第五版)》
《用TCP/IP进行网际互连第二卷——设计、实现与内核》
《用TCP/IP进行网际互连第三卷:客户-服务器编程与应用(Linux/POSIX套接字版)》
说明:这个系列也是三卷本,和《TCP/IP详解》三卷本一样也是经典,区别是 网际互联 偏重理论而 详解偏重实际。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
如果你看了上面2套TCP/IP的书6本还不尽兴,还有一套书可以作为提高或者查缺补漏
虽然与W.Richard Stevens TCP/IP详解 有一定的差距,但仍不失为下一代IPv6网络的参考工具书,值得收藏学习
----------------------------------------------------------------------------------------------------------------------------------------------------------------
《TCP/IP协议族(第4版)》
比TCP/IP详解要容易理解一些,并且图文并茂是本书的一大特色,还有就是举得例子比较多,有助于读者理解概念性的东西,给人感觉不是特别枯燥。总之,这本书适合初学者,而TCP/IP详解适合有一定网络方面基础的人。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
《TCP/IP协议原理与应用(第3版)》
写的非常好,建议一定要买!可作入门,但即使是高手,也应看看,学习作者分析问题的方法和思想。其实是无数次印刷了,经典不能错过。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
《TCP/IP高效编程 : 改善网络程序的44个技巧》
很明显属于技巧类的书,同样这本书很老,但是还是很有参考价值,这本书中大量出现Unix网络编程的提示,可以作为其补充。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
《TCP/IP路由技术》
思科出的
这本书主要在讲内部路由协议,有RIP、RIPV2、RIPng、IGRP、EIGRP、OSPF、IS-IS协议,详实的描述了基本上现在主要的内部网关协议的工作原理,它们的优点与不足,以及配置方法(基于CISCO 路由器产品)和排错等。本书称不上非常的通俗,但是在有一定的基础的情况下还是比较容易看懂的。本书是世面上极少见的讲述内部网关路由技术的经典书籍,内容极为丰富。对于想清楚的了解内部网关协议的工作原理以及想探究网络通信事物的本质的人来说是一本不可或缺的好书。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
《linux网络体系结构:linux内核中网络协议的设计与实现》
出版社: 清华大学出版社
装帧: 平装
出版年: 2006-7
又名: The Linux Network Architecture: Design and Implementation of Network Protocols in the Linux Kernel
书名: Linux网络体系结构
说明:翻译的很不好,建议看原版,可以下电子版。
一本在kernel实现网络功能的基础书籍,最好还是看英文版的,翻译的实在太烂了。有条件的还是看原版吧,没办法啊,中国的此类书籍基本上落后老美3-4年。结合linux源代码分析一书收获更多。一并把内核结构和各功能在内核中的关系也搞清楚了。
站在运行空间的角度来看,运行在内核空间的,我们称之为内核程序,运行在用户空间的,我们称之为应用程序。
如果把一个完整的应用程序产品再细分,其实还可以简单的分为系统层和业务逻辑层和界面(自底向上的顺序)。
你用QT来做界面,也就是位于应用程序的最高层。而”unix环境高级编程”和”unix网络编程”是讲的系统层的东西。
举个例子来说,你点开一个编辑器,写入几个字,然后保存。这个编辑器就是一个应用程序,你点开编辑器后看到的东西就是界面,你写几个字保存时,编辑器就会调用API——write函数来写磁盘,这个就是系统层的东西。这个write函数应该怎么用,用时要注意哪些情况,要不要使用缓冲等,如何使用缓冲等,这些知识就是”unix环境高级编程”就会告诉你。