IP協(xié)議提供不可靠、無連接和盡力投遞的服務(wù),構(gòu)成了因特網(wǎng)數(shù)據(jù)傳輸?shù)幕A(chǔ);TCP協(xié)議(傳輸控制協(xié)議--Transmission Control Protocol)在IP協(xié)議提供的服務(wù)基礎(chǔ)上,TCP協(xié)議軟件增加了確認(rèn)-重發(fā)、滑動(dòng)窗口和復(fù)用/解復(fù)用等機(jī)制,提供面向連接的、可靠的、流投遞服務(wù)。
TCP協(xié)議的特性
TCP協(xié)議在IP協(xié)議軟件提供的服務(wù)的基礎(chǔ)上,支持面向連接的、可靠的、面向流的投遞服務(wù)。
TCP端口和連接
TCP模塊以IP模塊為傳輸基礎(chǔ),同時(shí)又可面向多種應(yīng)用程序提供傳輸服務(wù)。為了能夠區(qū)分出對(duì)應(yīng)的應(yīng)用程序,引入了TCP端口的概念。
TCP端口與一個(gè)16位的整數(shù)值相對(duì)應(yīng),該整數(shù)值也被稱為TCP端口號(hào)。需要服務(wù)的應(yīng)用進(jìn)程與某個(gè)端口號(hào)進(jìn)行聯(lián)接(Binding),這樣TCP模塊就可以通過該TCP端口與應(yīng)用進(jìn)程通信。
由于IP地址只對(duì)應(yīng)到因特網(wǎng)中的某臺(tái)主機(jī),而TCP端口號(hào)可對(duì)應(yīng)到主機(jī)上的某個(gè)應(yīng)用進(jìn)程,因此,TCP模塊采用IP地址和端口號(hào)的對(duì)偶來標(biāo)識(shí)TCP連接的端點(diǎn)。一條TCP連接實(shí)質(zhì)上對(duì)應(yīng)了一對(duì)TCP端點(diǎn)。
TCP/UDP應(yīng)用程序端口號(hào)分配
端口號(hào)實(shí)質(zhì)上也是操作系統(tǒng)標(biāo)識(shí)應(yīng)用程序的一種方法,其取值可由用戶定義或者系統(tǒng)分配。TCP端口號(hào)采用了動(dòng)態(tài)和靜態(tài)相結(jié)合的分配方法,對(duì)于一些常用的應(yīng)用服務(wù)(尤其是TCP/IP協(xié)議集提供的應(yīng)用服務(wù)),使用固定的端口號(hào);例如:電子郵件(SMTP)的端口號(hào)為25,文件傳輸(FTP)的端口號(hào)為21等。
對(duì)于其它的應(yīng)用服務(wù),尤其是用戶自行開發(fā)的應(yīng)用服務(wù),端口號(hào)采用動(dòng)態(tài)分配方法,由用戶指定操作系統(tǒng)分配。
TCP/IP約定:0—1023為保留端口號(hào),標(biāo)準(zhǔn)應(yīng)用服務(wù)使用;1024以上是自由端口號(hào),用戶應(yīng)用服務(wù)使用。
Unix系統(tǒng)中的/etc/services 文件,Windows 98系統(tǒng)中/windows/setvices文件:列出了系統(tǒng)提供的服務(wù)以及各服務(wù)的端口號(hào)等信息。
TCP窗口機(jī)制
TCP的特點(diǎn)之一是提供體積可變的滑動(dòng)窗口機(jī)制,支持端到端的流量控制。TCP的窗口以字節(jié)為單位進(jìn)行調(diào)整,以適應(yīng)接收方的處理能力。處理過程如下:
(1)TCP連接階段,雙方協(xié)商窗口尺寸,同時(shí)接收方預(yù)留數(shù)據(jù)緩存區(qū);
(2)發(fā)送方根據(jù)協(xié)商的結(jié)果,發(fā)送符合窗口尺寸的數(shù)據(jù)字節(jié)流,并等待對(duì)方的確認(rèn);
(3)發(fā)送方根據(jù)確認(rèn)信息,改變窗口的尺寸,增加或者減少發(fā)送未得到確認(rèn)的字節(jié)流中的字節(jié)數(shù)。調(diào)整過程包括:如果出現(xiàn)發(fā)送擁塞,發(fā)送窗口縮小為原來的一半,同時(shí)將超時(shí)重傳的時(shí)間間隔擴(kuò)大一倍。
TCP的窗口機(jī)制和確認(rèn)保證了數(shù)據(jù)傳輸?shù)目煽啃院土髁靠刂啤?/P>
5.UDP協(xié)議
UDP(用戶數(shù)據(jù)報(bào)協(xié)議--User Datagram Protocol)是TCP/IP協(xié)議集中等同于TCP的通信協(xié)議。
(1)UDP與TCP的差異:UDP直接利用IP協(xié)議進(jìn)行UDP數(shù)據(jù)報(bào)的傳輸,因此UDP提供的是無連接、不可靠的數(shù)據(jù)報(bào)投遞服務(wù)。
(2)UDP的使用場合:UDP常用于數(shù)據(jù)量較少的數(shù)據(jù)傳輸,例如:域名系統(tǒng)中域名地址/IP地址的映射請(qǐng)求和應(yīng)答(Named),Ping 、BOOTP、TFTP等應(yīng)用。
(3)使用UDP協(xié)議的好處:在少量數(shù)據(jù)的傳輸時(shí),使用UDP協(xié)議傳輸信息流,可以減少TCP連接的過程,提高工作效率。
(4)UDP協(xié)議的不足:當(dāng)使用UDP協(xié)議傳輸信息流時(shí),用戶應(yīng)用程序必須負(fù)責(zé)解決數(shù)據(jù)報(bào)排序,差錯(cuò)確認(rèn)等問題。
在多媒體應(yīng)用中,常用TCP支持?jǐn)?shù)據(jù)傳輸,UDP支持音頻/視頻傳輸!
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |