4-1:TCP协议之传输层的作用及传输层协议TCP和UDP
文章目錄
- 一:傳輸層的定義
- 二:通信處理
- 三:傳輸層協(xié)議
- 四:TCP協(xié)議的可靠和性能
一:傳輸層的定義
前面說過,IP首部有一個(gè)協(xié)議字段用于標(biāo)識(shí)網(wǎng)絡(luò)層(IP)的上一層采用哪一種傳輸層協(xié)議。根據(jù)這個(gè)字段的協(xié)議號(hào),就可以識(shí)別IP傳輸?shù)臄?shù)據(jù)部分究竟是TCP的內(nèi)容還是UDP的內(nèi)容
同樣,傳輸層的TCP和UDP,為了識(shí)別自己所傳輸?shù)臄?shù)據(jù)究竟應(yīng)該發(fā)給哪個(gè)應(yīng)用,也設(shè)定了一個(gè)這樣的編號(hào)。
以遞送快遞為例:假設(shè)IP為郵遞員,它會(huì)根據(jù)收件人的地址(目的IP地址)向目的地(計(jì)算機(jī))投遞包裹(IP數(shù)據(jù)報(bào))。包裹到達(dá)目的地后,由對(duì)方(傳輸層協(xié)議)根據(jù)包裹信息判斷最終的接收人(接收端應(yīng)用程序)
如果快遞單上只寫了家庭地址和姓氏,對(duì)于快遞員來說就無法判斷應(yīng)該將快遞遞送給哪一位家庭成員,這會(huì)給快遞工作帶來麻煩。再比如,如果一個(gè)收件地址中有多個(gè)同名同姓的接受者(只是假設(shè),雖然現(xiàn)實(shí)可能性很小)又該怎么辦呢?這時(shí),我們只需要附加相應(yīng)的電話號(hào)碼,就可以確定接受者。
在TCP/IP通信中也是如此,我們所說的姓氏也就是應(yīng)用程序,而傳輸層必須指出這個(gè)具體的程序,為了唯一確定它,我們使用端口號(hào)這樣一種識(shí)別碼
二:通信處理
前面提到的應(yīng)用程序,其實(shí)就是用來進(jìn)行TCP/IP應(yīng)用協(xié)議的處理。因此,TCP/IP中所識(shí)別的姓氏就可以理解為應(yīng)用協(xié)議
服務(wù)端程序在UNIX系統(tǒng)中叫做守護(hù)進(jìn)程。例如HTTP的服務(wù)端程序是httpd,而ssh的服務(wù)端程序是sshd。在UNIX中并不需要將這些守護(hù)進(jìn)程逐一啟動(dòng),而是啟動(dòng)一個(gè)可以代表它們接受客戶端請(qǐng)求的inetd(互聯(lián)網(wǎng)守護(hù)進(jìn)程)服務(wù)程序即可。它是一種超級(jí)守護(hù)進(jìn)程,該超級(jí)守護(hù)進(jìn)程收到客戶端請(qǐng)求以后會(huì)fork新的進(jìn)程并進(jìn)行進(jìn)程程序替換(exec)為sshd等各個(gè)守護(hù)進(jìn)程
如下,確認(rèn)一個(gè)請(qǐng)求究竟發(fā)送給的是哪個(gè)服務(wù)端(守護(hù)進(jìn)程),可以通過所收到數(shù)據(jù)包的目標(biāo)端口號(hào)輕松識(shí)別。當(dāng)收到TCP的建立連接請(qǐng)求時(shí),如果目標(biāo)端口號(hào)為22,則轉(zhuǎn)給sshd,如果是80則轉(zhuǎn)給httpd。然后這些守護(hù)進(jìn)程會(huì)繼續(xù)對(duì)連接上的通信傳輸進(jìn)行處理
三:傳輸層協(xié)議
在TCP/IP中 實(shí)現(xiàn)傳輸層功能的協(xié)議中,最具有代表性的就是TCP和UDP
TCP
TCP是面向連接的、可靠的流協(xié)議。流是一種不間斷的數(shù)據(jù)結(jié)構(gòu),你可以把它想象成自來水管道中的水流。當(dāng)應(yīng)用程序采用TCP發(fā)送消息時(shí),雖然可以保證發(fā)送的順序,但發(fā)送時(shí)數(shù)據(jù)與數(shù)據(jù)之間感覺就像“粘連”在了一起
- 例如,在發(fā)送端應(yīng)用程序發(fā)送了10次100字節(jié)的消息,那么在接收端,應(yīng)用程序有可能會(huì)收到一個(gè)1000字節(jié)連續(xù)不間斷的數(shù)據(jù)。因此在TCP通信中,發(fā)送端引用可以在自己所要發(fā)送的消息中設(shè)置一個(gè)表示長度或間隔的字段信息(比如HTTP協(xié)議中的conten_length)
UDP
UDP是不具有可靠性的數(shù)據(jù)報(bào)協(xié)議。細(xì)微的處理它會(huì)交給上層的應(yīng)用去完成。使用UDP協(xié)議雖然可以確保發(fā)送消息的大小,但卻不能保證消息一定會(huì)送到。
- 例如,發(fā)送端應(yīng)用程序發(fā)送一個(gè)100字節(jié)的消息,那么接收端應(yīng)用程序也會(huì)以100字節(jié)為長度接受數(shù)據(jù)。UDP不可靠,所以發(fā)送端發(fā)出去的消息在網(wǎng)絡(luò)傳輸中一旦丟失,接收端將會(huì)接收不到這個(gè)消息。
四:TCP協(xié)議的可靠和性能
可靠性
- 校驗(yàn)和
- 序列號(hào)
- 確認(rèn)應(yīng)答
- 超時(shí)重傳
- 連接管理
- 流量控制
- 擁塞控制
提高性能
- 滑動(dòng)窗口
- 快速重傳
- 延遲應(yīng)答
- 捎帶應(yīng)答
總結(jié)
以上是生活随笔為你收集整理的4-1:TCP协议之传输层的作用及传输层协议TCP和UDP的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第一天 安卓简介
- 下一篇: IIS 发布网站到外网