計算機網絡基礎概要

本文比較長,有些沒有詳細介紹的將會拆分出來在新的博客中。php

網絡層次劃分

OSI參考模型:html

 

 

除了標準的OSI七層模型之外,常見的網絡層次劃分還有TCP/IP四層協議以及TCP/IP五層協議,它們之間的對應關係以下圖所示:算法

 

 

OSI七層網絡模型

  •  物理層關注一條通訊信道上傳輸原始比特,設計問題主要是硬件方面。該層爲上層協議提供了一個傳輸數據的可靠的物理媒體。

物理層重要設備中繼器(放大器)和集線器。數據庫

 

  •  數據鏈路層:將一個原始的傳輸信息轉變爲一個沒有漏檢傳輸錯誤的線路。發送方將數據拆分紅數據幀,順序地發送給接收方,待接收方確認該服務真實後,返回確認幀給發送方。

數據鏈路層重點:瀏覽器

1爲網絡層提供可靠的數據傳輸;緩存

2基本數據單位幀;安全

3主要協議:以太網協議;服務器

4重要設備:網橋和交換機。網絡

 

  •  網絡層控制子網地運行,解決如何將數據包從源端路由到接收方。

網絡層中涉及衆多的協議,最重要的協議是TCP/IP,核心協議——IP協議。分佈式

IP協議僅僅提供不可靠、無鏈接的傳送服務。

IP協議的主要功能有:無鏈接數據報傳輸、數據報路由選擇和差錯控制。

網絡層的重點:

一、負責對子網間的數據包進行路由選擇。實現擁塞控制、網際互連等功能;

二、基本數據單位:IP數據報;

三、包含的主要協議:

   IP協議(Internet Protocol,因特網互聯協議);

   ICMP協議(Internet Control Message Protocol,因特網控制報文協議);

   ARP協議(Address Resolution Protocol,地址解析協議);

   RARP協議(Reverse Address Resolution Protocol,逆地址解析協議)。

四、重要設備:路由器。

 

  •  傳輸層接收來自上層數據,分割更小的單元傳遞給網絡層,是從端到端的層,指原機器的一個程序利用報文頭和控制信息與目標機器進行會話。(1~3層是鏈式連接,3~7層是端到端鏈接)

網絡層重點:

一、負責將上層數據分段並提供端到端的、可靠的或不可靠的傳輸以及端到端的差錯控制和流量控制問題;

二、主要協議:

TCP協議(Transmission Control Protocol,傳輸控制協議)、

UDP協議(User Datagram Protocol,用戶數據報協議);

三、重要設備:網關。

 

  • 會話層容許不一樣機器創建對話,提供各類服務包括:對話控制,令牌管理,同步功能。
  •  表示層關注傳遞信息的語法和語意,轉換數據數據的加密、壓縮、格式轉換等。
  •  應用層爲操做系統或網絡應用程序提供訪問網絡服務的接口。

會話層、表示層和應用層重點:

一、數據傳輸基本單位報文;

二、主要協議:FTP(文件傳送協議)、Telnet(遠程登陸協議)、DNS(域名解析協議)、SMTP(郵件傳送協議),POP3協議(郵局協議),HTTP協議(Hyper Text Transfer Protocol)。

 

IP

1)網絡地址

IP地址 = 網絡號(包括子網號)+ 主機號組成

規定首字節不能是1270255,主機各位不能同時爲01主機號全0表示網絡號,主機號全1表示廣播地址

 

 

A類地址:0開頭。  網絡號第一個字節。 範圍:1.0.0.0 ~ 127.255.255.255

B類地址:10開頭。 網絡號前兩個字節。 範圍:128.0.0.0 ~ 191.255.255.255

C類地址:110開頭網絡號個字節。 範圍:192.0.0.0 ~ 223.255.255.255

D類地址:1110開頭範圍:224.0.0.0 ~ 239.255.255.255

E類地址:1111開頭範圍:240.0.0.0 ~ 255.255.255.255。E類地址爲保留地址,供之後使用。

只有A,B,C有網絡號和主機號之分,D類地址和E類地址沒有劃分網絡號和主機號。

 

2)廣播地址

  廣播地址(直接廣播地址),區分受限廣播地址。

  主機號爲全1。當向某個網絡的廣播地址發送消息時,該網絡內的全部主機都能收到該廣播消息。

 

3)組播地址

  D類地址做爲組播地址一對多的通訊;

  

4255.255.255.255

IP地址是受限廣播地址只能用於本地網絡,路由器不會轉發以受限廣播地址爲目的地址的分組;廣播地址(直接廣播地址)可以經過某些路由器(不是全部的路由器),而受限的廣播地址不能經過路由器。

 

50.0.0.0

經常使用於尋找本身的IP地址,例如在咱們的RARPBOOTPDHCP協議中,若某個未知IP地址的無盤機想要知道本身的IP地址,它就以255.255.255.255爲目的地址,向本地範圍的服務器發送IP請求分組。

 

6)迴環地址

127.0.0.0/8被用做迴環地址,迴環地址表示本機的地址,經常使用於對本機的測試,用的最多的是127.0.0.1

 

7AB類私有地址

  私有地址(private address),私有路由不能對外直接提供信息

IPv4 規劃時擔憂 IP 有不足的狀況,並且爲了應付某些企業內部的網絡設定,因而有了私有 IP (Private IP) 。私有 IP 分別在 A, B, C 三個 Class 當中各保留一段做爲私有 IP 網段:

Class A10.0.0.0  - 10.255.255.255

Class B172.16.0.0 - 172.31.255.255

Class C192.168.0.0 - 192.168.255.255

 

地址解析協議——ARP/RARP協議

  • 地址解析協議,ARPAddress Resolution Protocol)是根據IP地址獲取物理地址的一個TCP/IP協議。(主機必須知道目的網絡適配器的物理地址才能向它發送數據)

網段上每臺主機保存ARP表或ARP緩存的表格,其中包含了網段上其餘主機的IP地址與物理地址的對應關係。

ARP協議工做流程:

1、當主機向網段上的其餘主機發送數據時,先查看ARP緩存上物理地址。ARP緩存是動態變化的

2、不在ARP緩存中,主機發送一個名爲ARP請求幀的廣播。ARP請求幀包含爲解析的IP地址,還包含發送這個請求的主機的IP地址和物理地址。

三、網段上的其餘主機收到請求,擁有這個未解析IP地址的主機向發出請求的主機發送本身的物理地址。這個新的IP地址與物理地址的對應關係就會添加到請求主機的ARP緩存中。

 

  •  逆地址解析協議,RARP在知道物理地址而不知道IP地址時,使用RARP

RARP協議工做流程:

1、給主機發送一個本地的RARP廣播,在此廣播包中,聲明本身的MAC地址而且請求任何收到此請求的RARP服務器分配一個IP地址;

2、本地網段上的RARP服務器收到此請求後,檢查其RARP列表,查找該MAC地址對應的IP地址

 

子網劃分和CIDR

   IPv4的網絡號佔位太多,而主機號位太少,主機地址稀缺。爲了有效地利用IP地址,經過對主機號的高位部分取做爲子網號,從一般的網絡位界限中擴展或壓縮子網掩碼,用來建立某類地址的更多子網。(建立更多子網時,每一個子網上可用主機地址數目減小)

 

什麼是子網?

子網劃分能夠利用IP地址系統把物理網絡分解爲更小的邏輯實體——子網。

子網的概念最先源自於地址分類系統,並且在ABC類地址中可以獲得很好的展示。然而硬件廠商和internet社區創建了一種解析地址的新系統,名爲無類別域間路由(CIDR),它不須要關心地址類別。

子網最顯著的特徵具備子網掩碼。劃分子網時須要注意:主機ID爲全0時表示網絡ID,全1時表示廣播地址。

 

什麼是子網掩碼?

子網掩碼:標誌兩個IP地址是否同屬於一個子網,是32位二進制地址。1表明該位是網絡位,0表明主機位。它和IP地址同樣也是使用點式十進制來表示。

若是兩個IP地址在子網掩碼的按位與的計算下所得結果相同,即代表它們共屬於同一子網中。

子網掩碼不能單獨存在,必須結合IP地址一塊兒使用。子網掩碼只有一個做用,就是將某個IP地址劃分紅網絡地址和主機地址兩部分。

A類默認子網掩碼 255.0.0.0     一個子網最多能夠容納1677萬多臺電腦 
B類默認子網掩碼 255.255.0.0    一個子網最多能夠容納6萬臺電腦 
C類默認子網掩碼 255.255.255.0   一個子網最多能夠容納254臺電腦 

 

1、經過子網掩碼計算子網個數及每一個子網中可以使用的主機地址個數:

  • 255.255.255.0 子網掩碼最多容納多少臺電腦? 

一、轉換成二進制:11111111.11111111.11111111.00000000,後面有8個0

22^8 -- 2 = 254,(有兩個IP不能用,最後一段不能爲0255

 

若要把***.***.***.0/m劃分爲***.***.***.0/nm<n<32),獲得的子網個數爲2^(n-m),去掉全0和全1,可用子網個數爲2^(n-m) -- 2,每一個子網中可以使用的主機地址是2^(32-n) -- 2

把網絡117.15.32.0/23劃分爲117.15.32.0/27,獲得的子網是 16 個,可用子網個數爲14個,每一個子網中可以使用的主機地址是 30 個。

 

2、經過子網個數或主機地址個數計算子網掩碼:

1根據主機數計算子網掩碼

  • B類地址168.195.0.0劃分若干個子網,每一個子網內主機700臺,計算其子網掩碼:

1將主機數目轉化爲二進制來表示:700 = 1010111100

2若是主機數小於或等於254(N<8)(注意去掉保留的兩個IP地址),取該主機的二進制位數N 。若是大於254N>8說明主機地址佔據不止8該二進制爲十位數,N=10

3使用255.255.255.255將該類IP地址的主機地址位數所有置1,而後從後向前的將N位所有置爲 0,即爲子網掩碼值。

子網掩碼一共由32位組成,肯定後面10位是0,那前面的22位就是1,最合適的子網掩碼:11111111.11111111.11111100.00000000,轉換成10進制:255.255.252.0 

 

2)根據子網數計算子網掩碼:

  •  欲將BIP地址168.195.0.0劃分爲27個子網,計算其子網掩碼:

127-1=26,轉化爲二進制11010--1由於計算機從0開始,到26纔是27個)

2、該二進制的位數:N=5B類地址的子網掩碼255.255.0.0,將其主機地址前5位置1,即11111111.11111111.11111000.00000000=255.255.248.0。  

注:將主機地址前5位置1,劃分出2^5 -- 2=30個子網。(去掉全0和全1的子網)

 

IP地址的網段

  • 例如: IP:192.168.0.1,子網掩碼:255.255.255.0,求其網絡標識與主機標識?

把IP的每一段轉換爲一個二進制數,192.168.0.1 = 11000000.10101000.00000000.00000001 

IP    11000000.10101000.00000000.00000001 
子網掩碼  11111111.11111111.11111111.00000000 

 

要想在同一網段,必需作到網絡標識相同各種IP的網絡標識算法A類只算第一段。B類只算第1、二段。C類算第1、2、三段。 

IP 地址和子網掩碼進行邏輯與運算
如:192.168.0.1  255.255.255.0,先轉換爲二進制

  IP      11000000.10101000.00000000.00000001 
  子網掩碼    11111111.11111111.11111111.00000000 
  邏輯與結果     11000000.10101000.00000000.00000000 

轉換爲十進制192.168.0.0,這就是網絡標識

 
再將子網掩碼取反:00000000.00000000.00000000.11111111,與IP邏輯與運算

得出結果00000000.00000000.00000000.00000001,轉換爲10進制,即0.0.0.1 
0.0.0.1就是主機標識

 

  • B類IP 188.188.0.111188.188.5.222子網掩碼都爲255.255.254.0,在同一網段嗎? 

先轉換成二進制 
  188.188.0.111  =  10111100.10111100.00000000.01101111 
  188.188.5.222  =  10111100.10111100.00000101.11011010 
  255.255.254.0 =  11111111.11111111.11111110.00000000 (子網掩碼
分別 IP 地址和子網掩碼進行邏輯與運算,得 
  10111100.10111100.00000000.00000000 
  10111100.10111100.00000100.00000000 
B類IP ,判斷第一二段,網絡標識同樣,在同一網段。 

 

TCP/IP協議

       TCP/IP協議族,簡稱TCP/IP。該協議家族的兩個核心協議:TCP傳輸控制協議)和IP網際協議TCP負責發現傳輸的問題,一有問題就發出信號,要求從新傳輸,直到全部數據安全正確地傳輸到目的地。IP給因特網的每臺聯網設備規定一個地址。

因爲篇幅很長,我將它寫在另外一篇博客: TCP/IP協議族

 

DNS及域名解析流程

  DNSDomain Name System,域名系統),因特網上做爲域名和IP地址相互映射的一個分佈式數據庫,可以使用戶更方便的訪問互聯網,而不用去記住可以被機器直接讀取的IP數串。經過主機名,最終獲得該主機名對應的IP地址的過程叫作域名解析(或主機名解析)。

詳細參考維基百科:https://zh.wikipedia.org/wiki/域名系統

 

DNS域名查找流程

當用戶在瀏覽器中輸入域名,如:www.google.com,並按下回車後,DNS解析過程大致以下:

 

注:下面標題對應着序號

1瀏覽器緩存檢查(本機)

    瀏覽器會首先搜索瀏覽器自身的DNS緩存(域名被緩存的時間能夠經過TTL屬性來設置,通常是1分鐘,且只能容納1000條緩存),若是自身的緩存中有www.google.com對應的條目,並且沒有過時,則解析到此結束

 

2操做系統緩存檢查(本機)+hosts解析(本機)

   若是瀏覽器自身緩存裏沒有對應條目,瀏覽器搜索操做系統自身的DNS緩存中是否有這個域名對應的DNS解析結果,若是找到且沒有過時則中止搜索解析到此結束

   在Linux中能夠經過/etc/hosts文件來設置域名解析的IP地址。瀏覽器會首先使用這個IP地址。當解析到個域名時,操做系統會在自身的DNS緩存中緩存這個結果

 

3本地區域名服務器解析(LDNS

    若是在hosts文件中沒有找到對應的條目,瀏覽器會發起一個DNS的系統調用,向本地配置的首選DNS服務器LDNS通常是電信運營商提供)發起域名解析請求經過UDP協議向DNS53端口發起遞歸請求,運營商的DNS服務器必須提供咱們該域名的IP地址。

    大約80%的域名解析都到這裏就已經完成了,因此LDNS主要承擔了域名的解析工做。運營商的DNS服務器首先查找自身的緩存,找到對應的條目,且沒有過時,則解析成功。

 

4、請求根域名服務器(Root Server 

   若是LDNS沒有找到對應的條目,運營商的DNS發起一系列迭代DNS解析請求首先向根域名服務器根域名 內置13個根域DNSIP地址發起請求

 

五、根域名服務器LDNS服務器返回所查詢的主域名服務器地址

   主域名服務器(gTLD),是國際頂級域名服務器(包含.com.cn.org),全球只有13臺。根域發現這是一個頂級域com域的一個域名,因而就告訴運營商的DNS我不知道這個域名的IP地址,可是我知道com域的IP地址,你去找它去。

 

6本地域名服務器向主域名服務器發送請求

   因而運營商的DNS就獲得了com域的IP地址,又向com域的IP地址發起了請求(請問www.google.com這個域名的IP地址是多少?),com域這臺服務器告訴運營商的DNS我不知道www.google.com這個域名的IP地址,可是我知道google.com這個域的DNS地址,你去找它去。

 

七、gTLD服務器返回此域名對應的管理方域名服務器Name Server的地址

     Name Server是你註冊的域名服務器,你在某個域名服務提供商申請域名,那麼這個域名解析任務就由這個域名提供商完成。

 

八、Name Server域名服務器會查詢存儲的域名和IP的映射關係表

   正常狀況下都根據域名獲得目標IP記錄,連同一個TTL值返回給DNS Server域名服務器。

   因而本地區域名服務器的DNS又向google.com這個域名的DNS地址發起請求(請問www.google.com這個域名的IP地址是多少?)這個時候google.com域的DNS服務器一查,果然在我這裏

 

九、返回該域名對應的IPTTL

     Local DNS Server會緩存這個域名和IP的對應關係,緩存的時間由TTL值控制。

     而後把找到的結果發送給運營商的DNS服務器

 

十、把解析的結果返回給用戶

  這個時候運營商的DNS服務器就拿到了www.google.com這個域名對應的IP地址。

  用戶根據TTL值緩存在本地系統緩存中,域名解析過程結束

 

HTTP協議

超文本傳輸協議(英文HyperText Transfer Protocol縮寫HTTP)是一種用於分佈式、協做式和超媒體信息系統的應用層協議HTTP萬維網的數據通訊的基礎。

一、Get是從服務器上獲取數據,Post是向服務器發送數據。

二、Get傳送的數據量小,不能大於2KBPost傳送的數據量較大,通常被默認爲不受限制。注:get自己是沒有限制大小的,因爲get的參數都是拼接在url上,由於瀏覽器的限制,才限制在2KB

三、根據HTTP規範,GET用於信息獲取,並且應該是安全的和冪等的。

  • . 安全:指該操做用於獲取信息而非修改信息。GET請求通常不該產生反作用,它僅僅是獲取資源信息,像數據庫查詢,不修改或增長數據,不影響資源的狀態。
  •   冪等:對同一URL的多個請求應該返回一樣的結果。

關於http協議,寫起來又是一長篇鉅著,待我往後有空補充。

相關文章
相關標籤/搜索