UDP协议与TCP协议
目錄
udp協(xié)議特點(diǎn)
UDP傳輸可能遇到的問題及解決方案
TCP協(xié)議特點(diǎn)
TCP傳輸可能遇到的問題及解決方案
udp協(xié)議特點(diǎn)
(1)無連接
? ? ? ? ?UDP通信雙方在發(fā)生數(shù)據(jù)之前是不需要進(jìn)行溝通的,客戶端只需要知道服務(wù)端的IP地址和端口號(hào)就可以進(jìn)行發(fā)送數(shù)據(jù)
(2)傳輸不可靠
? ? ? ? ?不保證數(shù)據(jù)是可靠并且有序到達(dá)對端的。
(3)面向數(shù)據(jù)報(bào)
? ? ? ? ?udp對于應(yīng)用層和傳輸層數(shù)據(jù)遞交的時(shí)候都是整條數(shù)據(jù)進(jìn)行交付的。
UDP傳輸可能遇到的問題及解決方案
(1)出現(xiàn)此問題的原因:udp數(shù)據(jù)報(bào)的長度是65535字節(jié),但是如果要傳輸?shù)臄?shù)據(jù)大于65535字節(jié)? ? ? ? ? ?則在傳輸過程中會(huì)遇到問題。
(2)解決方法步驟:設(shè)計(jì)應(yīng)用層協(xié)議(自定制協(xié)議字段)字段
? ? ? ? ?a、屬于同一個(gè)應(yīng)用層的數(shù)據(jù)切割成不同的塊,因?yàn)閡dp傳輸不是可靠的傳輸,因此給不同的數(shù)據(jù)模塊加上相同的id。
? ? ? ? ?b、udp傳輸不是有序到達(dá)對端的,在報(bào)頭當(dāng)中加上偏移量,使用偏移量描述分塊數(shù)據(jù)在整個(gè)應(yīng)用層數(shù)據(jù)包當(dāng)中的位置。
? ? ? ? ?c、包頭數(shù)據(jù)中加上分塊數(shù)據(jù)長度。
TCP協(xié)議特點(diǎn)
(1)面向連接的
? ? ? ? ?TCP通信雙方在發(fā)送數(shù)據(jù)之前需要先建立連接,才能夠發(fā)送數(shù)據(jù)
(2)可靠傳輸
? ? ? ? ?TCP保證傳輸過程中數(shù)據(jù)是可靠有序到達(dá)對端的。
(3)面向字節(jié)流
? ? ? ? ?a、對于傳輸?shù)臄?shù)據(jù)之間是沒有明顯的邊界區(qū)分的
? ? ? ? ?b、對于接受方在可以接收數(shù)據(jù)的情況下,可以接收任意字節(jié)的數(shù)據(jù)的。
TCP傳輸可能遇到的問題及解決方案
(1)出現(xiàn)問題的原因:TCP協(xié)議是面向字節(jié)流的,會(huì)在傳輸過程造成粘包問題,難以分清數(shù)據(jù)的? ? ? ? ? ?長度。
(2)解決方法:應(yīng)用層自定制協(xié)議,自定制協(xié)議增加報(bào)頭(數(shù)據(jù)長度)和分隔符
? ? ? ? ?a、[定長報(bào)頭] + 數(shù)據(jù)信息
? ? ? ? ?b、[定長包頭] + 數(shù)據(jù)信息 + 分隔符
? ? ? ? ?c、[不定長報(bào)頭]? + 數(shù)據(jù) + 分隔符
總結(jié)
以上是生活随笔為你收集整理的UDP协议与TCP协议的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VPP创建接口
- 下一篇: 一些FORK函数的例子