|
作者:匙 转自黑基bbs原创精华版
1 [+ @, w8 \3 m1 P `6 v$ o版权归黑客基地所有,转载请注明出处
6 g+ y& o2 A4 ]2 _* `1 a
0 ~9 U3 s2 y0 @+ c) K1 r看到标题,
: s8 [/ g5 z3 u" M! T你不会认为这里说的是路由模拟软件吧?
# V: O& e4 r! a9 w不啊,说的就是一个台普通终端。
7 M: j- [6 |, e3 ^. _2 q而且是单网卡的机器。
# G9 d0 ]5 |$ L. f) ]% P也许你会说单网卡的机器做路有器不奇怪,
. Q. M" {, l# ?* v3 y" I6 m比如类似cisco单臂路由……
1 x! ^4 ~% e" g, S4 W但是这里说的就是一台再普通不过的机器,
# M2 o+ y1 `! X2 {/ _甚至是刚刚安装好的win95。
$ Z/ C# x5 R( D/ @) s! F……7 P( B5 a8 p0 ^2 v x
其实是讲ip协议在单机中的基本运行," ~, q. X/ |. u
本文比较片面,
. `- r/ f& y! h- t因为对ip协议在终端的运行机理没有深刻的理解。
8 ] [7 p5 E8 g# Z/ eip协议在电脑上安装后,9 R9 P% W [4 D7 Q
就变成了你上网的基石,+ j. b! w1 l- {7 T* i& S }( K* R
每一步连接,
5 S- ?! x7 @# `. g5 e1 X& L* |每一步探索,
2 t, \+ f5 t+ p$ u" h$ O, O都由ip协议群在幕后安成。
9 H( x- v0 x& H. ^, l; G! S. _ip协议的安装是要和网络接口(NETWORK INTERFACE)绑定的,( h* I; T- g7 C6 C& ^% T
也就是说要和网络适配器搭配着安装。
" X6 R9 j$ \* p8 z" @; X$ t比如:MODEM 网卡、 虚拟的网络适配器、 VPN网络适配器、 拨号网络适配器、 等。 O3 F+ q8 ] `7 B+ D
IP协议安装后,
) O9 X" r- i; T" _$ Y0 W* V4 H会为网络连接创建堆栈,) |7 i" m! o7 n# _, f; H) X2 w% g$ y
为自己创建一个127.0.0.x的本地回路,% H+ k6 Y& D1 i1 d1 v
自动获取或者等待用户手工设定一个IP地址,
8 @. f' [# ?) O0 T5 d5 |3 e1 \3 k- x7 @向网络公布自己并探索相邻的协议载体,
, m& y5 u, B9 k侦听来自网络的数据包,6 B) S6 q( p# r. b# H6 e
按照IP属性设定的DHCP,DNS,GATEWAY等网络规则通讯。
" A, T) {: m2 fINTERNET中不同网段无法直接互访,
# h) W* \; b9 R2 k& D$ G8 n% H需要借助于路由器包转发功能解决,, W0 N; D/ h% ^0 U. }
规则的根据是一个自动或者手工编制路由信息表。 ; c% H# u% K+ j3 C1 J3 B h
其实在单机内部也是存在包转发过程的,
" b) V" c2 u$ K7 H6 r' b# H$ f; xROUTE命令可以为我们展示一张路由信息表: ) f7 b0 p6 v8 N+ v) g: p
C:\WINNT\system32>ROUTE PRINT
1 ?% j' A, @( Q. B- i' b===========================================================================
( [- D; \+ E8 C2 ], [Interface List
- r) g! e. E; i+ t0x1 ........................... MS TCP Loopback interface
5 ^. l0 J+ \# [1 M0 |0x4000003 ...00 XX XX a8 XX c7 ...... Intel(R) PRO Adapter
/ H. t0 M" U( V8 H0 X+ R: t0 K===========================================================================6 t8 g" r( j: @" S
===========================================================================
. }1 k @+ ]* d/ BActive Routes:
! E# f2 E) {/ w$ _Network Destination Netmask Gateway Interface Metric+ A- F+ R; K Y9 z$ {
0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.111 18 }* w% l# A4 [* u; _+ t+ K
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
% A9 Y! A1 n' h3 ]3 M* H* k$ q 192.168.0.0 255.255.255.0 192.168.0.111 192.168.0.111 1
6 E# X4 w9 V3 s' V% M* r 192.168.0.111 255.255.255.255 127.0.0.1 127.0.0.1 1
) @1 X5 B3 h1 H3 Z0 m( e 192.168.0.255 255.255.255.255 192.168.0.111 192.168.0.111 1$ @/ o0 i+ e, i! r8 o7 I f3 E1 x2 T
224.0.0.0 224.0.0.0 192.168.0.111 192.168.0.111 1 U: J7 y3 K1 `, j9 w
255.255.255.255 255.255.255.255 192.168.0.111 192.168.0.111 1( I0 L! Q* q- P" b3 t; H% C# r
Default Gateway: 192.168.0.1
0 I9 W8 P8 l; t( O# A===========================================================================5 A7 h" {. G! E/ w1 R
Persistent Routes:
+ K4 v/ O/ M& a. x None 1 i4 I+ F9 Q! y( J5 [
这张表告诉我们单机内部IP协议是怎么样维护着不同网络段数据包的转发,
2 q$ y+ g3 P" {3 e2 N& y$ y# h也许你会认为电脑pc应该只存在于一个网络段,6 f; y1 W) ?. T7 z- ]
宏观的看是这样的,: w+ o$ a9 ]9 R( d q; W( k
这里说的却是从协议内部微观角度查看。 1 y5 ?5 |3 k* I" @
在内环境中,
! D% S8 @8 }2 n% G电脑工作相关的网段是: : Q6 r/ M) e, G g @( G7 t
1: 255.255.255.255 255.255.255.255 192.168.0.111 192.168.0.111 1
" ? R, \. i9 I5 p2 Q( U3 J) h# S面向网络接口的广播,不论你是什么网络段,LAN还是INTERNET,都存在这个网络段。他是这台电脑与身边IP 9 z" E' b) W1 J6 K% B: i: \
环境通讯的基础。
( G$ o+ `8 v) m* Y/ ~, g/ J0 f( |2 _2: 224.0.0.0 224.0.0.0 192.168.0.111 192.168.0.111 1
$ ^$ M5 l" B% F多播地址(multicast)同样是探知网络。多播地址利用不同的多播地址所代表的协议或者设备 有针对性的对网
/ _- Q2 E! o6 ^络环境进行发现。 / M7 o0 u9 ]/ R) z
3: 192.168.0.255 255.255.255.255 192.168.0.111 192.168.0.111 14 r8 _/ ?9 ~; v
本计算机所在网络的广播地址。他的存在是与同一网段的机器进行通讯的基础。 T' a- v* d+ w0 |2 ?( S* c
4: 192.168.0.111 255.255.255.255 127.0.0.1 127.0.0.1 1
' d$ J% p; s! C" }5 O! M本计算机自身IP访问自身IP的环路。这个路由定义了如果这台计算机访问自己的IP不要经过别的网关,直接通 7 w* @$ ?! [4 W' C) Y
过127.0.0.1本地回路IP访问自己。相当于自己是自己的网关。
, ?# w% [) E! h4 x5 {6 g5: 192.168.0.0 255.255.255.0 192.168.0.111 192.168.0.111 1! a8 t: l. z' R$ A: V% _# ]
本计算机所在的网络地址,代表了一个网段。 / k' \% S( H4 G9 i7 t
6: 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
$ Z( \% r- b1 z. v% e: j# Z8 ^IP协议规定的本地回路的固定地址。只要安装了IP协议,就可以用127.X.X.X访问自己。为了数值的统一,都
% ]% w1 g2 u9 k$ O: v% `/ f: L* o用127.0.0.1代表自己。
5 Q4 u5 y7 t7 i7: 0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.111 1
) Z/ B/ v V! |. G& o; O这个和一般路由器配置的默认路由是一个含义。代表了面向应用的,所有目标不是多播,广播,本地回路,本
& D0 f0 [( b9 a9 y# W6 Z地IP的数据包,全部通过指定的网关进行转发访问。
2 C! V" ~' ]* D: u( q: [2 P% r% h: l" @& B9 j* K% r
路由表在路由器中的配置有很大学问,* |1 C+ a; ]2 R$ O% n! _2 v2 D
很重要的就是表项目的顺序。! C7 f6 g& B8 L0 N' H, a
一个顺序合理的路由表代表了性能、安全、高效。
' {* m# ]/ N0 ~1 U: v- C* N本地计算机中的静态路由表, ~9 D8 H6 m) Q: ?3 w
如上面所述的表,2 ^- M5 M6 @7 P& Q. p: O
也同样采用了选择顺序,6 y5 P& v% g( ^4 \- t
从下到上。
2 _+ R9 w y2 P# p }# ^本地计算机的环路路由是本地静态路由表的特色,
1 q0 r; o$ Z+ s- Y- q* V; E, a 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1! a+ V: E7 c( M. J! C
192.168.0.111 255.255.255.255 127.0.0.1 127.0.0.1 1, ?6 `, ~% F9 j) D# D2 w# }
这个条路由信息可以:- u! ~9 r1 B. V$ y% w+ S8 N2 d
1: 有帮助的。
. u8 P$ A7 n2 z" ^% U+ w可以帮助没有真实网络环境的人,测试本地网络应用程序。用得最多的是本机构造IIS、网络程序编制等。1 W4 `1 D( z* X8 R. D* R" N
2: 安全的。 $ x8 X9 X6 o3 Y, I6 ?0 E3 D; k
比如计算机在启动过程中运行的很多虚拟子程序,服务程序,防火墙,系统进程等,都要访问甚至和连接本机
- x+ U) W. b# ]. z8 i( b$ q其它程序端口。有了本地回路这种路由,就不用通过网关,很大程度避免了系统信息外漏。
# T) `* q" `! b J0 O8 }& Z) o3: 高效的。! v% }& z& l4 V# X0 s# s
减少网络中的流量,并且直接采用本地环路,减少网络质量差的错误等待时间。 ' V. p0 ~% m; M }; M3 W1 D$ m
用户完全可以自己增加和修改路由表,2 K6 Z0 @. A, T" X, v9 h! Z- K+ P
比如一台电脑和其它电脑连接成为网络。
8 ~3 a- N( y P8 Q. B; p* K但是他们的网络ip不在同一个网络段中,
' x0 v- b2 U, m可以通过修改静态路由表, X; f# i7 E. ^ I* b g
达到网络相通。 % W5 d1 h3 h/ f/ T
这里要说的是,
2 \* d) P: N$ \+ b7 j有网友问怎么修改静态路由表和不同网段通讯,2 U( m0 ^+ j, d8 I- T ~/ E" b T% e
网上的我见过最多的回答是:& h h( |* V$ C) Q& n
“用 route add xxx.xxx.xxx.xxx mask 255.xxx.xxx.xxx xxx.xxx.xxx.xxx metric x 增加一条静态路由就可 ! k0 {$ H# T9 p+ E
以了”
7 v. |7 r6 }4 g# P1 i4 @: n但是实际上要增加两条。
( | l. |- M! C: v* F网络协议服务的对象就是多方的,
7 t N$ Q4 r/ L" d0 ^只有一台机器知道一条规则是不够的啊,
& h: L' X: J/ B( e7 o所以两台或更多机器上面同时增加到对方的静态路由信息,! E0 R+ D. w+ P& A' ]9 n( x, Z5 L! D
双方都知道怎么连接,4 x3 F9 ]7 t1 F1 L' p
才能建立连接。
: Z) d; i9 U. t. V' d( _本文由于我对tcp/ip的理解还很浅薄,
. J$ Y& {' s: D Q A) P/ W有不对的地方,, N2 ~0 e* @4 ]
还请高手赐教。
( l" t6 i X( U附:4 u; K1 `4 n# H5 |/ E. X( {1 K
route命令/ m. o6 D. @9 A9 @+ C6 Q% Z
ROUTE [-f] [-p] [command [destination] [MASK netmask] [gateway] [METRIC metric] [IF interface] |