作者:匙 转自黑基bbs原创精华版
5 ]$ @+ C) g+ Z+ \版权归黑客基地所有,转载请注明出处
看到标题,& P7 V! L, A6 e- U$ n 你不会认为这里说的是路由模拟软件吧?% g( [$ K- O# Q1 m9 k 不啊,说的就是一个台普通终端。 N3 L. H1 v" _" ?" Y 而且是单网卡的机器。
也许你会说单网卡的机器做路有器不奇怪,% m }& a7 b: ]# W' {, @. [ 比如类似cisco单臂路由……
但是这里说的就是一台再普通不过的机器, 甚至是刚刚安装好的win95。
6 R) @& J/ j7 K k) s0 z4 x…… 其实是讲ip协议在单机中的基本运行,3 u9 V4 x }" g2 y3 l# t9 p% d 本文比较片面,$ f U+ o! O c9 M; Q 因为对ip协议在终端的运行机理没有深刻的理解。
9 g0 E8 T; ^. o+ n) aip协议在电脑上安装后,5 c$ S: q; M& q2 K7 S+ s 就变成了你上网的基石, 每一步连接,$ O* [1 p5 P# p1 K6 _ 每一步探索, 都由ip协议群在幕后安成。
ip协议的安装是要和网络接口(NETWORK INTERFACE)绑定的," D. E- B8 g# `+ T 也就是说要和网络适配器搭配着安装。& p: i) z: a* n; W: d 比如:MODEM 网卡、 虚拟的网络适配器、 VPN网络适配器、 拨号网络适配器、 等。
IP协议安装后,8 y/ _7 Q- u% |2 `/ J/ V! z$ _ 会为网络连接创建堆栈,, {" d( V# y- t) M ~/ o. u+ h 为自己创建一个127.0.0.x的本地回路, 自动获取或者等待用户手工设定一个IP地址,( Y( I* }* }0 V6 C) W 向网络公布自己并探索相邻的协议载体,; r1 q8 \) Q9 q, X 侦听来自网络的数据包, 按照IP属性设定的DHCP,DNS,GATEWAY等网络规则通讯。
/ g2 m5 u+ u# J" b6 GINTERNET中不同网段无法直接互访,+ Z! r; }3 U5 h1 x' x* U8 X( E I/ r 需要借助于路由器包转发功能解决,6 {. L8 d, Y( j J 规则的根据是一个自动或者手工编制路由信息表。
其实在单机内部也是存在包转发过程的, ROUTE命令可以为我们展示一张路由信息表:
C:\WINNT\system32>ROUTE PRINT ===========================================================================, w) c4 m6 d9 t9 E0 K Interface List7 _+ G0 ^$ _0 G+ o7 ?/ L( N: N 0x1 ........................... MS TCP Loopback interface9 B. C5 U6 L, B+ Q" m6 f 0x4000003 ...00 XX XX a8 XX c7 ...... Intel(R) PRO Adapter) G9 ~5 O' {0 T) R: A ===========================================================================: v: `# j9 v6 J2 H2 G$ U- b/ s =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.111 1 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1, y" V# t4 }9 W& s) O) s0 `1 Z4 H 192.168.0.0 255.255.255.0 192.168.0.111 192.168.0.111 1 192.168.0.111 255.255.255.255 127.0.0.1 127.0.0.1 1 192.168.0.255 255.255.255.255 192.168.0.111 192.168.0.111 19 t3 P2 g. e) z x. y! t9 A' c 224.0.0.0 224.0.0.0 192.168.0.111 192.168.0.111 10 p, y" W% _+ `. |% U, n 255.255.255.255 255.255.255.255 192.168.0.111 192.168.0.111 1 Default Gateway: 192.168.0.1 ===========================================================================; M) V2 Q; s5 R+ Z Persistent Routes: None
这张表告诉我们单机内部IP协议是怎么样维护着不同网络段数据包的转发,
也许你会认为电脑pc应该只存在于一个网络段,& a$ U+ Q& t" D* q' k 宏观的看是这样的, 这里说的却是从协议内部微观角度查看。
1 |% G: ?8 ~" W4 e9 E5 V3 ? p在内环境中,) b( m2 X2 U3 i( F: Y" E, g# J- Z) O 电脑工作相关的网段是:
1: 255.255.255.255 255.255.255.255 192.168.0.111 192.168.0.111 1# q; A+ q- k2 ~ 面向网络接口的广播,不论你是什么网络段,LAN还是INTERNET,都存在这个网络段。他是这台电脑与身边IP
( H# c$ s0 N! p& `4 }环境通讯的基础。
; N. F# A0 d3 Q1 h8 a2 U; c2: 224.0.0.0 224.0.0.0 192.168.0.111 192.168.0.111 11 L& a, B. v6 o& A. G 多播地址(multicast)同样是探知网络。多播地址利用不同的多播地址所代表的协议或者设备 有针对性的对网
: L1 s9 u4 d$ N C, `( ?络环境进行发现。
# q5 l# Z1 t7 q, [7 {! d* B, {3: 192.168.0.255 255.255.255.255 192.168.0.111 192.168.0.111 11 M7 @3 I& z3 W3 g1 c8 F3 e* [ 本计算机所在网络的广播地址。他的存在是与同一网段的机器进行通讯的基础。
8 C, B, C5 Q/ E4: 192.168.0.111 255.255.255.255 127.0.0.1 127.0.0.1 1 本计算机自身IP访问自身IP的环路。这个路由定义了如果这台计算机访问自己的IP不要经过别的网关,直接通
3 A7 y1 `/ U+ c' t过127.0.0.1本地回路IP访问自己。相当于自己是自己的网关。
5: 192.168.0.0 255.255.255.0 192.168.0.111 192.168.0.111 1% {1 U/ K& _) H- {; ]* ?* E 本计算机所在的网络地址,代表了一个网段。
' T+ ~& ~/ Y# c6 a6: 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 11 A8 n G _- b& F0 | IP协议规定的本地回路的固定地址。只要安装了IP协议,就可以用127.X.X.X访问自己。为了数值的统一,都
. X, e; J4 V( J& Z$ L用127.0.0.1代表自己。
7: 0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.111 1; i/ x [' u, r# m 这个和一般路由器配置的默认路由是一个含义。代表了面向应用的,所有目标不是多播,广播,本地回路,本
地IP的数据包,全部通过指定的网关进行转发访问。
2 d5 T( N5 [6 k% w' c 路由表在路由器中的配置有很大学问, 很重要的就是表项目的顺序。 一个顺序合理的路由表代表了性能、安全、高效。
本地计算机中的静态路由表, 如上面所述的表, 也同样采用了选择顺序,3 }2 u+ C* m/ O: e3 d& O) x 从下到上。
# t" q+ K7 D) c# |. N6 n" U本地计算机的环路路由是本地静态路由表的特色, 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1' |2 e8 `5 B* `( x0 ?& d 192.168.0.111 255.255.255.255 127.0.0.1 127.0.0.1 1; Z7 D3 ^8 L9 p Q, A 这个条路由信息可以: {7 Q% Y/ P% N$ s9 D 1: 有帮助的。 可以帮助没有真实网络环境的人,测试本地网络应用程序。用得最多的是本机构造IIS、网络程序编制等。9 E# J8 e, k2 p9 j/ o 2: 安全的。 比如计算机在启动过程中运行的很多虚拟子程序,服务程序,防火墙,系统进程等,都要访问甚至和连接本机
! K" b. C V! c其它程序端口。有了本地回路这种路由,就不用通过网关,很大程度避免了系统信息外漏。$ P3 D Q R R0 p; N+ p2 i0 i 3: 高效的。8 {5 z8 p( I) G9 e+ g! f; L( N) F 减少网络中的流量,并且直接采用本地环路,减少网络质量差的错误等待时间。
/ G& G2 l6 l! v( j: @# x( S用户完全可以自己增加和修改路由表,3 j* w/ X) K; F3 j$ J) y 比如一台电脑和其它电脑连接成为网络。& M7 K9 n" j0 R/ g# }2 D! W" C1 y+ A! M 但是他们的网络ip不在同一个网络段中, 可以通过修改静态路由表, 达到网络相通。
这里要说的是,4 }$ E8 \0 P/ o, v2 u: E 有网友问怎么修改静态路由表和不同网段通讯, 网上的我见过最多的回答是:1 z. T" o6 v4 t. E, ? “用 route add xxx.xxx.xxx.xxx mask 255.xxx.xxx.xxx xxx.xxx.xxx.xxx metric x 增加一条静态路由就可
以了”9 n1 o4 _3 S& Z; Y 但是实际上要增加两条。1 m: F: E ]% c2 h6 w8 m0 m; Y& v B 网络协议服务的对象就是多方的,$ {: ^- c" N" v5 m* S- J 只有一台机器知道一条规则是不够的啊,# R0 }4 t4 t2 x9 d! ?( x0 f 所以两台或更多机器上面同时增加到对方的静态路由信息, 双方都知道怎么连接, 才能建立连接。
本文由于我对tcp/ip的理解还很浅薄, 有不对的地方, 还请高手赐教。
( o: P' v4 y. `- b a5 j9 M附: route命令+ b0 ^' [$ k; u+ j; z ROUTE [-f] [-p] [command [destination] [MASK netmask] [gateway] [METRIC metric] [IF interface]
| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |