日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

关于TCP/IP与数据传输

發(fā)布時(shí)間:2023/11/29 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于TCP/IP与数据传输 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、TCP/IP的具體含義:

從字面意思來(lái)講,很多人會(huì)認(rèn)為TCP/IP是指TCP與IP這兩種協(xié)議。有時(shí)確實(shí)也可以說(shuō)是這兩種協(xié)議,但是大部分情況下所說(shuō)的是利用IP進(jìn)行通信時(shí)所必須用到的協(xié)議群的統(tǒng)稱。具體來(lái)說(shuō)IP,ICMP,TCP,UDP,FTP以及HTTP等都屬于TCP/IP協(xié)議。他們與TCP/IP之間關(guān)系密切,是互聯(lián)網(wǎng)不可缺少的部分。因此大部分情況下TCP/IP是泛指這些協(xié)議,有時(shí)也稱為TCP/IP為國(guó)際協(xié)議族。如圖:

?二、TCP/IP協(xié)議分層模型

TCP/IP是當(dāng)今計(jì)算機(jī)網(wǎng)絡(luò)界使用最為廣泛的協(xié)議,了解TCP/IP不僅是網(wǎng)絡(luò)工程師的必須,而且也是我們小猿需要學(xué)習(xí)的東西。那么什么是TCP/IP呢,看下圖先來(lái)簡(jiǎn)單的了解一下:

上圖列出了OSI參考模型與TCP/IP分層模型的大致關(guān)系,從圖上就可以看出,這兩者之間還是有很多差別的。但是和OSI參考模型對(duì)應(yīng)起來(lái)看,能夠幫助我們更好的理解TCP/IP中每個(gè)協(xié)議具體的功能。OSI主要注重“通信協(xié)議必要的功能是什么”,而TCP/IP主要是“在計(jì)算機(jī)上實(shí)現(xiàn)協(xié)議應(yīng)該開(kāi)發(fā)那些程序”。看上去好像傳統(tǒng)開(kāi)發(fā)模型和敏捷開(kāi)發(fā)模型似的。

?1、硬件(物理層):

TCP/IP的最底層是負(fù)責(zé)數(shù)據(jù)傳輸?shù)挠布?#xff0c;這種硬件就相當(dāng)于以太網(wǎng)或者是電話線等物理層設(shè)備。

2、網(wǎng)絡(luò)接口層(數(shù)據(jù)鏈路層):

網(wǎng)絡(luò)接口層利用以太網(wǎng)中的數(shù)據(jù)鏈路層進(jìn)行通信,因此屬于接口層。也就是說(shuō)把他當(dāng)做讓NIC起作用的“驅(qū)動(dòng)程序”也無(wú)妨。驅(qū)動(dòng)程序是在操作系統(tǒng)與硬件之間起橋梁作用的軟件。

3、互聯(lián)網(wǎng)層(網(wǎng)絡(luò)層):

互聯(lián)網(wǎng)層使用的是IP協(xié)議,相當(dāng)于OSI參考模型中的網(wǎng)絡(luò)層。IP協(xié)議依靠IP地址進(jìn)行轉(zhuǎn)發(fā)分包數(shù)據(jù)。TCP/IP分層模型中的互聯(lián)網(wǎng)層與傳輸層的功能通常是有操作系統(tǒng)提供的。尤其是路由器他必須具有互聯(lián)網(wǎng)層轉(zhuǎn)發(fā)分組數(shù)據(jù)包的功能。所以連接互聯(lián)網(wǎng)的所有的主機(jī)與路由器都必須實(shí)現(xiàn)IP的功能。

4、傳輸層:

TCP/IP分層模型中的傳輸層與OSI模型中的傳輸層有點(diǎn)類似,主要的功能就是讓?xiě)?yīng)用程序之間實(shí)現(xiàn)通信。其中TC是一種面向有鏈接的傳輸層協(xié)議,他可以保證兩端通信主機(jī)的通信可達(dá),但是建立與斷開(kāi)連接至少需要多次的發(fā)包與收包。UDP是一種有別于與TCP的無(wú)連接的傳輸層協(xié)議,他不會(huì)關(guān)注接收端是不是接收到了數(shù)據(jù)。

5、應(yīng)用層(會(huì)話層以上的分層):

TCP/IP分層模型中的應(yīng)用層從圖中可以看出他不僅實(shí)現(xiàn)了OSI參考模型中的應(yīng)用層,同時(shí)也實(shí)現(xiàn)了其中的表示層與會(huì)話層。我們常用的WWW,電子郵件,文件傳輸?shù)葢?yīng)用都包含在其中。其中WWW中瀏覽器與服務(wù)器之間通信所用的協(xié)議就是HTTP(HyperText Transfer Protocol)協(xié)議,他所傳輸?shù)臄?shù)據(jù)的格式主要是HTML。www中的HTTP協(xié)議是屬于應(yīng)用層的協(xié)議,而HTML是一種屬于表示層的協(xié)議。電子郵件中的使用協(xié)議是SMTP(Simple Mail Transfer Protocol)協(xié)議。文件傳輸中使用的協(xié)議是FTP協(xié)議。

三、TCP/IP通信的實(shí)例

我們都很好奇TCP/IP是怎么實(shí)現(xiàn)數(shù)據(jù)的傳輸?shù)哪?#xff1f;?接下來(lái)就來(lái)看一下從應(yīng)用層到物理層的數(shù)據(jù)處理流程。

在TCP/IP分層模型中每個(gè)分層都會(huì)對(duì)所發(fā)送的數(shù)據(jù)附加一個(gè)首部,在這個(gè)首部中包含了該層必要的信息,比如發(fā)送的目標(biāo)地址與協(xié)議的信息等。從下一層的角度來(lái)看,從上一層收到的包全部都被認(rèn)為是本層的數(shù)據(jù)。

發(fā)送數(shù)據(jù)包:

我們還是用電子郵件作為例子,假設(shè)A給B發(fā)送電子郵件,內(nèi)容為”早上好“。從TCP/IP的角度來(lái)看就是從計(jì)算機(jī)A把數(shù)據(jù)發(fā)送到計(jì)算機(jī)B。下面我們來(lái)了解一下具體的過(guò)程:

1、應(yīng)用程序處理:

啟動(dòng)郵件程序,輸入內(nèi)容與收件人,當(dāng)鼠標(biāo)點(diǎn)擊“發(fā)送”后就可以開(kāi)始TCP/IP的通信了。

首先會(huì)在應(yīng)用程序中進(jìn)行編碼處理。利用電子郵件使用UTF-8的編碼格式等,這相當(dāng)于OSI中的表示層的功能。編碼完成后,實(shí)際的郵件不一定會(huì)馬上發(fā)送出去,因?yàn)橛械泥]件軟件可以一次發(fā)送多個(gè),或者是定時(shí)發(fā)送,或者是接收端點(diǎn)擊接收才可以接收新的郵件。。像這種何時(shí)建立通信連接,何時(shí)發(fā)送數(shù)據(jù)的管理功能可以看做是OSI中的會(huì)話層。

應(yīng)用在發(fā)送郵件的那一刻建立了TCP連接,從而利用這個(gè)TCP連接進(jìn)行發(fā)送數(shù)據(jù)。在這個(gè)過(guò)程中首先是把數(shù)據(jù)發(fā)送給TCP,然后再進(jìn)行傳遞與轉(zhuǎn)發(fā)。

2、TCP模塊的處理:

TCP根據(jù)應(yīng)用的指示,負(fù)責(zé)建立連接,發(fā)送數(shù)據(jù)以及斷開(kāi)連接。TCP提供了把應(yīng)用層發(fā)來(lái)的數(shù)據(jù)順利發(fā)送至對(duì)端的可靠傳輸。為了實(shí)現(xiàn)TCP這個(gè)功能,需要在應(yīng)用層數(shù)據(jù)的前端加上一個(gè)TCP首部。這個(gè)TCP的首部包括源端口號(hào)與目標(biāo)端口號(hào)(用于識(shí)別發(fā)送主機(jī)與接收主機(jī)上的應(yīng)用),序號(hào)(用于標(biāo)示發(fā)送的包中哪部分是數(shù)據(jù)),以及效驗(yàn)和(用來(lái)判斷數(shù)據(jù)是否被損壞)。然后把數(shù)據(jù)交給IP.

3、IP模塊的處理:

IP將TCP傳過(guò)來(lái)的TCP首部與數(shù)據(jù)當(dāng)做自己的數(shù)據(jù),并在TCP首部前端加上自己的IP首部。IP首部包含接收端IP與發(fā)送端的IP,緊跟IP首部的還有判斷其后面的數(shù)據(jù)是TCP還是UDP的信息。IP包生成后,參考路由控制表決定接受此IP包的路由或主機(jī)。

4、網(wǎng)絡(luò)接口(以太網(wǎng)驅(qū)動(dòng))的處理:

在接收到IP的包,這些IP的包對(duì)于以太網(wǎng)來(lái)說(shuō)只不過(guò)是數(shù)據(jù)。給這些數(shù)據(jù)加上以太網(wǎng)首部并進(jìn)行發(fā)送處理。以太網(wǎng)首部中包含接收端的MAC地址,發(fā)送端的MAC地址以及標(biāo)致以太網(wǎng)類型的協(xié)議。

每一個(gè)包的首部至少包含兩個(gè)信息,一個(gè)是發(fā)送端與接收端的地址,另一個(gè)是上一層的協(xié)議類型。經(jīng)過(guò)每個(gè)協(xié)議分層時(shí),都必須有識(shí)別發(fā)送端與接收端的信息。以太網(wǎng)會(huì)用MAC地址,IP會(huì)用IP地址,而TCP/UDP則會(huì)使用端口號(hào)來(lái)識(shí)別,即使是在應(yīng)用層像電子郵件這樣的地址也是一種識(shí)別。這些信息都包含在經(jīng)過(guò)各個(gè)分層的數(shù)據(jù)的包的首部信息中。此外包首部中還包含了一個(gè)識(shí)別位,用來(lái)標(biāo)識(shí)上一層協(xié)議的種類信息。詳細(xì)信息如圖:

數(shù)據(jù)包的接受處理:

包的接收過(guò)程與發(fā)送過(guò)程是一個(gè)逆過(guò)程。

1、網(wǎng)絡(luò)接口(以太網(wǎng)驅(qū)動(dòng))的處理:

主機(jī)接收到以太網(wǎng)發(fā)來(lái)的數(shù)據(jù)包之后,首先從以太網(wǎng)的包首部找到MAC地址來(lái)判斷這個(gè)包是不是發(fā)給自己的。不是發(fā)給自己的就丟棄,是發(fā)給自己的就解析數(shù)據(jù)包,然后轉(zhuǎn)給IP。

2、IP模塊的處理:

IP接收到從下層發(fā)來(lái)的數(shù)據(jù)包之后解析,判斷包首部的IP地址與自己的IP地址是不是同一個(gè)IP地址,如果地址相匹配,并從這個(gè)數(shù)據(jù)包中檢查上一層的數(shù)據(jù)類型,如果是TCP則會(huì)轉(zhuǎn)發(fā)給TCP進(jìn)行處理,如果是UDP則會(huì)轉(zhuǎn)發(fā)給UDP進(jìn)行處理。

3、TCP模塊的處理:

在TCP接收到數(shù)據(jù)之后首先會(huì)校驗(yàn)數(shù)據(jù),判斷數(shù)據(jù)是否有損壞。然后檢驗(yàn)是否是按照序號(hào)接收數(shù)據(jù),最后檢查端口號(hào)確定具體的應(yīng)用程序是哪個(gè)。與此同時(shí)接收端接收到數(shù)據(jù)之后會(huì)發(fā)送一個(gè)“確認(rèn)回執(zhí)”到發(fā)送端,來(lái)確認(rèn)數(shù)據(jù)是否發(fā)到。如果沒(méi)有確認(rèn)發(fā)送端會(huì)認(rèn)為數(shù)據(jù)沒(méi)有發(fā)送到,所以繼續(xù)重復(fù)發(fā)送。

4、應(yīng)用程序的處理:

接收端的應(yīng)用程序接收到從TCP發(fā)來(lái)的數(shù)據(jù)包之后在進(jìn)行解碼,然后顯示發(fā)送數(shù)據(jù)的內(nèi)容。

?

總結(jié)

以上是生活随笔為你收集整理的关于TCP/IP与数据传输的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。