在這個版本的極客學校,我們將看看IP地址如何工作。我們還將介紹一些高階主題,如您的電腦如何確定與您通訊的裝置是否與您在同一網路上。最後,我們將簡要介紹兩種名稱解析協議:LLMNR和DNS。
請務必檢視Windows 7上本極客學校系列的前幾篇文章:
一週內請繼續關注本系列的其餘部分。
當你透過普通郵件傳送信件時,你必須指定你想接收郵件的人的地址。類似地,當一臺計算機向另一臺計算機發送訊息時,它需要指定訊息應傳送到的地址。這些地址稱為IP地址,通常如下所示:
192.168.0.1
這些地址是IPv4(Internet Protocol Version 4,網際網路協議版本4)地址,和現在的大多數東西一樣,它們是計算機實際看到的內容的簡單抽象。IPv4地址是32位的,這意味著它們包含32個1和0的組合。計算機將看到上面列出的地址:
11000000 10101000 00000000 00000001
注:每個十進位制八位位元組的最大值為(2^8)–1,即255。這是可以用8位表示的最大組合數。
如果您想將一個IP地址轉換成它的二進位制等價物,您可以建立一個簡單的表,如下所示。然後取IP地址的一部分(技術上稱為八位位元組),例如192,從左向右移動,檢查是否可以從十進位制數中減去表頭中的數字。有兩條規則:
下面是使用我們的示例地址192.168.0.1的情況
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
在上面的例子中,我取了第一個八位位元組192,並用1標記了128s列。然後,我留下了64,這是相同的數字作為第二列,所以我標記它與1以及。我現在只剩下0了,因為64-64=0。這意味著行的其餘部分都是零。
在第二排,我取了第二個八位組,168。128比168小,所以我用1標記它,剩下40。64大於40,所以我用0標記它。當我移到第三列時,32小於40,所以我用1標記它,剩下8。16大於8,所以我用0標記了它。當我到達8s列時,我用1標記它,剩下的是0,所以其餘的列都用0標記。
第三個八位位元組是0,沒有任何東西可以進入0,所以我們用0標記所有列。
最後一個八位位元組是1,除了1之外,沒有任何東西可以進入1,所以我用0標記所有列,直到我們到達1s列,在那裡我用1標記它。
注意:子網掩碼可能會變得非常複雜,因此在本文的範圍內,我們只討論類子網掩碼。
IP地址由兩部分組成,一個是網路地址,一個是主機地址。子網掩碼是計算機用來將IP地址分為網路地址和主機地址的掩碼。子網掩碼通常如下所示。
255.255.255.0
在二進位制中是這樣的。
11111111.11111111.11111111.00000000
在子網掩碼中,網路位用1表示,主機位用0表示。從上面的二進位制表示可以看出,IP地址的前三個八位位元組用於標識裝置所屬的網路,最後一個八位位元組用於主機地址。
給定IP地址和子網掩碼,我們的計算機可以透過執行位“與”操作來判斷裝置是否在同一網路上。例如,說:
computerOne將首先計算自己的IP和子網掩碼的位和。
注意:使用按位AND運算時,如果對應的位都是1,則結果為1,否則為0。
11000000 10101000 00000000 00000001 11111111 11111111 11111111 00000000
11000000 10101000 00000000 00000000
然後它將計算Computer2的位AND。
11000000 10101000 00000000 00000010 11111111 11111111 11111111 00000000
11000000 10101000 00000000 00000000
如您所見,按位操作的結果是相同的,因此這意味著裝置位於同一網路上。
正如您現在可能已經猜到的,子網掩碼中的網路(1)越多,可以擁有的主機(0)就越少。您可以擁有的主機和網路數量分為3類。
目標 | 網路 | 子網掩碼 | 網路 | 主機 |
A級 | 1-126.0.0.0 | 255.0.0.0 | 126 | 16 777 214 |
B類 | 128-191.0.0.0 | 255.255.0.0 | 16 384 | 65 534 |
C類 | 192-223.0.0.0 | 255.255.255.0 | 2 097 152 | 254 |
您會注意到127.x.x.x範圍被省略了。這是因為整個範圍都是為所謂的環回地址保留的。你的環回地址總是指向你自己的電腦。
169.254.0.x範圍還保留了一個名為APIPA的東西,我們將在本系列後面討論它。
直到幾年前,網際網路上的每個裝置都有一個唯一的IP地址。當IP地址開始耗盡時,一個叫做NAT的概念被引入,它在我們的網路和internet之間增加了另一層。IANA決定,他們將從每一類IP中保留一系列地址:
然後,您的ISP不再為世界上的每個裝置分配一個IP地址,而是為您提供一個名為NAT路由器的裝置,該裝置被分配一個IP地址。然後,您可以從最合適的專用IP範圍分配裝置IP地址。然後NAT路由器維護一個NAT表並代理您到internet的連線。
注意:您的NAT路由器的IP通常是透過DHCP動態分配的,因此它通常會根據您的ISP設定的限制而改變。
對我們來說,記住像FileServer1這樣的可讀名稱要比記住像89.53.234.2這樣的IP地址容易得多。在小型網路上,不存在其他名稱解析解決方案(如DNS),當您嘗試開啟與FileServer1的連線時,您的計算機可以傳送一條多播訊息(這是一種奇特的說法,即向網路上的每個裝置傳送訊息),詢問FileServer1是誰。這種名稱解析方法稱為LLMNR(Link lock Multicast name resolution,鏈路鎖多播名稱解析),雖然它是家庭或小型企業網路的完美解決方案,但它的擴充套件性不好,首先是因為向數千個客戶機廣播將花費太長時間,其次是因為廣播通常不會穿越路由器。
解決可伸縮性問題最常用的方法是使用DNS。域名系統是任何給定網路的電話簿。它使用一個巨大的資料庫將人類可讀的機器名對映到它們的底層IP地址。當您試圖開啟到FileServer1的連線時,您的電腦會詢問您指定的DNS伺服器FileServer1是誰。然後,DNS伺服器將用一個IP地址進行響應,您的PC可以連線到該IP地址。這也是世界上最大的網路網際網路使用的名稱解析方法。
右鍵單擊“網路設定”圖示,然後從關聯選單中選擇“開啟網路和共享中心”。
現在單擊左側的“更改介面卡設定”超連結。
然後右鍵單擊網路介面卡並從上下文選單中選擇屬性。
現在選擇Internet協議版本4,然後單擊屬性按鈕。
在這裡,您可以透過選擇“使用以下IP地址”單選按鈕來配置靜態IP地址。根據以上資訊,您可以填寫IP地址和子網掩碼。預設閘道器是路由器的IP地址。
在對話方塊底部附近,您可以設定DNS伺服器的地址。在家裡,你可能沒有DNS伺服器,但是你的路由器通常有一個小的DNS快取,並將查詢轉發給你的ISP。或者,你可以使用谷歌的公共DNS伺服器8.8.8.8。
如果你有任何問題,你可以發推特給我@taybgibb,或者只留下評論。
...視窗與MSConfig工具相同,可用於調整啟動和引導設定。在Windows7上,它也可以用來管理啟動程式-但是在Windows8和8.1上,您應該使用整合到工作管理員中的啟動管理器。 系統資訊 “系統資訊”視窗顯示有關計算機中安裝的硬體元...
Windows上的備份可能會令人困惑。無論您使用的是windows7還是windows8,您都需要考慮許多整合的備份工具。Windows8也做了不少改動。 您還可以使用第三方備份軟體,無論是要備份到外部驅動器還是要將檔案備份到聯機儲存。我們這...
Windows7增加了PowerShell,一種比命令提示符更強大的命令列shell和指令碼語言。自Windows7以來,PowerShell變得更加突出,它甚至成為Windows10的預設選擇。 PowerShell比傳統的命令提示符更復雜,但它也更強大。命令提示符明顯不如Linux...
...為我們將同時擁有客戶機和伺服器,所以我們將這個稱為Windows7(客戶機),並從下拉列表中選擇Windows7作業系統,然後單擊next。 下一步你會想分配虛擬機器一個體面的記憶體量,最低是512MB,但由於我有相當多的在我的電腦,...
PowerShell為您提供了兩種擴充套件shell的方法。您可以使用管理單元,它是二進位制的,並且是用成熟的程式語言(如C#)開發的,也可以使用模組,它可以是二進位制的,也可以是基於指令碼的。 請務必閱讀本系列之前的文章...
PowerShell有四種類型的作業—後臺作業、遠端作業、WMI作業和計劃作業。加入我們,瞭解它們是什麼以及如何使用它們。 請務必閱讀本系列之前的文章: 瞭解如何使用PowerShell自動化Windows 學習在PowerShell中使用cmdlet 學習如何在Po...
由於PowerShell基於.Net框架,並結合了各種其他技術,如WMI和CIM,因此實現同一目標的方法總是不止一種。快來加入我們,學習如何選擇最佳的方法來完成我們的任務。 請務必閱讀本系列之前的文章: 瞭解如何使用PowerShell自動...
WMI及其較新的兄弟CIM都可用於管理環境中的Windows計算機。但是你知道他們之間的區別嗎?加入我們一起看一看。 請務必閱讀本系列之前的文章: 瞭解如何使用PowerShell自動化Windows 學習在PowerShell中使用cmdlet 學習如何在PowerShell...
PowerShell提供的最好的特性之一是能夠遠端管理伺服器。它甚至可以讓你同時管理一堆。 請務必閱讀本系列之前的文章: 瞭解如何使用PowerShell自動化Windows 學習在PowerShell中使用cmdlet 學習如何在PowerShell中使用物件 在PowerShell中...