UDP为什么不可靠
???UDP:用戶數(shù)據(jù)包協(xié)議。提供無連接、盡最大努力的數(shù)據(jù)傳輸服務(wù)(不保證數(shù)據(jù)傳輸?shù)目煽啃?,既然不保證那肯定談不上可靠一說。
???????????? 無連接:不需要建立連接,也不需要釋放連接,減少了開銷和發(fā)送數(shù)據(jù)的時(shí)延。
???????????? 盡最大努力的數(shù)據(jù)傳輸服務(wù):不保證數(shù)據(jù)傳輸?shù)目煽啃?#xff0c;沒有超時(shí)和重傳功能。
???????????? 面向報(bào)文:發(fā)送方對(duì)應(yīng)用程序交下來的服務(wù),添加首部后就向下交付給IP層,不合并,也不拆分,保留文本的邊界。UDP一次性交付一個(gè)完整的報(bào)文,因此應(yīng)用程序一定要選擇合適大小的報(bào)文,報(bào)文太長IP層需要進(jìn)行分片,太短會(huì)導(dǎo)致IP數(shù)據(jù)包的相對(duì)長度過大,效率過低。接收方,去除首部后就交給應(yīng)用程序。
???????????? 不受網(wǎng)絡(luò)擁堵影響:網(wǎng)絡(luò)出現(xiàn)的擁塞不會(huì)使源主機(jī)的發(fā)送速率降低。對(duì)實(shí)時(shí)應(yīng)用非常重要。例如:IP電話、實(shí)時(shí)視頻會(huì)議、允許丟失數(shù)據(jù)但不允許有太大時(shí)延(即這些應(yīng)用可以卡一下,但是要保證其實(shí)時(shí)性),可能會(huì)導(dǎo)致丟包現(xiàn)象發(fā)生,可靠性低。
???????????? 支持一對(duì)一、一對(duì)多、多對(duì)一、多對(duì)多的操作。(稍后會(huì)出專門博客講解,代碼已經(jīng)實(shí)現(xiàn)最后測試一下就好)
???????????? 首部開銷小:只有8個(gè)字節(jié),TCP首部需要20個(gè)字節(jié)。
???????????? 發(fā)生丟包:UDP不會(huì)補(bǔ)發(fā),但是會(huì)自動(dòng)檢測是否丟(包)失某些內(nèi)容,如果有錯(cuò)誤就會(huì)直接丟包,返回發(fā)送失敗。
總結(jié)
- 上一篇: 阿里云Linux创建docker容器
- 下一篇: 使用TCP可靠吗?为什么可靠?