網絡原雷火电竞理與技術
計算機網絡就是利用通信設備和線路將地理位置不同的、功能獨立的多個計算機系統互連起來,以功能完善的網絡軟件實現網絡中資源共享和信息傳遞的系統,一個計算機網絡是由資源子網和通信子網組成,資源子網負責信息處理,通信子網負責信息傳遞。資源子網包括提供資源的主機HOST和請求資源的終端,它們都是信息傳輸的源節點和終節點,有事也稱爲端節點;通信子網主要由網絡節點和通信鏈路組成。
由於各個計算機廠商都採用私有的網絡模型,因此給通信帶來了諸多麻煩,ISO 於 1984 年頒佈了 OSI 參考模型。OSI 參考模型是一個開放式體系結構,它規定將網絡分爲七層,從下往上依次是物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層,如下圖所示。
OSI/RM:分爲7層,分爲物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層,從下往上的7層。
聯網的目的在於支持運行於不同計算機上的進程之間的通信,而這些進程則是爲用戶完成不同任務而設計的。應用是多方面的,不受網絡結構的限制。應用層(Application Layer) 包含大量人們普遍需要的協議。顯然,對於需要通信的不同應用來說,應用層的協議都是必需的。例如,PC(Personal Computer,個人計算機)用戶利用仿真終端軟件通過網絡使用該遠程主機的資源。這個仿真終端程序使用虛擬終端協議將鍵盤輸入的數據傳送到主機的操作系統,並接收顯示於屏幕的數據。
又如,當用戶想要獲得遠程計算機上的一個文件副本時,他要向本機的文件傳輸軟件發出請求,這個軟件與遠程計算機上的文件傳輸進程通過文件傳輸協議進行通信,這個協議主要處理文件名、用戶許可狀態和其他請求細節的通信。遠程計算機上的文件傳輸進程使用其他進程來傳輸文件內容。
由於每個應用有不同的要求,因此應用層的協議集在 OSI 參考模型中並沒有定義,但是, 有些確定的應用層協議,包括虛擬終端、文件傳輸和電子郵件等都可作爲標準化的候選。
表示層(Presentation Layer)用於完成某些特定功能,對這些功能人們常常希望找到普遍的解決方法,而不必由每個用戶自己來實現。值得一提的是,表示層以下各層只關心從源端機到目標機可靠地傳送比特,而表示層關心的是所傳送信息的語法和語義。表示層服務的一個典型例子是用一種大家一致選定的標準方法對數據進行編碼。大多數用戶程序之間並非交換隨機比特,而是交換諸如人名、日期、貨幣數量和之類的信息。這些對象是用字符串、整型數、浮點數的形式,以及由幾種簡單類型組成的數據結構來表示的。
在網絡上,計算機可能採用不同的數據表示法,所以在數據傳輸時需要進行數據格式轉換。例如,在不同的機器上常用不同的代碼來表示字符串(ASCII 碼和 EBCDIC)、整型數(二進制反碼或補碼)及機器字的不同字節順序等。爲了讓採用不同數據表示法的計算機之間能夠相互通信並交換數據,我們在通信過程中使用抽象的數據結構(如抽象語法表示 ASN.1) 來表示所傳送的數據,而在機器內部仍然採用各自的標準編碼。管理這些抽象數據結構,並在發送方將機器的內部編碼轉換爲適合網上傳輸的傳送語法及在接收方做相反的轉換等工作都是由表示層來完成的。另外,表示層還涉及數據壓縮和解壓、數據加密和解密等工作。
會話層(Session Layer)允許不同機器上的用戶之間建立會話關係。會話層允許進行類似傳輸層的普通數據傳送,在某些場合還提供了一些有用的增強型服務;允許用戶利用一次會話在遠端的分時系統上登錄,或在兩臺機器間傳遞文件。
會話層提供的服務之一是管理對話控制。會話層允許信息同時雙向傳輸,或任意一個時刻只能單向傳輸。如果屬於後者,則類似於物理信道上的半雙工模式,會話層將記錄此時該輪到哪一方。一種與對話控制有關的服務是令牌管理(Token Management)。有些協議會保證雙方不能同時進行同樣的操作,這一點很重要。爲管理這些活動,會話層提供了令牌,令牌可以在會話雙方之間移動,只有持有令牌的一方可以執行某種關鍵性操作。另一種會話層服務是同步的。如果在平均每小時出現一次大故障的網絡上,兩臺機器間要進行一次兩小時的文件傳輸,會出現什麼樣的問題呢?每一次傳輸中途失敗後,都不得不重新傳送這個文件。當網絡再次出現大故障時,可能又會半途而廢。爲解決這個問題,會話層提供了一種方法, 即在數據中插入同步點。當每次網絡出現故障後,僅需重傳最後一個同步點以後的數據。
第四層:傳輸層:用戶進程間的通信,負責數據包端到端的傳輸用戶進程間的通信(工作設備:防火牆)
傳輸層(Transport Layer)的主要功能是實現網絡中不同主機上用戶進程之間的數據通信。網絡層和數據鏈路層負責將數據送達目的端的主機,而這個數據需要什麼用戶進程去處理,就需要傳輸層幫忙了。
例如,用 QQ 發送消息,網絡層和數據鏈路層負責將消息轉發到接收人的主機,而接收人應該用 QQ 程序來接收還是用 IE 瀏覽器來接收,就是在傳輸層進行標識。傳輸層要決定對會話層用戶(最終的網絡用戶)提供什麼樣的服務。
因此,我們經常把1~3 層的協議稱爲點到點的協議,而把 4~7 層的協議稱爲端到端的協議。
由於絕大多數主機都支持多進程操作,因此機器上會同時有多個程序訪問網絡,這就意味着將有多條連接進出於這臺主機,因此需要以某種方式區別報文屬於哪條連接。識別這些連接的信息可以放在傳輸層的報文頭中。除了將幾個報文流多路複用到一條通道上,傳輸層還必須管理跨網連接的建立和拆除。這就需要某種命名機制,使機器內的進程能夠說明它希望交談的對象。
網絡層(Network Layer)的主要功能是實現數據從源端到目的端的傳輸。在網絡層, 使用邏輯地址來標識一個點,將上層數據封裝成數據包,在包的頭部封裝了源和目的端的邏輯地址。網絡層根據數據包頭部的邏輯地址選擇最佳的路徑,將數據送達目的端。
第二層:數據鏈路層:負責承上啓下的作用。下層對接網卡,上層驅動安裝。(工作設備:交換機)
數據鏈路層(Data Link Layer)負責將上層數據封裝成固定格式的幀,在數據幀內封裝發送和接收端的數據鏈路層地址(在以太網中爲 MAC 地址,MAC 地址是用來標識網卡的物理地址;在廣域網中點到多點的連接情況下,可以是一個鏈路的標識),並且爲了防止在數據傳輸過程中產生誤碼,要在幀尾部加上校驗信息。當發現數據錯誤時,可以重傳數據幀。
物理層(Physical Layer)的主要功能是完成相鄰節點之間原始比特流的傳輸。物理層協議關心的典型問題是使用什麼樣的物理信號來表示數據 1 和 0,一位持續的時間有多長,數據傳輸是否可同時在兩個方向上進行,最初的連接如何建立及完成通信後連接如何終止,物理接口(插頭和插座)有多少針及各針的用處。物理層的設計主要涉及物理層接口的機械、電氣、功能和過程特性,以及物理層接口連接的傳輸介質等問題。另外,物理層的設計還涉及通信工程領域內的一些問題。
另外一個著名的模型是 TCP/IP 模型。TCP/IP 是傳輸控制協議/網際協議(Transmission Control Protocol/Internet Protocol)的簡稱。早期的 TCP/IP 模型是一個四層結構,從下往上依次是網絡接口層、互聯網層、傳輸層和應用層。在後來的使用過程中,借鑑 OSI 的七層參考模型,將網絡接口層劃分爲物理層和數據鏈路層,形成了一個新的五層結構。TCP/IP 是一系列協議的集合,所以嚴格的稱呼應該是 TCP/IP 協議簇。
TCP/IP 協議簇的前四層與 OSI 參考模型的前四層相對應,其功能也非常類似,而應用層則與 OSI 參考模型的最高三層相對應,如圖 1.3.2所示。
值得注意的是,OSI 參考模型沒有考慮任何一組特定的協議,因此 OSI 更具有通用性; 而 TCP/IP 參考模型與 TCP/IP 協議簇吻合得很好,雖然該模型不適用於其他任何協議棧,雷火 雷火电竞 app但如今的網絡多以 TCP/IP 協議簇作爲基礎,這使得在分層設計上沒有過多考慮協議的 OSI 分層理念,所以沒有廣泛地應用於實際工作中。相反,人們更多地應用 TCP/IP 分層模型在實際工作中分析問題、解決問題。TCP/IP 五層模型應用得更廣泛,因此本書及以後的內容在討論問題時一律採用五層模型。下面是該模型對應的一些常見協議,如圖 1.3.3所示。
在物理層和數據鏈路層,TCP/IP 並沒有定義任何特定的協議。它支持所有標準的、專用的協議,網絡可以是局域網(如廣泛使用的以太網)、城域網或廣域網。所以,TCP/IP 實際上只有三個層次。
在網絡層,TCP/IP 定義了 IP(Internet Protocol,網際協議),而 IP 又由四個支撐協議組成:ARP(地址解析協議)、RARP(逆地址解析協議)、ICMP(網際控制報文協議)和 IGMP
傳統上,TCP/IP 有兩個傳輸層協議:TCP(傳輸控制協議)和 UDP(用戶數據報協議)。TCP 協議傳輸更加穩定可靠,UDP 協議傳輸效率更高。
在應用層,TCP/IP 定義了許多協議,如 HTTP(超文本傳輸協議)、FTP(文件傳輸協議)、
在計算機網絡中層次的劃分要比上述的例子更細緻,每一層實現的功能也更爲複雜。爲了能夠更明確地說明此過程,我們將以兩臺主機的通信爲實例進行分析講解,如圖 1.4.1所示。
在應用層,數據被「翻譯」爲網絡世界使用的語言——二進制編碼數據。大家可以試想一下,人們需要通過計算機傳輸數據的形式千變萬化、各式各樣,有字母、數字、漢字、圖片、聲音等。這些信息對於單一通過弱電流傳輸的計算機來說太過於「複雜」,因此這些人類方便識別的信息被應用層通過各種特殊的編碼過程轉換成二進制數據。這就是上面所描述的「翻譯」過程,也是應用層在網絡數據傳輸過程中最爲核心的貢獻。
在傳輸層,上層數據被分割成小的數據段,併爲每個分段後的數據封裝 TCP 報文頭部。應用層將人們需要傳輸的信息轉換成計算機能夠識別的二進制數據後,這些數據往往都是海量的。例如,一張高清晰的圖片轉換成二進制數據可能會有幾百萬位甚至幾千萬位,如此龐大的數據一次性傳輸的話,一旦網絡出現問題而導致數據出錯就要重新傳輸,數據量過大會加大出錯的概率,最終可能會導致網絡資源耗盡。因此,將數據先分割成小段再逐段傳輸, 一旦出現數據傳輸錯誤只需重傳這一小段數據即可。
**在 TCP 頭部有一個關鍵的字段信息——端口號,它用於標識上層的協議或應用程序,確保上層應用數據的正常通信。**計算機是可以多進程併發運行的,如圖 1.4.1 中的例子,左邊的計算機在通過 QQ 發送信息的同時也可以通過 IE 瀏覽器瀏覽右邊主機的 Web 頁面,對於右邊的主機就必須弄清楚左邊主機發送的數據要對哪個應用程序實施通信。但是對於傳輸層而言, 它是不可能看懂應用層傳輸具體數據的內容的,因此只能藉助一種標識來確定接收到的數據對應的應用程序,這種標識就是端口號。
**在網絡層,上層數據被封裝上新的報文頭部——IP 頭部。值得注意的是,這裏所說的上層數據包括 TCP 頭部,也就是說,這裏的上層是指傳輸層。對於網絡層而言,它是「看不懂」TCP 報文頭部中內容的,在它看來,無論是應用層的應用數據,還是 TCP 頭部信息都屬於上層數據。
在 IP 頭部中有一個關鍵的字段信息——IP 地址,它是由一組 32 位的二進制數組成的, 用於標識網絡的邏輯地址。回想剛纔寄信的例子,我們在信封上填寫對方的詳細地址和本地的詳細地址,以保證收件人能夠順利收到信件。在網絡層的傳輸過程與其很類似,在 IP 頭部中包含目標 IP 地址和源 IP 地址,在網絡傳輸過程中的一些中間設備,如路由器,會根據目標 IP 地址來邏輯尋址,找到正確的路徑將數據轉發到目的端。如果中間的路由設備發現目標的 IP 地址根本是不可能到達的,它將會把該消息傳回發送端主機,因此在網絡層需要同時封裝目標 IP 和源 IP。
在數據鏈路層,上層數據被封裝一個 MAC 頭部,其內部有一個關鍵的字段信息——MAC 地址,它由一組 48 位的二進制數組成。在目前階段,我們先把它理解爲固化在硬件設備中的物理地址,具有全球唯一性。**例如,之前講解的網卡就有屬於自己的唯一的 MAC 地址。和
IP 頭部類似,在 MAC 頭部也同時封裝着目標 MAC 地址和源 MAC 地址。其實,二層封裝還涉及尾部的封裝,考慮大家目前的學習層次,不再詳述,後續會講解相關內容。
無論在之前哪一層封裝的報文頭部還是上層數據信息都是由二進制數組成的,在物理層, 將這些二進制數字組成的比特流轉換成電信號在網絡中傳輸。
扫一扫关注微信公众帐号