自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

向 xxxhub 發(fā)了一個(gè)數(shù)據(jù)包,發(fā)現(xiàn)了···

網(wǎng)絡(luò) 通信技術(shù)
當(dāng)我訪問(wèn)那個(gè)讓萬(wàn)千宅男程序員為之著迷的GitHub時(shí),我電腦發(fā)出的數(shù)據(jù)包是如何抵達(dá)大洋彼岸的GitHub服務(wù)器的呢,這中間又要經(jīng)過(guò)哪些節(jié)點(diǎn)呢?

[[442879]]

大家好,我是軒轅。

那天,我突然想到一個(gè)問(wèn)題:

當(dāng)我訪問(wèn)那個(gè)讓萬(wàn)千宅男程序員為之著迷的GitHub時(shí),我電腦發(fā)出的數(shù)據(jù)包是如何抵達(dá)大洋彼岸的GitHub服務(wù)器的呢,這中間又要經(jīng)過(guò)哪些節(jié)點(diǎn)呢?

讓我們一起來(lái)探究下這個(gè)問(wèn)題,請(qǐng)注意系好安全帶,軒轅的計(jì)算機(jī)網(wǎng)絡(luò)快車要發(fā)車了···

IP報(bào)文

互聯(lián)網(wǎng)把無(wú)數(shù)的手機(jī)、電腦、服務(wù)器、路由器、交換機(jī)等各種設(shè)備連接在一塊兒,那這些設(shè)備之間要通過(guò)網(wǎng)絡(luò)通信,自然就需要一套通信協(xié)議,TCP/IP就是這樣一套協(xié)議。

包括瀏覽器在內(nèi)的這些應(yīng)用程序發(fā)出的數(shù)據(jù),被HTTP、TCP、IP協(xié)議層層封裝,最終形成一個(gè)個(gè)的IP報(bào)文,交給底層網(wǎng)卡發(fā)出去。

IP報(bào)文經(jīng)過(guò)網(wǎng)絡(luò)中節(jié)點(diǎn)的不斷路由轉(zhuǎn)發(fā),最終來(lái)到了目標(biāo)服務(wù)器。

那如何知道路由轉(zhuǎn)發(fā)過(guò)程中,都經(jīng)過(guò)了哪些網(wǎng)絡(luò)節(jié)點(diǎn)呢?

Windows上的tracert程序和Linux上的traceroute程序就能夠做到。

它們是如何做到的呢?

IP報(bào)文總不能無(wú)限制轉(zhuǎn)發(fā)吧,萬(wàn)一搞了個(gè)循環(huán)轉(zhuǎn)發(fā),那不就沒完沒了了?網(wǎng)絡(luò)中的IP報(bào)文有一個(gè)生存時(shí)間的概念,位于IP報(bào)文頭部字段中——TTL:time to live。

每經(jīng)過(guò)一次轉(zhuǎn)發(fā),TTL的值就會(huì)減1。如果某一個(gè)節(jié)點(diǎn)發(fā)現(xiàn)TTL變成了0,就會(huì)丟掉這個(gè)IP報(bào)文,并給這個(gè)數(shù)據(jù)報(bào)文的發(fā)送者發(fā)一個(gè)超時(shí)的通知消息過(guò)去。

tracert和traceroute正是利用了IP協(xié)議中的這個(gè)特點(diǎn),將TTL的值從1開始遞增,觀察都是誰(shuí)給自己發(fā)回了這個(gè)通知,就能判斷路由過(guò)程中經(jīng)歷了哪些節(jié)點(diǎn)了。

這兩個(gè)程序的區(qū)別在于,tracert發(fā)送的是ICMP報(bào)文,traceroute發(fā)送的則是UDP報(bào)文。

路由跟蹤

好了,基礎(chǔ)知識(shí)交代完畢,趕緊來(lái)試一下,訪問(wèn)GitHub的情況。

首先ping了一下,拿到了GitHub的IP地址:140.80.121.3。注意,這個(gè)地址,不同地區(qū)的人拿到的可能不一樣。

接下來(lái)路由跟蹤一下吧:

  1. F:\work>tracert 140.82.121.3 
  2.  
  3. 通過(guò)最多 30 個(gè)躍點(diǎn)跟蹤 
  4. 到 lb-140-82-121-3-fra.github.com [140.82.121.3] 的路由: 
  5.  
  6.   1    <1 毫秒   <1 毫秒   <1 毫秒 10.??.??.1 
  7.   2    <1 毫秒   <1 毫秒   <1 毫秒 10.??.??.?? 
  8.   3     2 ms     1 ms     1 ms  182.150.63.1 
  9.   4     *        *        *     請(qǐng)求超時(shí)。 
  10.   5     1 ms     *        2 ms  171.208.199.81 
  11.   6     *       25 ms     *     202.97.29.45 
  12.   7     *        *        *     請(qǐng)求超時(shí)。 
  13.   8    36 ms    37 ms    36 ms  202.97.91.190 
  14.   9   184 ms   191 ms   185 ms  202.97.27.242 
  15.  10   195 ms   194 ms   194 ms  xe-10-0-0.mpr4.sjc7.us.zip.zayo.com [64.125.14.45] 
  16.  11   190 ms   190 ms   190 ms  ae16.cr2.sjc2.us.zip.zayo.com [64.125.31.14] 
  17.  12   324 ms   325 ms   324 ms  ae27.cs2.sjc2.us.eth.zayo.com [64.125.30.232] 
  18.  13     *        *      333 ms  ae16.cs2.den5.us.zip.zayo.com [64.125.28.215] 
  19.  14   334 ms     *        *     ae5.cs4.ord2.us.eth.zayo.com [64.125.29.217] 
  20.  15     *      327 ms   325 ms  ae3.cs2.lga5.us.eth.zayo.com [64.125.29.212] 
  21.  16     *        *        *     請(qǐng)求超時(shí)。 
  22.  17     *        *        *     請(qǐng)求超時(shí)。 
  23.  18   332 ms   332 ms   340 ms  ae0.cs1.lhr15.uk.eth.zayo.com [64.125.29.119] 
  24.  19     *        *        *     請(qǐng)求超時(shí)。 
  25.  20   343 ms   338 ms     *     ae4.cs1.ams17.nl.eth.zayo.com [64.125.28.36] 
  26.  21   355 ms   353 ms   353 ms  ae2.cs1.fra6.de.eth.zayo.com [64.125.29.58] 
  27.  22   335 ms   334 ms   338 ms  ae1.mcs1.fra6.de.eth.zayo.com [64.125.29.57] 
  28.  23   340 ms   341 ms   341 ms  82.98.193.31 
  29.  24     *        *        *     請(qǐng)求超時(shí)。 
  30.  25     *        *        *     請(qǐng)求超時(shí)。 
  31.  26   335 ms   343 ms   343 ms  lb-140-82-121-3-fra.github.com [140.82.121.3] 

可以看到,經(jīng)過(guò)了26個(gè)節(jié)點(diǎn)的轉(zhuǎn)發(fā)后,最終到達(dá)了GitHub服務(wù)器。也就是說(shuō),你電腦發(fā)出的IP報(bào)文的TTL至少要大于等于26才能抵達(dá)GitHub,否則就會(huì)中道崩殂。

接下來(lái),咱們來(lái)看一下,這一路都去了哪里?

1-2數(shù)據(jù)包從我的計(jì)算機(jī)發(fā)出后,遇到的第一個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)就是我的本地局域網(wǎng)網(wǎng)關(guān):10.??.??.1。為了安全性,我把IP地址進(jìn)行了脫敏,中間兩段用?代替。

這之后第二個(gè)節(jié)點(diǎn)還是局域網(wǎng)的地址,由此可見,我所在的網(wǎng)絡(luò)格局,經(jīng)過(guò)了兩級(jí)局域網(wǎng)路由轉(zhuǎn)發(fā)才上了公網(wǎng)。

3第三個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)是一個(gè)公網(wǎng)地址:182.150.63.1,查了一下發(fā)現(xiàn)位于成都市武侯區(qū),這和我的實(shí)際情況相符。

4接下來(lái)的第四個(gè)路由節(jié)點(diǎn)就有點(diǎn)迷了,三個(gè)時(shí)間點(diǎn)都是*,tracert顯示請(qǐng)求超時(shí)。出現(xiàn)這個(gè)意味著tracert程序在將TTL設(shè)置為4后,沒有收到通知,或者等待的時(shí)間太久。網(wǎng)絡(luò)中的有一些節(jié)點(diǎn)出于安全考慮可能并不會(huì)發(fā)送超時(shí)通知。

如此一來(lái),tracert便無(wú)法知道這第四個(gè)節(jié)點(diǎn)到底是誰(shuí)。

5第五個(gè)節(jié)點(diǎn)是:171.208.199.81,仍然還在成都。

6第六個(gè)節(jié)點(diǎn)時(shí):202.97.29.45,到了北京了。

7第七個(gè)節(jié)點(diǎn)和第四個(gè)一樣,也看不到。

8第八個(gè)節(jié)點(diǎn):202.97.91.190,來(lái)到上海了。

9第九個(gè)節(jié)點(diǎn):202.97.27.242,還在上海。

10第十個(gè)節(jié)點(diǎn):出國(guó)了,美國(guó)加利福尼亞州。

后面的咱就不看了,就是在美國(guó)境內(nèi)各個(gè)節(jié)點(diǎn)的轉(zhuǎn)發(fā)了。

接下來(lái)看一下,這是一條什么樣的路徑呢?

ChinaNet

網(wǎng)絡(luò)數(shù)據(jù)包出了咱們本地的局域網(wǎng)后,就會(huì)通過(guò)電信運(yùn)營(yíng)商提供的城域網(wǎng)最終接入到更大的骨干網(wǎng)。

中國(guó)大陸地區(qū)的民用骨干網(wǎng)主要有四個(gè):

  • ChinaNet:中國(guó)電信163骨干網(wǎng)
  • CN2:中國(guó)電信下一代承載網(wǎng)
  • CHINA169:中國(guó)聯(lián)通169骨干網(wǎng)
  • CMNET:中國(guó)移動(dòng)骨干網(wǎng)

其中中國(guó)電信的163骨干網(wǎng)和中國(guó)聯(lián)通的169骨干網(wǎng)是最主要的兩個(gè)骨干網(wǎng),承載了中國(guó)互聯(lián)網(wǎng)絕大多數(shù)的流量。

我所在的網(wǎng)絡(luò),最后接入的就是中國(guó)電信的163骨干網(wǎng),下面是163骨干網(wǎng)的一個(gè)大致網(wǎng)絡(luò)拓?fù)鋱D。

163骨干網(wǎng)在全國(guó)總共有9個(gè)核心節(jié)點(diǎn):

  • 超級(jí)核心:北京、上海、廣州
  • 普通核心:天津、西安、南京、杭州、武漢、成都

9個(gè)核心節(jié)點(diǎn)各自負(fù)責(zé)中國(guó)大陸的一部分區(qū)域。

在北京、上海、廣州三個(gè)超級(jí)核心下還掛有國(guó)際網(wǎng)間互聯(lián)設(shè)備(X路由器) ,ChinaNet通過(guò)X路由器與世界上其他運(yùn)營(yíng)商互聯(lián)和流量互訪。

因此,通過(guò)163網(wǎng)絡(luò)出國(guó),必然經(jīng)過(guò)北上廣三個(gè)核心節(jié)點(diǎn)之一。

GitHub的服務(wù)器位于美國(guó),對(duì)于一個(gè)要出國(guó)的數(shù)據(jù)包,它在出國(guó)前的大致旅程是這樣的:

本地局域網(wǎng) -> 市級(jí)網(wǎng)絡(luò) -> 省級(jí)網(wǎng)絡(luò) -> 核心節(jié)點(diǎn) -> 國(guó)際出口 -> 境外接入點(diǎn)

這個(gè)過(guò)程跟我們上面tracert追蹤到的路徑是吻合的。

想不到吧,就那么一回車,數(shù)據(jù)包竟然就跑了這么多地方,計(jì)算機(jī)網(wǎng)絡(luò)真是一個(gè)神奇的玩意。

本文轉(zhuǎn)載自微信公眾號(hào)「編程技術(shù)宇宙」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系編程技術(shù)宇宙公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: 編程技術(shù)宇宙
相關(guān)推薦

2014-06-10 09:16:53

數(shù)據(jù)包

2021-06-02 08:00:57

WebAsyncTas項(xiàng)目異步

2021-10-29 11:45:26

Python代碼Python 3.

2022-11-30 09:18:51

JavaMyBatisMQ

2021-04-22 07:47:47

JavaJDKMYSQL

2023-02-26 01:02:22

2022-06-08 08:14:27

Dubbo數(shù)據(jù)包源代碼

2023-05-17 00:22:15

2019-01-14 11:10:43

機(jī)器學(xué)習(xí)人工智能計(jì)算機(jī)

2020-06-09 08:05:11

Android 代碼操作系統(tǒng)

2024-05-20 08:25:55

2024-10-25 12:38:27

2020-06-16 08:39:35

JavaScript圖像處理庫(kù)

2021-04-28 14:31:35

Dubbo接口日志

2021-01-26 11:16:12

漏洞網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2019-02-13 11:07:17

2020-05-18 08:42:23

CSS背景圖像前端開發(fā)

2021-02-06 23:26:25

聊天室開發(fā)WebSocket

2023-06-24 23:11:07

2024-10-23 16:11:07

調(diào)試bug定位
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)