标签归档: C++

优秀IT书籍100本

1.vc++技术内幕第四版 (潘爱民)
ftp://210.32.157.56/课件/c++primer/vc++技术内幕IV(潘爱民).rar
2.C++经典对话系列
中文:http://www.jka77.com/book/cvst_cn.chm

3.MFC Windows 程序设计(第二版)
英文版:http://www.jka77.com/book/progmfc2.chm
中文版:暂无,制作中…
4.Effective C++中文版:
http://dlb.pchome.net/development/reference/effectiveCplus.zip
5.More Effective C++中文版-zhc译
http://cable.pchome.net/development/reference/MEC0410.zip

6.More Effective C++中文版-候捷译
http://www.nethovel.com/resources/MoreEffectiveC++(WQ).zip

7.Essential C++中文版(全)-候捷译
http://www.nethovel.com/resources/Essential%20C++中文版(全).rar

8.深入浅出MFC 2/e
http://218.30.21.125:8084/ebook/programme/mfc2e.zip

9.代码大全中文版
http://www.delphidevelopers.com/docs/tecsubject/cc/CodeComplet110.zip

11.C++经典对话系列
中文:http://www.jka77.com/book/cvst_cn.chm

12.MFC Windows 程序设计(第二版)
英文版:http://www.jka77.com/book/progmfc2.chm
中文版:暂无,制作中…

13.数据结构 C++ 语言描述(中文版)
http://www.code-labs.com/manual/c_c015.zip

14.Java编程思想中文版
ftp://202.118.72.12/pub/doc-book/Java/Java编程思想.zip

15.C++标准库英文版
ftp://166.111.64.4/incoming/新文件夹/f/The%20C++%20Standard%20Library(with%20TOC).pdf

16.Windows核心编程
英文:http://www.fmdstudio.net/book/prgapps4.zip

17.TCP-IP详解卷1:协议
ftp://202.204.4.161/学习资料/TCPIP/TCP-IP详解卷1:协议.pdf

18.TCP-IP详解卷2:实现
ftp://202.204.4.161/学习资料/TCPIP/TCP-IP详解卷3:TCP事务协议,HTTP,NNTP.pdf

19.TCP-IP详解卷3:TCP事务协议
ftp://202.204.4.161/学习资料/TCPIP/TCP-IP详解卷2:实现.pdf

20.实用算法的分析与程序设计
ftp://202.204.8.10/[4]%20编程资源/[%20书籍资料%20]/[算法与数据结构]/实用算法的分析与程序设计.rar

21.vc++技术内幕第四版 (潘爱民)
ftp://210.32.157.56/课件/c++primer/vc++技术内幕IV(潘爱民).rar

22.C++ Primer英文版:
http://computerstep.w18.net/C/C++%20Primer.zip

23.Effective C++中文版:
http://dlb.pchome.net/development/reference/effectiveCplus.zip

24.More Effective C++中文版-zhc译
http://cable.pchome.net/development/reference/MEC0410.zip

25.More Effective C++中文版-候捷译
http://www.nethovel.com/resources/MoreEffectiveC++(WQ).zip

26.Essential C++中文版(全)-候捷译
http://www.nethovel.com/resources/Essential%20C++中文版(全).rar

27.Programming Windows程式开发设计指南-Petzoldi著 余孟学 译
中文版:http://www.nethovel.com/resources/ProgrammingWindows_tw.chm
英文版:http://www.nethovel.com/resources/Petzoldi.chm

28.WinAsm32汇编教程- Iczelion
http://www.nethovel.com/resources/winasm.chm

29.Windows 95 程序设计指南-候捷译
http://www.nethovel.com/resources/win95adg.zip

30.Thinking in C++ 2nd Edition(C++编程思想)
英文版:http://www.nethovel.com/resources/ThinkinginC++.zip
中文版:http://www.dingbing.com/book/thinkc.zip

31.人月神话-中文版
http://www.goodassister.com/book/rysh.pdf

32.The C++ Programming Language英文
http://computerstep.w18.net/C/The%20C++%20Programming%20Language.rar

33.VC技术内幕第五版 http://www.helpwork.com/downdata/book/programming/vc/book/vc++2/invcpp5.chm

34.com技术内幕
http://www.helpwork.com/book/html/user/download.asp?id=1123

35.com+技术内幕
http://www.helpwork.com/book/html/user/download.asp?id=952

36.新编 Windows API参考大全
http://www.4046.com/nnsrc/down/WindowsAPIdq.rar

37.The C programming Language // By Brian W. Kernighan and Dennis M. Ritchie
下载地址:http://www.jka77.com/book/The_C_programmin.chm

38.C语言编程手册
下载地址:http://www.jka77.com/book/CL.chm

39.Delphi 7高效数据库程序设计
By 李维
下载地址:http://www.codestudy.net/book/download.asp?id=1163&sort=5

40.Windows网络编程(第2版)
By Anthony Jones,Jim Ohlund 清华大学出版社
下载地址:英文版:http://www.guxiang.com/epubcn/readings/diannaotushu/500/download/1107/network_prog_for_win_2nd.zip

41.Windows2000编程技术内幕
By Mickey Williams 机械工业出版社
下载地址:ftp://ftp.frontfree.net/Pub/Books/C&C++/VC/Windows2000编程技术内幕.rar

42.数据仓库
By W.H.Inmon 清华大学出版社
下载地址1:http://tips.9hao.com/vvbksd/20011120/数据仓库.zip
下载地址2: ftp://ftp.math.nankai.edu.cn/Ebook/China-pub/chinapub_computerscience_multimedia/ComputerScience/%CA%FD%BE%DD%B2%D6%BF%E2/

43.编码的奥秘
By Charles Petzold 机械工业出版社
下载地址:ftp: //ftp.math.nankai.edu.cn/Ebook/China-pub/chinapub_computerscience_multimedia/ComputerScience/%B1%E0%C2%EB%B5%C4%B0%C2%C3%D8/

44.编译原理及实践
By Louden, K.C 机械工业出版社
下载地址:ftp: //ftp.math.nankai.edu.cn/Ebook/China-pub/chinapub_computerscience_multimedia/ComputerScience/%B1%E0%D2%EB%D4%AD%C0%ED%BC%B0%CA%B5%BC%F9/

45.Inside C++ Object Model(深度探索C++对象模型)
By Lippman 候捷译
下载地址:http://www.jka77.com/book/inside-the-cpp-object-model.pdf

46.C++标准程序库
By Josuttis
下载地址1:http://www.codestudy.net/book/download.asp?id=1205&sort=5
下载地址2: ftp://ftp.math.nankai.edu.cn/Ebook/C_C++/The Cpp Standard Library.pdf

47.STL源码剖析
By 候捷
下载地址:ftp://ftp.math.nankai.edu.cn/Ebook/C_C++/STL源码剖析–侯捷.pdf

48.C++批判(第三版) -看看C++的坏话!
By I don’t know
下载地址:http://www.jka77.com/book/CPPPP.pdf

49.程序设计实践
下载地址:ftp://ftp.math.nankai.edu.cn/Ebook/China-pub/chinapub_computerscience_multimedia/%B3%CC%D0%F2%C9%E8%BC%C6%CA%B5%BC%F9/

50.c++沉思录
By Andrew Koenig Barbara Moo 人民邮电出版社
下载地址:http://www.codestudy.net/book/download.asp?id=1261&sort=5

51.C++Builder4技术内幕 (这本书俺不知道好不好)
By I don’t Know
下载地址:http://www.codestudy.net/book/download.asp?id=1254&sort=5

52.下面两本书一般大家硬盘里都有的吧,而且很老了,但是为了全面,就提上来吧
(1)Windows 95 程式设计指南 – 候捷
下载地址:http://jjhou.csdn.net/win95-a-developers-guide.pdf
(2)Windows 95 系统程式设计大奥秘 – 候捷
下载地址:http://jjhou.csdn.net/windows95-system-programming-secrets.pdf

53. 中国大百科全书·数学
下载地址:ftp://ftp.math.nankai.edu.cn/Ebook/中国大百科全书/中国大百科全书·数学.pdf

54、4.0M Bjarne Stroustrup – The C++ Programming Language
http://www.u-n-f.com/books/archive/The%20C++%20Programming%20Language.tar.gz

55、1.0M Richard Stevens – TCP-IP Illustrated
http://www.u-n-f.com/books/archive/TCP-IP%20Illustrated.tar.gz

56、4.5M Randall Hyde – Art Of Assembly
http://www.u-n-f.com/books/archive/Randall%20Hyde%20-%20Art%20Of%20Assembly.tar.gz

57、2.1M M. Abrash – Zen of Graphics Programming
http://www.u-n-f.com/books/archive/M.%20Abrash%20-%20Zen%20of%20Graphics%20Programming.zip

58、249k Kernighan and Ritche – The C Programming Language
http://www.u-n-f.com/books/archive/Kernighan%20and%20Ritchie%20-%20The%20C%20Programming%20Language.zip

59、3.3M Bruce Schneier – Applied Cryptography
http://www.u-n-f.com/books/archive/Bruce%20Schneier%20-%20Applied%20Cryptography.zip

60、PHP4_Grundlagen_und_Profiwissen
http://www.u-n-f.com/books/archive/lamp/PHP4_Grundlagen_und_Profiwissen.pdf

61.《C++ Builder高级编程技术》
http://www.dingbing.com/book/builder.zip

62.《VC++ 6.0 TLR 模板库参考手册》
http://www.easysea.com/diannao/download/prog/c/mbkc.zip

63.《BORLAND C++ BUILDER 实用培训教程》
http://202.101.232.120/book/openfile.asp?id=223&filename=BC98_CB526.zip

64.《Delphi高级开发指南》
http://www.pcbookcn.com/s10899book/program/delphi/Delphi_gjkfzn_for3.rar

65.《新编 Windows API参考大全》
ftp://book:book@down.pcbookcn.com/pro/delphi/新编Windows_API_参考大全.rar

66.《Delphi深度历险-附书源码》
http://www.pcbookcn.com/s10899book/program/delphi/Delphi_sdlx_code.rar

67.《Delphi 7高效数据库程序设计》
ftp://book:book@down.pcbookcn.com/pro/delphi/李维的新书《Delphi7高效数据库程序设计》.rar

68.《Delphi7开发指南》
ftp://book:book@down.pcbookcn.com/pro/delphi/delphi7开发指南.rar

69.《Delphi6集成开发环境》
ftp://book:book@down.pcbookcn.com/pro/delphi/Delphi6集成开发环境.rar

70.《Delphi6数据库编程》
ftp://book:book@down.pcbookcn.com/pro/delphi/Delphi6数据库编程.rar

72.《Delphi5.xADO_MTS_COM+高级程序设计篇》
ftp://book:book@down.pcbookcn.com/pro/delphi/Delphi5.xADO_MTS_COM+高级程序设计篇.rar

73.《VISUAL BASIC 编程标准》
http://www.dingbing.com/book/vb.zip

74.《Visual Basic6.0中文版程序员指南》
http://www.easysea.com/diannao/download/prog/vb/zwbc.zip

75.《Visual Basic 6.0 控件参考手册》
http://www.easysea.com/diannao/download/prog/vb/kjck.zip

76.《Visual Basic 6.0中文版语言参考手册》
http://www.easysea.com/diannao/download/prog/vb/zwby.zip

77.《Visual Basic 6.0 开发宝典》
http://www.easysea.com/diannao/download/prog/vb/kfbd.zip

78.《Visual Basic 6.0 实例教程》
http://www.easysea.com/diannao/download/prog/vb/sljc.zip

79.《VB 6.0 中文版实用参考手册》
http://www.easysea.com/diannao/download/prog/vb/syck.zip

80.《Visual Basic 6开发人员指南》
http://www.easysea.com/diannao/download/prog/vb/kfzn.zip

81.《VB 和 SQL Server 编程指南(第五版)》
http://www.easysea.com/diannao/download/prog/vb/bczn.zip

82.《Jbuilder 5 中文帮助》
http://www.pdown.net/download.asp?downid=2&id=991

83.《JBuilder开发人员指南》
http://youth.dlmu.edu.cn/book/list_down.php?bkid=224

84.《Win32的Internet函数说明》
档案大小: 245248K
http://www.easysea.com/diannao/download/prog/windows/win32int.zip

85.《Visual InterDev 从入门到精通》
http://www.easysea.com/diannao/download/prog/interdev/crmd.wdl

86.《Visual InterDev 6.0 Web 参考手册 》
http://www.easysea.com/diannao/download/prog/interdev/jsck.zip

87.《Visual InterDev 6.0 Guide 程序员》
http://www.easysea.com/diannao/download/prog/interdev/cxyz.zip

88.《JavaScript 程序开发手册》
http://www.cty99.com/Templet/bookdownmore.asp?booktype=script#

89.《JAVA 大全》
http://www.easysea.com/diannao/download/prog/java/cxkf.zip

90.《Visual J++ 6.0 WFC 类库参考手册》
http://www.easysea.com/diannao/download/prog/java/lkck.zip

91.《Java联想(中文)》
http://www.easysea.com/diannao/download/prog/java/lkck.zip

92.《Oracle 8 实用大全》
http://www.easysea.com/diannao/download/prog/oracle/sydq.zip

93.《Microsoft SQL Server 管理员手册》
http://www.easysea.com/diannao/download/prog/sql/glys.zip

94.《掌握ACCESS开发》
http://www.easysea.com/diannao/download/prog/sql/glys.zip

95.《Oracle Performance Tuning and Optimization》
http://www.oradb.net/book/oracle_pt.zip

96.《Oracle ProC 程序设计》
http://www.oradb.net/book/oracleproc.zip

97.《Oracle8初学者指南》
http://www.easysea.com/diannao/download/prog/oracle/cxzz.zip

98.《RED HAT LINUX 6大全》
http://www.dingbing.com/book/redhatall.zip

99.《RED HAT LINUX 6管理工具》
http://www.dingbing.com/book/redhatman.zip

100.《VC++高级编程》
http://www.easysea.com/diannao/download/prog/c/vcgj.zip
QQ群:12418867

Read: 816

[转]TCP/IP 网络基础(v 0.2b)

作者:北南南北
来自:LinuxSir.Org
赞助: pandonny、etony、Linuxfish ……..
简介:本文简要的讲了讲TCP/IP的一点基础,包括TCP/IP网络模型;网络分类及切割,以及服务和端口等基础知识;需要声明的是,我并不懂TCP/IP的原理,我只是写一点比较表面的东西。

此文正在修正中,希望高手指点和补充。谢谢~


目录



++++++++++++++++++++++++++++++++++++++++++++++++++++
正文
++++++++++++++++++++++++++++++++++++++++++++++++++++


1、TCP/IP 概述;

TCP/IP 实际上并不是一个协议,而是一组协议,它包括IP、TCP、UDP、ICMP、ARP等;


1.1 什么是IP、ARP、ICMP、UDP;

IP (Internet Protocol),网际协议;IP是TCP/IP 的最底层,高层协议都要转化为IP包,IP包含了源地址和目的地址,路由决策也发生在IP层;

ARP (Address Resolution Protocol) ,地址解析协方,把IP地址转换为硬件物理地址,比如我们所用的网卡的物理地址,类似aa:bb:cc:dd:ee:ff。

ARP Short for Address Resolution Protocol, a network layer protocol used to convert an IP address into a physical address (called a DLC address), such as an Ethernet address. A host wishing to obtain a physical address broadcasts an ARP request onto the TCP/IP network. The host on the network that has the IP address in the request then replies with its physical hardware address.

There is also Reverse ARP (RARP) which can be used by a host to discover its IP address. In this case, the host broadcasts its physical address and a RARP server replies with the host’s IP address.

ICMP (Internet Control Message Protocol),网际报文协议;它包括了数据包的错误、控制等相关信息。比如ping 命令就是利用ICMP来测试一个网络的连接情况的工具;

Short for Internet Control Message Protocol, an extension to the Internet Protocol (IP) defined by RFC 792. ICMP supports packets containing error, control, and informational messages. The PING command, for example, uses ICMP to test an Internet connection

TCP (Transmission Control Protocol),传输控制协议。TCP运行在IP之上,是基于数据流连接和面向的协议,应用程序把数据要经过TCP/IP的分割成若干包,这样数据就以字节流发送和接收,到达目的地后,TCP/IP 再按顺序进行组装。TCP/IP 要保证机器与机器之间的连接的可靠性,还要有纠错。TCP是否被选择,取决于应用程序或服务;

TCP is one of the main protocols in TCP/IP networks. Whereas the IP protocol deals only with packets, TCP enables two hosts to establish a connection and exchange streams of data. TCP guarantees delivery of data and also guarantees that packets will be delivered in the same order in which they were sent.

UDP (User Datagram Protocol) ,用户数据报协议 ,象TCP一样运行在IP之上,是基于数据报或分组的协议,UDP/IP 可以直接发送和接收数据报文,而不必做验证,这一点与TCP/IP 不同。TCP是否被选择,取决于应用程序或服务;

Abbreviated UDP, a connectionless protocol that, like TCP, runs on top of IP networks. Unlike TCP/IP, UDP/IP provides very few error recovery services, offering instead a direct way to send and receive datagrams over an IP network. It’s used primarily for broadcasting messages over a network.


1.2 TCP/IP 网络模型;

TCP/IP 的网络模型是如图所示;


2、IP地址、网络类型、网络切割;

TCP/IP 网络的每台计算机都至少有一个(一个计算机有多个网卡是存在的)合法的IP地址,IP地址把此计算机和网络的其它计算机区别开来。由于IP地址分为两部份,一部份代表网络,另一部份代表主机。如果想把一个网络和另一个网络区分开来,就涉及到网络切割。


2.1 IP 地址概说;

IP地址是标识主机在网络中的位置,象是一个门牌号一样。所有IP都经过 Internet Assigned Numbers Authority (IANA)分配。IP地址是由四个字节组成,格式 为A:B:C:D,比如 192.168.1.1 。LinuxSir.Org 的IP是多少?ping LinuxSir.Org 就知道了。

IP都经过 Internet Assigned Numbers Authority (IANA)分配。一般的情况下,IANA只和各国政府机构、学会、ISP、或IDC公司交涉。咱们用的IP地址,都是IDC或ISP提供的。比如 LinuxSir.Org 的地址是由网通提供的。我用的ADSL,是铁通提供的。

IP 地址是由四个字节组成,格式 A.B.C.D,每个字节又是由8位二进制数字组成,也就是这样的格式 xxxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx 。在A:B:C:D中,前1到3位,可以用来识别网络,其余部份就用来表示网络上的主机。

         A       .          B       .        C        .       D   
xxxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx

地址中哪几位用来识别网络,哪几位用来识别主机,是通过网络掩码来实现的。网络掩码也是一个四字节的数,如果换算成二进制的数字,对应网络部份为1,而主机部份为0。

比如掩码为 255.255.255.0 ,换算成二进制就是 11111111.11111111.11111111.11111111.00000000 。

      A .        B .  C  . D
255 . 255 . 255 . 0
11111111.11111111.11111111.00000000
|-----网络部份----|主机部份|

这表示的意思是网络中的所有主机的IP地址的前三位必须是相同的,也就是A.B.C是相同的,最后一位是主机位,主机位的不同,就把网络中的计算机区分开来。比如 192.168.1.1 和192.168.1.2 是不同的主机。

在 255.255.255.0 这个网络中,从理论上来说,应该有256台主机,但事实上却不是这样。

网络地址和广播地址:

每个网络都有一个网络地址和广播地址,网络地址是把此网区别于彼网的标识,主机部份为0,(二进制),而广播地址的主机部份全为1。

比如192.168.1.0/24的网络。按理论来说,IP地址应该从192.168.1.0到192.168.1.255 ,网络最多有主机数应该有256台,但因为网络地址占用了192.168.1.0,广播地址占用了 192.168.1.255 ,所以在192.168.1.0/24的网络中,最多只能容纳254台机器。

Address:   192.168.1.0           11000000.10101000.00000001 .00000000
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111 .00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000 .11111111
=>
Network: 192.168.1.0/24 11000000.10101000.00000001 .00000000 (Class C)
Broadcast: 192.168.1.255 11000000.10101000.00000001 .11111111
HostMin: 192.168.1.1 11000000.10101000.00000001 .00000001
HostMax: 192.168.1.254 11000000.10101000.00000001 .11111110
Hosts/Net: 254 (Private Internet RFC 1918)


2.2 网络分类;

IANA把网络进行分类,分类如下:


2.21 A类网络:

A类网络部份为8位(二进制),主机部份为24位(二进制)。

         A       .           B     .             C    .     D
xxxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx
|>网络部份<|---->主机部份<--------------|

地址的第一个字节,范围从1到127 ;比如 IP地址 126.1.12.0 就归属于A类网络的地址。


2.22 B类网络:

B类网络部份为16位(二进制),主机部份为16位(二进制)。

         A       .         B        .        C        .   D    
xxxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx
|---->网络部份<-----|-----主机部份<-----|

地址的第一个字节,范围是128-191 ;比如 IP地址 129.13.1.0 就归属于B类网络。


2.23 C类网络:

C类网络部份为24位(二进制),主机部份为8位(二进制)。

         A       .         B        .        C        .   D    
xxxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx
|----------网络部份---------| -主机部份 -|

地址的第一个字节,范围是192-223;比如 IP地址193.1.21.0 就归属于C类网络。


为了简单一点,我们用表格列出:

IP地址的第一个字节       归属网络

1-127 A类
128-191 B类
192-223 C类


2.24 保留地址;

为了保证一些网络能有永远不能接上Internet 上(或通过NAT才能接到Internet),这些地址用于私有网络,比如我们所用的本地网地址 192.168.1.0/24网络就是。下面的一些网络地址是私有的,只能通过NAT转换为公网地址才能访问Internet 。

地址范围              网络类

10.0.0.0-10.255.255.255 A类
172.16.0.0-172.31.255.255 B类
192.168.0.0-192.168.255.255 C类
127.0.0.1-127.255.255.255 回环地址

其中回地址表示数据包的发送和接收都在同一台主机,如果想让一个程序只能在本机上运行,就用这个地址。回环地址一般是用127.0.0.1 。在Linux中,用ifconfig lo就能看到了。


2.3 网络切割;

大型网络可以划分为几个小的网络,这些小的网络被称为子网。划分大型网络地址块为一些小的子网,可以从主机部份进行切分,这样就能形成一个一个的子网。子网掩码可以用来构建超网,例如:192.168.1.2 掩码: 255.255.254.0,也可写成192.168.0.0/23,23代表子网掩码中连续“1”的个数。还可以进行子网划分,例如: 192.168.1.130 掩码: 255.255.255.240,也可写成192.168.1.130/28网络,即:网络ID为192.168.1.128,主机ID为2。

切割网络还要知道十进制到二进制的相互换算,这是比较麻烦的。用笔来算是有点难为人。不过我们可以用一个脚本工具来算。

网络切割脚本下载 ,请点击: 网络切割计算器

下载后要解压;

#tar zxvf ipcalclinuxsir.pl.tar.gz
# chmod 755 ipcalc.pl
# ./ipcalc.pl

可以指定单个IP和掩码来判断网络,比如:

[root@localhost ~]# ./ipcalc.pl 192.168.1.4/255.255.255.0

Address: 192.168.1.4 11000000.10101000.00000001 .00000100
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111 .00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000 .11111111
=>
Network: 192.168.1.0/24 11000000.10101000.00000001 .00000000 (Class C)
Broadcast: 192.168.1.255 11000000.10101000.00000001 .11111111
HostMin: 192.168.1.1 11000000.10101000.00000001 .00000001
HostMax: 192.168.1.254 11000000.10101000.00000001 .11111110
Hosts/Net: 254 (Private Internet RFC 1918)

值得注意的是:同一个IP地址,由于掩码不同,此IP地址可能属于不同的网络。所以掩码的设置对于主机来说十分重要。

IP地址:192.168.1.2 掩码: 255.255.254.0,属于192.168.0.0/23网络;

Address:   192.168.1.2           11000000.10101000.0000000 1.00000010
Netmask: 255.255.254.0 = 23 11111111.11111111.1111111 0.00000000
Wildcard: 0.0.1.255 00000000.00000000.0000000 1.11111111
=>
Network: 192.168.0.0/23 11000000.10101000.0000000 0.00000000 (Class C)
Broadcast: 192.168.1.255 11000000.10101000.0000000 1.11111111
HostMin: 192.168.0.1 11000000.10101000.0000000 0.00000001
HostMax: 192.168.1.254 11000000.10101000.0000000 1.11111110
Hosts/Net: 510 (Private Internet RFC 1918)

IP地址:192.168.1.2 掩码: 255.255.255.0,属于192.168.1.0/24网络;

Address:   192.168.1.2           11000000.10101000.00000001 .00000010
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111 .00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000 .11111111
=>
Network: 192.168.1.0/24 11000000.10101000.00000001 .00000000 (Class C)
Broadcast: 192.168.1.255 11000000.10101000.00000001 .11111111
HostMin: 192.168.1.1 11000000.10101000.00000001 .00000001
HostMax: 192.168.1.254 11000000.10101000.00000001 .11111110
Hosts/Net: 254 (Private Internet RFC 1918)


3、 路由和网关;

3.1 路由,此网和彼网沟通的纽带;

在同一个网段之间(网络ID相同),主机可以互相通讯,比如同一网段的主机相互沟通不需要路由,比如 192.168.1.2和192.168.1.3之间的沟通就不需要路由。如果两个不同的网络(网络ID不同)需要通讯,比如 192.168.1.0/24网络的主机和192.168.2.0/24内的主机相互沟通,那么需要路由器(或者网关)来指明数据包的“传输路径”来实现这一目的。

常用的做法是用一台多穴主机来作网关(多个网络接口,分别连着外网与内网),使得内网计算机通过网关访问Internet。在linux里面一般用 iptables做NAT(网络地址转换)来实现网关功能,如果充当网关的机器有一个固定IP,我们可以使用SNAT(源网络地址转换);如果充当网关的机器是拨号上网,也就是IP不固定,那么一般我们用MASQUERADE,它可以动态的识别网关的地址。当然,固定ip也是可以用MASQUERADE 的,但是系统资源要耗费大一些。

比如LinuxSir.Org 服务器托管在IDC机房中,机房要为我们提供IP地址、掩码、网关。

在Linux 中,查看本地机的路由是通过route命令来实现的,比如:

[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth0
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

此主机的默认路由就是192.168.1.1 ,至于更多的配置路由的细节,我们将在以后的章节加以讨论。

网关;


4 、服务和端口;

在一台计算机运行的操作系统,如果这台计算机是连接在网络中的,它一定得有一个IP地址。在网络上使用 ip 来标示一个点,也可以理解为标示一台主机。如果您的计算机分配了两个ip 比如你启用了两块网卡,在网络上就认为这是不同的两个主机。在这台计算机上可能运行着很多的服务。

端口则是用来标示特定主机的特定服务,比如linuxsir的 www 服务要用 ip:80 来标示。

比如 LinuxSir.Org 的服务器上有FTP、SSH、WWW、IRC等服务,这些服务都用的是一个IP地址。为了能把这些服务运行起来,我们指定了WWW服务器用的是80端口。FTP服务器用的是 21端口等。这块好象不难理解。

查看Linux服务和端口的字典文件位于 /etc/services ,它 是一个字典文件, 并不用来分配端口。其内容有如下类似的:

ftp 20/tcp 注:传输命令
ftp 21/tcp 注:传输数据
ssh 22/tcp
telnet 23/tcp

有些服务一般是采用默认端口,比如 ftp服务器默认端口是21,ssh服务器端认端口是22,telnet默认端口是23 。当然您可以改变服务的默认端口,以增强系统的安全性;我们在以后的教程中,会涉及到此方面的内容。


5、套接字接口;

套接字接口是进程之间相互通信的网络连接接口。


6、关于本文;

这一节主要讲的是TCP/IP的基础知识,我写这些内容实在是眼高手低。在写的过程中向Pandonny、etoy 、Linuxfish等弟兄请教,才勉强把初稿写出来。至于是不是对的,我不敢说,还是请高手指点吧。有的地方的确需要补充,但又不知道如何下手。

本来五十米的竞赛中,我最快能跑到6.7秒,但现在要求自己跑到6秒,实在是超出我的能力。所以这也是最痛苦的一篇文档。再一次请教求高手指教。

如果说哪有现成的文档,就近抄来,我看没有必要了。现成的文档是多,但做为这个系列文档,我还是希望能出在LinuxSir.Org 上,用最简单的话把比较深奥的理念条理化、清晰化。对于一般用户来说,只要了解一点基础就够了,没有必要知道TCP/IP的所有东西。

还是那句话,学为所用,用为所学。洋为中用,旧文今用,但得更造一下。

谢谢;


7、致谢;

本文得到了pandonny、etoy、Linuxfish 等三位弟兄的帮助,在此致谢;

Read: 667