我們現在來看這樣乙個案例,張三家很有錢,川普是張三家的老管家。張三有兩個兒子,大三和二三,乙個女兒,姍姍。李四也是富豪,李四的管家叫巴馬,李四也有兩個兒子乙個女兒。大李,二李,和莉莉。
現在兩家因為是親戚,所以子女間會有書信往來,大三,二三,莉莉寫完信以後,交給管家川普去封裝,寫上張三家的位址還有各自所在的房間門牌號。於是把信交給郵遞員。另一邊,郵遞員到達李四家以後,李四 的管家 巴馬開始收信,然後檢查信上的目的房間,如果是大李的就送到大李那裡去,是莉莉的就送到莉莉那裡。郵遞員相當於網路層,兩個管家相當於運輸層。門相當於套接字。門牌號就是埠號,川普收信的過程相當於多路復用,而巴馬分發信的過程相當於多路分解。兒子女兒就相當於應用層的程序。
二---多路復用與多路分解的種類
正如我們所猜測的那樣,多路復用與多路分解分為有連線的和無連線的,因為運輸層協議分為可靠的 ,面向連線的tcp協議和不可靠不面向連線的udp協議,這裡想象成兩個管家,乙個靠譜乙個不靠譜即可
a:無連線的多路復用與多路分解技術
當程序(少爺或小姐)需要傳送udp
資料報時,首先要建立乙個udp套接字(少爺或小姐的門),然後應用層通過這個udp
套接字將資料傳遞到運輸層(管家),運輸層為資料加上源埠號(房間門牌號)以及目的埠號,封裝成資料報後交給網路層(郵遞員),網路層再為資料報封裝上源ip(張三家位址)以及目的ip(李四家位址)。由於udp
協議僅僅只是將資料發出,所以對於udp
報文來說,最重要的就是目的位址的所在。乙個udp
套接字的標識就是目的ip+目的埠號(張三家位址,莉莉的房間門牌號)。因此對於多個不同的udp
資料報,只要它們的目的ip
+埠號相同,就算源位址不同,也會在目的主機中被定向到同乙個udp
套接字中,被同乙個程序所接收。目的ip決定了資料報將要傳送到哪台主機,而目的埠號為運輸層的的分解提供了標識。
b:有連線的多路復用與多路分解技術
既然有無連線的實現,自然就有連線的實現。運輸層乃至整個計算機網路最著名的協議——tcp
協議,就是乙個面向連線的協議。tcp
是乙個面向連線,可靠的運輸層協議。既然面向連線,那它就需要關注兩個方面:源位址和目的位址,因為tcp
的傳輸,需要兩邊協作完成。正因為tcp
的特性,導致tcp
的套接字和udp
也有所區別。tcp
套接字的標識是乙個四元組,即源ip+源埠+目的ip+目的埠(udp
是目的ip
+目的埠)
三--例項演示
當我們在瀏覽器中請求乙個頁面時,將經歷以下過程:
web
伺服器監聽80
埠,等待客戶端的連線;(也叫做歡迎套接字)
使用者在瀏覽器輸入乙個url
,回車後,瀏覽器程序建立乙個套接字,此套接字由伺服器ip
,伺服器80
埠,本地ip
,本地程序埠,四部分標識;
瀏覽器程序將資料通過此套接字從應用層傳入運輸層,運輸層為tcp
報文加上首部(包括源埠和目的埠)後,交給網路層,網路層為其加上網路層首部(包括源ip
和目的ip
)傳輸傳輸到web
伺服器;
web
伺服器接收到此資料報後,檢測到資料報請求的是埠80
,於是檢測80
埠正在執行,且允許連線,則建立乙個新的套接字(把門開啟),此套接字由伺服器ip
,伺服器80
埠,源ip
,源埠,這四部分標識;
此後到達的web
伺服器的資料報,若以上四部分完全相等,則將進入此套接字中;
運輸層的多路復用與多路分解
程序並不直接把資料交給運輸層,而是把資料交給套接字,由套接字把資料交給運輸層。由於每個主機上有多個套接字存在,所以就需要為每個套接字提供乙個唯一標識,這個標識就是常說的主機的埠號 為了知道每個報文是發往哪個主機的哪個程序的,所以有了ip協議的ip位址和tcp udp協議的埠號 ip位址提供主機到主機...
運輸層學習筆記二 多路復用與多路分解
多路分解 將運輸層報文段中的資料交付到正確的套接字的工作 多路復用 在源主機從不同套接字中收集資料塊,並為每個資料塊封裝上首部資訊從而生成報文段,然後將報文段傳遞到網路層的工作 資料本身是進入到套接字。運輸層多路復用的要求 使用下面方式建立udp套接字時,運輸層自動為該套接字分配乙個埠號。clien...
計算機網路運輸層之多路復用與多路分解
一 什麼是多路復用和多路分解 為了說明這個問題,先來補充一下 作業系統方面的知識,以linux對檔案和裝置的管理和使用方式為例。為了方便資源的使用,提高機器的效能 利用率和穩定性等等原因,我們的計算機都有一層軟體叫做作業系統,它用於幫我們管理計算機可以使用的資源,當我們的程式要使用乙個資源的時候,可...