国产免费av片在线观看sm,国产AⅤ久久免费精品,国产精选高清无码,日韩在线观看一区二,国产亚洲欧洲三级片A级,中文字幕免费无码专区

工業(yè)路由器

TCP/UDP協(xié)議是什么?深入理解TCP、UDP協(xié)議及兩者的區(qū)別

發(fā)布時(shí)間:2022-05-05瀏覽:1335

一、TCP協(xié)議:


       位于傳輸層, 提供可靠的字節(jié)流服務(wù)。所謂的字節(jié)流服務(wù)(Byte Stream Service) 是指, 為了方便傳輸, 將大塊數(shù)據(jù)分割成以報(bào)文段(segment) 為單位的數(shù)據(jù)包進(jìn)行管理。 而可靠的傳輸服務(wù)是指, 能夠把數(shù)據(jù)準(zhǔn)確可靠地傳給對(duì)方。 即TCP 協(xié)議為了更容易傳送大數(shù)據(jù)才把數(shù)據(jù)分割, 而且 TCP 協(xié)議能夠確認(rèn)數(shù)據(jù)最終是否送達(dá)到對(duì)方。所以,TCP連接相當(dāng)于兩根管道(一個(gè)用于服務(wù)器到客戶端,一個(gè)用于客戶端到服務(wù)器),管道里面數(shù)據(jù)傳輸是通過(guò)字節(jié)碼傳輸,傳輸是有序的,每個(gè)字節(jié)都是一個(gè)一個(gè)來(lái)傳輸。


(1)、三次握手:握手過(guò)程中使用了 TCP 的標(biāo)志(flag) —— SYN(synchronize) 和ACK(acknowledgement) 。


第一次握手:建立連接時(shí),客戶端A發(fā)送SYN包(SYN=j)到服務(wù)器B,并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器B確認(rèn)。
第二次握手:服務(wù)器B收到SYN包,必須確認(rèn)客戶A的SYN(ACK=j+1),同時(shí)自己也發(fā)送一個(gè)SYN包(SYN=k),即SYN+ACK包,此時(shí)服務(wù)器B進(jìn)入SYN_RECV狀態(tài)。

第三次握手:客戶端A收到服務(wù)器B的SYN+ACK包,向服務(wù)器B發(fā)送確認(rèn)包ACK(ACK=k+1),此包發(fā)送完畢,完成三次握手。


141514503493.png



若在握手過(guò)程中某個(gè)階段莫名中斷, TCP 協(xié)議會(huì)再次以相同的順序發(fā)送相同的數(shù)據(jù)包。
 (2)、四次揮手:由于TCP連接是全雙工的,因此每個(gè)方向都必須單獨(dú)進(jìn)行關(guān)閉。這個(gè)原則是當(dāng)一方完成它的數(shù)據(jù)發(fā)送任務(wù)后就能發(fā)送一個(gè)FIN來(lái)終止這個(gè)方向的連接。收到一個(gè) FIN只意味著這一方向上沒(méi)有數(shù)據(jù)流動(dòng),一個(gè)TCP連接在收到一個(gè)FIN后仍能發(fā)送數(shù)據(jù)。先進(jìn)行關(guān)閉的一方將執(zhí)行主動(dòng)關(guān)閉,而另一方被動(dòng)關(guān)閉。


客戶端A發(fā)送一個(gè)FIN,用來(lái)關(guān)閉客戶A到服務(wù)器B的數(shù)據(jù)傳送。
服務(wù)器B收到這個(gè)FIN,它發(fā)回一個(gè)ACK,確認(rèn)序號(hào)為收到的序號(hào)加1。
服務(wù)器B關(guān)閉與客戶端A的連接,發(fā)送一個(gè)FIN給客戶端A。
客戶端A發(fā)回ACK報(bào)文確認(rèn),并將確認(rèn)序號(hào)設(shè)置為收到序號(hào)加1。
三次握手和四次揮手:在TCP連接中,服務(wù)器端的SYN和ACK向客戶端發(fā)送是一次性發(fā)送的,而在斷開(kāi)連接的過(guò)程中, B端向A
端發(fā)送的ACK和FIN是分兩次發(fā)送的。因?yàn)樵贐端接收到A端的FIN后, B端可能還有數(shù)據(jù)要傳輸,所以先發(fā)送ACK,等B端處理完自己的事情后就可以發(fā)送FIN斷開(kāi)連接了。


(3)、深入理解TCP連接: 


由于TCP是全雙工的,因此在每一個(gè)方向都必須單獨(dú)關(guān)閉。這原則是當(dāng)一方完成它的數(shù)據(jù)發(fā)送任務(wù)后就能發(fā)送一個(gè)FIN來(lái)終止這個(gè)方向的連接。收到一個(gè)FIN只意味著這個(gè)方向上沒(méi)有數(shù)據(jù)流動(dòng),一個(gè)TCP連接在接收到一個(gè)FIN后仍能發(fā)送數(shù)據(jù)。 首先進(jìn)行關(guān)
閉的一方將執(zhí)行主動(dòng)關(guān)閉,而另一方執(zhí)行被動(dòng)關(guān)閉。
TCP協(xié)議的連接是全雙工連接,一個(gè)TCP連接存在雙向的讀寫(xiě)通道。簡(jiǎn)單來(lái)說(shuō),是“先關(guān)讀,再關(guān)寫(xiě)” ,總共需要4個(gè)階段。以客戶機(jī)發(fā)起關(guān)閉連接為例:1.服務(wù)器讀通道關(guān)閉;2.客戶端寫(xiě)通道關(guān)閉;3.客戶端讀通道關(guān)閉;4.服務(wù)器寫(xiě)通道關(guān)閉。
關(guān)閉行為是在發(fā)起方數(shù)據(jù)發(fā)送完畢之后,給對(duì)方發(fā)出一個(gè)FIN(finish)數(shù)據(jù)段,直到接收到對(duì)方發(fā)送的FIN,且對(duì)方收到了接收確認(rèn)的ACK之后,雙方的數(shù)據(jù)通信完全結(jié)束,過(guò)程中每次都需要返回確認(rèn)數(shù)據(jù)段ACK。


(4)、TCP使用滑動(dòng)窗口機(jī)制來(lái)進(jìn)行流量控制。
建立連接時(shí),各端分配一個(gè)緩沖區(qū)用來(lái)存儲(chǔ)接收的數(shù)據(jù),并將緩沖區(qū)的尺寸發(fā)送給另一端。接收方發(fā)送的確認(rèn)消息中包含了自己剩余的緩沖區(qū)尺寸。剩余緩沖區(qū)空間的數(shù)量叫做窗口。其實(shí)就是建立連接的雙虎互相知道彼此剩余的緩沖區(qū)大小。


141515316988.png


 (5)、擁塞控制


擁塞控制:防止過(guò)多的數(shù)據(jù)注入到網(wǎng)路中,這樣可以使網(wǎng)絡(luò)中的路由器或鏈路不至于阻塞。擁塞控制是一個(gè)全局性的過(guò)程,和流量控制不同,流量控制是點(diǎn)對(duì)點(diǎn)的控制。


141515461788.png


1、慢開(kāi)始:發(fā)送方維持一個(gè)叫做擁塞窗口cwnd(congestion window)的狀態(tài)變量。擁塞窗口的大小取決于網(wǎng)絡(luò)的擁塞程度,并且動(dòng)態(tài)的變化。發(fā)送方讓自己的發(fā)送窗口等于擁塞窗口,另外考慮到接收方的接收能力,發(fā)送窗口可能小于擁塞窗口。思路就是:不要一開(kāi)始就發(fā)送大量的數(shù)據(jù),先試探一下網(wǎng)絡(luò)的擁塞程度,也就是說(shuō)由小到大增加擁塞窗口的大小。


為了防止cwnd增長(zhǎng)過(guò)大引起網(wǎng)絡(luò)擁塞,還需要設(shè)置一個(gè)慢開(kāi)始門(mén)限ssthresh狀態(tài)變量。 ssthresh的方法如下:
當(dāng)cwnd < ssthresh時(shí),開(kāi)始使用慢開(kāi)始算法;當(dāng)cwnd > ssthresh, 改用擁塞避免算法;當(dāng)cwnd = ssthresh時(shí),慢開(kāi)始與擁塞算法任意。
 2.擁塞避免:


擁塞避免算法讓擁塞窗口緩慢增長(zhǎng),即每經(jīng)過(guò)一個(gè)往返時(shí)間RTT就把發(fā)送方的擁塞窗口cwnd加1,而不是加倍,這樣擁塞窗口按照線性規(guī)律緩慢增長(zhǎng)。無(wú)論是在慢開(kāi)始階段還是在擁塞避免階段,只要發(fā)送方判斷網(wǎng)絡(luò)出現(xiàn)擁塞(其根據(jù)就是沒(méi)有收到確認(rèn),雖然沒(méi)有收到確認(rèn)可能是其他原因的分組丟失,但是因?yàn)?法判定,所以都當(dāng)作擁塞處理),就把慢開(kāi)始門(mén)限設(shè)置為出現(xiàn)擁塞時(shí)的發(fā)送窗口的一半,然后把擁塞窗口設(shè)置為1,執(zhí)行慢開(kāi)始算法:

141516031048.png


此外,還有快速重傳和快速恢復(fù),停止-等待協(xié)議,回退N幀協(xié)議,選擇重傳協(xié)議等。 


二、UDP協(xié)議:


無(wú)連接協(xié)議,也稱透明協(xié)議,也位于傳輸層。


兩者區(qū)別:


1) TCP提供面向連接的傳輸,通信前要先建立連接(三次握手機(jī)制); UDP提供無(wú)連接的傳輸,通信前不需要建立連接。
2) TCP提供可靠的傳輸(有序,無(wú)差錯(cuò),不丟失,不重復(fù)); UDP提供不可靠的傳輸。
3) TCP面向字節(jié)流的傳輸,因此它能將信息分割成組,并在接收端將其重組; UDP是面向數(shù)據(jù)報(bào)的傳輸,沒(méi)有分組開(kāi)銷。
4) TCP提供擁塞控制和流量控制機(jī)制; UDP不提供擁塞控制和流量控制機(jī)制。




三、長(zhǎng)連接和短連接


       HTTP的長(zhǎng)連接和短連接本質(zhì)上是TCP長(zhǎng)連接和短連接。HTTP屬于應(yīng)用層協(xié)議,在傳輸層使用TCP協(xié)議,在網(wǎng)絡(luò)層使用IP協(xié)議。 IP協(xié)議主要解決網(wǎng)絡(luò)路由和尋址問(wèn)題,TCP協(xié)議主要解決如何在IP層之上可靠地傳遞數(shù)據(jù)包,使得網(wǎng)絡(luò)上接收端收到發(fā)送端所發(fā)出的所有包,并且順序與發(fā)送順序一致。TCP協(xié)議是可靠的、面向連接的。


在HTTP/1.0中默認(rèn)使用短連接。也就是說(shuō),客戶端和服務(wù)器每進(jìn)行一次HTTP操作,就建立一次連接,任務(wù)結(jié)束就中斷連接。當(dāng)客戶端瀏覽器訪問(wèn)的某個(gè)HTML或其他類型的Web頁(yè)中包含有其他的Web資源(如JavaScript文件、圖像文件、CSS文件等),每遇到這樣一個(gè)Web資源,瀏覽器就會(huì)重新建立一個(gè)HTTP會(huì)話。


而從HTTP/1.1起,默認(rèn)使用長(zhǎng)連接,用以保持連接特性。使用長(zhǎng)連接的HTTP協(xié)議,會(huì)在響應(yīng)頭加入這行代碼:


Connection:keep-alive
在使用長(zhǎng)連接的情況下,當(dāng)一個(gè)網(wǎng)頁(yè)打開(kāi)完成后,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接不會(huì)關(guān)閉,客戶端再次訪問(wèn)這個(gè)服務(wù)器時(shí),會(huì)繼續(xù)使用這一條已經(jīng)建立的連接。Keep-Alive不會(huì)永久保持連接,它有一個(gè)保持時(shí)間,可以在不同的服務(wù)器軟件(如Apache)中設(shè)定這個(gè)時(shí)間。實(shí)現(xiàn)長(zhǎng)連接需要客戶端和服務(wù)端都支持長(zhǎng)連接。


HTTP協(xié)議的長(zhǎng)連接和短連接,實(shí)質(zhì)上是TCP協(xié)議的長(zhǎng)連接和短連接。


上一篇:工業(yè)4G/5G路由器選購(gòu)方法 下一篇:一文徹底搞懂什么是OPC
免費(fèi)樣機(jī)申請(qǐng) 樣機(jī)免費(fèi)試用,提前溝通確保愛(ài)陸通產(chǎn)品深度契合貴司業(yè)務(wù)需求
  • *您的姓名:
  • *手機(jī)號(hào)碼:
  • *公司名稱:
  • 您的職位:
  • 您的郵箱:
  • 您的QQ:
相關(guān)產(chǎn)品
產(chǎn)品百科
隱私政策網(wǎng)站地圖 Copyright ? 2015-2022 廈門(mén)愛(ài)陸通通信科技有限公司 All Rights Reserved.   閩ICP備15018514號(hào)
在線咨詢 撥打電話
兴化市| 临湘市| 穆棱市| 景德镇市| 文昌市| 海原县| 鹰潭市| 泰来县| 吉木萨尔县| 绥德县| 垫江县| 赤城县| 上虞市| 黔江区| 南开区| 若羌县| 舞钢市| 鄂温| 灵川县| 盘山县| 定远县| 和硕县| 常州市| 大新县| 本溪市| 措美县| 洛川县| 美姑县| 长岭县| 遂川县| 万年县| 怀来县| 泸西县| 霍邱县| 宜宾市| 静海县| 右玉县| 富蕴县| 紫阳县| 深水埗区| 博爱县|