像平常的你一样引发奇迹吧 每日签到 收藏本站
登陆 / 注册 搜索

USERCENTER


查看:5334   回复: 3

一块网卡的自述

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

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

        我知道我一生的使命就是传递信件,但有一个前提:我需要知道对方的地址才行,其实我们网卡都有一个全球唯一的地址,这个地址一出生就确定了,就像你们人类的身份证一样,终生不变。
$ W9 e* o& t1 m+ O" a8 O, o
3 U3 W* C# j; N' j, A" h! d$ X9 y: w        无论我走到哪里,我都拥有这个唯一的标志:11:27:F5:8A:79:54
4 m4 j8 q( F3 B4 Q6 p  {3 v- F" C$ i& D) Y# ~8 }# H. s5 X: C
        挺长的是吧,你们人类把它叫做MAC地址,简单起见,你可以叫我“TP-Link7954”5 U& i* |. V8 F- E! ]3 e
6 l% S- F; z7 M
        刚开始的时候我非常孤独,因为这台电脑虽然经常开机,但却不联网,真不知道主人是怎么想的!  Q8 A  O: L' i+ j/ t" P0 N
! z0 Y  r: Q7 a3 o
        不上网就没人来找我发信,不发信我也就没什么价值,也没人搭理我,我整天听着CPU阿甘和金士顿内存在那里喋喋不休的聊天,真是烦死了。- W( ^6 B/ }9 q0 P4 K

9 H- Y" O. g9 H6 ]
 Internet-Service.jpg 一块网卡的自述

2 C4 a0 [8 f, B' y6 L* }        只是这两人都记不住对方,每次重启都像是第一次相识,实在是太搞笑了。#j318:! k3 h( @- L& j5 ?, O/ C
5 v* E( R  i. ?3 g/ `/ H* C4 C
D H C P
       
        在我入住机箱30天以后,音箱向大家报告说:“主人终于决定要上网了”这绝对是个重磅新闻!% E/ k: u/ s7 L" g5 W  |. J( ~% G* b" ?

! T& }; o# O# Q: e        我很兴奋,大家也很兴奋,早就听说外边的世界很精彩了。一天晚上,只听到“咔嗒”一声,一个RJ45的网线插头便和我亲密接触了。
# I: _2 n% W! z% a
  [. k  S% f$ X* A6 P        网线的那头传来了陌生而熟悉的声音,我的潜意识告诉我,那是交换机在转发信件。CPU阿甘看到了这种情况,也不和金士顿内存聊天了,他对着我大叫一声:TP-Link你在等啥,赶紧上网啊。+ ^3 b5 |9 C/ x

" D8 W) A* ~2 ?) @        这是他第一次和我说话。/ @+ p- a# X- q: w

' {6 [: R  }0 ?2 s        操作系统老大是见过世面的,他镇定的说:“心急吃不了热豆腐,我们得先搞一个IP地址才行。这需要用到DHCP(动态主机配置协议)”
) U" A  Z: u& l
  S5 [: {8 [: E* z* I  r" c; r        阿甘说:“谁那里有IP地址啊?”
/ _7 c- J  O7 a: J, s9 F1 I2 ]
7 V0 t& a9 R4 m! C; F        “这个网络里应该有DHCP服务器,可以动态的分配地址,我们可以发个信广播下”老大接着说“阿甘,你和金士顿赶紧写一封信:”
+ a  V6 J0 ^: o, o, B- b( q/ |! K, ^9 x$ N. i( e
        收件人:255.255.255.255:67
6 M* {( d& Z0 D4 b5 _+ i        发件人:0.0.0.0:684 m+ d: Y' C. N# W# }* {2 c! m0 ^# j% ^
        内容:我想租用一个ip地址,谁有啊?/ j4 b/ V. H3 w

" i3 b2 E1 Y' p2 }2 l- `        (注:这里做了简化,实际上这里首先是一个应用层的DHCP发现报文,然后被一个UDP的报文封装,然后再被一个IP的数据报封装。形象化一点如下图所示)
+ b1 M. F; e9 ]- n4 n5 j
) [4 z! ?* f5 u3 q; r: N4 k5 M$ Y
 1-网卡.png 一块网卡的自述

( E: l4 D) Q8 [# I: k        阿甘傻乎乎的,也不问为什么收件人和发件人这么奇怪,只是飞快的按老大的指示写信,信马上写好了,交到我的手里。“给你,TP-Link7954,赶紧发出去吧”。
9 A; C& p1 A* B3 H7 W. L
/ p0 \9 Q, h" U8 ?        我对外发信是有原则的:我工作在数据链路层,必须得知道对方的MAC地址才能发信,如果不知道,我就对外广播,那就是所有的电脑都会收到。
& M: S; ?; H2 Z% E7 s9 }$ H9 X9 |# {0 c7 I4 i( E
        这封信显然就是要广播的,因为到目前为止,我们还是网络大海中的一个孤岛,和外界没有任何联系,我还不知道任何其他电脑的MAC地址。9 X7 n/ v  d8 h/ H5 I

7 \+ Z1 x* h; E        按照规定,我又把阿甘写的信封装了一下,装到另外一个信封里,只有这样,我最重要的伙伴交换机才能看懂。; G  V3 x% s1 n( |" \6 d
" d3 k/ I4 J4 I1 |
        目的地:FF:FF:FF:FF:FF:FF (广播到同一子网内的所有电脑)
/ _  o# C) ?6 ~1 e        发件人:11:27:F5:8A:79:54(就是我自己了!)
( e) [- C% s1 B9 |; u
- W, F0 x* e) u) ?
 2-网卡.png 一块网卡的自述
$ c) T0 Z) a6 Y! x+ B- P
        我把它通过网线发给了交换机。交换机看到FF:FF:FF:FF:FF:FF,立刻转发给了所有连到交换机的设备。( M" c# E4 l( s, _- Y# h

$ ]- a0 E5 Z  m( ^        如同老大所料,这个局域网里确实有DHCP服务器,还不止一个!因为没有多久,交换机转来两封信,我拆开其中一封,里边写着:/ D+ J  R/ u% t2 E) D. D

# Q2 o, c8 E3 v8 i# Y+ k        “我是DHCP服务器192.168.1.1,我这里有个空闲的IP 192.168.1.2, 你租不租?”, u4 p7 P; s$ V0 ^

% F! q  ^& l! T4 q        另外一封信也差不多,是另外一个DHCP服务器发来的,提供了另外一个IP地址。CPU阿甘迫不及待了:“看来我们很受欢迎啊,这么多人愿意给我们IP,老大,快抢一个吧。”) l6 b5 [, C. j! O5 w4 e6 ]

; \& c9 |% L( j6 z        操作系统老大说:好,我们要这个192.168.1.2吧,再写一封信:
: o, {" J0 Z6 a8 x" `' G3 f! V/ M       
* z5 y  K: I5 b6 z( r        “你好,服务器192.168.1.1,我们就要这个IP192.168.1.2了”+ w  B, D$ I5 Z

8 T& P# s9 q2 g        我又把这封信广播出去,看来我们所处的网络非常快,确认的回信眨眼间就到:3 i* \1 ^1 L/ \- ~- p1 f  `
        $ ~+ Q- l! F7 {  x5 w  W+ q% s
        “这是一个确认信,IP192.168.1.2给你了。网关路由器是192.168.1.1,DNS服务器的地址是202.102.224.69”
- F9 K' @; U( e/ Q
( l$ t$ M7 \; b. j0 K# U: e: p* A        金士顿内存说:“不容易啊,终于搞定一个IP了,我把它记下来”。
- Y  i  N3 z. a0 q& Q" }9 C1 ^6 `# @- z) D
        操作系统老大说:“把所有信息都记下来,接下来很快就会用到”。
$ v* v( D4 n  k8 Y( k! T2 l, |5 r        7 _2 u9 V$ T( y/ Q) Z* `
        我们的IP:192.168.1.2
& J& D3 _1 W+ f6 M" Y        网关路由器:192.168.1.1" Z2 T2 C( c  {7 [* Y0 f' \/ G. G" e
        DNS服务器:202.102.224.69& ^5 b% J  m( o$ k9 [7 X
6 Q/ y+ D) s) O! n
        阿甘说:“要是重启了,我们是不是要这么重来一遍?”
% c+ @* H& \, j' m: v* E0 r
7 d  \4 R! P3 h& w1 A4 y& D        “阿甘,你现在越来越聪明了,确实是这样,除非主人手动的给我们配置IP地址,网关,DNS,但是那样很烦,容易出错,所以一般情况下,主人都是依赖我们自动的去用DHCP搞定一个IP。”9 F) y6 A) E! g3 |- L( F! g, C
# N. v7 j! D- w  X# {
        经过这一番折腾,我也初步了解了我们所在的网络结构:8 z5 P8 k; N; ~7 n" ]) I9 l

3 s$ G& ~1 Z7 x6 V3 w
 3-网卡.jpg 一块网卡的自述

7 x; ^, q# J+ N/ d5 @
DNS 和 ARP
. r( C  g7 U2 ?! |1 W
        搞定了IP地址,大家都喜气洋洋。我们赶紧把浏览器村的老IE叫来,让它访问一下著名的google网站。
+ Q, B( [$ O$ u! c) Q" g' q  r- S4 \% l9 z  A; u6 v' m
        老IE说:“你们还不知道?google在中国被屏蔽了,访问不了,要不访问百度吧。”#j319:
; x2 T0 `8 }+ a$ B% _4 S9 T: i  `2 ^$ G
        我说:“都行,我们先访问一下试试。”
4 I" G* L9 D2 ]5 I3 q1 V) g: C' L1 R7 @
        老IE说:”百度的域名是www.baidu.com,你们给我查查它对应的IP地址呗!”) l2 T9 Z, Y! A# s' s( ^: v

; d; V7 F' m6 W  V4 r        阿甘说:“上个网这么麻烦,这么多地址要查”3 Q$ ~) E" L0 @5 f" J7 c
  W0 B0 C+ u2 E5 u0 |- k% F$ H
        “是啊,网络世界的规矩就是这样,想要互联,我们得有IP地址,也得知道对方的IP地址,现在只知道域名www.baidu.com,我们得给他翻译成IP才行,阿甘你准备一个DNS查询吧”老大说
/ P0 q. a( g( }, z) z
* M% y' f5 R  P' b5 W, t        CPU阿甘遵照指示,先向金士顿内存问了DNS服务器的地址,然后写了这么一封信,交给我:
" Y) n- p6 R' t/ g6 j% k        ) n8 b: D, l7 A9 {" l! K' M
        发件人:192.168.1.2(我们刚刚搞定的IP)5 a# a9 Z/ _( s2 a2 [
        收件人:202.102.224.69(DNS服务器)
( Q; M# ^7 E$ ?( `4 j, X; x6 t        内容:哥们,给我查查www.baidu.com的IP地址吧
: N9 W, X  Q' d. n5 J7 _3 S" d" a4 {- d8 x; P5 _7 K
        “但是这封信发给谁呢,我需要知道对方MAC地址啊,总不成还是对外广播吧。“我心里想。  r9 n9 Y* @: O. `
" U' s+ z1 m) ~5 X3 P
        操作系统老大看出了我的疑虑,解释说:“DNS服务器不在我们的局域网内,我们要把这个信发给网关路由器,他会想办法转给DNS服务器的。”
7 g8 K( P  D# ^# ]# I2 W* Y9 k
6 x3 b, q; T0 I) [- \        我说:“可是我不知道网关路由器的MAC地址啊”
& T0 W0 A5 B8 f  E  O# W( K' e6 M* \, \# ^2 D
        金士顿内存说:“别急,我查查之前我们存下来没有,我靠,刚才那个DHCP服务器(192.168.1.1)也是网关服务器,他怎么没把MAC地址顺便发过来啊!”6 c; f$ N' t6 r: G$ u9 O' S6 G% A

. y1 v1 t% b0 Q  B        CPU阿甘急了:“TP-LINK7954,你是怎么干活的,怎么非得要MAC地址,直接用IP地址不行吗?”
' s# k/ H6 [0 e/ X6 O( l, P+ j5 g& c
        我回答说:“没办法,这是规定,你不知道网络是分层的吗? 我只工作在数据链路层,就得用MAC地址。另外网络多种多样,可不仅仅是TCP/IP,我要是只用IP地址,那其他网络怎么工作?”
7 @$ e  I. }: U+ n* K1 \, Y$ i& Z# V# [8 S
        操作系统老大说:“我记得好像有个叫ARP东西,可以通过广播查询一个IP地址对应的MAC地址,你试试”。
% t7 y. S- l8 v/ v, ~* U3 Y8 A7 h3 p* C9 Z: A+ f  \3 h  d' ^8 E7 ~" p
        其实我也想起来了,这个ARP叫地址解析协议,我可以把下面的消息广播出去,这个子网内的所有机器都会收到,网关路由器也不例外,他收到以后,一看是查询自己的MAC地址,就会创建一个ARP的应答。) O2 {( R+ j7 i& K7 V' q9 [/ u, y; `% H

1 M! T% V- H# z% U6 R7 E& `        收件人:FF:FF:FF:FF:FF:FF (同一子网内的所有电脑)
/ ^/ W3 `9 @, k, M1 ?) X" d' Q+ {        发件人:11:27:F5:8A:79:54(就是我自己了!)
# B) s5 [1 U! B' a4 x  p) T        内容:呼叫网关路由器(192.168.1.1),请问你的MAC地址是什么?0 I9 d+ I3 g& j6 n% N0 o; J5 D
! W7 D) f$ ^9 u! P% Y0 d- N
        过了一会,ARP应答果然来了,我们看到了网关路由器的MAC地址:88-25-93-79-E0-C88 G0 e  I' Q4 r7 f( U+ B) B

/ E, r; m1 t' Y; o/ I2 p        我告诉金士顿内存:“赶紧记下来,下次咱就不用再查询了”* J  b) |( c4 P8 I, t) }/ Q0 K
        ) ?$ ^& d' C: l2 `9 g
        192.168.1.1<-->88-25-93-79-E0-C8
, D$ t3 O# B+ w, _' I) l6 L2 f) x; t, t9 t* ]% I" K2 e# d6 q  I8 ?
        有了网关路由器的MAC地址,剩下的事情就好办了,我只需要把之前准备好的DNS查询发给网关路由器即可。$ {! o0 C( X" \0 V0 U5 c5 D% s/ Z

/ O: W6 I; O( x' V% o# H8 h4 L        阿甘好奇问我:“你只把这个信发到网关路由器,剩下的事就不管了?”2 u2 ~- S  j  Y" w# P- h3 w

& f5 Q& _% a$ ?& J0 B6 R. u* m, m        我没声好气的回答它说:“那当然了,我只能管局域网的事情,出了局域网,那就是路由器的事情了,路由器能抽取这个DNS查询的数据报,看到收件人是202.102.224.69(DNS服务器),自然可以转发出去,我们完全不用担心。”
- B  o4 S$ U) c7 e) |
! W9 M, ~! d& H! p        我们等了一会,DNS服务器很快就返回了www.baidu.com的IP:115.239.211.1120 E' T0 X) m; Q+ @. J) ~. O

+ ~& P, i) x  D, n$ n% i9 {) l        金士顿内存说:“我记下来了,上网看来一点都不好玩啊,这么费劲。”% W/ `+ O6 j2 u0 n/ m

  a* g. x  n$ U" H$ o        老IE说:“好玩的在后面呢,现在所有的东西都齐活了,开工~”
0 N4 k/ a1 V# n2 t9 s2 `$ ?7 {
* q- b3 y7 \# {- g$ M; K        老IE开始创建TCP连接,然后通过TCP发送HTTGET请求,轻轻松松的把百度的主页给取了下来,展示了出来。+ u% G6 L- y& B3 H9 M  U
. j6 D8 P: Y- W) Q; w/ ?/ P
        大家第一次看到外边的世界,激动万分。, F) R! I$ I- G5 E- n* n0 ]
4 B8 r/ I, \" A0 \7 m1 x$ C
        当然还是我最忙,因为老IE的所有信件都需要我去发送和接收。
5 A0 |" |8 p+ J3 I% J9 x
6 j; E6 I. _# J) Z& w
尾 声
        % A) s: ~& g! ~3 @1 o7 A+ v
        这几个月以来我都是电脑里的最忙碌的人,一旦可以上网,大家都上瘾了,浏览网页,刷微博,看视频,玩游戏,每天把我累的要死。& @! i* X; r4 L' p! @4 m

9 H0 B# ]- m7 K) w7 h8 ?        日子就这么一天天过去,有一天,大家发现主人把一个新家伙通过USB接口插到了电脑上,然后顺手拔掉了网线!
. q0 `3 I- G. r5 U2 P
. R6 V' H5 T. M8 c: W        我失去了和交换机的联系,无法联网了,难道我们电脑又要成为一个孤岛了吗?! D3 H; \* W( F6 N3 f+ u' g
; _* E2 d7 O$ s4 S
        老IE还正在访问一个博客网站呢,一下子就断了。
' I+ r5 ]. _, G8 X) N  N( Z# p7 G) _
        不过奇怪的是,CPU阿甘,金士顿内存,操作系统老大竟然都围着新来的家伙重新玩起了DHCP,DNS,ARP,并且连上网了,所有的信件都由这个新家伙来传递。4 b+ ~# _6 x- D( {$ q

3 o: y. }. ^( U7 \, ~$ k* M9 Q        我偷偷的问老IE:“这是怎么回事?”
0 a7 n$ \. U8 |2 H* n) s/ O4 Q( N' B" {2 i  e5 I
        老IE说:“看来你已经失宠了,新来的家伙叫无线网卡!”' I7 C. {3 l/ r$ ?. b5 r

" ?7 |6 a' t# c5 [0 ]. D

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

本版积分规则

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

GMT+8, 2019-9-21 06:22 , Processed in 0.065930 second(s), 33 queries , Gzip On, Redis On.

© 2015-2019 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表