|
作者:匙 转自黑基bbs原创精华版 , a: k3 N* G1 P% h' ^% P# i
版权归黑客基地所有,转载请注明出处 4 y4 J7 x- T6 A* O
: ]+ [) X P$ V+ C: @
看到标题,
( [1 y5 l5 ~8 j3 w X4 C" |: K你不会认为这里说的是路由模拟软件吧?6 O' e( c+ b9 H% p
不啊,说的就是一个台普通终端。; \, f+ O* }$ r" g0 B! @/ _. k
而且是单网卡的机器。
3 g. s7 X+ J$ i: d; h也许你会说单网卡的机器做路有器不奇怪,2 D. O, G2 {- B$ K/ g! |8 U. {
比如类似cisco单臂路由……
3 F" l" L6 a' u: o0 o但是这里说的就是一台再普通不过的机器,& Q/ y& F1 U' u9 u* V
甚至是刚刚安装好的win95。
8 f+ Q8 `) I1 d6 A! o- a2 ~……# V) D$ M9 }' {# Z
其实是讲ip协议在单机中的基本运行," N. z: {3 P3 y- F& w- l- K" |) ^
本文比较片面,
( X' h+ z# }# P& Q& d( C0 Q因为对ip协议在终端的运行机理没有深刻的理解。
2 w4 z. u( V6 L h4 Y. wip协议在电脑上安装后,
, j# O2 w8 U+ D4 t, G& a$ G% U# V1 W就变成了你上网的基石,
& e4 {& J* ~$ @7 v! C$ X每一步连接,
( T6 Q+ x; w6 q! e/ b% V1 A每一步探索,) x0 q; b& S% D% Q/ f# o7 ]0 `
都由ip协议群在幕后安成。 7 ?2 g( N* g; a$ {) V
ip协议的安装是要和网络接口(NETWORK INTERFACE)绑定的,; s# o/ P: j" x
也就是说要和网络适配器搭配着安装。
3 J; p" u9 O6 _8 E比如:MODEM 网卡、 虚拟的网络适配器、 VPN网络适配器、 拨号网络适配器、 等。 H6 j: D5 P* O" v$ n
IP协议安装后,
6 \9 j" W) ]% o会为网络连接创建堆栈,7 ~3 ~& [* E+ Z! S3 l: Q+ y
为自己创建一个127.0.0.x的本地回路,- \! B/ N$ |- X, K2 Q% ` ]
自动获取或者等待用户手工设定一个IP地址,
( h8 P4 H+ ]; \8 u1 |" _+ ~8 b向网络公布自己并探索相邻的协议载体,
3 g6 J2 k% y; T侦听来自网络的数据包,
: j2 a7 g& r. E! o3 J2 Y按照IP属性设定的DHCP,DNS,GATEWAY等网络规则通讯。 ( k( i$ C/ M; o' z( y% C
INTERNET中不同网段无法直接互访," t; \6 q# K4 ~3 ` Q6 X
需要借助于路由器包转发功能解决,, h) t1 k6 U4 Y2 ~8 A7 g% ^ w
规则的根据是一个自动或者手工编制路由信息表。
& w3 s; n( X% i$ B' p8 T2 s其实在单机内部也是存在包转发过程的,2 v$ z- N& r: v3 C1 F$ T6 J+ v
ROUTE命令可以为我们展示一张路由信息表: * g& p& V2 X/ O
C:\WINNT\system32>ROUTE PRINT7 E) a6 A. `9 U$ F4 ?( Q& l
===========================================================================
, a# T" k2 @% tInterface List
* {" s' s$ J' Q0x1 ........................... MS TCP Loopback interface6 c1 C0 m. d3 ]
0x4000003 ...00 XX XX a8 XX c7 ...... Intel(R) PRO Adapter& g' c, n5 [0 X0 |$ X# n" f; \
===========================================================================% E# l2 v0 P" y* r+ e( \6 h
===========================================================================0 Y/ C( F. [: r" O' e
Active Routes:
" Q" _% |; v) f% u$ N5 fNetwork Destination Netmask Gateway Interface Metric
9 d! h l# J+ d+ B9 ~, F& K: a6 N5 ] 0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.111 1
! c, I' x& y" W" o \ 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1: s- V. @! f/ L5 I- k
192.168.0.0 255.255.255.0 192.168.0.111 192.168.0.111 1
- S, o1 G( U- A V 192.168.0.111 255.255.255.255 127.0.0.1 127.0.0.1 1
3 h. n5 L' w7 e$ ] 192.168.0.255 255.255.255.255 192.168.0.111 192.168.0.111 1
$ A! y. T+ k+ [* @3 G6 k, G' B1 ?/ `' j 224.0.0.0 224.0.0.0 192.168.0.111 192.168.0.111 1$ r% v- c8 m* Y3 b3 S& Z
255.255.255.255 255.255.255.255 192.168.0.111 192.168.0.111 17 T/ ]7 X9 x/ Y; b
Default Gateway: 192.168.0.1
6 r" O; t8 c3 [ j===========================================================================& p3 B9 S* K7 Y& A
Persistent Routes:
+ }' e: ^) g( C3 G None . E5 x: a- p T& h+ c8 _
这张表告诉我们单机内部IP协议是怎么样维护着不同网络段数据包的转发,
' ?0 I; G, Y+ J也许你会认为电脑pc应该只存在于一个网络段,( _8 v7 c( W) n) m* i
宏观的看是这样的,; e" @& W7 T0 y- u; e2 ~/ u7 e! `
这里说的却是从协议内部微观角度查看。
% N1 d0 j) A4 a7 J在内环境中,/ `* V5 ?7 ~- s
电脑工作相关的网段是:
* I( s b! x( V! Y4 Y0 n, q$ N1: 255.255.255.255 255.255.255.255 192.168.0.111 192.168.0.111 1
# I+ B7 j0 E; q* @面向网络接口的广播,不论你是什么网络段,LAN还是INTERNET,都存在这个网络段。他是这台电脑与身边IP 0 {" H, e+ n* W" O
环境通讯的基础。 . M. y& l% l: j& X3 F6 m( t$ t
2: 224.0.0.0 224.0.0.0 192.168.0.111 192.168.0.111 1- B3 T' w2 o& O, R
多播地址(multicast)同样是探知网络。多播地址利用不同的多播地址所代表的协议或者设备 有针对性的对网 0 A% X8 u8 D6 I& D6 M9 T
络环境进行发现。 8 [6 _( \/ z1 Y0 E
3: 192.168.0.255 255.255.255.255 192.168.0.111 192.168.0.111 1+ z# {) j4 ^$ s7 d) q3 i( ~9 n( I
本计算机所在网络的广播地址。他的存在是与同一网段的机器进行通讯的基础。
1 V: H$ A3 r# {! ~- ~' A' g4: 192.168.0.111 255.255.255.255 127.0.0.1 127.0.0.1 1 6 {$ }! }/ a3 L- j/ l% ~0 N
本计算机自身IP访问自身IP的环路。这个路由定义了如果这台计算机访问自己的IP不要经过别的网关,直接通
. I; b) E% V8 W* H @5 S) j6 b) p过127.0.0.1本地回路IP访问自己。相当于自己是自己的网关。
) n6 t* d' B1 M; D H5: 192.168.0.0 255.255.255.0 192.168.0.111 192.168.0.111 14 z* ~) g' L* T( n3 Y- N5 ?
本计算机所在的网络地址,代表了一个网段。
0 Y# E# l: [9 {6: 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
& F0 k/ y3 W" OIP协议规定的本地回路的固定地址。只要安装了IP协议,就可以用127.X.X.X访问自己。为了数值的统一,都 9 J6 ~; q9 F U8 t$ ^7 J5 ~4 b
用127.0.0.1代表自己。
. ^2 l) k5 R& O% g" C: t7: 0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.111 1
( S& G3 M- L- v) ~0 I5 I6 y% ^8 Z这个和一般路由器配置的默认路由是一个含义。代表了面向应用的,所有目标不是多播,广播,本地回路,本
' V( q3 X, F5 m% p" ?: }地IP的数据包,全部通过指定的网关进行转发访问。
1 C6 s2 _- J! J2 X
7 J: O9 |& p& B4 M- R路由表在路由器中的配置有很大学问,7 G" O; M1 E! o# p
很重要的就是表项目的顺序。% l' a- f- X7 `+ W' b, H' R
一个顺序合理的路由表代表了性能、安全、高效。 / o+ \' G! m. m! U5 a
本地计算机中的静态路由表,
3 K( z# E I! a7 N' a如上面所述的表,
+ R% S) h" H. R$ L5 K* y8 q3 V8 l: h也同样采用了选择顺序,/ Z* m3 v8 q3 ?% M1 R( H
从下到上。 1 d, o& {# W7 K
本地计算机的环路路由是本地静态路由表的特色,
" |. F" d" G! \6 r# ]$ o+ K: x 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
/ I" [5 ^ N+ J9 a192.168.0.111 255.255.255.255 127.0.0.1 127.0.0.1 1
& P7 S! j6 u' N9 |5 i0 b6 O这个条路由信息可以: n4 ~6 U& L- m. C
1: 有帮助的。7 Q! V8 ?5 c& X0 W0 Q+ Z
可以帮助没有真实网络环境的人,测试本地网络应用程序。用得最多的是本机构造IIS、网络程序编制等。
' V- [ u$ T6 a6 g2: 安全的。
g% Y( Q% B# m% ?8 D k比如计算机在启动过程中运行的很多虚拟子程序,服务程序,防火墙,系统进程等,都要访问甚至和连接本机
0 B9 M V7 @, S6 R8 H2 l- z其它程序端口。有了本地回路这种路由,就不用通过网关,很大程度避免了系统信息外漏。
8 p, x v( ] v! Y0 u3: 高效的。
B6 \* ?5 d0 y y- e减少网络中的流量,并且直接采用本地环路,减少网络质量差的错误等待时间。
9 f: B! o/ T$ D" a用户完全可以自己增加和修改路由表,
& p' Q P; h1 O+ ^9 ?* i" P比如一台电脑和其它电脑连接成为网络。0 `1 I, C7 X4 i1 E: _# l
但是他们的网络ip不在同一个网络段中,
( h7 e V8 ~. S- ^% i$ r7 O1 L# H可以通过修改静态路由表,6 U6 w" Z# s ]( }
达到网络相通。 * F3 W4 q* o V( \( W
这里要说的是,$ |2 d# ^% E) z8 g2 j. C9 w" A; `
有网友问怎么修改静态路由表和不同网段通讯," I" h6 S9 Z, `/ k3 r
网上的我见过最多的回答是:
9 N( o! J+ y# B* e: x; l“用 route add xxx.xxx.xxx.xxx mask 255.xxx.xxx.xxx xxx.xxx.xxx.xxx metric x 增加一条静态路由就可
1 A0 H9 N+ s' e7 H+ h E& c3 [以了”. E) s' K! m1 f( ?# t1 {- f
但是实际上要增加两条。2 f; A5 U& U, l% ]: _' f8 m
网络协议服务的对象就是多方的,
+ S/ v. i1 {$ j' e4 Y9 E只有一台机器知道一条规则是不够的啊,
! _/ Q1 F9 N! R& g所以两台或更多机器上面同时增加到对方的静态路由信息," m. F; C _+ |& o2 L9 m2 h
双方都知道怎么连接,
+ [- U; N6 g/ R3 Z1 u才能建立连接。
& H+ t* P8 O: ]本文由于我对tcp/ip的理解还很浅薄,
' G1 b' S( f1 T8 L& ~9 {$ d! A: `有不对的地方,
% e* `: ^9 |# {& c3 t! o还请高手赐教。 8 a3 Y: c! u8 {. O
附:
h% a. ^* ]! h% rroute命令
e6 F J2 m9 q) z# u6 GROUTE [-f] [-p] [command [destination] [MASK netmask] [gateway] [METRIC metric] [IF interface] |