|
作者:匙 转自黑基bbs原创精华版 3 _" R/ H# I/ G5 e- k5 h
版权归黑客基地所有,转载请注明出处
; M2 W$ j0 s' s5 |$ t3 | O! h/ c& Z
看到标题,: O! a! E. [+ M, X& j
你不会认为这里说的是路由模拟软件吧?- m+ E' J7 W' K: g+ g; H
不啊,说的就是一个台普通终端。% w7 K$ k' e0 _3 n( j4 w Q
而且是单网卡的机器。 ' Q- }9 w, b+ \3 o, K+ a6 L
也许你会说单网卡的机器做路有器不奇怪,
8 c0 s, z$ B) E2 c& s; \比如类似cisco单臂路由……
- @1 S1 ]% u S# j0 D, Y但是这里说的就是一台再普通不过的机器,
* K" `' x& h; }% R. w" o8 P% j甚至是刚刚安装好的win95。
8 w/ ^/ b+ `5 r……
+ C. w" q G* T1 X a其实是讲ip协议在单机中的基本运行,
; i1 N2 G, U" i& V本文比较片面,
2 L- O1 T9 e, e1 t. K因为对ip协议在终端的运行机理没有深刻的理解。
7 e: f* |8 M' w& N/ Fip协议在电脑上安装后,8 S, A, [; ^: a5 G$ n1 d o
就变成了你上网的基石,- |% Z" H8 b* e+ ?" e
每一步连接,1 ]8 A( }! y3 q% ^' K* }2 n
每一步探索,1 F1 g4 v0 S# ~7 N9 @7 K
都由ip协议群在幕后安成。 , _3 U9 n% t; F0 R
ip协议的安装是要和网络接口(NETWORK INTERFACE)绑定的,
6 @) V. i2 E3 }" v也就是说要和网络适配器搭配着安装。& m$ Q1 _8 i. G0 ~( f- F
比如:MODEM 网卡、 虚拟的网络适配器、 VPN网络适配器、 拨号网络适配器、 等。 : R! I. O2 b/ K6 G: j- D
IP协议安装后,
8 i+ d) P- Y7 Z7 J- y0 T) ]会为网络连接创建堆栈, w! b5 v4 C3 C5 m" Q( P, i
为自己创建一个127.0.0.x的本地回路,
) t* o& V, O+ ?# L自动获取或者等待用户手工设定一个IP地址,
" ~& I4 }( q1 ?向网络公布自己并探索相邻的协议载体,2 P* ~7 {. k0 l" k: ?$ R f8 T$ Z
侦听来自网络的数据包,5 n4 ~8 y, s/ L% } C( N
按照IP属性设定的DHCP,DNS,GATEWAY等网络规则通讯。
, z9 a/ n0 b: U! w0 h- A% H7 H9 ]5 SINTERNET中不同网段无法直接互访,, I2 h! k$ l% U6 w
需要借助于路由器包转发功能解决,
8 X/ q1 p) s; Y规则的根据是一个自动或者手工编制路由信息表。 & y4 H* v. D7 K6 f4 h5 q5 a1 o
其实在单机内部也是存在包转发过程的,, F5 n) |) ~7 K& j% r
ROUTE命令可以为我们展示一张路由信息表:
% C0 T1 K6 \1 k2 [' |6 O" YC:\WINNT\system32>ROUTE PRINT, Y! M. |) v1 E \9 C! |
===========================================================================1 `0 y" R) T _$ d, n
Interface List& h+ ?4 A8 @! N6 W3 Y* o
0x1 ........................... MS TCP Loopback interface M; {' `( Q* L9 J- z9 F
0x4000003 ...00 XX XX a8 XX c7 ...... Intel(R) PRO Adapter" w" _2 @, U, o5 Y& _* L0 u
===========================================================================
# s8 g& l" q. S& @0 ~& |8 b; v===========================================================================( z }$ v. M# C" g( \; b! q) h& d) t
Active Routes:" Y& Q( |$ e+ [1 i% U
Network Destination Netmask Gateway Interface Metric
4 H% M! M" L% U6 J! R; v s( V 0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.111 1
# o6 M) l* ?. ]4 s' u6 U) W" d- @2 } 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
& K2 d3 v$ A1 F$ B& H; m8 d 192.168.0.0 255.255.255.0 192.168.0.111 192.168.0.111 1
% t9 ]9 G0 e/ ~) i 192.168.0.111 255.255.255.255 127.0.0.1 127.0.0.1 1! s: C2 W( j" a2 o0 d8 q9 N2 L$ I
192.168.0.255 255.255.255.255 192.168.0.111 192.168.0.111 1
4 O$ Q. X# w8 M+ [9 T3 E4 G 224.0.0.0 224.0.0.0 192.168.0.111 192.168.0.111 1( a$ Q1 F0 o! ?+ ]
255.255.255.255 255.255.255.255 192.168.0.111 192.168.0.111 1
5 ?7 V4 K1 d0 N8 r$ a, @Default Gateway: 192.168.0.1% {/ K! o8 }- c; e. X6 b/ m
===========================================================================
' ]9 f# j4 t; F4 L9 yPersistent Routes:
0 Z0 ]( U& A; _/ v$ }. N1 |/ k' u None J" k; B8 p4 N0 Z8 l/ }
这张表告诉我们单机内部IP协议是怎么样维护着不同网络段数据包的转发, # B3 S2 W9 F0 U- q- J! k+ c
也许你会认为电脑pc应该只存在于一个网络段,
& y- |. T$ L4 Q4 A: e% v宏观的看是这样的,
/ w- o- j* q+ j) Z这里说的却是从协议内部微观角度查看。 . |# ^/ I$ O" S" L
在内环境中,
0 c( N) j( R* \; t电脑工作相关的网段是: % }- l! M3 X( m& D Q& ^
1: 255.255.255.255 255.255.255.255 192.168.0.111 192.168.0.111 13 F+ T0 |) G! W4 S/ E
面向网络接口的广播,不论你是什么网络段,LAN还是INTERNET,都存在这个网络段。他是这台电脑与身边IP 9 `1 i7 y$ \4 p' |
环境通讯的基础。 * b/ Z2 O; g% p; t# ^7 g3 P8 G5 m" M
2: 224.0.0.0 224.0.0.0 192.168.0.111 192.168.0.111 16 A/ Q: `, r; {( h6 I9 a
多播地址(multicast)同样是探知网络。多播地址利用不同的多播地址所代表的协议或者设备 有针对性的对网
v, U/ y; ^2 ]" o: |9 x8 n' q络环境进行发现。 ( q) Y4 H6 E! P: ]
3: 192.168.0.255 255.255.255.255 192.168.0.111 192.168.0.111 1" u% g- Y1 a9 Q7 F ]/ U4 x
本计算机所在网络的广播地址。他的存在是与同一网段的机器进行通讯的基础。
9 \! q7 s/ h% {4: 192.168.0.111 255.255.255.255 127.0.0.1 127.0.0.1 1 L/ }" l1 f* A3 G+ M9 F
本计算机自身IP访问自身IP的环路。这个路由定义了如果这台计算机访问自己的IP不要经过别的网关,直接通
% P2 _, S$ i" Y9 d7 Y过127.0.0.1本地回路IP访问自己。相当于自己是自己的网关。 ! h/ j- i" Q; G6 d4 M* J8 c7 o: A
5: 192.168.0.0 255.255.255.0 192.168.0.111 192.168.0.111 1! \& Y. u; {5 x3 P
本计算机所在的网络地址,代表了一个网段。
- U) ~* I' D8 k% A! s6: 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
/ G' v" X5 v# { {IP协议规定的本地回路的固定地址。只要安装了IP协议,就可以用127.X.X.X访问自己。为了数值的统一,都 0 R# |5 ^+ N/ f y7 z; p( n
用127.0.0.1代表自己。 ) W9 f2 I. c3 D* [( A
7: 0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.111 1
! W, n& \" V' c; |: b! \* v这个和一般路由器配置的默认路由是一个含义。代表了面向应用的,所有目标不是多播,广播,本地回路,本
% d. ^, j& g- s) S6 R地IP的数据包,全部通过指定的网关进行转发访问。 ; P* f. N& @! b8 o n
& Q6 c% [$ l6 v |& _1 U6 r7 R路由表在路由器中的配置有很大学问,/ |# G8 `' h ?$ x
很重要的就是表项目的顺序。
4 F7 \& e& ~ L一个顺序合理的路由表代表了性能、安全、高效。 & ~; p7 }& _5 F6 V, F: w! s' l" ?
本地计算机中的静态路由表,1 ?, f4 u+ a( m# T
如上面所述的表,
9 K' v. k& n/ V' ?. q ~也同样采用了选择顺序,
$ n; s3 ^6 N/ Q% a }; x从下到上。 0 ^- l) l" J% d; W
本地计算机的环路路由是本地静态路由表的特色,& k& f" @ ~. ]: _$ e0 Y
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
2 ?! _6 n# c6 V2 W) f" m( H$ ]$ N192.168.0.111 255.255.255.255 127.0.0.1 127.0.0.1 1
2 y$ R$ g4 p+ t5 r4 x/ F* b这个条路由信息可以:
3 E3 A9 l7 C" g: H; t& @1: 有帮助的。! e: o5 P o2 A
可以帮助没有真实网络环境的人,测试本地网络应用程序。用得最多的是本机构造IIS、网络程序编制等。7 @. J Z2 ~$ q0 N: o7 P6 M
2: 安全的。
" h3 j3 v( o" T1 X& C/ s& ]' y比如计算机在启动过程中运行的很多虚拟子程序,服务程序,防火墙,系统进程等,都要访问甚至和连接本机
+ s, L) H+ r/ [, Z$ W7 {5 w4 g其它程序端口。有了本地回路这种路由,就不用通过网关,很大程度避免了系统信息外漏。
# c1 B q- [5 ~2 G5 g# j- z) t3: 高效的。* g' k5 Y* b) \' D% y
减少网络中的流量,并且直接采用本地环路,减少网络质量差的错误等待时间。 * t" A0 n7 G, G
用户完全可以自己增加和修改路由表,4 ^. T! f5 r/ f6 \+ i5 }, }
比如一台电脑和其它电脑连接成为网络。6 e) q5 _3 j) ?5 P, }, ~9 O* t
但是他们的网络ip不在同一个网络段中,
2 ?0 f9 a3 h4 Q* b+ ^可以通过修改静态路由表,/ J6 C& Q: {* {1 G" K$ i
达到网络相通。 2 M# Z9 \/ l) {
这里要说的是,5 [3 ^0 b2 H8 v" n! s
有网友问怎么修改静态路由表和不同网段通讯,
* }0 \' ]) _" B8 ~网上的我见过最多的回答是:
6 `, s+ @ [: n6 l; I, g“用 route add xxx.xxx.xxx.xxx mask 255.xxx.xxx.xxx xxx.xxx.xxx.xxx metric x 增加一条静态路由就可
1 P- y% b" M; n. ?6 Q5 i. @' J以了”3 T1 O# }+ Q& F* a ]" b
但是实际上要增加两条。0 N, s0 \8 ~* ^
网络协议服务的对象就是多方的,
8 a5 L: e' z( |4 L8 \只有一台机器知道一条规则是不够的啊,; @7 m% W9 {" s) t% U' _
所以两台或更多机器上面同时增加到对方的静态路由信息,
: `7 E: i, _" s! ?( U双方都知道怎么连接,
7 y6 I: H; w. Q; h( S才能建立连接。
( c& K( e1 ]7 E2 R) `本文由于我对tcp/ip的理解还很浅薄,
0 [, Y* |; L$ s( l" u有不对的地方,
+ b9 k/ V5 @6 b4 }4 L' U还请高手赐教。
* f- @" V. o) Z& z; m B; {, h; G3 z附:
5 G: V# v1 X. `$ _route命令
2 L/ }* U! D4 U$ c6 ]( dROUTE [-f] [-p] [command [destination] [MASK netmask] [gateway] [METRIC metric] [IF interface] |