序
計算機網絡學習的核心內容就是網絡協議的學習。網絡協議是為計算機網絡中進行數據交換而建立的規則、標準或者說是約定的集合。因為不同用戶的數據終端可能采取的字符集是不同的,兩者需要進行通信,必須要在一定的標準上進行。
計算機網絡協議同我們的語言一樣,多種多樣。而ARPA公司與1977年到1979年推出了一種名為ARPANET的網絡協議受到了廣泛的熱捧,其中最主要的原因就是它推出了人盡皆知的TCP/IP標準網絡協議。目前TCP/IP協議已經成為Internet中的“通用語言”。
1. 網絡層次劃分
為了使不同計算機廠家生產的計算機能夠相互通信,以便在更大的范圍內建立計算機網絡,國際標準化組織(ISO)在1978年提出了“開放系統互聯參考模型”,即著名的OSI/RM模型(Open System Interconnection/Reference Model)。它將計算機網絡體系結構的通信協議劃分為七層,自下而上依次為:物理層(Physics Layer)、數據鏈路層(Data Link Layer)、網絡層(Network Layer)、傳輸層(Transport Layer)、會話層(Session Layer)、表示層(Presentation Layer)、應用層(Application Layer)。其中第四層完成數據傳送服務,上面三層面向用戶。
除了標準的OSI七層模型以外,常見的網絡層次劃分還有TCP/IP四層協議以及TCP/IP五層協議。
2. OSI七層網絡模型
1)物理層(Physical Layer)
- 激活、維持、關閉通信端點之間的機械特性、電氣特性、功能特性以及過程特性。該層為上層協議提供了一個傳輸數據的可靠的物理媒體。
- 簡單的說,物理層確保原始的數據可在各種物理媒體上傳輸。
- 物理層記住兩個重要的設備名稱,中繼器(Repeater,也叫放大器)和集線器。
附:
中繼器是網絡物理層上面的連接設備。適用于完全相同的兩類網絡的互連,主要功能是通過對數據信號的重新發送或者轉發,來擴大網絡傳輸的距離。中繼器就是用來在網線中放大信號的。
集線器 ,它的作用可以簡單的理解為將一些機器連接起來組成一個局域網。
2)數據鏈路層(Data Link Layer)
數據鏈路層在物理層提供的服務的基礎上向網絡層提供服務,其最基本的服務是將源自網絡層來的數據可靠地傳輸到相鄰節點的目標機網絡層。為達到這一目的,數據鏈路必須具備一系列相應的功能,主要有:如何將數據組合成數據塊,在數據鏈路層中稱這種數據塊為幀(frame),幀是數據鏈路層的傳送單位;如何控制幀在物理信道上的傳輸,包括如何處理傳輸差錯,如何調節發送速率以使與接收方相匹配;以及在兩個網絡實體之間提供數據鏈路通路的建立、維持和釋放的管理。數據鏈路層在不可靠的物理介質上提供可靠的傳輸。該層的作用包括:物理地址尋址、數據的成幀、流量控制、數據的檢錯、重發等。
有關數據鏈路層的重要知識點:
- 數據鏈路層為網絡層提供可靠的數據傳輸;
- 基本數據單位為幀;
- 主要的協議:以太網協議;
- 兩個重要設備名稱:網橋和交換機。
附:
交換機 (又名交換式集線器)作用與集線器大體相同。但是兩者在性能上有區別:集線器采用的式共享帶寬的工作方式,而交換機是獨享帶寬。
數據鏈路層互聯的設備是網橋(bridge),在網絡互聯中它起到數據接收、地址過濾與數據轉發的作用,用來實現多個網絡系統之間的數據交換。簡單的來說,網橋工作在數據鏈路層,將兩個LAN連起來,根據MAC地址來轉發幀,可以看作一個“低層的路由器”(路由器工作在網絡層,根據網絡地址如IP地址進行轉發)。
3)網絡層(Network Layer)
網絡層的目的是實現兩個端系統之間的數據透明傳送,具體功能包括尋址和路由選擇、連接的建立、保持和終止等。它提供的服務使傳輸層不需要了解網絡中的數據傳輸和交換技術。如果您想用盡量少的詞來記住網絡層,那就是“路徑選擇、路由及邏輯尋址”。
網絡層中涉及眾多的協議,其中包括最重要的協議,也是TCP/IP的核心協議——IP協議。IP協議非常簡單,僅僅提供不可靠、無連接的傳送服務。IP協議的主要功能有:無連接數據報傳輸、數據報路由選擇和差錯控制。與IP協議配套使用實現其功能的還有地址解析協議ARP、逆地址解析協議RARP、因特網報文協議ICMP、因特網組管理協議IGMP。具體的協議我們會在接下來的部分進行總結,有關網絡層的重點為:
- 網絡層負責對子網間的數據包進行路由選擇。此外,網絡層還可以實現擁塞控制、網際互連等功能;
- 基本數據單位為IP數據報;
- 包含的主要協議:IP協議(Internet Protocol,因特網互聯協議)、ICMP協議(Internet Control Message Protocol,因特網控制報文協議)、ARP協議(Address Resolution Protocol,地址解析協議)、RARP協議(Reverse Address Resolution Protocol,逆地址解析協議);
- 重要的設備:路由器。
附:
- 路由器的一個作用是連通不同的網絡,另一個作用是選擇信息傳送的線路。
IP協議的主要功能-用途:在相互連接的網絡之間傳遞IP數據報。其中包括兩個部分: - 尋址與路由:首先要用IP地址來標識Internet的主機:在每個IP數據報中,都會攜帶源IP地址和目標IP地址來標識該IP數據報的源和目的主機。IP協議可以根據路由選擇協議提供的路由信息對IP數據報進行轉發,直至抵達目的主機。然后IP地址和MAC地址的匹配,ARP協議。數據鏈路層使用MAC地址來發送數據幀,因此在實際發送IP報文時,還需要進行IP地址和MAC地址的匹配,由TCP/IP協議簇中的ARP完成。
- 分段與重組:IP數據報通過不同類型的通信網絡發送,IP數據報的大小會受到這些網絡所規定的最大傳輸單元(MTU)的限制。再將IP數據報拆分成一個個能夠適合下層技術傳輸的小數據報,被分段后的IP數據報可以獨立地在網絡中進行轉發,在到達目的主機后被重組,恢復成原來的IP數據報。
- 因特網使用的IP協議是無連接的,因此其傳輸是不可靠的。
- 為了提高IP數據報交付成功的機會,使用了ICMP協議,它作為IP層數據報的數據,加上數據報的首部,組成IP數據報發送出去。
- ARP:地址解析協議,在以太網(ARP協議只適用于局域網)中,如果本地主機想要向某一個IP地址的主機(路由表中的下一跳路由器或者直連的主機,注意此處IP地址不一定是IP數據報中的目的IP)發包,但是并不知道其硬件地址,此時利用ARP協議提供的機制來獲取硬件地址。
- RARP:逆地址解析協議,將局域網中某個主機的物理地址轉換為IP地址,比如局域網中有一臺主機只知道物理地址而不知道IP地址,那么可以通過RARP協議發出征求自身IP地址的廣播請求,然后由RARP服務器負責回答。RARP協議廣泛應用于無盤工作站引導時獲取IP地址。
4)傳輸層(Transport Layer)
第一個端到端,即主機到主機的層次。傳輸層負責將上層數據分段并提供端到端的、可靠的或不可靠的傳輸。此外,傳輸層還要處理端到端的差錯控制和流量控制問題。
傳輸層的任務是根據通信子網的特性,最佳的利用網絡資源,為兩個端系統的會話層之間,提供建立、維護和取消傳輸連接的功能,負責端到端的可靠數據傳輸。在這一層,信息傳送的協議數據單元稱為段或報文。
網絡層只是根據網絡地址將源結點發出的數據包傳送到目的結點,而傳輸層則負責將數據可靠地傳送到相應的端口。
有關網絡層的重點:
- 傳輸層負責將上層數據分段并提供端到端的、可靠的或不可靠的傳輸以及端到端的差錯控制和流量控制問題;
- 包含的主要協議:TCP協議(Transmission Control Protocol,傳輸控制協議)、UDP協議(User Datagram Protocol,用戶數據報協議);
- 重要設備:網關。
附:
- 網關(Gateway)又稱網間連接器、協議轉換器。網關在網絡層以上實現網絡互連,是最復雜的網絡互連設備。網關是一種充當轉換重任的計算機系統或設備。使用在不同的通信協議、數據格式或語言,甚至體系結構完全不同的兩種系統之間,網關是一個翻譯器。
- 網關和路由的區別是:
網關和路由的關系表述為:網關是網絡連接的基礎,路由是網絡連接的橋梁。 -
通俗來說,路由器相當于兩個不同房間相連的路,網關相當于門。
網關和路由的關系 - TCP(Transmission Control Protocol 傳輸控制協議)是一種面向連接(連接導向)的、可靠的、 基于IP的傳輸層協議。有3次握手,4次揮手。
- UDP協議也是傳輸層協議,它是無連接,不保證可靠的傳輸層協議。
- TCP適合實時性要求不高,但要求內容要完整傳輸的應用。相比而言,UDP由于無連接、無重傳確認,所以傳輸效率高、延時小,適合實時性要求高的應用,如游戲服務器,音頻,視頻等;另外,由于不用維持大的并發量,所以適合巨量服務的server。
5)會話層
會話層管理主機之間的會話進程,即負責建立、管理、終止進程之間的會話。會話層還利用在數據中插入校驗點來實現數據的同步。
6)表示層
表示層對上層數據或信息進行變換以保證一個主機應用層信息可以被另一個主機的應用程序理解。表示層的數據轉換包括數據的加密、壓縮、格式轉換等。
7)應用層
為操作系統或網絡應用程序提供訪問網絡服務的接口。
會話層、表示層和應用層重點:
數據傳輸基本單位為報文;
包含的主要協議:FTP(文件傳送協議)、Telnet(遠程登錄協議)、DNS(域名解析協議)、SMTP(郵件傳送協議),POP3協議(郵局協議),HTTP協議(Hyper Text Transfer Protocol)。
HTTP協議的主要特點可概括如下:
1.支持客戶/服務器模式。
2.簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯系的類型不同。由于HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快。
3.靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。
4.無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,并收到客戶的應答后,即斷開連接。采用這種方式可以節省傳輸時間。
5.無狀態:HTTP協議是無狀態協議。無狀態是指協議對于事務處理沒有記憶能力。缺少狀態意味著如果后續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快。
3. IP地址
1)網絡地址
IP地址由網絡號(包括子網號)和主機號組成,網絡地址的主機號為全0,網絡地址代表著整個網絡。
2)廣播地址
廣播地址通常稱為直接廣播地址,是為了區分受限廣播地址。
廣播地址與網絡地址的主機號正好相反,廣播地址中,主機號為全1。當向某個網絡的廣播地址發送消息時,該網絡內的所有主機都能收到該廣播消息。
3)組播地址
D類地址就是組播地址。
先回憶下A,B,C,D類地址吧:
A類地址以0開頭,第一個字節作為網絡號,地址范圍為:0.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,D類地址作為組播地址(一對多的通信);
E類地址以1111開頭,地址范圍是240.0.0.0~255.255.255.255,E類地址為保留地址,供以后使用。
注:只有A,B,C有網絡號和主機號之分,D類地址和E類地址沒有劃分網絡號和主機號。
4)255.255.255.255
該IP地址指的是受限的廣播地址。受限廣播地址與一般廣播地址(直接廣播地址)的區別在于,受限廣播地址只能用于本地網絡,路由器不會轉發以受限廣播地址為目的地址的分組;一般廣播地址既可在本地廣播,也可跨網段廣播。例如:主機192.168.1.1/30上的直接廣播數據包后,另外一個網段192.168.1.5/30也能收到該數據報;若發送受限廣播數據報,則不能收到。
注:一般的廣播地址(直接廣播地址)能夠通過某些路由器(當然不是所有的路由器),而受限的廣播地址不能通過路由器。
5)0.0.0.0
常用于尋找自己的IP地址,例如在我們的RARP,BOOTP和DHCP協議中,若某個未知IP地址的無盤機想要知道自己的IP地址,它就以255.255.255.255為目的地址,向本地范圍(具體而言是被各個路由器屏蔽的范圍內)的服務器發送IP請求分組。
6)回環地址
127.0.0.0/8被用作回環地址,回環地址表示本機的地址,常用于對本機的測試,用的最多的是127.0.0.1。
7)A、B、C類私有地址
私有地址(private address)也叫專用地址,它們不會在全球使用,只具有本地意義。
A類私有地址:10.0.0.0/8,范圍是:10.0.0.0~10.255.255.255
B類私有地址:172.16.0.0/12,范圍是:172.16.0.0~172.31.255.255
C類私有地址:192.168.0.0/16,范圍是:192.168.0.0~192.168.255.255
4. 子網掩碼及網絡劃分
隨著互連網應用的不斷擴大,原先的IPv4的弊端也逐漸暴露出來,即網絡號占位太多,而主機號位太少,所以其能提供的主機地址也越來越稀缺,目前除了使用NAT在企業內部利用保留地址自行分配以外,通常都對一個高類別的IP地址進行再劃分,以形成多個子網,提供給不同規模的用戶群使用。
這里主要是為了在網絡分段情況下有效地利用IP地址,通過對主機號的高位部分取作為子網號,從通常的網絡位界限中擴展或壓縮子網掩碼,用來創建某類地址的更多子網。但創建更多的子網時,在每個子網上的可用主機地址數目會比原先減少。
什么是子網掩碼?
子網掩碼是標志兩個IP地址是否同屬于一個子網的,也是32位二進制地址,其每一個為1代表該位是網絡位,為0代表主機位。它和IP地址一樣也是使用點式十進制來表示的。如果兩個IP地址在子網掩碼的按位與的計算下所得結果相同,即表明它們共屬于同一子網中。
在計算子網掩碼時,我們要注意IP地址中的保留地址,即“ 0”地址和廣播地址,它們是指主機地址或網絡地址全為“ 0”或“ 1”時的IP地址,它們代表著本網絡地址和廣播地址,一般是不能被計算在內的。
子網掩碼的計算:
對于無須再劃分成子網的IP地址來說,其子網掩碼非常簡單,即按照其定義即可寫出:如某B類IP地址為 10.12.3.0,無須再分割子網,則該IP地址的子網掩碼255.255.0.0。如果它是一個C類地址,則其子網掩碼為 255.255.255.0。其它類推,不再詳述。下面我們關鍵要介紹的是一個IP地址,還需要將其高位主機位再作為劃分出的子網網絡號,剩下的是每個子網的主機號,這時該如何進行每個子網的掩碼計算。
下面總結一下有關子網掩碼和網絡劃分常見的面試考題:
1)利用子網數來計算
在求子網掩碼之前必須先搞清楚要劃分的子網數目,以及每個子網內的所需主機數目。
(1) 將子網數目轉化為二進制來表示;
如欲將B類IP地址168.195.0.0劃分成27個子網:27=11011;
(2) 取得該二進制的位數,為N;
該二進制為五位數,N = 5
(3) 取得該IP地址的類子網掩碼,將其主機地址部分的的前N位置1即得出該IP地址劃分子網的子網掩碼。
將B類地址的子網掩碼255.255.0.0的主機地址前5位置 1,得到 255.255.248.0
2)利用主機數來計算
如欲將B類IP地址168.195.0.0劃分成若干子網,每個子網內有主機700臺:
(1) 將主機數目轉化為二進制來表示;
700=1010111100;
(2) 如果主機數小于或等于254(注意去掉保留的兩個IP地址),則取得該主機的二進制位數,為N,這里肯定 N<8。如果大于254,則 N>8,這就是說主機地址將占據不止8位;
該二進制為十位數,N=10;
(3) 使用255.255.255.255來將該類IP地址的主機地址位數全部置1,然后從后向前的將N位全部置為 0,即為子網掩碼值。
將該B類地址的子網掩碼255.255.0.0的主機地址全部置1,得到255.255.255.255,然后再從后向前將后 10位置0,即為:11111111.11111111.11111100.00000000,即255.255.252.0。這就是該欲劃分成主機為700臺的B類IP地址 168.195.0.0的子網掩碼。
3)還有一種題型,要你根據每個網絡的主機數量進行子網地址的規劃和計算子網掩碼。這也可按上述原則進行計算。
比如一個子網有10臺主機,那么對于這個子網需要的IP地址是:
10+1+1+1=13
注意:加的第一個1是指這個網絡連接時所需的網關地址,接著的兩個1分別是指網絡地址和廣播地址。
因為13小于16(16等于2的4次方),所以主機位為4位。而256-16=240,所以該子網掩碼為255.255.255.240。
如果一個子網有14臺主機,不少人常犯的錯誤是:依然分配具有16個地址空間的子網,而忘記了給網關分配地址。這樣就錯誤了,因為14+1+1+1=17,17大于16,所以我們只能分配具有32個地址(32等于2的5次方)空間的子網。這時子網掩碼為:255.255.255.224。
參考文章:http://www.cnblogs.com/maybe2030/p/4781555.html#_label3