TCP/UDP 數(shù)據(jù)報(bào)的傳遞
  • 更新時(shí)間:2024-11-08 16:39:53
  • 網(wǎng)站建設(shè)
  • 發(fā)布時(shí)間:1年前
  • 319

在TCP/IP的傳輸層,提供了兩種數(shù)據(jù)傳輸服務(wù),即TCP和UDP。在Internet網(wǎng)絡(luò)架構(gòu)中,傳輸層占有非常重要的地位,需要從兩種傳輸服務(wù)的數(shù)據(jù)單元格式來(lái)分析。

首先,傳輸層中有一個(gè)非常重要的概念參考,即端口。1.端口

端口用于區(qū)分不同的應(yīng)用程序進(jìn)程或不同的連接號(hào)。在實(shí)際應(yīng)用中,經(jīng)常會(huì)同時(shí)打開(kāi)多個(gè)IE瀏覽器窗口來(lái)瀏覽不同站點(diǎn)的網(wǎng)絡(luò)資源,或者還有其他的網(wǎng)絡(luò)應(yīng)用窗口。在計(jì)算機(jī)系統(tǒng)中,每打開(kāi)一個(gè)應(yīng)用程序,就意味著至少打開(kāi)了一個(gè)進(jìn)程(什么是進(jìn)程,請(qǐng)參考第11章問(wèn)題4-1),打開(kāi)多個(gè)IE窗口就是打開(kāi)多個(gè)進(jìn)程.那么,當(dāng)應(yīng)用層的各個(gè)進(jìn)程產(chǎn)生的數(shù)據(jù)報(bào)被傳輸層服務(wù)時(shí),就會(huì)遇到TCP或UDP同時(shí)為多個(gè)應(yīng)用進(jìn)程提供并發(fā)服務(wù)的問(wèn)題,即多個(gè)應(yīng)用進(jìn)程可能需要通過(guò)相同的TCP 或UDP 協(xié)議。服務(wù)接入點(diǎn)傳輸數(shù)據(jù),見(jiàn)圖4-6。服務(wù)訪問(wèn)點(diǎn)傳輸數(shù)據(jù)

為了區(qū)分上層不同的應(yīng)用進(jìn)程或連接,當(dāng)應(yīng)用層協(xié)議與傳輸層協(xié)議交互時(shí),傳輸層使用不同的端口號(hào)來(lái)描述上層應(yīng)用在傳輸層的通信路徑。因此,端口號(hào)對(duì)于上層應(yīng)用程序來(lái)說(shuō)是一個(gè)非常重要的識(shí)別標(biāo)志。端口號(hào)分為兩類(lèi):一類(lèi)是知名端口,一類(lèi)是動(dòng)態(tài)端口。

1)知名端口

眾所周知的端口(Well Known Ports): 來(lái)自。到1023。這些端口與某些服務(wù)緊密綁定,并指示該服務(wù)的應(yīng)用層協(xié)議。該類(lèi)端口采用全局分配,屬于集中控制方式。經(jīng)認(rèn)可的中央機(jī)構(gòu)根據(jù)用戶(hù)服務(wù)需要進(jìn)行統(tǒng)一分配,并向社會(huì)公布結(jié)果。比如80端口明確告知所有客戶(hù),應(yīng)用層是HTTP協(xié)議通信,21端口是FTP協(xié)議通信等。如果有一個(gè)服務(wù)器提供web服務(wù),希望全世界的用戶(hù)都能訪問(wèn)它的資源,它必須打開(kāi)80端口并在這個(gè)端口上等待,等待隨時(shí)為客戶(hù)提供HTTP服務(wù)。

2)動(dòng)態(tài)端口

動(dòng)態(tài)端口(Dynamic Ports) :從1024到65535。之所以稱(chēng)為動(dòng)態(tài)端口,是因?yàn)樗鼈円话悴粫?huì)固定分配給特定的應(yīng)用程序。這類(lèi)端口采用本地分配,是一種動(dòng)態(tài)控制方式。一個(gè)進(jìn)程如果需要傳輸層服務(wù),首先要向本地操作系統(tǒng)申請(qǐng)一個(gè)端口,操作系統(tǒng)從可用的動(dòng)態(tài)端口號(hào)中隨機(jī)返回一個(gè)本地未使用的端口號(hào)。應(yīng)用獲取的端口號(hào)是綁定的。當(dāng)進(jìn)程關(guān)閉時(shí),占用的端口號(hào)也被釋放。

【示例】客戶(hù)端啟動(dòng)Yahoo Messger應(yīng)用時(shí),客戶(hù)端至少要啟動(dòng)兩個(gè)會(huì)話進(jìn)程,隨機(jī)獲取的兩個(gè)動(dòng)態(tài)端口分別連接到Y(jié)ahoo服務(wù)器和賬戶(hù)驗(yàn)證中心。例如, 的進(jìn)程連接是與Yahoo 的本地端口2192。服務(wù)器5050端口的連接,另一個(gè)過(guò)程是本地2196端口與雅虎賬號(hào)驗(yàn)證中心433端口的連接。

2192和2196是客戶(hù)端動(dòng)態(tài)分配的端口號(hào),433是雅虎賬號(hào)驗(yàn)證中心的服務(wù)端口,5050是雅虎服務(wù)器的服務(wù)端口(這里服務(wù)器端口5050是動(dòng)態(tài)端口號(hào)指定的,實(shí)際應(yīng)用中可能會(huì)出現(xiàn)的情況有很多,比如QQ應(yīng)用等)。

當(dāng)客戶(hù)端和在線好友通過(guò)YahooMessger聊天窗口進(jìn)行文字聊天時(shí),會(huì)在客戶(hù)端建立一個(gè)新的會(huì)話進(jìn)程,比如:的本地5101端口與對(duì)方4548端口的連接。如果想給離線的某位好友留言,消息會(huì)從本地2192端口和雅虎服務(wù)器端口5050建立的連接投遞到雅虎服務(wù)器,再由對(duì)方投遞給對(duì)方。雅虎服務(wù)器代理。

常見(jiàn)的端口號(hào)如表4-1所示。常用的周知端口號(hào)2. TCP/UDP協(xié)議

1)TCP協(xié)議

TCP(Transmission Control Protocol)傳輸控制協(xié)議是一種面向連接的、可靠傳輸?shù)耐ㄐ艆f(xié)議。

什么是面向連接,要在對(duì)等傳輸層之間傳輸數(shù)據(jù),發(fā)送方和接收方首先要建立數(shù)據(jù)傳輸?shù)倪壿嬐ㄐ沛溌罚═CP的“三次握手”,見(jiàn)下文解釋?zhuān)髷?shù)據(jù)傳輸完畢,需要斷開(kāi)這個(gè)連接??煽總鬏?shù)脑蚴荰CP可以保證發(fā)送方和接收方之間數(shù)據(jù)傳輸?shù)耐暾裕ú粊G失,不誤傳),即接收方每收到一個(gè)來(lái)自發(fā)送方相應(yīng)層的TCP數(shù)據(jù)報(bào),經(jīng)過(guò)驗(yàn)證無(wú)誤,必須向發(fā)件人發(fā)回確認(rèn)信息,否則發(fā)件人將重新發(fā)送。這種數(shù)據(jù)傳輸方式就像我們?nèi)粘I钪写螂娫捯粯?。首先,我們需要建立通話連接,然后開(kāi)始通話,最后斷開(kāi)連接。因此,這種服務(wù)方式的數(shù)據(jù)傳輸適用于一次傳輸大量數(shù)據(jù)且需要可靠傳輸?shù)膽?yīng)用。

2) UDP協(xié)議

UDP(User Datagram Protocol)用戶(hù)數(shù)據(jù)報(bào)協(xié)議,是一種面向非連接的、不可靠傳輸?shù)暮?jiǎn)單通信協(xié)議。

UDP的無(wú)連接通信,即發(fā)送端UDP收到上層應(yīng)用傳遞下來(lái)的數(shù)據(jù)報(bào),添加UDP協(xié)議頭信息后就直接向下交付給網(wǎng)絡(luò)層。其不可靠傳輸,即接收端收到UDP數(shù)據(jù)報(bào)后,對(duì)校驗(yàn)沒(méi)問(wèn)題的數(shù)據(jù)報(bào)直接向上層提交報(bào)文數(shù)據(jù),不需要向發(fā)送端回送確認(rèn);而校驗(yàn)有問(wèn)題的數(shù)據(jù)報(bào)則直接丟掉。因丟掉的數(shù)據(jù)報(bào)不需要重傳,故無(wú)法保證傳送數(shù)據(jù)的完整性.這種數(shù)據(jù)傳輸方式就如同我們?nèi)粘I钪型ㄟ^(guò)郵局郵遞普通信件一樣,發(fā)信方將信件投人某郵遞信筒即可,不用關(guān)心信件是否能送到;收信方收到信件后也不裕要向發(fā)信方確認(rèn)。

這種服務(wù)方式的數(shù)據(jù)傳輸適合一次傳輸小量、可靠性要求不高的應(yīng)用中。

如圖4-7所示,應(yīng)用層要求傳輸層提供可靠傳輸服務(wù)的有HTTP, FTP, Telnet和SMTP等,它們都需要高度的可靠性和完整性。
傳輸服務(wù)

而TFTP以及SNMP在兩端傳輸?shù)臄?shù)據(jù)均是很簡(jiǎn)單的數(shù)據(jù),如網(wǎng)絡(luò)設(shè)備配置信息或網(wǎng)絡(luò)管理信息,通過(guò)UDP能達(dá)到基本的數(shù)據(jù)傳輸需求。還有像QQ等即時(shí)通信工具,在網(wǎng)絡(luò)通信良好的情況下,語(yǔ)音數(shù)據(jù)均優(yōu)先使用UDP進(jìn)行傳輸。因?yàn)槭褂肬DP可減少信道的額外開(kāi)銷(xiāo),不需要建立連接、維持連接,更不需要在端到端之間傳遞確認(rèn)消息;UDP協(xié)議頭本身比TCP小很多,也減少了信道占用帶寬,提高了信道的數(shù)據(jù)傳輸速率。

我們專(zhuān)注高端建站,小程序開(kāi)發(fā)、軟件系統(tǒng)定制開(kāi)發(fā)、BUG修復(fù)、物聯(lián)網(wǎng)開(kāi)發(fā)、各類(lèi)API接口對(duì)接開(kāi)發(fā)等。十余年開(kāi)發(fā)經(jīng)驗(yàn),每一個(gè)項(xiàng)目承諾做到滿(mǎn)意為止,多一次對(duì)比,一定讓您多一份收獲!

本文章出于推來(lái)客官網(wǎng),轉(zhuǎn)載請(qǐng)表明原文地址:https://www.tlkjt.com/web/12640.html
推薦文章

在線客服

掃碼聯(lián)系客服

3985758

回到頂部