2。對(duì)系統(tǒng)資源的要求(更多的TCP,更少的UDP);
成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供敦煌網(wǎng)站建設(shè)、敦煌做網(wǎng)站、敦煌網(wǎng)站設(shè)計(jì)、敦煌網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、敦煌企業(yè)網(wǎng)站模板建站服務(wù),10多年敦煌做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。3。UDP程序結(jié)構(gòu)簡(jiǎn)單;
4。流模式和數(shù)據(jù)報(bào)模式;
5。TCP保證數(shù)據(jù)正確性,UDP可能丟失數(shù)據(jù)包,TCP保證數(shù)據(jù)順序,UDP不保證。
tcpudp包到達(dá)順序?UDP是一種數(shù)據(jù)包協(xié)議,以數(shù)據(jù)包的形式存在,因此每次可以接收100200個(gè)數(shù)據(jù)包。在一個(gè)理想的情況下,不管有多少個(gè)recvfrom,它都會(huì)第一次收到100個(gè)recvfrom。當(dāng)然,可能是因?yàn)榫W(wǎng)絡(luò)的原因,如果第二個(gè)包首先到達(dá),它可能是200。由于網(wǎng)絡(luò)混亂,您可能會(huì)先收到200個(gè)數(shù)據(jù)包,因此需要在用戶定義的UDP協(xié)議頭中添加一個(gè)序列號(hào),以標(biāo)識(shí)發(fā)送和接收數(shù)據(jù)包之間的對(duì)應(yīng)關(guān)系。
TCP是流協(xié)議,因此recv(1000)將接收300。TCP自己處理重傳以確保數(shù)據(jù)包的完整性
不,它需要自己實(shí)現(xiàn)。
UDP是一種無連接的數(shù)據(jù)包服務(wù),一方將數(shù)據(jù)發(fā)送到另一方而不建立連接;它只盡大努力進(jìn)行傳遞,并且只進(jìn)行相對(duì)主要的檢查,如報(bào)頭檢查和錯(cuò)誤檢測(cè)。在傳輸過程中,經(jīng)常會(huì)出現(xiàn)丟包、無序、重復(fù)傳輸?shù)葐栴}。
udp有擁塞機(jī)制嗎?什么是TCP和UDP
TCP和UDP是TCP/IP協(xié)議中的兩個(gè)傳輸層協(xié)議。它們利用IP路由功能將數(shù)據(jù)包發(fā)送到目的地,從而為應(yīng)用程序和應(yīng)用層協(xié)議(包括HTTP、SMTP、SNMP、FTP和telnet)提供網(wǎng)絡(luò)服務(wù)。TCP提供面向連接的可靠數(shù)據(jù)流傳輸,UDP提供非面向連接的不可靠數(shù)據(jù)流傳輸。面向連接的協(xié)議在任何數(shù)據(jù)傳輸之前建立點(diǎn)對(duì)點(diǎn)連接。ATM和幀中繼是面向連接的協(xié)議,但它們工作在數(shù)據(jù)鏈路層,而不是傳輸層。普通的音頻電話也是面向連接的。
可靠的傳輸協(xié)議可以避免數(shù)據(jù)傳輸錯(cuò)誤。其實(shí)現(xiàn)方法是:在構(gòu)造數(shù)據(jù)包時(shí),在數(shù)據(jù)包中設(shè)置校驗(yàn)碼,到達(dá)目的地后使用一定的算法重新計(jì)算校驗(yàn)碼。通過比較二者,我們可以找出損壞的數(shù)據(jù)。由于受損和丟失的數(shù)據(jù)需要重新傳輸,協(xié)議必須能夠使目的地在需要重新傳輸數(shù)據(jù)時(shí)給出源的確認(rèn)信號(hào)。有些數(shù)據(jù)包不一定按順序到達(dá),因此協(xié)議必須能夠檢測(cè)出無序的數(shù)據(jù)包,臨時(shí)存儲(chǔ)它們,然后以正確的順序?qū)⑺鼈儼l(fā)送到應(yīng)用層。此外,協(xié)議必須能夠發(fā)現(xiàn)并丟棄重復(fù)的數(shù)據(jù)。一組計(jì)時(shí)器可以限制不同確認(rèn)的等待時(shí)間,以便可以開始重新傳輸或重新建立連接。
數(shù)據(jù)流傳輸協(xié)議不支持位傳輸。TCP不能在數(shù)據(jù)包中以字節(jié)或位的形式構(gòu)造數(shù)據(jù)。它只負(fù)責(zé)傳輸非結(jié)構(gòu)化的8位字符串。
非連接定向傳輸協(xié)議在數(shù)據(jù)傳輸之前不建立連接,而是在每個(gè)中間節(jié)點(diǎn)路由非連接定向數(shù)據(jù)包和數(shù)據(jù)包。沒有點(diǎn)對(duì)點(diǎn)連接,非面向連接的協(xié)議(如UDP)是不可靠的連接。當(dāng)一個(gè)UDP包在網(wǎng)絡(luò)中移動(dòng)時(shí),發(fā)送進(jìn)程不知道它是否已經(jīng)到達(dá)目的地,除非應(yīng)用層已經(jīng)確認(rèn)它已經(jīng)到達(dá)。非面向連接的協(xié)議也不能檢測(cè)重復(fù)和無序的數(shù)據(jù)包。標(biāo)準(zhǔn)行話將UDP描述為“不可靠的”。在現(xiàn)代網(wǎng)絡(luò)中,UDP不容易導(dǎo)致傳輸失敗,但是你不能確定它是否可靠。