TCP/IP 與 Internet 網路:第十章 Internet 系統模型 上一頁 下一頁
10-5 連接與非連接伺服架構
應用系統是建立在傳輸層上,基本上傳輸層提供兩種連接方式:連接導向(Connection-Oriented)(TCP)與非連接(Connectionless)(UDP)方式。連接導向方式表示雙方通訊之前必須建立通訊通道,再依照通訊通道來互相傳送訊息,又稱之為『可靠性』(Reliable)傳輸。至於非連接方式,表示通訊雙方並未建立通訊通道,傳送端直接將訊息發送到網路上,目的端並不保證可以接收得到,因此稱之為『不可靠』(Unreliable)傳輸。但連接導向通訊前必須建立連線,也許會浪費許多負荷(Overhead),反而非連接方式的效率較高。
應用系統應該採用何種傳輸模式較為適合?這是值得系統工作人員思考的問題。我們將一些考慮的重點歸類如下:
(A) 通訊範圍
依照 TCP/IP 通訊協定,網際層(IP)採用非連接方式,表示網際層並不負責偵測封包是否安全到達的功能,因此對於較遠的通訊距離,封包也許會經過多個路由器的轉送,才能到達目的地,因此,傳輸層就必須採用連接導向的連線方式(TCP)。但反觀過來,如果網際層的封包轉送在一定區域內(如一般區域網路),不會經過太多的路由器,則採用非連接方式(UDP)效率反而會較高。例如,網路檔案系統(Network File System, NFS)所傳送的訊息大多限制於某一區域網路之內,因此採用非連接(UDP)以提高效率;而 Web 伺服器大多應用較遠地區之間的傳輸,因此,採用連接導向(TCP)方式。
(B) 封包大小
當傳送端發送某一訊息給接收端,如果訊息較大時,傳輸層會將該訊息分割成若干個封包,再依次經由網際層傳送到對方。但因網際層採用電報傳輸(Datagram)方式,當封包到達目的時,封包次序可能和原來不同,如何去偵測哪一個封包遺失,或回復原來的次序,這就必須透過可靠的傳輸層來負責,因此,對於傳輸訊息較大時,採用連接導向方式(TCP)較為適合。但就傳送訊息較短(也許傳輸距離也遠)的服務,本身訊息沒有分割的可能,則可考慮使用非連接方式,其效率較高。例如網域名稱伺服器(DNS),客戶端和伺服器端之間的傳送訊息很短,在一個 IP 封包內就足以承載,因此,採用非連接方式(UDP)效率反而較高。
有些伺服器為了提供不同環境之應用,提供有 TCP 和 UDP 的選擇連接方式,也就是說,在同一個傳輸埠口提供兩種連接方式,客戶端可依照自己的需求(傳輸距離或訊息大小),來決定連接方式,譬如,Time Server 是 37/tcp 與 37/udp,nameserver 是 53/tcp 與 53/udp 上。