就算只有六十亿分之一的机会,我们还是会邂逅。 收藏本站
登陆 / 注册 搜索

阅读: 6K   回复: 4

一块网卡的自述

仗剑天涯论坛大牛 2017-7-4 23:49 |显示全部楼层

今生相逢便是缘分,何苦去怨恨,何苦去仇视。

主题破百
        我知道我一生的使命就是传递信件,但有一个前提:我需要知道对方的地址才行,其实我们网卡都有一个全球唯一的地址,这个地址一出生就确定了,就像你们人类的身份证一样,终生不变。
" c, ~: E' F; W$ S0 P) u2 b! C: ?, P% t
        无论我走到哪里,我都拥有这个唯一的标志:11:27:F5:8A:79:54
% Q( W3 \9 d" U) [4 i+ ?  f3 Z
        挺长的是吧,你们人类把它叫做MAC地址,简单起见,你可以叫我“TP-Link7954”
7 `# F3 D6 R. H6 y( t; \% W9 d( e8 o. w& C& a
        刚开始的时候我非常孤独,因为这台电脑虽然经常开机,但却不联网,真不知道主人是怎么想的!0 q7 J% b2 ~- ~

2 \- P' |% |" b, G: P8 A3 C        不上网就没人来找我发信,不发信我也就没什么价值,也没人搭理我,我整天听着CPU阿甘和金士顿内存在那里喋喋不休的聊天,真是烦死了。8 l' l- T( U6 O$ x% F' k( @* A
$ N" C) Y" e7 y2 J. H' U  q* p. l: ?
一块网卡的自述 Internet-Service.jpg

0 w: ~& d  W# i4 \/ Z        只是这两人都记不住对方,每次重启都像是第一次相识,实在是太搞笑了。#j318:
& M0 k, Q0 W8 p% [, S$ C+ X7 c  t" q
D H C P
       
        在我入住机箱30天以后,音箱向大家报告说:“主人终于决定要上网了”这绝对是个重磅新闻!
: E0 ]3 a8 g+ i4 O' [9 x5 ^3 o
- y2 F5 h# N# c        我很兴奋,大家也很兴奋,早就听说外边的世界很精彩了。一天晚上,只听到“咔嗒”一声,一个RJ45的网线插头便和我亲密接触了。$ R% T( g* x" K; i/ T# ]5 B/ j
' r7 J1 m8 `1 \7 ^: u, ]
        网线的那头传来了陌生而熟悉的声音,我的潜意识告诉我,那是交换机在转发信件。CPU阿甘看到了这种情况,也不和金士顿内存聊天了,他对着我大叫一声:TP-Link你在等啥,赶紧上网啊。
5 q/ k3 R5 R6 ~* x* O3 j) d
1 c; E* ?, d6 g        这是他第一次和我说话。  [0 x. r) M9 U3 B! e8 _5 ?% t" f# S
$ t& j/ C' n; q; u, S, X) B
        操作系统老大是见过世面的,他镇定的说:“心急吃不了热豆腐,我们得先搞一个IP地址才行。这需要用到DHCP(动态主机配置协议)”) y7 v! y( Y  v
  B9 A0 x% i) ?: i" T0 J$ E
        阿甘说:“谁那里有IP地址啊?”" u9 o7 o1 u1 H9 R/ p5 f

6 u5 @+ D2 o; U2 Y        “这个网络里应该有DHCP服务器,可以动态的分配地址,我们可以发个信广播下”老大接着说“阿甘,你和金士顿赶紧写一封信:”5 X* V; X3 j: B: U( m' ~; p# y

7 ?0 E/ V# D1 z# T+ c, j6 `4 x" z/ {        收件人:255.255.255.255:67" B6 `/ a+ W% A' Q& @) g. @
        发件人:0.0.0.0:686 r# F' U) d+ W7 T) {  @+ _6 C
        内容:我想租用一个ip地址,谁有啊?
+ s3 L' ?. l/ i1 T7 k8 o' E) u* V3 K% @2 j* d: M3 \, g+ p
        (注:这里做了简化,实际上这里首先是一个应用层的DHCP发现报文,然后被一个UDP的报文封装,然后再被一个IP的数据报封装。形象化一点如下图所示)
7 Q& d$ n# i) Z$ ^6 ?; r5 V, E3 }3 P7 X+ E( H5 f) [
一块网卡的自述 1-网卡.png
  r0 U( s5 ]: I% O# s# i- W
        阿甘傻乎乎的,也不问为什么收件人和发件人这么奇怪,只是飞快的按老大的指示写信,信马上写好了,交到我的手里。“给你,TP-Link7954,赶紧发出去吧”。# |+ f+ L$ f7 M: Q- v
; h9 I/ ~7 x  M- g& a8 I
        我对外发信是有原则的:我工作在数据链路层,必须得知道对方的MAC地址才能发信,如果不知道,我就对外广播,那就是所有的电脑都会收到。
4 t, S5 v; I$ Y* l2 T3 D
+ |/ p3 ^! k/ d$ b        这封信显然就是要广播的,因为到目前为止,我们还是网络大海中的一个孤岛,和外界没有任何联系,我还不知道任何其他电脑的MAC地址。
& I0 F4 v& j/ G- m4 m: \( H* S; E3 f9 M1 G4 b" w
        按照规定,我又把阿甘写的信封装了一下,装到另外一个信封里,只有这样,我最重要的伙伴交换机才能看懂。
& `2 `8 B( T5 o8 p2 G! J5 Y  f5 ]2 e- ?, w2 }6 o( W
        目的地:FF:FF:FF:FF:FF:FF (广播到同一子网内的所有电脑)0 I3 z; |# p% }  g7 O' ^5 O
        发件人:11:27:F5:8A:79:54(就是我自己了!)
5 ~. A. C" W) w2 E9 N- ]$ Y) M$ E1 a! Z1 L0 @5 @
一块网卡的自述 2-网卡.png

$ j6 L8 P! n! ~+ f, g* M        我把它通过网线发给了交换机。交换机看到FF:FF:FF:FF:FF:FF,立刻转发给了所有连到交换机的设备。* e4 M0 a# w# e3 h/ Y

9 ]1 V7 A6 l* r        如同老大所料,这个局域网里确实有DHCP服务器,还不止一个!因为没有多久,交换机转来两封信,我拆开其中一封,里边写着:
8 Q3 v2 f1 M# V  R& W6 m) }) f/ F7 o7 i% t0 v! O
        “我是DHCP服务器192.168.1.1,我这里有个空闲的IP 192.168.1.2, 你租不租?”
! P5 _0 c' U  v1 {1 Q
- C$ X, d2 Z- V& g        另外一封信也差不多,是另外一个DHCP服务器发来的,提供了另外一个IP地址。CPU阿甘迫不及待了:“看来我们很受欢迎啊,这么多人愿意给我们IP,老大,快抢一个吧。”* J% T1 e/ b  ^/ E
- `4 M  h- J# H: |0 Z& D
        操作系统老大说:好,我们要这个192.168.1.2吧,再写一封信:, D6 p5 M# j: E* |" k" U) o/ K' P
       
% c7 Y7 z* j0 V        “你好,服务器192.168.1.1,我们就要这个IP192.168.1.2了”
$ l1 ^8 J& O7 y- J( x# f
, W; @% }% O( w$ J3 i6 j+ t7 {        我又把这封信广播出去,看来我们所处的网络非常快,确认的回信眨眼间就到:- F# l9 x  O; |
        . E9 r8 i. i& A/ }. f- q# {. ]
        “这是一个确认信,IP192.168.1.2给你了。网关路由器是192.168.1.1,DNS服务器的地址是202.102.224.69”% m: Y+ c' k. U+ @6 G6 }

  {  x" k' ~1 D4 k0 k7 `! t& L        金士顿内存说:“不容易啊,终于搞定一个IP了,我把它记下来”。6 ?8 ^& t0 l4 X( \1 F4 U
7 ?: c/ D( U# m1 z
        操作系统老大说:“把所有信息都记下来,接下来很快就会用到”。' w$ S- M0 I' w2 j4 g8 ^6 A
       
9 H: X6 V* `. S. ]  |9 k( l        我们的IP:192.168.1.27 o# \% f. ]4 t: F( h% a
        网关路由器:192.168.1.1+ N6 Q' X0 }7 Q: w' W$ j
        DNS服务器:202.102.224.69
* ?5 }& u3 g5 u! `- g
% v6 x; U$ h4 o4 p7 f        阿甘说:“要是重启了,我们是不是要这么重来一遍?”
8 o- s5 O6 X2 u) R7 _7 K
! K, E0 n% a! _( F* q: N        “阿甘,你现在越来越聪明了,确实是这样,除非主人手动的给我们配置IP地址,网关,DNS,但是那样很烦,容易出错,所以一般情况下,主人都是依赖我们自动的去用DHCP搞定一个IP。”
* p3 C4 y: R6 t7 q+ S6 U+ y$ A& g
8 w  m' i" T2 g) \1 |: T7 g        经过这一番折腾,我也初步了解了我们所在的网络结构:
  A" ~' H" H1 {- t4 \& i& W) c/ k5 C- h5 b. O* ?9 C
一块网卡的自述 3-网卡.jpg
. c7 ^3 ~7 S2 p5 i8 J
DNS 和 ARP
% U) y/ m5 Z1 Y2 I+ ]& U
        搞定了IP地址,大家都喜气洋洋。我们赶紧把浏览器村的老IE叫来,让它访问一下著名的google网站。
. ?+ r( ]" Q# n; o( ^
  Q2 K% A# g- k7 h9 }3 J2 J        老IE说:“你们还不知道?google在中国被屏蔽了,访问不了,要不访问百度吧。”#j319:
- C$ k% h6 S8 a- b5 ?2 ~2 u, K
4 e! \# b# R, z5 x( [$ p        我说:“都行,我们先访问一下试试。”
# H; r' `$ `1 A" M$ c& d  {2 f) y$ k7 |9 C* o$ Z- O( c" Q
        老IE说:”百度的域名是www.baidu.com,你们给我查查它对应的IP地址呗!”
* @4 G! i# t; \& j' O1 S, @# l% r) |  D2 y" {; O
        阿甘说:“上个网这么麻烦,这么多地址要查”
) Y" }4 ]9 N$ q
3 z# Q% Y# {* ?        “是啊,网络世界的规矩就是这样,想要互联,我们得有IP地址,也得知道对方的IP地址,现在只知道域名www.baidu.com,我们得给他翻译成IP才行,阿甘你准备一个DNS查询吧”老大说
: d8 x0 K" Z6 a1 S! K! z% g, D7 N' L1 ?
        CPU阿甘遵照指示,先向金士顿内存问了DNS服务器的地址,然后写了这么一封信,交给我:) [- h4 [# ]# `' X) B6 J/ _( N( ]4 M
       
1 r. f/ l- P+ K4 _# O; s- P& m        发件人:192.168.1.2(我们刚刚搞定的IP)
  }" k. ?: F! r4 k        收件人:202.102.224.69(DNS服务器)5 _! |* j4 R; P
        内容:哥们,给我查查www.baidu.com的IP地址吧
4 `! ^" J0 X8 Q
+ |6 s( N& @/ i1 S9 n3 N% `- c        “但是这封信发给谁呢,我需要知道对方MAC地址啊,总不成还是对外广播吧。“我心里想。; J9 @/ W7 T1 X( f  c0 S
# G: a  T. O0 J2 `4 C( o
        操作系统老大看出了我的疑虑,解释说:“DNS服务器不在我们的局域网内,我们要把这个信发给网关路由器,他会想办法转给DNS服务器的。”
, x4 Z, ~6 b$ O: O) P( |3 [! F% a! ^; E* u3 a& w
        我说:“可是我不知道网关路由器的MAC地址啊”  i" p2 l3 Q3 G! F- e4 e/ B. U

: \$ }& H! y8 O" m# i& H4 i; I        金士顿内存说:“别急,我查查之前我们存下来没有,我靠,刚才那个DHCP服务器(192.168.1.1)也是网关服务器,他怎么没把MAC地址顺便发过来啊!”
+ d9 Y/ r! k4 I8 g
1 W$ l* o; u. y9 {/ i: v5 L        CPU阿甘急了:“TP-LINK7954,你是怎么干活的,怎么非得要MAC地址,直接用IP地址不行吗?”
  V  U* S) w& O; K+ O+ _
/ y' p/ \5 X& v3 j. Q) V0 R3 @, }        我回答说:“没办法,这是规定,你不知道网络是分层的吗? 我只工作在数据链路层,就得用MAC地址。另外网络多种多样,可不仅仅是TCP/IP,我要是只用IP地址,那其他网络怎么工作?”
( `8 M4 a' K1 c3 [0 D7 W( ~! E
7 u# q2 @0 e, ^& @$ F        操作系统老大说:“我记得好像有个叫ARP东西,可以通过广播查询一个IP地址对应的MAC地址,你试试”。- ^' r: I6 h7 |- T7 _/ V

$ T+ G# r, i! F# _6 h% }        其实我也想起来了,这个ARP叫地址解析协议,我可以把下面的消息广播出去,这个子网内的所有机器都会收到,网关路由器也不例外,他收到以后,一看是查询自己的MAC地址,就会创建一个ARP的应答。/ U3 T: p1 Y+ u! h3 R$ W
) u8 V& l+ M  w* h
        收件人:FF:FF:FF:FF:FF:FF (同一子网内的所有电脑)5 ~' C9 m! \5 S2 P
        发件人:11:27:F5:8A:79:54(就是我自己了!)
7 S( A7 o- u, X+ f1 z% k        内容:呼叫网关路由器(192.168.1.1),请问你的MAC地址是什么?9 D" F# c) F( x" U$ p+ y, I; U
9 }" X/ w7 X- ?6 a; m
        过了一会,ARP应答果然来了,我们看到了网关路由器的MAC地址:88-25-93-79-E0-C8/ ^6 D1 z) j  l, M4 y4 |

  V' {5 N) B& ]- A9 C0 j9 e4 l" t        我告诉金士顿内存:“赶紧记下来,下次咱就不用再查询了”+ m/ z  p: j+ K. M
          _8 @. X1 N1 Z4 |/ |. o; t
        192.168.1.1<-->88-25-93-79-E0-C8% P0 g! t1 U/ ]) Q4 H" d, Q+ U

$ \! Q+ z3 r; y' u, n2 @6 ~4 t        有了网关路由器的MAC地址,剩下的事情就好办了,我只需要把之前准备好的DNS查询发给网关路由器即可。% H. z1 ?, p- y6 F
& }* b! b  P+ O+ D9 a% m
        阿甘好奇问我:“你只把这个信发到网关路由器,剩下的事就不管了?”  N  E5 _) f& H- H1 x# V% N3 t

% X: f& t7 u% P        我没声好气的回答它说:“那当然了,我只能管局域网的事情,出了局域网,那就是路由器的事情了,路由器能抽取这个DNS查询的数据报,看到收件人是202.102.224.69(DNS服务器),自然可以转发出去,我们完全不用担心。”
# s' d& T/ o& n) W# x2 Z* [3 P9 K
        我们等了一会,DNS服务器很快就返回了www.baidu.com的IP:115.239.211.112& B9 O+ t6 m1 V' U# p2 ]; K

3 ], u0 V7 ^3 A5 @5 v        金士顿内存说:“我记下来了,上网看来一点都不好玩啊,这么费劲。”
9 H1 u( y, R# [# a& k) L! B3 w: l# k- w1 F
        老IE说:“好玩的在后面呢,现在所有的东西都齐活了,开工~”
7 _5 f4 \1 X% T$ \) E) J  B8 H4 f4 J* h6 n: P$ z" I7 D( H  p) b  \
        老IE开始创建TCP连接,然后通过TCP发送HTTGET请求,轻轻松松的把百度的主页给取了下来,展示了出来。9 n0 x, U, I( ?$ v
5 g; W5 Y; y4 p: n( W% ?
        大家第一次看到外边的世界,激动万分。0 h. q& |) Q! H4 u3 f! c
: e& G; O$ y6 N3 N9 x& L
        当然还是我最忙,因为老IE的所有信件都需要我去发送和接收。
4 \  O8 ^* ?3 H3 w7 J; e& J9 D/ s# \% @: B1 l
尾 声
        1 k$ B/ C, z8 M3 Y& \
        这几个月以来我都是电脑里的最忙碌的人,一旦可以上网,大家都上瘾了,浏览网页,刷微博,看视频,玩游戏,每天把我累的要死。& x+ _* _( i' B5 N, \7 _

, I- s) M& b2 v! I( z. G, {4 C: q9 u        日子就这么一天天过去,有一天,大家发现主人把一个新家伙通过USB接口插到了电脑上,然后顺手拔掉了网线!
( u9 S$ s; N( G" Y+ |/ [7 u# w
: t$ v% ~* }4 w! H2 Z2 m        我失去了和交换机的联系,无法联网了,难道我们电脑又要成为一个孤岛了吗?
# h. Z4 Q8 b! x8 z  K5 [1 V) C1 l: n7 _% ]
        老IE还正在访问一个博客网站呢,一下子就断了。
3 i1 D5 H8 Y3 Q! _: u6 f1 `; P" H* ]! D/ ~( g
        不过奇怪的是,CPU阿甘,金士顿内存,操作系统老大竟然都围着新来的家伙重新玩起了DHCP,DNS,ARP,并且连上网了,所有的信件都由这个新家伙来传递。
; m0 c2 k" Z: {0 t: q7 i& N5 x( a% O! L* t$ r; m, y
        我偷偷的问老IE:“这是怎么回事?”
- v& P/ a% |" }# u3 B# v
5 d( d/ x' a5 G: x2 A" c        老IE说:“看来你已经失宠了,新来的家伙叫无线网卡!”! H! r( p5 I- `  S, O3 m

6 _/ F9 y8 j& g3 j0 ~, i  @; W* X3 E


清风霁月 「出类拔萃」 2017-8-31 19:28 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

我想说我什么也不想说、
雾月 「出类拔萃」 2017-9-18 17:18 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

让人奔走相告曰须阅读的好帖 " |6 r6 U6 {4 t. L( k2 k
故事,还未完、 「锋芒初露」 2018-1-20 22:41 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

我想说我什么也不想说、
一起一伏 「龙战于野」 2018-1-23 13:18 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

研表究明,汉字的序顺并不定一能影阅响读,比如当你看完这句话后,才发这现里的字全是都乱的。#375:
您需要登录后才可以回帖 登录 | 免费注册  

本版积分规则

关于本站|大事记|小黑屋|古黑论 网站统计

GMT+8, 2020-12-2 07:44 , Processed in 0.039989 second(s), 24 queries , Redis On.

© 2015-2020 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表