1. 程式人生 > >002---tcp/ip五層詳解

002---tcp/ip五層詳解

程序 幫我 功能 mac 發送 數字 我們 編號 什麽

tcp/ip 五層模型講解

越靠底層就越接近硬件,越靠上層越接近用戶。先從底層看起,理解整個互聯網通信的原理。

物理層(傳輸電信號)

孤立的計算機想要一起玩。就必須用硬件在計算機之間完成組網。以硬件做為介質來傳輸。
物理層:

  • 光纜
  • 電纜
  • 雙絞線

功能:主要是發生高低電壓(電信號)。高電壓對應1,低電壓對於0。

數據鏈路層(ARP協議)

物理層傳來的單純的電信號0和1沒任何意義。必須規定電信號多少位一組,每組代表什麽意思。
功能:定義了電信號分組方式。

規定

  • 一組電信號構成一個數據包,叫做幀。
  • 每一組數據幀,包含head 和 數據data 兩部分

head(固定18個字節)

  • 發送者/原地址:6個字節
  • 接收者/目標地址:6個字節
  • 數據類型:6個字節

data(46-1500字節)

  • 數據包的具體內容

mac 地址

  • head包含的目標地址和原地址就是網卡的地址,即mac地址
  • 每塊網卡出廠時都被燒制一個世界上唯一的mac地址,長度為48位二進制,通常由12位16進制數表示
  • 前6位是廠商編號、後六位是流水線編號

廣播

  • 有了mac地址兩臺計算機就能通信了。通過ARP協議獲取另外一臺計算機的mac地址,以廣播的方式進行通信,即靠吼。
  • 收到數據包之後拆包,在head部分發現對方發來的目標地址不是自己的就丟棄,是自己的就響應。

ARP協議

  • 功能:廣播的方式發生數據包,獲取目標主機的mac地址。
  • 協議工作方式:每臺主機ip都是已知的

網絡層(IP協議)

之前有了Ethernet、mac地址、廣播的方式。世界上的計算機就能彼此通信,問題是世界範圍內的互聯網是由一個個小小的隔離的局域網組成,那麽如果所有的通信都采用以太網的廣播方式,那麽一臺機器發生的包全世界都會收到,這不僅僅是效率的問題,這更會是一場災難。
所以,網絡層就出現了。必須有一種方法來區分哪些計算機屬於同一個域,哪些不是。如果是就采用廣播的方式,如果不是,就采用路由的方式。
功能:引入一套新的地址來區分不同的廣播域/子網,這套地址即網絡地址。

IP協議

  • 它定義的地址叫做ip地址,廣泛采用iPv4,它規定用32位二進制表示
  • 範圍:0.0.0.0 - 255.255.255.255
  • 一個ip地址通常寫成4段十進制數:192.168.0.1

組成

  • 網絡部分:標識子網
  • 主機部分:標識主機
  • 註意:單純的ip地址段只是標識了ip地址的種類,根據網絡部分或主機部分並不能判斷二者是否處於同一子網。

子網掩碼

所謂”子網掩碼”,就是表示子網絡特征的一個參數。它在形式上等同於IP地址,也是一個32位二進制數字,它的網絡部分全部為1,主機部分全部為0。比如,IP地址172.16.10.1,如果已知網絡部分是前24位,主機部分是後8位,那麽子網絡掩碼就是11111111.11111111.11111111.00000000,寫成十進制就是255.255.255.0。

知道子網掩碼就可以判斷,任意兩個ip是否處於同一子網絡。將兩個ip地址與子網掩碼分別進行and運算(兩個數位加1,運算結果都是1則為1,,否則為0),最後比較結果即可。

ip數據包

  • head
  • data
  • 直接放在以太網包的data部分。

傳輸層(TCP和UDP協議)

網絡層的IP協議幫我們區分子網,數據鏈路層的ARP協議幫我們區分mac地址找到主機。然後大家用的卻是應用程序,比如說騰訊QQ、愛奇藝...
怎麽知道找到主機的應用程序呢,答案就是端口。

功能:建立端口與端口之間的通信

端口範圍:0 - 65535 ,0 - 1023 為系統占用端口

應用層(http協議、ftp協議、https協議)

用戶使用的都是應用程序,均工作與應用層,大家都可以開發自己的應用程序,數據多種多樣,必須規定好數據的形式。

功能:規定應用程序的數據格式

002---tcp/ip五層詳解