我不会让任何人看到我软弱的一面。 每日签到 收藏本站
登陆 / 注册 搜索

USERCENTER


查看:5268   回复: 3

一块网卡的自述

[复制链接]
发新帖
跳转到指定楼层
楼主
仗剑天涯吾是土豪 发表于 2017-7-4 23:49:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

        我知道我一生的使命就是传递信件,但有一个前提:我需要知道对方的地址才行,其实我们网卡都有一个全球唯一的地址,这个地址一出生就确定了,就像你们人类的身份证一样,终生不变。
5 k1 v. q7 Q; m1 P* C3 e
0 Q3 t, @7 D2 k  M+ _9 B. {        无论我走到哪里,我都拥有这个唯一的标志:11:27:F5:8A:79:54$ N* i; E! P' b6 t
) ?/ |& B* B1 @+ q, x
        挺长的是吧,你们人类把它叫做MAC地址,简单起见,你可以叫我“TP-Link7954”
. i/ R$ M* T/ [) _' G1 `
7 b; W( ~1 h7 e) g        刚开始的时候我非常孤独,因为这台电脑虽然经常开机,但却不联网,真不知道主人是怎么想的!' R% l/ x7 u3 {/ ~" N+ ]

) x. d! s8 E$ G2 p: F/ y7 R        不上网就没人来找我发信,不发信我也就没什么价值,也没人搭理我,我整天听着CPU阿甘和金士顿内存在那里喋喋不休的聊天,真是烦死了。
! o/ t- \' d2 r* e1 B% v+ k' R3 _/ Y9 M# r' w, t. n* k
 Internet-Service.jpg 一块网卡的自述
# G/ x6 v- r6 C* w& g3 w6 }  J
        只是这两人都记不住对方,每次重启都像是第一次相识,实在是太搞笑了。#j318:7 R9 P1 y; {( i% z4 u7 L, G& D2 _" ~

( k6 c6 M4 e% w& i! Q0 J" T2 S
D H C P
       
        在我入住机箱30天以后,音箱向大家报告说:“主人终于决定要上网了”这绝对是个重磅新闻!  _. V/ z, `, G5 W( N# W1 o
6 Y& K7 l7 A% y" ]; c9 d" s
        我很兴奋,大家也很兴奋,早就听说外边的世界很精彩了。一天晚上,只听到“咔嗒”一声,一个RJ45的网线插头便和我亲密接触了。
) h! V+ P/ v; }. X% {: ?) ]0 a3 e* Q+ d* g/ U* n' U
        网线的那头传来了陌生而熟悉的声音,我的潜意识告诉我,那是交换机在转发信件。CPU阿甘看到了这种情况,也不和金士顿内存聊天了,他对着我大叫一声:TP-Link你在等啥,赶紧上网啊。
. ~( U) j: s( u0 ^
: w- Q$ T7 Y8 B* {3 t" f% U& e        这是他第一次和我说话。
: E4 Y( v' r  _) l5 k/ \  l3 p
+ [- }7 }: h  p: g        操作系统老大是见过世面的,他镇定的说:“心急吃不了热豆腐,我们得先搞一个IP地址才行。这需要用到DHCP(动态主机配置协议)”# }) H. {! W7 i; X/ W( ^

) v  }9 Q% U4 W        阿甘说:“谁那里有IP地址啊?”
9 n+ u3 {0 R7 ^+ @9 I( |7 z7 z5 g6 H* n7 M
        “这个网络里应该有DHCP服务器,可以动态的分配地址,我们可以发个信广播下”老大接着说“阿甘,你和金士顿赶紧写一封信:”
4 _0 B" P! O: Q& b, a% E1 |% |/ E
8 r( e$ I6 ^0 c$ M' [; _( j        收件人:255.255.255.255:67
6 H& ]2 T5 A. a. t1 \        发件人:0.0.0.0:68* q0 ^0 p" ]' W1 q( |
        内容:我想租用一个ip地址,谁有啊?1 G" o( r4 N! o( y1 c  |

* Z$ L; p5 f. \$ r% F3 H8 e2 o        (注:这里做了简化,实际上这里首先是一个应用层的DHCP发现报文,然后被一个UDP的报文封装,然后再被一个IP的数据报封装。形象化一点如下图所示)
3 G, V4 l$ i7 Q. D& P
; |* q$ z# F2 N" r3 h4 ^# ]
 1-网卡.png 一块网卡的自述
' M9 X  z& t' K: k) b; |' u8 d
        阿甘傻乎乎的,也不问为什么收件人和发件人这么奇怪,只是飞快的按老大的指示写信,信马上写好了,交到我的手里。“给你,TP-Link7954,赶紧发出去吧”。) m$ {3 P9 A, A# _

$ B, i  Y/ P* z$ i, B9 ]5 a7 A  g        我对外发信是有原则的:我工作在数据链路层,必须得知道对方的MAC地址才能发信,如果不知道,我就对外广播,那就是所有的电脑都会收到。5 ~: _4 A* d! W

: Q3 v8 J% m$ r3 A0 ~        这封信显然就是要广播的,因为到目前为止,我们还是网络大海中的一个孤岛,和外界没有任何联系,我还不知道任何其他电脑的MAC地址。' C3 n/ z% h' j$ c& b0 ]& x, o
! g$ u: c$ a9 a; D, ~7 B0 E
        按照规定,我又把阿甘写的信封装了一下,装到另外一个信封里,只有这样,我最重要的伙伴交换机才能看懂。
! C1 w! X7 `9 x" J. r4 b6 ^; F8 B1 ?% R% f0 [0 F
        目的地:FF:FF:FF:FF:FF:FF (广播到同一子网内的所有电脑)9 i' n+ H3 H4 B$ x. C
        发件人:11:27:F5:8A:79:54(就是我自己了!)* L. ^3 f" }  Q- S1 p* f3 ?: j
- i4 G4 g* J6 G. n$ m
 2-网卡.png 一块网卡的自述
( q: s$ L+ w4 r! _3 C; i) F- K
        我把它通过网线发给了交换机。交换机看到FF:FF:FF:FF:FF:FF,立刻转发给了所有连到交换机的设备。  [" M5 _1 t+ o6 H3 ^  R/ r
9 ?1 q$ O# b% X0 i
        如同老大所料,这个局域网里确实有DHCP服务器,还不止一个!因为没有多久,交换机转来两封信,我拆开其中一封,里边写着:
; D5 R1 |9 q$ _$ p5 K. ~8 B4 c" @6 T" V( L
        “我是DHCP服务器192.168.1.1,我这里有个空闲的IP 192.168.1.2, 你租不租?”
9 ~  ~) M8 o$ h: ?1 i9 ]1 Z* V
- Z" J3 D. [% G3 }, i0 A2 ]        另外一封信也差不多,是另外一个DHCP服务器发来的,提供了另外一个IP地址。CPU阿甘迫不及待了:“看来我们很受欢迎啊,这么多人愿意给我们IP,老大,快抢一个吧。”# {' Q2 X( R7 a& I  i5 g; H( H
$ o& H/ e- `) G4 m$ d5 B: \% g
        操作系统老大说:好,我们要这个192.168.1.2吧,再写一封信:  ?3 {2 r2 A7 V6 i& p/ p
       
7 G( L; q3 f/ W4 l* s        “你好,服务器192.168.1.1,我们就要这个IP192.168.1.2了”) F  H5 l; J9 p: c, u
: v' U2 r! u2 Y3 y% |
        我又把这封信广播出去,看来我们所处的网络非常快,确认的回信眨眼间就到:
0 O' s) K3 A5 p" O$ C       
, {: S, r: ?# S. d7 Y        “这是一个确认信,IP192.168.1.2给你了。网关路由器是192.168.1.1,DNS服务器的地址是202.102.224.69”
# ^# _& H  d$ x- Q; Q2 A; G
1 \2 @2 ?# t. c; V: i, B- t9 l  O        金士顿内存说:“不容易啊,终于搞定一个IP了,我把它记下来”。
3 i5 L5 N4 l$ V# p3 C$ ^4 j
' ?: t9 O5 w9 y' B        操作系统老大说:“把所有信息都记下来,接下来很快就会用到”。1 b5 x' i$ o2 Z: ^
       
6 x  C6 n( H- b        我们的IP:192.168.1.2
5 Q* f  r0 _2 e        网关路由器:192.168.1.1
6 c. g+ s: J! ?; W, I5 R: R        DNS服务器:202.102.224.691 J/ l) I8 A: M# q( m$ @
* d7 F, G" r  _2 ?
        阿甘说:“要是重启了,我们是不是要这么重来一遍?”
, t; S( f( j0 D6 x' P5 F* L% @( i/ E$ Y) `; Q' d7 r- [
        “阿甘,你现在越来越聪明了,确实是这样,除非主人手动的给我们配置IP地址,网关,DNS,但是那样很烦,容易出错,所以一般情况下,主人都是依赖我们自动的去用DHCP搞定一个IP。”
; W8 B3 ^/ z1 P( y& w$ y  B$ s$ R  r0 S/ n
        经过这一番折腾,我也初步了解了我们所在的网络结构:/ y# Q  x, A! a" Y) l0 t
+ \+ w+ H$ \. P+ m0 z
 3-网卡.jpg 一块网卡的自述

' a; m7 d0 P4 ?9 Q2 H4 ~
DNS 和 ARP

& U; E- |2 N# c! _% y" u        搞定了IP地址,大家都喜气洋洋。我们赶紧把浏览器村的老IE叫来,让它访问一下著名的google网站。7 y8 B+ t. j, T. |# D" f5 K
) ?1 p# N7 ~% k( K6 ^
        老IE说:“你们还不知道?google在中国被屏蔽了,访问不了,要不访问百度吧。”#j319:
" {" n3 ~: F" e0 r$ U+ v  f0 M% O/ G3 R9 J# E% F* A
        我说:“都行,我们先访问一下试试。”
) a* I; k! f% H0 c
+ A+ x( x& f; q& A# o# B: Q        老IE说:”百度的域名是www.baidu.com,你们给我查查它对应的IP地址呗!”
6 @: J% Y) N3 e3 A; W
6 h: ?. v# S$ q3 ?* `. T        阿甘说:“上个网这么麻烦,这么多地址要查”5 a4 R  h3 r, Z) x+ R

! [# W$ v  n$ P        “是啊,网络世界的规矩就是这样,想要互联,我们得有IP地址,也得知道对方的IP地址,现在只知道域名www.baidu.com,我们得给他翻译成IP才行,阿甘你准备一个DNS查询吧”老大说  [# ~) O. j+ y
# `4 i& G" ?" q
        CPU阿甘遵照指示,先向金士顿内存问了DNS服务器的地址,然后写了这么一封信,交给我:! \; m: x( H- ^
       
1 A3 A% E  y0 g0 w' H( }        发件人:192.168.1.2(我们刚刚搞定的IP)
2 q6 p" L4 c% l4 v/ d        收件人:202.102.224.69(DNS服务器)* l6 d' ?  i/ T# U
        内容:哥们,给我查查www.baidu.com的IP地址吧
9 p  P$ Q8 O/ [
2 {/ x7 N5 M0 Z; J$ _& S, e        “但是这封信发给谁呢,我需要知道对方MAC地址啊,总不成还是对外广播吧。“我心里想。5 |! F! {( V& ~* s& @  y: [
3 a! g4 y* p3 G) W' o$ r0 G
        操作系统老大看出了我的疑虑,解释说:“DNS服务器不在我们的局域网内,我们要把这个信发给网关路由器,他会想办法转给DNS服务器的。”
: a4 k4 y; ^2 G1 A7 {5 D6 e/ i$ V! W
        我说:“可是我不知道网关路由器的MAC地址啊”) O( h6 h3 V0 n/ L0 R1 \4 r
+ }) }( Z& w! f  F. A+ W8 r. k
        金士顿内存说:“别急,我查查之前我们存下来没有,我靠,刚才那个DHCP服务器(192.168.1.1)也是网关服务器,他怎么没把MAC地址顺便发过来啊!”
" y3 P4 V) q+ i5 H# H8 z: [
/ w% d( H: g: B% \& {7 d        CPU阿甘急了:“TP-LINK7954,你是怎么干活的,怎么非得要MAC地址,直接用IP地址不行吗?”
& o" d/ X# Z" Y7 Z7 _$ F4 L: R3 A; d1 [$ U
        我回答说:“没办法,这是规定,你不知道网络是分层的吗? 我只工作在数据链路层,就得用MAC地址。另外网络多种多样,可不仅仅是TCP/IP,我要是只用IP地址,那其他网络怎么工作?”4 ]/ j+ Y+ d& R9 M

+ D. g/ w: Q0 t        操作系统老大说:“我记得好像有个叫ARP东西,可以通过广播查询一个IP地址对应的MAC地址,你试试”。0 g+ M4 a0 A- ^* J2 i
7 V! D& n. P7 p3 K: V3 N8 u
        其实我也想起来了,这个ARP叫地址解析协议,我可以把下面的消息广播出去,这个子网内的所有机器都会收到,网关路由器也不例外,他收到以后,一看是查询自己的MAC地址,就会创建一个ARP的应答。& j# K6 O8 ?+ C$ M8 g* {$ H& X

. w7 J( y6 D* U        收件人:FF:FF:FF:FF:FF:FF (同一子网内的所有电脑)/ Z  ]) K2 u+ g0 Z
        发件人:11:27:F5:8A:79:54(就是我自己了!)
5 K' ]1 w3 }/ x; H        内容:呼叫网关路由器(192.168.1.1),请问你的MAC地址是什么?6 C4 ^/ D" K2 w' g/ B3 k
" v/ S# _8 f" K
        过了一会,ARP应答果然来了,我们看到了网关路由器的MAC地址:88-25-93-79-E0-C8
7 x- m: p" n  b( c' X7 r
2 S0 A! C; }5 D        我告诉金士顿内存:“赶紧记下来,下次咱就不用再查询了”
$ `* B+ z9 l" Z) n) `        . j& O& O; [9 f6 ^
        192.168.1.1<-->88-25-93-79-E0-C8
8 Q% j" O) F5 X: H+ _( F; p# Q
$ v& @& M2 w# l        有了网关路由器的MAC地址,剩下的事情就好办了,我只需要把之前准备好的DNS查询发给网关路由器即可。$ h0 i& M8 r! m  K

5 m( M9 w; L# _' `        阿甘好奇问我:“你只把这个信发到网关路由器,剩下的事就不管了?”6 j( W' l& c. ^1 k! c  X

8 t6 f; z4 H  u0 e2 \        我没声好气的回答它说:“那当然了,我只能管局域网的事情,出了局域网,那就是路由器的事情了,路由器能抽取这个DNS查询的数据报,看到收件人是202.102.224.69(DNS服务器),自然可以转发出去,我们完全不用担心。”
8 v+ p' |8 [" e& u8 m
- v. i/ n% ^$ {+ ?& P        我们等了一会,DNS服务器很快就返回了www.baidu.com的IP:115.239.211.112/ x0 M/ X3 z! o- c( f

3 a- g7 _) b1 A" |        金士顿内存说:“我记下来了,上网看来一点都不好玩啊,这么费劲。”* @9 p4 @( U6 r$ t1 y$ f( t
+ }# E& V8 V% F3 u" v& C2 ]8 q
        老IE说:“好玩的在后面呢,现在所有的东西都齐活了,开工~”% e2 z. W6 q  X8 k$ S" |

. e- Q0 J& N& `2 X8 w        老IE开始创建TCP连接,然后通过TCP发送HTTGET请求,轻轻松松的把百度的主页给取了下来,展示了出来。
1 y" V. r0 ~3 H5 V- P; Z& e' z; x$ ?3 c) E* c0 E& J  F
        大家第一次看到外边的世界,激动万分。
) q, v, i- [& v- w3 c7 \' M" f6 s0 i& o  L0 O6 C
        当然还是我最忙,因为老IE的所有信件都需要我去发送和接收。$ }; G) \+ b5 e' K7 `
( }/ S( ]% D5 f/ d9 \7 z8 ^' Z7 x6 d
尾 声
        % p1 B+ Z9 O5 L0 E2 r" _
        这几个月以来我都是电脑里的最忙碌的人,一旦可以上网,大家都上瘾了,浏览网页,刷微博,看视频,玩游戏,每天把我累的要死。
8 f4 R+ t1 ~. R) F( H
3 X( w* `: O7 @        日子就这么一天天过去,有一天,大家发现主人把一个新家伙通过USB接口插到了电脑上,然后顺手拔掉了网线!2 l$ i, p# I$ I. @
( X/ K" h. R; s0 U+ ~
        我失去了和交换机的联系,无法联网了,难道我们电脑又要成为一个孤岛了吗?" R  p' g5 o2 [, \

0 y$ d/ u4 o# ]        老IE还正在访问一个博客网站呢,一下子就断了。
4 Q! k" j0 P* b3 ^1 S# V/ G2 c
; F5 Y; j( b5 N8 h        不过奇怪的是,CPU阿甘,金士顿内存,操作系统老大竟然都围着新来的家伙重新玩起了DHCP,DNS,ARP,并且连上网了,所有的信件都由这个新家伙来传递。! N7 Y3 Y# |' i% q" u3 L6 g

  f2 h8 s, U  m, w% o, g5 G3 H        我偷偷的问老IE:“这是怎么回事?”
/ E3 b) Z$ e' b4 d; d' A: _: G3 j7 P* S8 h$ A
        老IE说:“看来你已经失宠了,新来的家伙叫无线网卡!”
/ C6 e, H$ [1 U& J% h# B! Q6 p* O
' W+ @* w; B% Y7 w& w$ j: ]
上一篇:一个进程的自述摘要:我听说我的祖先,一生只能帮助人类做一件事,如果你 ...
下一篇:一个路由器的自述摘要:我就是网卡TP-Link7954经常和大家提起的网关路由器, ...

清风霁月「出类拔萃」 发表于 2017-8-31 19:28:01 来自手机 | 只看该作者
我想说我什么也不想说、
雾月「出类拔萃」 发表于 2017-9-18 17:18:22 来自手机 | 只看该作者
让人奔走相告曰须阅读的好帖 " {  C! }1 U: K# [8 Y) @2 Y
故事,还未完、「锋芒初露」 发表于 2018-1-20 22:41:50 | 只看该作者
我想说我什么也不想说、
一起一伏「出类拔萃」 发表于 2018-1-23 13:18:24 来自手机 | 只看该作者
研表究明,汉字的序顺并不定一能影阅响读,比如当你看完这句话后,才发这现里的字全是都乱的。#375:
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

关于我们|小黑屋|手机版|Archiver|古黑论

GMT+8, 2019-7-17 22:34 , Processed in 0.163867 second(s), 45 queries , Redis On.

© 2015-2019 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表