|
作者:匙 转自黑基bbs原创精华版 % ~4 e# E" A( g3 S/ S: b
版权归黑客基地所有,转载请注明出处 * X; B' ^5 ^7 i5 j7 ?+ C
0 n" x' b1 I* `% S. t* d
看到标题,! N1 p. z* S, }7 M' G
你不会认为这里说的是路由模拟软件吧?5 x8 j1 p# y; p, Y! z
不啊,说的就是一个台普通终端。
1 D8 A+ Y* H; V* O' z0 t$ }而且是单网卡的机器。
5 s" S% o: Z- u" w- c也许你会说单网卡的机器做路有器不奇怪,/ i, @2 j0 L# Z
比如类似cisco单臂路由…… ( V" M/ Y( Q+ n, ^% K4 r
但是这里说的就是一台再普通不过的机器,
5 V; x5 Q6 R) W甚至是刚刚安装好的win95。
4 K# W: m3 N! e1 N- i1 @8 d……" y1 W7 }! T/ L) b: i: K2 S
其实是讲ip协议在单机中的基本运行,; O3 A- Q- L5 K, j" g3 s
本文比较片面,7 x% Y7 A. q+ B' ?6 U3 p. h
因为对ip协议在终端的运行机理没有深刻的理解。
0 `1 l8 r8 K6 j d/ X: w4 Qip协议在电脑上安装后,
, }. \" Z) i3 k" V就变成了你上网的基石,
! t: z3 v# \' b: j5 y每一步连接,
$ n; d( w2 l' W* [3 i4 t8 b# g每一步探索,9 |1 U% I% ^! q5 w7 y
都由ip协议群在幕后安成。
. o/ \3 _( I; y- [( x5 Uip协议的安装是要和网络接口(NETWORK INTERFACE)绑定的,
) }/ O* K6 F. T5 L# s也就是说要和网络适配器搭配着安装。) x' j5 J& f# B' W) e4 s1 Z
比如:MODEM 网卡、 虚拟的网络适配器、 VPN网络适配器、 拨号网络适配器、 等。 2 m! r- L# V* S2 r8 k
IP协议安装后,+ d! w0 i% r; q6 n) g
会为网络连接创建堆栈,
" O" { {5 y* K+ {! ^' X1 i8 e+ u! U- b6 N为自己创建一个127.0.0.x的本地回路,
& u6 N9 A: X/ l! ^自动获取或者等待用户手工设定一个IP地址,2 R1 c: W, d8 w0 U
向网络公布自己并探索相邻的协议载体,
& G, p4 b2 u3 ^) s9 u$ x/ ~侦听来自网络的数据包,
5 |' c) s9 E( s O) i按照IP属性设定的DHCP,DNS,GATEWAY等网络规则通讯。
- C% C& ]3 x. L8 yINTERNET中不同网段无法直接互访,7 {4 c9 F; y! ?! b( b& v
需要借助于路由器包转发功能解决,5 z) Q% O$ M- a, N" C
规则的根据是一个自动或者手工编制路由信息表。 : v* ~( Q# u/ B3 {, x) o1 i
其实在单机内部也是存在包转发过程的,
# c( c0 m# C- a; x3 U/ ?ROUTE命令可以为我们展示一张路由信息表:
2 R7 q' ?8 C5 h6 WC:\WINNT\system32>ROUTE PRINT# L i# R& @" j. J- o
===========================================================================
7 j% {1 g; q9 z; EInterface List& x2 z* s4 Q: X; v9 ?* l
0x1 ........................... MS TCP Loopback interface0 R5 A' |% \1 Q3 ~, a
0x4000003 ...00 XX XX a8 XX c7 ...... Intel(R) PRO Adapter
# `4 m; N& Z& x/ W===========================================================================
6 L; t' d# r7 c===========================================================================3 F J+ Z2 P8 O8 X1 p3 J, s* }: q
Active Routes:% Z! m4 l" o) i2 ]6 L( ]: l
Network Destination Netmask Gateway Interface Metric! R v U# B; L& `2 o
0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.111 1$ K" s9 M4 S+ f- H% d g3 a8 e
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
) u, O. f1 }$ I0 H: M 192.168.0.0 255.255.255.0 192.168.0.111 192.168.0.111 10 ?) @5 U; e+ F" Z, C0 l* {
192.168.0.111 255.255.255.255 127.0.0.1 127.0.0.1 10 \2 X2 v. j& {/ J9 |8 k3 X
192.168.0.255 255.255.255.255 192.168.0.111 192.168.0.111 1
: U( \) W* f# k. n4 B" g 224.0.0.0 224.0.0.0 192.168.0.111 192.168.0.111 1" o4 n9 |9 C7 S* Z: ?
255.255.255.255 255.255.255.255 192.168.0.111 192.168.0.111 1% m* K& V# j0 X! I) s6 d6 t
Default Gateway: 192.168.0.1
6 s+ `3 | X1 a/ M0 v4 ^===========================================================================$ m# N" S% q; N: y) x; _9 P
Persistent Routes:
+ S8 _% J: b; \5 U& H/ H None
+ a- J7 A* R* ^0 a0 H这张表告诉我们单机内部IP协议是怎么样维护着不同网络段数据包的转发,
/ o! K5 I# \# i8 a' t& D6 X也许你会认为电脑pc应该只存在于一个网络段,
, `" ~* I' b$ o8 k+ J/ }* p宏观的看是这样的,/ j+ [5 @( |. j, J2 d2 W* h2 |
这里说的却是从协议内部微观角度查看。 " A* \! n7 f6 e9 v# Q
在内环境中,
$ V& ^$ H+ q: h电脑工作相关的网段是:
& @3 r0 x9 f/ @1: 255.255.255.255 255.255.255.255 192.168.0.111 192.168.0.111 1
: a3 Y% O" [8 n2 y面向网络接口的广播,不论你是什么网络段,LAN还是INTERNET,都存在这个网络段。他是这台电脑与身边IP
1 K0 W# U9 B8 S, A G环境通讯的基础。
' \+ E b& |4 J+ X; m3 Z6 F2: 224.0.0.0 224.0.0.0 192.168.0.111 192.168.0.111 1
9 m! e5 P# m( w多播地址(multicast)同样是探知网络。多播地址利用不同的多播地址所代表的协议或者设备 有针对性的对网 / I0 I- G, Z% w
络环境进行发现。 $ B A( u! g- R" j* {
3: 192.168.0.255 255.255.255.255 192.168.0.111 192.168.0.111 1
" v/ L/ J2 C3 W' R( h- d本计算机所在网络的广播地址。他的存在是与同一网段的机器进行通讯的基础。 ' i9 x- a* t- S3 m- w
4: 192.168.0.111 255.255.255.255 127.0.0.1 127.0.0.1 1 ; J$ } a! k! b7 m
本计算机自身IP访问自身IP的环路。这个路由定义了如果这台计算机访问自己的IP不要经过别的网关,直接通
5 X6 s2 w' B2 ^. Q$ n: G) O7 J' \过127.0.0.1本地回路IP访问自己。相当于自己是自己的网关。 ( G+ i7 {6 S& t) W
5: 192.168.0.0 255.255.255.0 192.168.0.111 192.168.0.111 1) V6 u- o5 ]! q9 q& i* ?3 x
本计算机所在的网络地址,代表了一个网段。
) b8 J. }8 Y. j$ I2 N3 X$ C+ z6: 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
' B5 ~* \ P8 `& z" r! l$ IIP协议规定的本地回路的固定地址。只要安装了IP协议,就可以用127.X.X.X访问自己。为了数值的统一,都 6 T4 ^6 {# u0 \. f# K* ?/ L
用127.0.0.1代表自己。
. g7 R3 w+ i/ O& ~( W: u. d, @4 i( y7: 0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.111 12 q, R* N; h5 {0 d/ V. W) y
这个和一般路由器配置的默认路由是一个含义。代表了面向应用的,所有目标不是多播,广播,本地回路,本
, [1 \$ d6 x2 Q5 A) M. `/ b地IP的数据包,全部通过指定的网关进行转发访问。
0 [6 J8 _6 C' K: w3 c+ m& U4 R/ Z% v1 N0 V' \- Z+ r
路由表在路由器中的配置有很大学问,9 [0 ?: M k% Q# U( l5 t: S: W
很重要的就是表项目的顺序。
6 _. O" S4 K/ d! E& A4 x/ E y5 H4 @4 `! t一个顺序合理的路由表代表了性能、安全、高效。
* C4 }0 a2 J% k2 K本地计算机中的静态路由表,9 b' B; i% b' i: w$ q
如上面所述的表,) H; c% u3 W O' l
也同样采用了选择顺序,/ ?* ?& C) D2 U+ e$ f8 d/ l* c
从下到上。 - p7 {! j- ~/ J+ U) C& Z
本地计算机的环路路由是本地静态路由表的特色,6 U6 ]6 w8 [1 r/ o& o5 B
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1" Q0 B. m3 s' a& t$ z4 Z$ T
192.168.0.111 255.255.255.255 127.0.0.1 127.0.0.1 1 i. ], T& t6 \
这个条路由信息可以:' K0 m- ]+ n- ?! E
1: 有帮助的。
9 j- ] ]: u" ?6 T, Z' s$ d( y可以帮助没有真实网络环境的人,测试本地网络应用程序。用得最多的是本机构造IIS、网络程序编制等。- l6 O0 ]9 r* [3 S. K
2: 安全的。
' n" I& U* k' `5 O8 _) u5 L: Z, x$ F比如计算机在启动过程中运行的很多虚拟子程序,服务程序,防火墙,系统进程等,都要访问甚至和连接本机 1 i$ `) h% m+ X7 t
其它程序端口。有了本地回路这种路由,就不用通过网关,很大程度避免了系统信息外漏。& \5 G* l \6 T2 r" L( u4 R
3: 高效的。
- I* `6 Z0 E4 e$ @减少网络中的流量,并且直接采用本地环路,减少网络质量差的错误等待时间。
4 T% h; n% h9 S" g7 o6 h用户完全可以自己增加和修改路由表,9 \- W' o5 T3 R" B. O0 [6 z5 G
比如一台电脑和其它电脑连接成为网络。8 [8 n3 J$ ^# E1 R- b' k3 E, O. l# _% ^
但是他们的网络ip不在同一个网络段中,
& p: ?; u+ V; p) c6 ?可以通过修改静态路由表," U1 W1 T% w9 ~/ ?9 ]
达到网络相通。
# c Z4 j. c8 Q8 f这里要说的是,
' F4 Z7 y8 s! s% R有网友问怎么修改静态路由表和不同网段通讯,
# O5 R6 c" N6 x( a ~. ^网上的我见过最多的回答是:
. g, b8 u6 l) [) A! ~5 }! p“用 route add xxx.xxx.xxx.xxx mask 255.xxx.xxx.xxx xxx.xxx.xxx.xxx metric x 增加一条静态路由就可
3 R/ J y0 J0 b以了”
* g. a0 _/ H) R* I8 ]/ Q. K& l但是实际上要增加两条。; _2 c: l6 ^& l1 n9 F3 Q
网络协议服务的对象就是多方的,
: U8 M; H; \1 G8 M; J0 ]* a2 t' S3 ~+ T$ T只有一台机器知道一条规则是不够的啊,
7 N3 V* `3 p# c+ @2 \1 c所以两台或更多机器上面同时增加到对方的静态路由信息,
8 U5 l, ~. O; _: w- i$ U' q% v) D双方都知道怎么连接,
. c+ t p0 M" r/ R0 A! R才能建立连接。 , U1 [1 U+ e( g7 W/ ?( L
本文由于我对tcp/ip的理解还很浅薄,
( N. V( E" c4 K; \% B8 ]有不对的地方,
& v( `: ^+ \- h' q7 [1 n4 a还请高手赐教。
. F& V9 h5 w4 i/ A附:' P7 @, ], }( f% F. M2 w
route命令
! t. o( l5 A7 AROUTE [-f] [-p] [command [destination] [MASK netmask] [gateway] [METRIC metric] [IF interface] |