官术网_书友最值得收藏!

  • 路由與交換技術
  • 趙新勝 陳美娟
  • 12280字
  • 2019-11-28 16:05:48

1.2 網絡互聯基礎

現在是互聯網的時代,網絡通信在人類日常生活中發揮著越來越重要的作用,越來越多的日常活動依賴于互聯網。本節將介紹以下內容。

(1)網絡互聯的基本概念。

(2)OSI參考模型。

(3)TCP/IP參考模型。

(4)數據的封裝和解封裝。

(5)常見協議和標準。

(6)基本網絡類型和拓撲結構。

1.2.1 網絡互聯的基本概念

計算機網絡起始于20世紀60年代,當時網絡的概念主要是基于主機(Host)架構的低速串行(Serial)連接,提供應用程序執行、遠程打印和數據服務功能,如圖1-3(a)所示。IBM的系統網絡架構(System Network Architecture,SNA)與非IBM公司的X.25公用數據網絡是這種網絡的典型例子。當時,由美國國防部資助,美國建立了基于分組交換(Packet Switching)的阿帕網(ARPANET),這個阿帕網就是今天Internet最早的雛形。

20世紀70年代,出現了以個人計算機為主的商業計算模式,如圖1-3(b)所示。最初,個人計算機是獨立的設備。由于商業計算的復雜性要求大量終端設備協同操作,局域網(Local Area Network,LAN)產生了。局域網的出現,大大降低了商業用戶昂貴的打印機和磁盤費用。

20世紀80~90年代,因為遠程計算的需求不斷增加,迫使計算機界開發出多種廣域網絡協議,用于滿足不同計算方式下遠程連接的需求,如圖1-3(c)所示。在此階段,互聯網得到了快速發展,TCP/IP(Transmission Control Protocol/Internet Protocol)被廣泛應用,成為互聯網的事實標準。

圖1-3 計算機網絡的發展

在實現了設備間的物理連接之后,請思考一下,應該如何實現數據上的互通。

為了方便大家理解網絡互聯的實現機理,可以對比生活中的例子來了解網絡中數據通信的過程。

如圖1-4所示,兩臺計算機通過一條網線直接連接,構成了一個最簡單的網絡,希望能夠惜助于這樣的網絡實現兩臺計算機之間的數據通信,雙方可以將文本、圖片、視頻等信息傳遞給對方。

圖1-4 兩臺計算機直連通信

一個完整的數據通信系統由報文、發送方、接收方、傳輸介質和協議5個部分組成。以下分別對5個組成部分做詳細的介紹。

● 報文(Message),通信中的數據塊。文本、數字、圖片、聲音、視頻等信息被編碼后,以報文的形式傳送。

● 發送方(Sender),發送數據報文的設備。它可以是計算機、工作站、服務器、手機等。

● 接收方(Receiver),接收報文的設備。它可以是計算機、工作站、服務器、手機、電視等。

● 傳輸介質(Medium),信號傳送的載體。信號可以通過有線或者無線方式進行傳輸,局域網中常見的有線傳輸介質有光纖、同軸電纜、雙絞線等。

● 協議(Protocol),管理數據通信的一組規則。它表示通信設備之間的一組約定。如果沒有協議,即使兩臺設備在物理上是連通的,也不能通信。比如一個只能說漢語的人就無法與一個只能說英語的人進行語言交流。

數據通信的過程,有點類似現實生活中的物品快遞服務,在流程上可以互相進行對比理解。表1-1描述了物品快遞過程和數據通信過程的對比。

表1-1 快遞過程和數據通信過程的對比

通過表1-1對于數據通信過程的描述可以了解到,在數據通信過程中,要實現數據的正確傳遞,要具備以下的前提。

(1)發送雙方地址的標識。數據轉發過程中,發送方和接收方的信息應該如何標識,類似于收件人/發件人姓名和地址。

(2)數據封裝方式的協定。收發雙方必須遵循相同的數據封裝原則。譬如數據外層封裝了幾層包裹,每層包裹中攜帶了什么信息。

(3)數據信息解碼。網絡中,信息的表述是用二進制數字“0”“1”進行描述的。接收方要還原出具體的網絡信息,譬如文字、圖片、視頻等信息,則必須提前協商好數據代表的具體含義。

上述的第一個問題,相信大家都能夠回答,在計算機網絡中,用于標識計算機的主要是IP地址和MAC地址兩個參數。在本章的后續小節中,將對IP地址和部分常見協議進行詳細介紹。接下來,首先來認識網絡的分層模型。

IP網絡基礎——數據通信基礎

1.2.2 OSI參考模型

在上文中提到,一個基本的數據通信系統由5個部分組成,其中比較關鍵的一個部分是網絡協議。

在計算機網絡中,所謂協議,就是為了使網絡中的不同設備能進行數據通信而預先制定的一整套通信各方相互了解和共同遵守的格式和約定,是一系列規則和約定的規范性描述。協議定義了網絡設備之間如何進行信息交換,是網絡通信的基礎。只有遵從相同的協議,網絡設備之間才能夠通信。如果一臺設備不支持用于網絡互聯的協議,它就無法與其他設備進行通信。

以電話為例,必須首先規定好信號的傳輸方式、什么信號表示發起呼叫、什么信號表示呼叫結束、出了錯誤怎么辦、怎樣表示呼叫人的號碼等,這種預先規定好的格式及約定就是協議。

網絡協議多種多樣,例如經常提到的有超文本傳輸協議(Hypertext Transfer Protocol,HTTP)、文件傳輸協議(File Transfer Protocol,FTP)、傳輸控制協議(Transmission Control Protocol,TCP)、IPv4等。譬如通過剜覽器訪問網站時,輸入網址中的“http://”就是代表這次訪問使用的協議是HTTP。

協議分為兩類:一類是各網絡設備廠商自己定義的協議,稱為私有協議;另一類是專門的標準機構定義的協議,稱為開放式協議。私有協議只有廠商自己的設備支持,無法和其他廠商的設備互通,所以在平時應用中,各廠商會盡量遵循開放式協議。

目前現網中使用的開放式協議標準可以分為兩類,包括事實標準和法定標準。事實標準是未經組織團體承認但已在應用中被廣泛使用和接受的標準,法定標準是由官方認可的組織團體制定的標準。

目前,整理、研究、制定和發布開放性標準協議的組織機構主要有以下幾個,如表1-2所示。

表1-2 網絡標準化組織機構

續表

網絡中,為了使不同設備能夠互相通信,收發雙方都必須遵循同一個標準,但單一的巨大的協議會加大網絡設計難度,同時也不利于分析及查找問題。因此,計算機模型中引入了分層的概念。

IP網絡基礎——協議和標準

分層模型是一種用于開放網絡的設計方法,將通信問題劃分為幾個小的問題(層次),每個問題對應一個層次。

為了更好地實現計算機之間的通信,分層模型需具備以下的特點。

(1)每層的功能應是明確的,并且是相互獨立的,當某一層的具體實現方法更新時,只要保持上下層的接口不變,便不會對鄰層產生影響。

(2)層間接口必須清晰,跨越接口的信息量應盡可能少。

(3)層數應適中。若層數太少,則造成每一層的協議太復雜。若層數太多,則體系結構過于復雜,使描述和實現各層功能變得困難。

基于以上的原則,20世紀60年代以來,各大廠商為了在數據通信網絡領域占據主導地位,紛紛推出了各自的網絡架構體系和標準,如IBM公司的SNA、Novell IPX/SPX協議、Apple公司的AppleTalk協議、DEC公司的DECnet。

同時,各大廠商針對自己的協議生產出了不同的硬件和軟件。各個廠商的共同努力促進了網絡技術的快速發展和網絡設備種類的迅速增加。但是由于多種協議的并存,也使網絡變得越來越復雜,而且廠商之間的網絡設備大部分不能兼容,很難互相進行通信。

為了解決網絡設備之間的兼容性問題,幫助各個廠商生產出可兼容的網絡設備,國際標準化組織(ISO)于1984年提出了開放系統互聯參考模型(Open System Interconnection Reference Model,OSIRM),其7層模型如圖1-5所示。

OSI參考模型在設計時,遵循了以下原則。

(1)各個層之間有清晰的邊界,每層實現特定的功能。

(2)層次的劃分有利于國際標準協議的制定。

(3)層的數目足夠多,以避免各個層功能重復。

圖1-5 OSI的7層模型

參考模型的設計簡化了相關的網絡操作,提供了即插即用的兼容性和不同廠商之間的標準接口,使各個廠商能夠設計出互操作的網絡設備;同時促進了標準化工作,防止一個區域網絡的變化影響另一個區域的功能;在結構上進行分隔,每一個區域的網絡都能單獨快速升級,把復雜的網絡問題分解為小的簡單問題,易于學習和操作。

OSI參考模型由下至上被分為7層,各層的功能如表1-3所示。

表1-3 OSI參考模型各層的功能

其中的第1~3層稱為底層(Lower Layer),又叫介質層(Media Layer),主要負責數據在網絡中的傳送。以硬件和軟件相結合的方式來實現,組成互聯網絡的設備通常具備下面3層的功能。第4層稱為傳輸層,負責實現面向連接或者無連接的傳輸通道的建立。第5~7層稱為高層(Upper Layer),又叫主機層(Host Layer),主要用于保障數據的正確傳輸,通常以軟件方式來實現。

1.2.3 TCP/IP參考模型

OSI的7層協議體系結構將網絡結構定義得非常清楚,理論也比較完整,但相對比較復雜,不太實用。而隨著互聯網的發展,TCP/IP的5層體系結構得到了廣泛的應用,已經成為事實上的標準。

TCP/IP模型與OSI參考模型的不同點在于,TCP/IP把表示層和會話層都歸入了應用層。TCP/IP模型由下至上依次分為物理層、數據鏈路層、網絡層、傳輸層和應用層5個層次。圖1-6描述了OSI參考模型和TCP/IP模型在分層結構上的區別。

圖1-6 OSI和TCP/IP模型對比

下面將對TCP/IP模型各層次的功能進行介紹,大家學習時可以對比表1-3中的OSI各層功能。

TCP/IP概述

1.物理層

物理層的作用是透明傳遞比特(bit)流,發送方發送1或者0的時候,接收方應當收到1或者0,而不是0或者1。要實現這個目的,物理層需要實現以下功能。

(1)規定介質類型、接口類型、信令類型。

(2)規范終端系統之間激活、維護和關閉物理鏈路的電氣、機械、流程和功能等方面的要求。

(3)規范電平、數據速率、最大傳輸距離和物理接頭等特征。

物理層標準規定了物理介質和用于將設備與物理介質相連的接頭。局域網常用的物理層標準有IEEE制定的以太網標準802.3、令牌總線標準802.4、令牌環網標準802.5,以及美國國家標準組織(ANSI)的X3T9.5委員會制定的光纜標準——光纖分布式數據接口(Fiber Distributed Data Interface,FDDI)等。廣域網常用的物理層標準有電子工業協會和電信工業協會(EIA/TIA)制定的公共物理層接口標準 EIA/TIA232(即RS-232)、國際電信聯盟(ITU)制定的串行線路接口標準V.24和V.35,以及有關各種數字接口的物理和電氣特性的標準G.703等。

物理層介質主要有同軸電纜(Coaxical Cable)、雙絞線(Twisted Pair)、光纖(Fiber)、無線電波(Wireless Radio)等。設備有中繼器和集線器,但是隨著網絡的發展,這兩種設備已經很少使用。

2.數據鏈路層

數據鏈路層是OSI參考模型中的第2層,介于物理層和網絡層之間。它負責從上而下將源自網絡層的數據封裝成幀,從下而上將源自物理層的比特流劃分為幀,并控制幀在物理信道上的傳輸,主要包括如何處理傳輸差錯、如何調節發送速率以便與接收方相匹配,以及在兩個網絡實體之間進行數據鏈路通路的建立、維持和釋放的管理。

在 IEEE 802標準中,數據鏈路層又分為兩個邏輯子層:邏輯鏈路控制子層(Logic Link Control sublayer,LLC)和介質訪問控制子層(Media Access Control sublayer,MAC),如圖1-7所示。

LLC子層位于網絡層和MAC子層之間,負責識別協議類型,并對數據進行封裝以便通過網絡進行傳輸。

MAC子層負責指定數據如何通過物理線路進行傳輸,并向下與物理層通信。它具有物理編址、網絡拓撲、線路規范、錯誤通知、按序傳遞和流量控制等功能。

圖1-7 數據鏈路層

MAC子層定義的物理編址用于唯一地標識一臺網絡設備,這個地址就是MAC地址。IEEE規定的網絡設備MAC地址是全球唯一的,由48個二進制位組成,通常用12位十六進制數字來表示。其中,前6位十六進制數字由IEEE統一分配給設備制造商,后6位十六進制數由各個廠商自行分配。例如,MAC地址0x00e0.fc01.2345的前6位00e0fc即為IEEE統一分配給設備廠商的,而后6位的012345則是廠商自己定義的。標準不同,MAC地址的長度及定義可能也不一致。

數據鏈路層中定義的協議有以太網協議(Ethernet)、高級數據鏈路控制(High-level Data Link Control, HDLC)、點對點協議(Point-to-Point Protocol,PPP)、幀中繼(Frame Relay,FR)協議等。數據鏈路層常見的設備是以太網交換機。

3.網絡層

網絡層負責在網絡之間將數據包從源轉發到目的地。在發送數據時,網絡層把傳輸層產生的報文段加上網絡層的頭部信息封裝成包的形式進行傳送;在接收時,網絡層根據對端添加的頭部信息對包進行相應的處理。

網絡層在整個分層結構中主要功能有兩個。

(1)提供邏輯地址:網絡層定義了一個地址,用于在網絡層唯一標識一臺網絡設備。

網絡層地址在TCP/IP模型中即為IP地址。IP地址目前分為兩個版本,IPv4地址和IPv6地址,現階段IPv4地址在現網中的應用較為廣泛。IPv4地址的常用表示方法為點分十進制,如10.8.2.48。后續章節將對IP地址做詳細的介紹。

(2)路由:將數據報文從某一鏈路轉發到另一鏈路。

路由決定了分組包從源轉發到目的地的路徑。

網絡層定義的協議常見的有網際協議(Internet Protocol,IP)、網際控制報文協議(Internet Control Message Protocol,ICMP)、地址解析協議(Address Resolution Protocol,ARP)、反向地址解析協議(Reverse Address Resolution Protocol,RARP)。網絡層常見的設備是路由器。

4.傳輸層

傳輸層為上層應用屏蔽了網絡的復雜性,并實現了主機應用程序間端到端的連通性,主要具備以下基本功能。

(1)將應用層發往網絡層的數據分段或將網絡層發往應用層的數據段進行合并。

(2)建立端到端的連接,主要是建立邏輯連接以傳送數據流。

(3)實現主機間的數據段傳輸。在傳送過程中可通過計算校驗以及流控制的方式保證數據的正確性,其中流控制可以避免緩沖區溢出。

(4)部分傳輸層協議能保證數據傳送的正確性。主要是在數據傳送過程中確保同一數據既不多次傳送,也不丟失,以及保證數據報的接收順序與發送順序一致。

TCP/IP協議棧中的傳輸層協議主要有兩種:傳輸控制協議(Transmission Control Protocol,TCP)和用戶數據報協議(User Datagram Protocol,UDP)。TCP提供面向連接的、可靠的字節流服務,UDP提供無連接的、面向數據報的服務,后續章節將對TCP和UDP做詳細介紹。

TCP/IP協議棧介紹

5.應用層

應用層是體系結構中的最高層,直接為用戶應用進程提供服務,主要功能有以下3類。

(1)為用戶提供接口、處理特定的應用。

(2)數據加密、解密、壓縮、解壓縮。

(3)定義數據表示的標準。

應用層有許多協議,用來幫助用戶使用和管理TCP/IP網絡,如基于TCP傳輸層協議工作的文件傳輸協議(File Transfer Protocol,FTP)、遠程登錄協議(Telnet)、超文本傳輸協議、簡單郵件傳輸協議(Simple Mail Transfer Protocol,SMTP)等;基于UDP工作的簡單文件傳輸協議(Trivial File Transfer Protocol, TFTP)、簡單網絡管理協議(Simple Network Management Protocol,SNMP)等。其中部分協議如域名系統(Domain Name System,DNS),既可以封裝在TCP頭部中,也可以封裝在UDP頭部中。

1.2.4 數據的封裝和解封裝

在前面的OSI和TCP/IP分層模型中,簡單介紹了每一層的功能,如傳輸層,主要用于建立端到端的連接,網絡層則可以給報文帶上IP地址,用于給數據報文進行地址標識。

數據的發送過程和物品的郵寄比較類似,在郵寄物品的時候,會將物品封成包裹,填上收發人的信息,數據的轉發也是如此,需要給待發送的數據封裝上頭部報文,在報頭中包含了IP地址、MAC地址等信息。圖1-8所示為數據的封裝和解封裝過程。

圖1-8 數據的封裝和解封裝

在TCP/IP分層結構中,對等層之間互相交互的數據被稱為PDU(協議數據單元)。PDU在不同層有約定俗成的名稱。如在傳輸層中,在上層數據中加入TCP報頭后得到的PDU被稱為數據段(Segment);數據段被傳遞給網絡層,網絡層添加IP報頭得到的PDU被稱為數據包(Packet);數據包被傳遞到數據鏈路層,封裝數據鏈路層報頭得到的PDU被稱為數據幀(Frame);最后,幀被轉換為比特,通過網絡介質傳輸。

假設兩臺主機A與B進行通信。主機A將某項應用通過上層協議轉換上層數據后交給傳輸層;傳輸層將應用層的PDU作為自己的數據部分并封裝傳輸層報頭,如果報文較大,則進行分段,形成傳輸層的PDU,然后傳遞給網絡層;網絡層將傳輸層的PDU作為本層的數據部分,加上網絡層的頭部信息,形成網絡層的PDU,傳遞給數據鏈路層;數據鏈路層在頭部添加數據鏈路層的報頭,形成數據幀,然后傳遞給物理層;物理層將數據轉換為比特流,通過物理線路傳送給主機 B。這種協議棧向下傳遞數據,并添加報頭和報尾的過程就稱為封裝。圖1-7中,數據鏈路層被表示為LLC和MAC兩個邏輯子層。在實際應用中,根據協議的不同,有時候只需要封裝MAC子層的頭部信息即可。而幀檢驗序列(Frame Check Sequence,FCS),主要用于校驗數據在傳輸過程中有無發生錯誤,是一種錯誤檢驗機制。

而當數據通過網絡傳輸后,到達接收設備,接收方將刪除添加的信息,并根據報頭中的信息決定如何將數據沿協議棧上傳給合適的應用程序,這個過程稱為解封裝。如圖1-8右側所示,主機B在物理層接收到比特流之后交給數據鏈路層處理,數據鏈路層收到報文后,從中拆離出數據鏈路層報文頭后將數據傳遞給網絡層,網絡層收到報文后,從中拆離出IP報文頭,交給傳輸層處理,傳輸層拆離傳輸頭部后交給應用層。

TCP/IP報文封裝與分片

數據的封裝和解封裝都是逐層處理的過程,各層都會處理上層或下層的數據,并加上或剝離到本層的封裝報文頭。不同設備的對等層之間依靠封裝和解封裝來實現相互間的通信。圖1-9所示是通過抓包軟件解析得到的一個報文,從中可以看到,從上層到下層的封裝協議分別是TCP、IP、Ethernet II。

圖1-9 報文封裝

1.2.5 協議和標準

上文中提到了分層結構,提到了數據的封裝和解封裝。從中可以了解到,信息的傳遞離不開協議。本小節將對一些常見的協議和標準進行介紹。

1.TCP

在TCP/IP分層模型中,傳輸層位于應用層和網絡層之間,為終端主機提供端到端的連接,主要的協議有兩種:TCP和UDP。TCP提供面向連接的、可靠的字節流服務,而UDP則為用戶提供簡單的、面向數據報的服務。圖1-10所示是TCP報文頭部的格式,圖1-11所示是通過抓包軟件看到的TCP報文封裝結構。

圖1-10 TCP頭部格式

圖1-11 TCP報文封裝結構

TCP數據段由頭部(TCP Head)和數據(TCP Data)組成。由于TCP頭部中用于指示頭部長度的字段為4 bit,其最大值是15,表示最大可有15個32 bit,因此TCP最多有60個字節的頭部。如果沒有選項字段,則TCP頭部的長度是20字節。每個TCP段都包含源端和目的端的端口號,用于尋找發端和收端的應用進程。端口號加上IP頭部中的源端IP地址和目的端IP地址能夠唯一確定一個TCP連接。序列號則用來標識從TCP發端向TCP收端發送的數據字節流,它表示在這個報文段中的第一個數據字節。窗口大小用于表示接收端期望接收的字節,由于該字段為16 bit,因而窗口大小最大為65 535字節。檢驗和則是針對整個TCP報文段以及部分IP頭中的信息進行的報文驗證。

傳輸層協議——TCP、UDP介紹

TCP 提供的是可靠的面向連接的服務,在傳送數據之前,會在收發雙方之間建立一條連接通道。TCP連接的建立是一個三次握手的過程,如圖1-12所示。具體過程有以下3步。

(1)客戶端(Client)發送一個SYN段,表示客戶期望連接服務器端口,初始序列號為a。

(2)服務器(Server)發回序列號為b的SYN段作為響應。同時設置確認序列號為客戶端的序列號加1(a+1),作為對客戶端的SYN報文的確認。

(3)客戶端設置確認序列號為服務器端的序列號加1(b+1),作為對服務器端SYN報文段的確認。

這3個報文段完成了TCP連接的建立。

圖1-12 TCP連接的建立過程

TCP 的可靠傳輸還體現在確認技術的應用方面,保證數據流從源設備準確無誤地發送到目的設備。以下描述的是確認技術的工作原理。

當目的設備接收到源設備發送的數據報時,向源端發送確認報文,源設備收到確認報文后,繼續發送數據報,如此重復。當源設備發送數據報后沒有收到確認報文,在一定時間后(源設備在發送數據報時啟動計時器,計時器開始計時到結束的時間),源設備降低數據傳輸速率,重發數據報,如圖1-13所示。

圖1-13 TCP的確認重傳

源設備與目的設備建立了一條端到端的虛鏈路,開始數據傳輸。源設備向目的設備發送seq=n,ack=m,長度為q的數據報,目的設備收到數據報后,用 seq=m,ack=n+q來確認正確接收此數據報,源設備收到確認信息后,繼續發送seq=n+q起始的數據報。目的設備如果未能正確接收到數據報,則繼續用seq=m, ack=n+q的確認報文來進行確認,表示目前只正確接收到序列號為 n的數據報。源設備收到 seq=m, ack=n+q的確認報文后,重發序列號為nn+q-1的數據報,當目的設備正確接收到數據報后,用ack=n+q的報文進行確認。

TCP在保證數據傳輸的可靠性的同時,還提供了多路復用、最大報文段(Maximum Segment Size, MSS)協商、窗口機制等功能。

多路復用是指多個應用程序允許同時調用傳輸層從而為不同的應用建立各自的連接通道。傳輸層把上層發來的不同應用程序數據分成段,按照先到先發(First Input First Output,FIFO)的原則(或者其他原則)發送數據段。這些數據段可以去往同一目的地,也可以去往不同目的地。

MSS表示TCP傳給另一端的最大報文段長度。當建立一個連接時,連接的雙方都要通告各自的MSS,協商得到MSS的最終值。MSS的默認值為536,因此它允許IP數據包長度為576字節(536+20字節IP頭部+20字節TCP頭部)。通過協商最大報文段長度值,可以更好地提高網絡利用率和提升應用性能。

TCP滑動窗口技術通過動態改變窗口大小來調節兩臺主機間的數據傳輸。每個TCP/IP主機支持全雙工數據傳輸,因此TCP有兩個滑動窗口:一個用于接收數據,另一個用于發送數據。

服務器在和客戶端建立TCP連接后,在報文的交互過程中,服務器和客戶端都會將自己的緩沖區大小(窗口大小)分別發送給對端。圖1-14所示為滑動窗口機制,服務器通告給客戶端的窗口大小為3,而客戶端通告給服務端的初始窗口大小為4。

服務端開始發送數據,連續發4個單位的數據,在發送完這一波數據后,服務端暫停數據發送,需等待客戶端的確認。客戶端接收服務器發送過來的數據后,緩沖區逐漸被填滿,這時候緩沖區中的兩個報文被進程讀取,緩沖區有了兩個空位,于是客戶端向服務器發送一個 ACK,這個報文中指示窗口大小為2。服務器收到客戶端發過來的ACK消息,并且知道客戶端將窗口大小調整為2,因此它只發送了2個單位的數據,并且等待客戶端的下一個確認報文,如此反復。

圖1-14 滑動窗口機制

傳輸層協議——TCP工作原理

2.UDP

UDP為應用程序提供面向無連接的服務,所以在傳數據之前,源端和目的端之間不必像TCP那樣需要事先建立連接。正由于UDP是基于無連接的傳輸協議,所以UDP不需要去維護連接狀態和收發狀態,因此服務器能以多播或者廣播的形式同時向多個客戶端傳輸相同的消息。UDP的報文頭部格式如圖1-15所示。

與TCP的報文頭部格式進行比較,UDP頭部中不包含序列號,因此UDP不保證可靠性,即不保證報文能夠到達目的地。UDP更適用于對傳輸效率要求高的應用,如SNMP、Radius等。SNMP監控網絡并斷續發送告警等消息,如果每次發送少量信息都需要建立TCP連接,無疑會降低傳輸效率,所以諸如SNMP、Radius等更注重傳輸效率的應用程序都會選擇UDP作為傳輸層協議。圖1-16列舉了TCP和UDP之間的不同之處。

圖1-15 UDP頭部格式

圖1-16 TCP vs UDP

3.IP協議

IP是TCP/IP協議族中最為核心的協議。所有的TCP、UDP等數據都以IP數據包格式傳輸。IP協議提供不可靠、無連接的數據包傳送服務。

不可靠的意思是,它不能保證IP數據包能成功地到達目的地。IP僅提供盡力而為的傳輸服務。如果發生某種錯誤,如某個路由器暫時用完了緩沖區,IP 有一個簡單的錯誤處理算法,即丟棄該數據包,然后發送ICMP消息報給信源端。任何要求的可靠性必須由上層來提供(如TCP)。

無連接的意思是,IP 并不維護任何關于后續數據包的狀態信息。每個數據包的處理是相互獨立的。這也說明,IP 數據包可以不按發送順序接收。如果某一信源向相同的信宿發送兩個連續的數據包(比如先發送A,然后是B),每個數據包都是獨立地進行路由選擇,可能選擇不同的路線,因此B可能在A到達之前先到達。IPv4頭部的格式如圖1-17所示,圖1-18所示是抓包軟件中看到的IP報文封裝結構。

圖1-17 IPv4頭部格式

以下介紹了IP數據包中包含的各字段的含義。

● 版本號(Version)。IP協議的版本號,目前的協議版本號為4。下一代IP協議的版本號為6。

● 報文長度。IP頭部的長度,字段總共4位,以4字節為單位。常規情況下取值為5,即頭部長度為20字節,最大取值為15,即IP頭部的最大長度為60字節。

● 服務類型(Type of Service,TOS)。共8位。包括一個3位的憂先權字段(Class of Service, COS)、4位TOS字段和1位未用位。4位TOS分別代表最小時延、最大吞吐量、最高可靠性和最小費用,只能置其中一位為1。如果所有4比特均為0,那么就意味著是一般服務。COS用于表示報文憂先級。

圖1-18 IP報文封裝結構

● 總長度(Total length)。整個IP數據包長度,包括數據部分。該字段長16位,所以IP數據包最長可達65 535字節。盡管可以傳送一個長達65 535字節的IP數據包,但是大多數的鏈路層都會對它進行分片。而且,主機也要求不能接收超過576字節的UDP數據包。UDP限制用戶數據包長度為512字節,小于576字節。但是,事實上現在大多數的實現(特別是那些支持網絡文件系統NFS的實現)允許超過8 192字節的IP數據包。

● 標識符(Identification)。在一對主機之間一定時間內唯一標識主機發送的每一份數據包。通常每發送一份報文,它的值就會加1。一般情況下,數據鏈路層會限制每次發送數據幀的最大長度。如果IP包的長度超出了鏈路層的幀長,數據包就需要進行分片。分片可以發生在原始發送端主機上,也可以發生在中間路由器上。把一份IP數據包分片以后,只有到達目的地才進行重新組裝,重組由目的端的IP層來完成。標識符字段的值在數據包被分片時會被復制到每個分片中,用于數據分片在目的主機上的重組。

● 標志位。占3比特。第一位保留,取值為0;第二位(DF)代表報文是否可以進行分片,取值為0代表可以分片,取值為1代表不能分片;第三位(MF)代表是否為最后一個分片,取值為0代表該分片是最后一個分片,取值為1代表還有更多的分片。DF和MF的取值不能同時為1。

● 片偏移。片偏移乘以8指的是該分片偏移原始數據包開始處的位置。同樣用于目的主機的分片重組。

● 生存時間(Time to Live,TTL)。數據包可以經過的路由器數目。每經過一個路由器,TTL值就會減1,當該字段值為0時,數據包將被丟棄。

● 協議。在數據包內傳送的上層協議,和端口號類似,IP協議用協議號區分上層協議。例如,協議字段取值6代表上層協議是TCP,取值為17代表上層協議是UDP。

● 報頭校驗和(Head checksum)。IP頭部的校驗和,用于收端檢查報文頭部的完整性。源IP地址和目的IP地址字段標識數據包的源端設備和目的端設備。

● 源IP地址和目的IP地址。標識數據包的源端地址和目的端地址。

1.2.6 網絡類型和拓撲結構

互聯網是由大大小小的網絡、設備連接起來的大網絡。而網絡類型可以根據覆蓋的地理范圍,劃分成局域網和廣域網,如圖1-19所示。

圖1-19 互聯網組成

1.局域網(Local Area Network,LAN)

局域網是將小區域內的各種通信設備互聯在一起所形成的網絡,覆蓋范圍一般局限在房間、大樓或園區內。局域網一般指分布于幾千米范圍內的網絡,局域網的特點是距離短,延遲小,數據速率高,傳輸可靠。

局域網絡建設時常用網絡部件有以下幾種。

線纜(Cable):局域網的距離擴展通常需要通過線纜來實現,不同的局域網有不同的連接線纜,如光纖(Fiber)、雙絞線(Twisted Pair)、同軸電纜等。

網卡(Network Interface Card,NIC):插在計算機主板插槽中,負責將用戶要傳遞的數據轉換為網絡上其他設備能夠識別的格式,通過網絡介質傳輸。

集線器(Hub):是單一總線共享式設備,提供很多網絡接口,負責將網絡中的多個計算機連接在一起。所謂共享,是指集線器所有端口共用一條數據總線,同一時刻只能有一個用戶傳輸數據,因此平均每用戶(端口)傳遞的數據量、速率等受活動用戶(端口)總數量的限制。

交換機(Switch):也稱交換式集線器(Switched Hub)。它同樣具備許多接口,提供多個網絡節點互聯。但它的性能卻較共享集線器(Shared Hub)大為提高,相當于擁有多條總線,使各端口設備能獨立地進行數據傳遞,而不受其他設備影響,表現在用戶面前即是各端口有獨立、固定的帶寬。此外,現在的交換機還具備集線器欠缺的功能,如數據過濾、網絡分段、廣播控制等。

路由器(Router):是一種用于網絡互聯的計算機設備,它工作在OSI參考模型的第三層(網絡層),為不同網絡之間的報文尋徑并存儲轉發。通常路由器還會支持兩種以上的網絡協議以支持異種網絡互聯,一般的路由器還會運行動態路由協議以實現動態尋徑。

防火墻(Firewall):也稱為防護墻,位于內部網絡與外部網絡之間。通過設定特定的規則,允許或者限制傳輸的數據通過。某些情況下,也會作為網關,承擔網絡地址轉換(Network Address Translation, NAT)。

2.廣域網(Wide Area Network,WAN)

WAN連接地理范圍較大,常常是一個國家或是一個洲。在大范圍區域內提供數據通信服務,主要用于互聯局域網。在我國,中國公用分組交換網(CHINAPAC)、中國公用數字數據網(CHINADDN)、國家教育和科研網(CERnet)、中國公用計算機互聯網(CHINANET)以及中國下一代互聯網(China Next Generation Internet,CNGI)都屬于廣域網。WAN的目的是為了讓分布較遠的各局域網互聯。隨著光通信技術的發展,以太網技術基本可以滿足大部分的網絡應用場景,廣域網的應用除了少量場景外,已經不太常見。具有代表性的廣域網的網絡有以下幾個。

綜合業務數字網(Integrated Service Digital Network,ISDN)提供撥號連接方式。提供2B+D的數據通道,每個B通道速率為64kbit/s,其速率最高可達到128kbit/s。

專線(Leased Line),在中國稱為DDN,提供點到點的連接方式,速度為64 kbit/s~2.048 Mbit/s。

幀中繼(Frame Relay),是在X.25基礎上發展起來的技術,速度為64 kbit/s~2.048 Mbit/s。幀中繼的特點是靈活、有彈性,可實現一點對多點的連接。

異步傳輸模式(Asynchronous Transfer Mode,ATM),是一種信元交換網絡,其最大的特點是速率高,延遲小,傳輸質量有保障。

需要說明的是,局域網和廣域網的地理覆蓋范圍并沒有一個嚴格的界限。區分局域網或者廣域網,更多的是依據所使用的技術。

在網絡發展初期,以太網技術受傳輸距離限制,只能實現短距離的網絡互聯,多用于局域網組網。但隨著技術的發展,以太網技術已經能夠用于構建大規模、長距離的互聯網絡。因此,目前很多的廣域網技術,像 ISDN、FR 等,正逐步被以太網替換,只有在某些特定的應用場景中,才會用到一些廣域網技術,如寬帶撥號中用到的PPPoE。

3.網絡拓撲類型

拓撲結構定義了組織網絡設備的方法。現網網絡中的拓撲結構有總線型、星形、環形等,如圖1-20所示。

圖1-20 常見網絡拓撲結構

在總線型拓撲中,網絡中的所有設備都連接到一個線性的網絡介質上,這個線性的網絡介質稱為總線。當一個節點在總線型拓撲網絡上傳送數據時,數據會向所有節點傳送。每一個設備檢查經過它的數據,如果數據不是發給它的,則該設備丟棄數據;如果數據是發向它的,則接收數據并將數據交給上層協議處理。典型的總線型拓撲具有簡單的線路布局,該布局使用較短的網絡介質,相應的,所需要的線纜花費也較低。缺點是很難進行故障診斷和故障隔離,一旦總線出現故障,就會導致整個網絡故障。而且,任何一個設備發送數據,都是向所有設備發送,消耗了大量帶寬,大大影響了網絡性能。

星形拓撲結構有一個中心控制點。當使用星形拓撲時,連接到局域網上的設備間的通信是通過與交換機的點到點的連線進行的。星形拓撲易于設計和安裝,網絡介質直接從中心的集線器或交換機處連接到工作站所在區域。星形拓撲易于維護,網絡介質的布局使得網絡易于修改,并且更容易對發生的問題進行診斷。在局域網構建中,大量采用了星形拓撲結構。當然星形拓撲也有缺點,一旦中心控制點設備出現了問題,容易發生單點故障。每一段網絡介質只能連接一個設備,導致網絡介質數量增多,局域網安裝成本相應提升。

環形拓撲通過一個連續的環將每臺設備連接在一起,數據在環路中沿著一個方向在各個節點間傳輸。在部分場景中,如果某個方向鏈路中斷,則可以惜助另一方向的鏈路進行數據的傳遞。環形結構消除了用戶通信時對中心系統的依賴性,但當環形網絡中的節點過多時,會影響信息的傳輸效率,使網絡的響應時間延長。而且環形網絡的改造比較麻煩,必須先中斷原來的環,才能插入新節點,以形成新環。

樹形拓撲結構是分級的集中控制式網絡。與星形相比,它的通信線路總長度短,成本較低,節點易于擴充,尋找路徑比較方便,但除了葉節點及相連的線路外,其他任一節點或其相連的線路故障都會使系統受到影響。

網狀拓撲結構將各節點通過傳輸線互聯起來,且每一個節點至少與其他兩個節點相連。網絡拓撲結構具有較高的可靠性,但結構較為復雜,實現起來費用較高,管理和維護的難度相對較大。

IP網絡基礎——網絡和Internet介紹

主站蜘蛛池模板: 吐鲁番市| 宁武县| 南宫市| 德阳市| 龙里县| 辽宁省| 崇文区| 从化市| 巴林右旗| 洛阳市| 卓尼县| 兴城市| 孝感市| 江门市| 剑川县| 亚东县| 保定市| 邢台市| 镇原县| 烟台市| 牡丹江市| 平邑县| 景德镇市| 甘南县| 霍林郭勒市| 神农架林区| 禹城市| 博爱县| 湖南省| 甘泉县| 德兴市| 景宁| 乐平市| 曲松县| 烟台市| 津市市| 吉首市| 图木舒克市| 海晏县| 旅游| 昌都县|