傳輸層
--傳輸層概述
一、概述
從通信和信息處理的角度看,傳輸層向它上面的應用層提供通信服務,它屬於面向通信部分的最高層,同時也是用戶功能中的最低層。
傳輸層爲相互通信的應用進程提供了邏輯通信
1、應用進程之間的通信
兩個主機進行通信實際上就是兩個主機中的應用進程互相通信。
應用進程之間的通信又稱爲端到端的通信。
傳輸層的一個很重要的功能就是複用和分用。應用層不同進程的報文通過不同的端口向下交到傳輸層,再往下就共用網絡層提供的服務。
“傳輸層提供應用進程間的邏輯通信”。“邏輯通信”的意思是:傳輸層之間的通信好像是沿水平方向傳送數據。但事實上這兩個傳輸層之間並沒有一條水平方向的物理連接
2、傳輸層協議和網絡層協議的主要區別
3、傳輸層的主要功能
1)傳輸層爲應用進程之間提供端到端的邏輯通信(但網絡層是爲主機之間提供邏輯通信)。
2)傳輸層還要對收到的報文進行差錯檢測。
3)傳輸層需要有兩種不同的運輸協議,即面向連接的用戶數據報協議UDP(UserDatagram Protocol)和無連接的傳輸控制協議TCP(Transmission Control Protocol)
二、TCP與UDP
1、數據單位
兩個對等運輸實體在通信時傳送的數據單位叫作運輸協議數據單元TPDU(Transport Protocol Data Unit)。
TCP傳送的數據單位協議是TCP報文段(segment)
UDP傳送的數據單位協議是UDP報文或用戶數據報。
2、主要區別
a)UDP在傳送數據之前不需要先建立連接。對方的傳輸層在收到UDP報文後,不需要給出任何確認。雖然UDP不提供可靠交付,但在某些情況下UDP是一種最有效的工作方式。
b)TCP則提供面向連接的服務。TCP不提供廣播或多播服務。由於TCP要提供可靠的、面向連接的運輸服務,因此不可避免地增加了許多的開銷。這不僅使協議數據單元的首部增大很多,還要佔用許多的處理機資源。
【另】
a)傳輸層的UDP用戶數據報與網際層的IP數據報有很大區別。IP數據報要經過互連網中許多路由器的存儲轉發,但UDP用戶數據報是在傳輸層的端到端抽象的邏輯信道中傳送的。
b)TCP報文段是在傳輸層抽象的端到端邏輯信道中傳送,這種信道是可靠的全雙工信道。但這樣的信道卻不知道究竟經過了哪些路由器,而這些路由器也根本不知道上面的傳輸層是否建立了TCP連接。
三、端口
端口就是傳輸層服務訪問點TSAP。
1、介紹
端口用一個16bit端口號進行標誌。
端口號只具有本地意義,即端口號只是爲了標誌本計算機應用層中的各進程。在因特網中不同計算機的相同端口號是沒有聯繫的。
2、作用
端口的作用就是讓應用層的各種應用進程都能將其數據通過端口向下交付給傳輸層,以及讓傳輸層知道應當將其報文段中的數據向上通過端口交付給應用層相應的進程。
從這個意義上講,端口是用來標誌應用層的進程
3、兩類端口
一類是熟知端口,其數值一般爲0~1023。當一種新的應用程序出現時,必須爲它指派一個熟知端口。
另一類則是一般端口,用來隨時分配給請求通信的客戶進程。
4、常用端口號
應用程序 | Echo | Ftp | Ssh | Telnet | Smtp | Dns |
端口 | 7 | 21,20 | 22 | 23 | 25 | 53 |
應用程序 | Dhcp | Tftp | Pop3 | Socks | Squid | pcanywhere |
端口 | 67,68 | 69 | 110 | 1080 | 3128 | 5632 |
四、插口(socket)
TCP使用“連接”(而不僅僅是“端口”)作爲最基本的抽象,同時將TCP連接的端點稱爲插口(socket),或套接字、套接口。
1、插口和端口、IP地址的關係
2、同一個名詞socket的多種不同意思
1)應用編程接口API稱爲socketAPI,簡稱爲socket。
2)socketAPI中使用的一個函數名也叫作socket。
3)調用socket函數的端點稱爲socket。
4)調用socket函數時其返回值稱爲socket描述符,可簡稱爲socket。
5)在操作系統內核中連網協議的Berkeley實現,稱爲socket實現。