• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 互聯網協議入門(一)

    發表于:2012-06-07來源:不祥作者:阮一峰點擊數: 標簽:互聯網協議
    我們每天使用互聯網,你是否想過,它是如何實現的? 全世界幾十億臺電腦,連接在一起,兩兩通信。上海的某一塊網卡送出信號,洛杉磯的另一塊網卡居然就收到了,兩者實際上根本不知道對方的物理位置,你不覺得這是很神奇的事情嗎?

      我們每天使用互聯網,你是否想過,它是如何實現的?

      全世界幾十億臺電腦,連接在一起,兩兩通信。上海的某一塊網卡送出信號,洛杉磯的另一塊網卡居然就收到了,兩者實際上根本不知道對方的物理位置,你不覺得這是很神奇的事情嗎?

      互聯網的核心是一系列協議,總稱為"互聯網協議"(Internet Protocol Suite)。它們對電腦如何連接和組網,做出了詳盡的規定。理解了這些協議,就理解了互聯網的原理。

      下面就是我的學習筆記。因為這些協議實在太復雜、太龐大,我想整理一個簡潔的框架,幫助自己從總體上把握它們。為了保證簡單易懂,我做了大量的簡化,有些地方并不全面和精確,但是應該能夠說清楚互聯網的原理。

      =================================================

      互聯網協議入門

      作者:阮一峰

      一、概述

      1.1 五層模型

      互聯網的實現,分成好幾層。每一層都有自己的功能,就像建筑物一樣,每一層都靠下一層支持。

      用戶接觸到的,只是最上面的一層,根本沒有感覺到下面的層。要理解互聯網,必須從最下層開始,自下而上理解每一層的功能。

      如何分層有不同的模型,有的模型分七層,有的分四層。我覺得,把互聯網分成五層,比較容易解釋。

      如上圖所示,最底下的一層叫做"實體層"(Physical Layer),最上面的一層叫做"應用層"(Application Layer),中間的三層(自下而上)分別是"鏈接層"(Link Layer)、"網絡層"(Network Layer)和"傳輸層"(Transport Layer)。越下面的層,越靠近硬件;越上面的層,越靠近用戶。

      它們叫什么名字,其實并不重要。只需要知道,互聯網分成若干層就可以了。

      1.2 層與協議

      每一層都是為了完成一種功能。為了實現這些功能,就需要大家都遵守共同的規則。

      大家都遵守的規則,就叫做"協議"(protocol)。

      互聯網的每一層,都定義了很多協議。這些協議的總稱,就叫做"互聯網協議"(Internet Protocol Suite)。它們是互聯網的核心,下面介紹每一層的功能,主要就是介紹每一層的主要協議。

      二、實體層

      我們從最底下的一層開始。

      電腦要組網,第一件事要干什么?當然是先把電腦連起來,可以用光纜、電纜、雙絞線、無線電波等方式。

      這就叫做"實體層",它就是把電腦連接起來的物理手段。它主要規定了網絡的一些電氣特性,作用是負責傳送0和1的電信號。

      三、鏈接層

      3.1 定義

      單純的0和1沒有任何意義,必須規定解讀方式:多少個電信號算一組?每個信號位有何意義?

      這就是"鏈接層"的功能,它在"實體層"的上方,確定了0和1的分組方式。

      3.2 以太網協議

      早期的時候,每家公司都有自己的電信號分組方式。逐漸地,一種叫做"以太網"(Ethernet)的協議,占據了主導地位。

      以太網規定,一組電信號構成一個數據包,叫做"幀"(Frame)。每一幀分成兩個部分:標頭(Head)和數據(Data)。

      "標頭"包含數據包的一些說明項,比如發送者、接受者、數據類型等等;"數據"則是數據包的具體內容。

      "標頭"的長度,固定為18字節。"數據"的長度,最短為46字節,最長為1500字節。因此,整個"幀"最短為64字節,最長為1518字節。如果數據很長,就必須分割成多個幀進行發送。

      3.3 MAC地址

      上面提到,以太網數據包的"標頭",包含了發送者和接受者的信息。那么,發送者和接受者是如何標識呢?

      以太網規定,連入網絡的所有設備,都必須具有"網卡"接口。數據包必須是從一塊網卡,傳送到另一塊網卡。網卡的地址,就是數據包的發送地址和接收地址,這叫做MAC地址。

      每塊網卡出廠的時候,都有一個全世界獨一無二的MAC地址,長度是48個二進制位,通常用12個十六進制數表示。

      前6個十六進制數是廠商編號,后6個是該廠商的網卡流水號。有了MAC地址,就可以定位網卡和數據包的路徑了。

      3.4 廣播

      定義地址只是第一步,后面還有更多的步驟。

      首先,一塊網卡怎么會知道另一塊網卡的MAC地址?

      回答是有一種ARP協議,可以解決這個問題。這個留到后面介紹,這里只需要知道,以太網數據包必須知道接收方的MAC地址,然后才能發送。

      其次,就算有了MAC地址,系統怎樣才能把數據包準確送到接收方?

      回答是以太網采用了一種很"原始"的方式,它不是把數據包準確送到接收方,而是向本網絡內所有計算機發送,讓每臺計算機自己判斷,是否為接收方。

      上圖中,1號計算機向2號計算機發送一個數據包,同一個子網絡的3號、4號、5號計算機都會收到這個包。它們讀取這個包的"標頭",找到接收方的MAC地址,然后與自身的MAC地址相比較,如果兩者相同,就接受這個包,做進一步處理,否則就丟棄這個包。這種發送方式就叫做"廣播"(broadcasting)。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>