1. 程式人生 > >TCP/IP五層模型詳解

TCP/IP五層模型詳解

tro 一個個 idt 字節 主機 註意 分享圖片 現在 比較

  將應用層,表示層,會話層並作應用層,從tcp/ip五層協議的角度來闡述每層的由來與功能,搞清楚了每層的主要協議就理解了整個互聯網通信的原理。

  首先,用戶感知到的只是最上面一層應用層,自上而下每層都依賴於下一層,所以我們從最下一層開始切入,比較好理解每層都運行特定的協議,越往上越靠近用戶,越往下越靠近硬件

技術分享圖片

物理層

物理層由來:孤立的計算機之間必須完成組網。

技術分享圖片

物理層功能:主要是基於電器特性發送高低電壓(電信號),高電壓對應數字1,低電壓對應數字0

數據鏈路層

數據鏈路層的功能:定義了電信號的分組方式,分組方式後來形成了統一的標準,即以太網協議ethernet。

ethernet規定:

  • 一組電信號構成一個數據包,叫做“幀”
  • 每一數據幀分成:報頭head和數據data兩部分

head包含:(固定18個字節)

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

data包含:(最短46字節,最長1500字節)

  • 數據包的具體內容

head長度+data長度=最短64字節,最長1518字節,超過最大限制就分片發送

mac地址:(局域網內廣播時,根據mac地址定位)

  head中包含的源和目標地址由來:ethernet規定接入internet的設備都必須具備網卡,發送端和接收端的地址便是指網卡的地址,即mac地址。

  mac地址:每塊網卡出廠時都被燒制上一個世界唯一的mac地址

,長度為48位2進制,通常由12位16進制數表示(前六位是廠商編號,後六位是流水線號)

技術分享圖片

廣播:

  有了mac地址,同一網絡內的兩臺主機就可以通信了(一臺主機通過arp協議獲取另外一臺主機的mac地址)

  ethernet采用最原始的方式,基於MAC地址廣播的方式進行通訊,即計算機通信基本靠吼。(示例見上圖)

網絡層

  世界大網絡是由一個個彼此隔離的局域網組成,以太網包只能在局域網內發送,一個局域網是一個廣播域。

  以太網的廣播包只能在一個廣播域內發送,跨廣播域通信只能通過路由轉發。

技術分享圖片

需要方法區分那些計算機是同一廣播域,同一廣播域則采用廣播方式發送,否則采用路由方式。

網絡層功能

引入一套新的地址用來區分不同的廣播域/子網,這套地址即網絡地址。

IP協議:

  1、規定網絡地址的協議叫ip協議,它定義的地址稱之為ip地址,廣泛采用的v4版本即ipv4,它規定網絡地址由32位2進制表示
  2、範圍0.0.0.0-255.255.255.255
  3、一個ip地址通常寫成四段十進制數,例:172.16.10.1

子網掩碼:

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

  子網掩碼只有一個作用,就是將某個IP地址劃分成網絡地址和主機地址兩部分。

  區分網絡位和主機位是為了劃分子網,劃分子網主要是為了避免廣播風暴和地址浪費

IP地址分類:

  A類IP地址:一個A類IP地址由1字節的網絡地址和3字節主機地址組成,網絡地址的最高位必須是“0”, 地址範圍從1.0.0.0 到126.0.0.0。可用的A類網絡有126個,每個網絡能容納1億多個主機。

  B類IP地址:一個B類IP地址由2個字節的網絡地址和2個字節的主機地址組成,網絡地址的最高位必須是“10”,地址範圍從128.0.0.0到191.255.255.255。可用的B類網絡有16382個,每個網絡能容納6萬多個主機 。

  C類IP地址:一個C類IP地址由3字節的網絡地址和1字節的主機地址組成,網絡地址的最高位必須是“110”。範圍從192.0.0.0到223.255.255.255。C類網絡可達209萬余個,每個網絡能容納254個主機。

  D類IP地址:D類地址第一個字節以“1110”開始,它是一個專門保留的地址。它並不指向特定的網絡,目前這一類地址被用在多點廣播(Multicast)中。多點廣播地址用來一次尋址一組計算機,它標識共享同一協議的一組計算機

  E類IP地址:以“llll0”開始,為將來使用保留。

特殊地址:

  全零地址:"0.0.0.0"對應當前地址。

  全“1”地址:"255.255.255.255"是當前子網的廣播地址。

  回環地址:"127.0.0.1"即本機地址

127.0.0.1與0.0.0.0區別:

  環回接口(loopback):

  • 傳給環回地址(一般是127.0.0.1)的任何數據均作為IP輸入。
  • 傳給廣播地址或多播地址的數據報復制一份傳給環回接口,然後送到以太網上。這是 因為廣播傳送和多播傳送的定義包含主機本身。
  • 任何傳給該主機IP地址的數據均送到環回接口。

IP報文:

  IP協議是TCP/IP協議的核心,所有的TCP,UDP,IMCP,IGCP的數據都以IP數據格式傳輸,要註意的是,IP不是可靠的協議,這是說,IP協議沒有提供一種數據未傳達以後的處理機制--這被認為是上層協議--TCP或UDP要做的事情。所以這也就出現了TCP是一個可靠的協議,而UDP就沒有那麽可靠的區別。

技術分享圖片

ARP協議

  arp協議功能:廣播的方式發送數據包,獲取目標主機的mac地址

  協議工作方式:每臺主機ip都是已知的

ICMP協議

  當傳送IP數據包發生錯誤--比如主機不可達,路由不可達等等,ICMP協議將會把錯誤信息封包,然後傳送回給主機。給主機一個處理錯誤的機會.

  ICMP(網絡控制報文)協議一般用於檢測網絡是否通暢,基於ICMP協議的工具主要有Ping和traceroute。

ping:

  單詞源自聲納定位,而這個程序的作用也確實如此,它利用ICMP協議包來偵測另一個主機是否可達。原理是用類型碼為0的ICMP發請求,受到請求的主機則用類型碼為8的ICMP回應。ping程序來計算間隔時間,並計算有多少個包被送達。用戶就可以判斷網絡大致的情況。

traceroute:

  查看從當前主機到某地址一共經過多少跳路由.

傳輸層

  傳輸層的由來:網絡層的ip幫我們區分子網,以太網層的mac幫我們找到主機,再通過端口來標識主機上的應用程序。

  端口即應用程序與網卡關聯的編號。

  傳輸層功能:建立端口到端口的通信,補充:端口範圍0-65535,0-1023為系統占用端口

  傳輸層有兩種協議,TCP和UDP

技術分享圖片

TCP協議:

  可靠傳輸,TCP數據包沒有長度限制,理論上可以無限長,但是為了保證網絡的效率,通常TCP數據包的長度不會超過IP數據包的長度,以確保單個TCP數據包不必再分割。(流式協議,不間斷發送)

  TCP可靠的緣故:只要不得到確認,就重新發送數據報,直到得到對方的確認為止。

tcp報文:

技術分享圖片

tcp的3次握手和4次揮手:

  所謂三次握手(Three-way Handshake),是指建立一個TCP連接時,需要客戶端和服務器總共發送3個包。

  TCP的連接的拆除需要發送四個包,因此稱為四次揮手(four-way handshake)。客戶端或服務器均可主動發起揮手動作,在socket編程中,任何一方執行close()操作即可產生揮手操作。

技術分享圖片

UDP協議

  不可靠傳輸,”報頭”部分一共只有8個字節,總長度不超過65,535字節,正好放進一個IP數據包。

TCP和UDP對比總結:

  TCP協議雖然安全性很高,但是網絡開銷大,而UDP協議雖然沒有提供安全機制,但是網絡開銷小,在現在這個網絡安全已經相對較高的情況下,為了保證傳輸的速率,我們一般還是會優先考慮UDP協議!

TCP/IP五層模型詳解