互聯網分層和協議【學習筆記】

互聯網的分層html

 

  1. 實體層(Physical Layer服務器

  2. 連接層(Link Layer網絡

  3. 網絡層(Network Layersocket

  4. 傳輸層(Transport Layerui

  5. 應用層(Application Layerspa

 

  越下面的層,越靠近用戶;越上面的層,越靠近硬件。htm

 

互聯網協議blog

 

  每一層都是爲了完成一種功能。爲了實現這些功能,就須要你們都遵照共同的規則。你們都遵照的規則,就叫作"協議"protocol)。接口

  互聯網的每一層,都定義了不少協議。這些協議的總稱,就叫作"互聯網協議"Internet Protocol Suite)。它們是互聯網的核心。進程

 

 

各分層的定義和做用

 

  "實體層",就是把電腦鏈接起來的物理手段,例如光纜、電纜、雙絞線、無線電波等方式。它主要規定了網絡的一些電氣特性,做用是負責傳送01的電信號。

   "連接層",它在"實體層"的上方,肯定了01的分組方式。單純的01沒有任何意義,必須規定解讀方式:多少個電信號算一組?每一個信號位有何意義?

 

  ①以太網協議:

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

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

  ②MAC地址

    以太網規定,連入網絡的全部設備,都必須具備"網卡"接口。數據包必須是從一塊網卡,傳送到另外一塊網卡。網卡的地址,就是數據包的發送地址和接收地址,這叫作MAC地址。(每塊網卡出廠的時候,都有一個全世界獨一無二的MAC地址,長度是48個二進制位,一般用12個十六進制數表示。前6個十六進制數是廠商編號,後6個是該廠商的網卡流水號。有了MAC地址,就能夠定位網卡和數據包的路徑了。)

 

 

網絡層

 

  ①IP協議

    規定網絡地址的協議,叫作IP協議。它所定義的地址,就被稱爲IP地址。

    目前,普遍採用的是IP協議第四版,簡稱IPv4。這個版本規定,網絡地址由32個二進制位組成。(IP協議的做用主要有兩個,一個是爲每一臺計算機分配IP地址,另外一個是肯定哪些地址在同一個子網絡。)

 

由於IP數據包是放在以太網數據包裏發送的,因此咱們必須同時知道兩個地址,一個是對方的MAC地址,另外一個是對方的IP地址。

 

  ②ARP協議

     有了ARP協議,咱們就能夠獲得同一個子網絡內的主機MAC地址,就能夠把數據包發送到任意一臺主機之上。

 

傳輸層

 

  ①由來

    爲了區分數據包是提供給哪一個程序用的,除了mac地址和ip地址,還須要一個參數,表示這個數據包到底供哪一個程序(進程)使用。這個參數就叫作"端口"port),它實際上是每個使用網卡的程序的編號。每一個數據包都發到主機的特定端口,因此不一樣的程序就能取到本身所須要的數據。

    "端口"065535之間的一個整數,正好16個二進制位。01023的端口被系統佔用,用戶只能選用大於1023的端口。不論是瀏覽網頁仍是在線聊天,應用程序會隨機選用一個端口,而後與服務器的相應端口聯繫。

 

    "傳輸層"的功能,就是創建"端口到端口"的通訊。相比之下,"網絡層"的功能是創建"主機到主機"的通訊。只要肯定主機和端口,咱們就能實現程序之間的交流。所以,Unix系統就把主機+端口,叫作"套接字"socket)。有了它,就能夠進行網絡應用程序開發了。

 

  ②UDP協議

    針對端口定義的新的協議。  

    UDP數據包,也是由"標頭""數據"兩部分組成。"標頭"部分主要定義了發出端口和接收端口,"數據"部分就是具體的內容。而後,把整個UDP數據包放入IP數據包的"數據"部分,而前面說過,IP數據包又是放在以太網數據包之中的,因此整個以太網數據包如今變成了下面這樣:

    Head - Head - Head - Data

 

  ③TCP協議  

    UDP協議的優勢是比較簡單,容易實現,可是缺點是可靠性較差,一旦數據包發出,沒法知道對方是否收到。爲了解決這個問題,提升網絡可靠性,TCP協議就誕生了。

    這個協議很是複雜,但能夠近似認爲,它就是有確認機制的UDP協議,每發出一個數據包都要求確認。若是有一個數據包遺失,就收不到確認,發出方就知道有必要重發這個數據包了。

 

 

應用層

 

  應用程序收到"傳輸層"的數據,接下來就要進行解讀。數據必須事先規定好格式,不然根本沒法解讀。"應用層"的做用,就是規定應用程序的數據格式。

  (舉例來講,TCP協議能夠爲各類各樣的程序傳遞數據,好比EmailWWWFTP等等。那麼,必須有不一樣協議規定電子郵件、網頁、FTP數據的格式,這些應用程序協議就構成了"應用層"。)

這是最高的一層,直接面對用戶。它的數據就放在TCP數據包的"數據"部分。

 

 

總結:

 

  網絡通訊就是交換數據包。電腦A向電腦B發送一個數據包,後者收到了,回覆一個數據包,從而實現兩臺電腦之間的通訊。數據包的結構,基本上是下面這樣:

 

  發送這個包,須要知道兩個地址:

  * 對方的MAC地址

  * 對方的IP地址

  (1)最前面的"以太網標頭",設置發出方(本機)的MAC地址和接收方(DHCP服務器)的MAC地址。前者就是本機網卡的MAC地址,後者這時不知道,就填入一個廣播地址:FF-FF-FF-FF-FF-FF

  (2)後面的"IP標頭",設置發出方的IP地址和接收方的IP地址。這時,對於這二者,本機都不知道。因而,發出方的IP地址就設爲0.0.0.0,接收方的IP地址設爲255.255.255.255

  (3)最後的"TCP 標頭",設置發出方的端口和接收方的端口。這一部分是DHCP協議規定好的,發出方是68端口,接收方是67端口。

   

 

 

參考:http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html

相關文章
相關標籤/搜索