---------1. 連線導向的TCP---------
連線導向”就是在正式通訊前必須要與對方建立起串連。比如你給別人打電話,必須等線路接通了、對方拿起話筒才能相互連話。
TCP(Transmission Control Protocol,傳輸控制通訊協定)是基於串連的協議,也就是說,在正式收發資料前,必須和對方建立可靠的串連。一個TCP串連必須要經過三次“對話”才能建立起來,其中的過程非常複雜,我們這裡只做簡單、形象的介紹,你只要做到能夠理解這個過程即可。我們來看看這三次對話的簡單過程:主機A向主機B發出串連請求資料包:“我想給你發資料,可以嗎?”,這是第一次對話;主機B向主機A發送同意串連和要求同步(同步就是兩台主機一個在發送,一個在接收,協調工作)的資料包:“可以,你什麼時候發?”,這是第二次對話;主機A再發出一個資料包確認主機B的要求同步:“我現在就發,你接著吧!”,這是第三次對話。三次“對話”的目的是使資料包的發送和接收同步,經過三次“對話”之後,主機A才向主機B正式發送資料。
TCP協議能為應用程式提供可靠的通訊串連,使一台電腦發出的位元組流無差錯地發往網路上的其他電腦,對可靠性要求高的資料通訊系統往往使用TCP協議傳輸資料。
---------2. 面向非串連的UDP協議---------
面向非串連”就是在正式通訊前不必與對方先建立串連,不管對方狀態就直接發送。這與現在風行的手機簡訊非常相似:你在發簡訊的時候,只需要輸入對方手機號就OK了。
UDP(User Data Protocol,使用者資料包通訊協定)是與TCP相對應的協議。它是面向非串連的協議,它不與對方建立串連,而是直接就把資料包發送過去!
UDP 適用於一次只傳送少量資料、對可靠性要求不高的應用環境。比如,我們經常使用“ping”命令來測試兩台主機之間TCP/IP通訊是否正常,其實 “ping”命令的原理就是向對方主機發送UDP資料包,然後對方主機確認收到資料包,如果資料包是否到達的訊息及時反饋回來,那麼網路就是通的。正因為 UDP協議沒有串連的過程,所以它的通訊效果高;但也正因為如此,它的可靠性不如TCP協議高。QQ就使用UDP發訊息,因此有時會出現收不到訊息的情況。
TCP協議和UDP協議各有所長、各有所短,適用於不同要求的通訊環境。
---------3. TCP協議和UDP協議的差別---------
TCP UDP
是否串連 連線導向 面向非串連
傳輸可靠性 可靠的 不可靠的
應用場合 傳輸大量的資料 少量資料
速度 慢 快
---------4. 按連接埠號碼可分為3大類:---------
(1)公認連接埠(Well Known Ports):從0到1023,它們緊密綁定(binding)於一些服務。通常這些連接埠的通訊明確表明了某種服務的協議。例如:80連接埠實際上總是HTTP通訊。
(2)註冊連接埠(Registered Ports):從1024到49151。它們鬆散地綁定於一些服務。也就是說有許多服務綁定於這些連接埠,這些連接埠同樣用於許多其它目的。例如:許多系統處理動態連接埠從1024左右開始。
(3)動態和/或私人連接埠(Dynamic and/or Private Ports):從49152到65535。理論上,不應為服務分配這些連接埠。實際上,機器通常從1024起分配動態連接埠。但也有例外:SUN的RPC連接埠從32768開始。
(4)0 通常用於分析作業系統。這一方法能夠工作是因為在一些系統中“0”是無效連接埠,當你試圖使用一種通常的閉合連接埠串連它時將產生不同的結果。一種典型的掃描:使用IP地址為0.0.0.0,設定ACK位並在乙太網路層廣播。