- Windows網絡編程(第2版)
- 楊秋黎 金智
- 5307字
- 2020-06-17 14:37:30
1.2 網絡通信模型和協議簇
Internet可以把世界上各種類型、品牌的硬件和軟件集成在一起,實現互聯和通信。如果沒有統一的標準協議和接口,這一點是根本無法做到的。為了推動Internet的發展和普及,標準化組織制定了各種網絡模型和標準協議,本節將介紹通用的OSI參考模型和TCP/IP層次模型。了解這些網絡模型和通信協議的基本工作原理是管理和配置網絡、開發網絡應用程序的基礎。
1.2.1 OSI參考模型
ISO(International Organization for Standardization,國際標準化組織)是一個全球性的非政府組織,是國際標準化領域中一個十分重要的機構。為了使不同品牌、操作系統的網絡設備(主機)能夠在網絡中相互通信,ISO于1981年制定了“開放系統互聯參考模型”,即Open System Interconnection Reference Model,簡稱為OSI參考模型。
OSI參考模型將網絡通信的工作劃分為7個層次,由低到高分別為物理層(Physical Layer)、
數據鏈路層(Data Link Layer)、網絡層(Network Layer)、傳輸層(Transport Layer)、會話層(Session Layer)、表示層(Presentation Layer)和應用層(Application Layer),如圖1.1所示。
物理層、數據鏈路層和網絡層屬于OSI參考模型中的低3層,負責創建網絡通信連接的鏈路;其他4層負責端到端的數據通信。每一層都完成特定的功能,并為其上層提供服務。
在網絡通信中,發送端自上而下地使用OSI參考模型,對應用程序要發送的信息進行逐層打包,直至在物理層將其發送到網絡中;而接收端則自下而上地使用OSI參考模型,將收到的物理數據逐層解析,最后將得到的數據傳送給應用程序,其具體過程如圖1.2所示。

圖1.1 OSI參考模型

圖1.2 OSI參考模型的通信過程
當然,并不是所有的網絡通信都需要經過OSI模型的全部7層。例如,同一網段的2層交換機之間通信只需要經過數據鏈路層和物理層,而路由器之間的連接則只需要網絡層、數據鏈路層和物理層。在發送方封裝數據的過程中,每一層都會為數據包加上一個頭部;在接收方解封數據時,又會逐層解析掉這個頭部。因此,雙方的通信必須在對等層次上進行,否則接收方將無法正確地解析數據。
在OSI參考模型中,對等層協議之間交換的信息單元統稱為協議數據單元(Protocol Data Unit,PDU)。而在傳輸層及其下面各層中,PDU還有各自特定的名稱,具體如表1.2所示。
表1.2 PDU在OSI參考模型中的特定名稱

下面對OSI參考模型中的7層結構進行詳細的介紹。
1. 物理層
顧名思義,物理層就是用于定義網絡通信中通信設備的機械、電氣、功能和規程等特性的層次,用于建立、維護和拆除物理鏈路的連接。
物理層可以為數據端設備提供傳送數據的物理通路。物理通路可以是一個物理媒體,也可以由多個物理媒體連接而成。一次完整的物理層數據傳輸過程如圖1.3所示。

圖1.3 完整的物理層數據傳輸過程
激活物理連接指在兩個通信設備之間建立起一條通路,可能是通過網線直接相連的,也可能需要多個網絡設備參與。
在傳送數據的過程中,一方面要保證數據可以在物理連接上正確地通過,另一方面還需要為傳送數據提供足夠的帶寬,以減少信道上的擁塞。
提示
帶寬(Bandwidth)指在傳輸線路上固定時間內可以傳輸的數據量,用于標識線路的數據傳送能力。在數字設備中,帶寬的單位為bit/s,即每秒可傳輸的比特數。
2. 數據鏈路層
數據鏈路層位于OSI參考模型的第2層,它負責物理層和網絡層之間的通信。在數據鏈路層中,將從網絡層接收到的數據分割成特定的可被物理層傳輸的幀。幀是用來傳送數據的結構包,它不僅包括原始數據(即要傳送的數據),還包括發送方和接收方的網絡地址以及糾錯和控制信息。其中地址標明幀將發送到的主機,而糾錯和控制信息則可以保證幀能夠被準確無誤地被傳送到目的主機。幀的簡要結構如圖1.4所示。

圖1.4 幀的簡要結構
每個字段的說明如下。
? 前導碼:內容是十六進制數0xAA,作用是使接收節點進行同步并做好接收數據幀的準備。
? 幀首定界符:是10101011的二進制序列,標識幀的開始,以使接收器對實際幀的第一位定位。
? 目的地址和源地址:即發送和接收數據的兩端主機的MAC地址。目的地址可以是單地址、組播地址和廣播地址。
? 數據字段的長度:指定要傳送數據的長度,以便接收方對數據進行處理。
? 要傳送的數據:顧名思義,就是從源地址發送到目的地址的原始數據。
? 填充字段:有效幀從目的地址到校驗和字段的最短長度為64字節,其中固定字段的長度為18字節。如果數據字段長度小于46字節時,就使用本字段來填充。
? 校驗和:使用32位CRC校驗,用于對傳送數據進行校驗。
數據鏈路層的主要功能如下。
(1)通信鏈路的建立、拆除和分離。當網絡中的兩個結點要進行通信時,發送方必須確認接收方是否已處在準備接受的狀態。為此通信雙方必須先要交換一些必要的信息,以建立一條基本的數據鏈路。在傳輸數據時要維持數據鏈路,而在通信完畢時要釋放數據鏈路。
(2)對要傳送的幀進行定界和同步,并對幀的收發順序進行控制。
(3)尋址。即在數據鏈路層根據目的地址找到對應主機的方法,同時接收方也必須知道數據的發送方主機地址。
(4)對信道上的數據差錯進行檢測和恢復。
(5)流量控制。數據的發送與接收必須遵循一定的傳送速率規則,可以使得接收方能及時地接收發送方發送的數據,并且當接收方來不及接收時,必須及時控制發送方數據的發送速率,使兩方面的速率基本匹配。
數據鏈路層中常用的協議和技術包括局域網中的以太網(Ethernet)技術、點到點協議(PPP)、高級數據鏈路控制協議(High-Level Data Link Control,HDLC)、高級數據通信控制協議(Advanced Data Communications Control Protocol,ADCCP)等。
如果說這些協議和技術離我們的日常應用似乎比較遠的話,那么與數據鏈路層相關的最為大家所熟知的兩個概念就是MAC地址和網卡。網卡也稱為網絡適配器(Network Adapter)或者網絡接口卡(NIC),每臺連接到網絡中的計算機都必須安裝網卡。網卡和局域網之間的通信是通過電纜或雙絞線以串行傳輸方式進行的。每個網卡都唯一對應一個MAC(Media Access Control,介質訪問控制)地址,其用來標識網卡的通信地址。
在Windows命令窗口中執行下面的命令,可以查看到網卡和MAC地址信息。
Ipconfig /all
運行結果如圖1.5所示。
MAC地址由6字節(即48位)十六進制數組成。在以字符串格式表現時,每個字節之間通常使用“-”或“:”分隔,例如,下面都是有效的MAC地址。
00-16-D3-BD-6C-29 00:16:D3:BD:6C:29

圖1.5 查看本地計算機的網卡和MAC地址信息
提示
MAC地址通常由網卡的生產廠家在制造網卡時燒制在芯片中,因此相對固定一些。雖然有些網卡允許用戶修改MAC地址,但這種情況并不多見。因此,從理論上來講,MAC地址是全球唯一的。很多網絡管理軟件中使用MAC地址作為設備的唯一標識,因為IP地址和設備名稱都是很容易被改變的。
3. 網絡層
網絡層位于OSI協議參考模型的第3層,它的主要功能如下。
(1)為傳輸層提供服務。
網絡層提供的服務有兩類:面向連接的網絡服務和無連接的網絡服務。
虛電路服務是網絡層向傳輸層提供的一種使所有數據包按順序到達目的節點的可靠的數據傳送方式,進行數據交換的兩個節點之間存在著一條為它們服務的虛電路;而數據報服務是不可靠的數據傳送方式,源節點發送的每個數據包都要附加地址、序號等信息,目的節點收到的數據包不一定按序到達,還可能出現數據包丟失的現象。
(2)組包和拆包。
在網絡層,數據傳輸的基本單位是數據包。在發送方,傳輸層的報文到達網絡層時被分為多個數據塊,在這些數據塊的頭部和尾部加上一些相關的控制信息后,即組成了數據包(組包)。數據包的頭部包含源節點和目標節點的網絡地址。在接收方,數據從低層到達網絡層時,要將各數據包原來加上的包頭和包尾等控制信息去掉(拆包),然后組合成報文,送給傳輸層。
(3)路由選擇。
路由選擇也叫做路徑選擇,是根據一定的原則和路由選擇算法在多節點的通信子網中選擇一條最佳路徑。確定路由選擇的策略稱為路由算法。
在數據報方式中,網絡節點要為每個數據包做出路由選擇;而在虛電路方式中,只需在建立連接時確定路由。
(4)流量控制。
流量控制的作用是控制阻塞,避免死鎖。
負責數據傳輸的網絡層經典協議為IP,負責控制的網絡層經典協議包括ICMP、ARP、DHCP等,這些協議的具體情況將在第2章中介紹。另外,網絡層還提供負責路由的協議,包括IGP、RIP、OSRF等,由于篇幅所限,本書將不對這些協議進行具體介紹。
網絡層的主要網絡設備包括路由器和三層交換機。
4. 傳輸層
傳輸層是OSI協議層次結構的核心,是唯一負責總體數據傳輸和控制的一層。在OSI 7層模型中傳輸層是負責數據通信的最高層,它下面的3層協議是面向網絡通信的,而它上面的3層協議是面向信息處理的,因此傳輸層可以說是OSI模型中的中間層。
因為網絡層不一定保證服務的可靠性,而用戶也不能直接對通信子網加以控制,所以在網絡層之上,加一層即傳輸層以改善傳輸質量。
傳輸層的主要功能如下。
? 為對話或連接提供可靠的傳輸服務。
? 在通向網絡的單一物理連接上實現該連接的復用。
? 在單一連接上提供端到端的序號與流量控制、差錯控制及恢復等服務。
傳輸層中包含的典型協議為SPX、TCP和UDP。SPX是順序包交換協議,它是Novell NetWare網絡的傳輸層協議;TCP是傳輸控制協議,它是TCP/IP參考模型的傳輸層協議;UDP是用戶數據報協議,它可以提供一種基本的、低延時的數據報傳輸。
關于TCP和UDP的具體情況將在第3章中介紹。
5. 會話層
會話層負責在網絡中的兩個節點之間建立和維持通信。它提供的服務可使應用程序建立和維持會話,并能使會話獲得同步。
會話層的功能主要如下。
? 建立通信鏈接,保持會話過程通信鏈接的暢通。
? 同步兩個節點之間的對話,決定通信是否被中斷以及通信中斷時從何處重新發送。
? 支持校驗點功能,會話在通信失效時可以從校驗點恢復通信。這種能力對于傳送大的文件極為重要。
6. 表示層
不同的計算機體系結構中使用的數據表示法也不同。為了使不同類型的計算機之間能夠實現相互通信,就需要提供一種公共的語言。
表示層如同應用程序和網絡之間的翻譯官,主要解決用戶信息的語法表示問題,即提供格式化的表示和數據轉換服務,數據的壓縮、解壓、加密、解密都在該層完成。
7. 應用層
應用層是OSI參考模型的最高層,它可以向應用程序提供服務,這些服務按其向應用程序提供的特性分成組,并稱為服務元素。
應用層并不是指運行在網絡上的某個特定的應用程序,它可以為應用程序提供服務,包括文件傳輸、文件管理以及電子郵件的信息處理等。
應用層中包含的典型協議包括FTP、Telnet、SMTP、HTTP、DNS等。在管理和使用網絡的過程中,經常會使用到應用層的這些協議。
1.2.2 TCP/IP協議簇體系結構
TCP/IP是Internet的基礎網絡通信協議,它規范了網絡上所有網絡設備之間數據往來的格式和傳送方式。TCP和IP是兩個獨立的協議,它們負責網絡中數據的傳輸。TCP位于OSI參考模型的傳輸層,而IP則位于網絡層。
TCP/IP中包含一組通信協議,因此被稱為協議簇。TCP/IP協議簇中包含網絡接口層、網絡層、傳輸層和應用層。TCP/IP協議簇和OSI參考模型間的對應關系如圖1.6所示。

圖1.6 TCP/IP協議簇和OSI參考模型間的對應關系
1. 網絡接口層
在TCP/IP參考模型中,網絡接口層位于最低層。它負責通過網絡發送和接收IP數據報。網絡接口層包括各種物理網絡協議,例如,局域網的Ethernet(以太網)協議、Token Ring(令牌環)協議,分組交換網的X.25協議等。
2. 網絡層
在TCP/IP參考模型中,網絡層位于第2層。它負責將源主機的報文分組發送到目的主機,源主機與目的主機可以在一個網段中,也可以在不同的網段中。
網絡層包括下面4個核心協議。
? IP(Internet Protocol,網際協議):主要任務是對數據包進行尋址和路由,把數據包從一個網絡轉發到另一個網絡。
? ICMP(Internet Control Message Protocol,網際控制報文協議):用于在IP主機和路由器之間傳遞控制消息。控制消息是指網絡是否連通、主機是否可達、路由是否可用等網絡本身的消息,這些控制消息雖然并不傳輸用戶數據,但是對于用戶數據的傳遞起著重要的作用。
? ARP(Address Resolution Protocol,地址解析協議):可以通過IP地址得知其物理地址(Mac地址)的協議。在TCP/IP網絡環境下,每個主機被都分配了一個32位的IP地址,這種互聯網地址是在網際范圍標識主機的一種邏輯地址。為了讓報文在物理網絡上傳送,必須知道目的主機的物理地址,這樣就存在IP地址向物理地址的轉換問題。
? RARP(Reverse Address Resolution Protocol,逆向地址解析協議):該協議用于完成物理地址向IP地址的轉換。
關于這些協議的基本情況將在第2章中介紹。
3. 傳輸層
在TCP/IP參考模型中,傳輸層位于第3層。它負責在應用程序之間實現端到端的通信。傳輸層中定義了下面兩種協議。
? TCP:是一種可靠的面向連接的協議,它允許將一臺主機的字節流無差錯地傳送到目的主機。TCP同時要完成流量控制功能,協調收發雙方的發送與接收速度,達到正確傳輸的目的。
? UDP:是一種不可靠的無連接協議。與TCP相比,UDP更加簡單,數據傳輸速率也較高。當通信網的可靠性較高時,UDP方式具有更高的優越性。
本書將在第3章中介紹TCP和UDP的具體情況。
4. 應用層
在TCP/IP參考模型中,應用層位于最高層,其中包括了所有與網絡相關的高層協議。常用的應用層協議說明如下。
? Telnet(Teletype Network,網絡終端協議):用于實現網絡中的遠程登錄功能。
? FTP(File Transfer Protocol,文件傳輸協議):用于實現網絡中的交互式文件傳輸功能。
? SMTP(Simple Mail Transfer Protocol,簡單郵件傳輸協議):用于實現網絡中的電子郵件傳送功能。
? DNS(Domain Name System,域名系統):用于實現網絡設備名稱到IP地址的映射。
? SNMP(Simple Network Management Protocol,簡單網絡管理協議):用于管理與監視網絡設備。
? RIP(Routing Information Protocol,路由信息協議):用于在網絡設備之間交換路由信息。
? NFS(Network File System,網絡文件系統):用于網絡中不同主機之間的文件共享。
? HTTP(Hyper Text Transfer Protocol,超文本傳輸協議):這是互聯網上應用最為廣泛的一種網絡協議。所有的WWW文件都必須遵守這個標準。設計HTTP的最初目的是為了提供一種發布和接收HTML頁面的方法。
- 全屋互聯:智能家居系統開發指南
- Mastering vRealize Operations Manager(Second Edition)
- Learning OpenDaylight
- Containerization with LXC
- Arch Linux Environment Setup How-to
- Kali Linux滲透測試全流程詳解
- 計算機系統開發與優化實戰
- Mobile First Design with HTML5 and CSS3
- 無蘋果不生活 The New iPad隨身寶典
- 細說Linux基礎知識
- 計算機系統:基于x86+Linux平臺
- Kali Linux高級滲透測試
- Distributed Computing with Go
- UI設計手繪表現從入門到精通
- 辦公自動化教程(Windows7+Office2010)