UDP协议(User Data Protocol)


特点:
1.面向无连接的协议;
2.UDP报头只有8字节。


简介:
1.传输数据前源端和终端不需要连接,当它传送数据时简单地去抓取来自应用程序的数据,并尽可能快的把它。换句话说就是,客户端向服务器发送信息,客户端只需要给出服务器的ip地址和端口号,然后将信息封装到一个待发送的报文中并且发送出去。至于服务器端是否存在,或者能否收到该报文,客户端根本不用管。
2.在发送端,UDP传送数据的速度仅仅受程序生成数据的速度、计算机能力和传输带宽的限制。
3.在接收端,UDP把每个消息放到队列中,应用程序每次从队列中读取一个消息段。
4.由于传输数据不需要建立连接,因此也就不用维护连接状态,包括收发状态等,因此一台服务器可以同时向多个客户机传输相同的消息。
5.UDP包的标题很短,只有8个字节,相对于TCP的20个字节信息包额外的开销小很多。
6.吞吐量不受拥挤算法的调节,只受应用程序生成数据的速度、传输带宽、源端和终端性能的限制。
7.UDP使用尽最大努力交付,即不保证可靠交付,所以主机不需要维护复杂的连接状态表。
8.UDP是面向报文的。发送方的UDP对应用程序交下来的报文,添加了首部后直接交给下层的IP层,既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。

使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。


优点:
1.传输速率快,不需要像TCP一样建立连接,传送数据时没有确认、重传、拥塞控制等机制。
2.较安全,由于没有TCP的一些机制,被攻击的漏洞少。

缺点:
1.不可靠,不稳定,由于没有TCP的机制,在传送数据时,如果网络不好,容易出现丢包的情况。


用UDP协议通讯时怎样得知目标机是否获得了数据包?
        伪造TCP的做法,每发一个UDP包时,都在里面加入一个seq序号,接收方接收到包后,将seq回复给发送方。如果在发送方指定的时间内没有收到回应,说明丢包了。


TCP与UDP的区别

TCP UDP
TCP面向有连接的通信服务 UDP非面向连接的通信服务
TCP提供可靠的通信传输 UDP提供不可靠的通信传输,会丢包
TCP保证数据顺序 UDP不保证
TCP数据无边界 UDP有边界
TCP速度慢 UDP速度快
TCP面向字节流 UDP面向报文
TCP一对一 UDP可以一对一,可一对多
TCP报文头至少20个字节 UDP报文头8个字节
TCP有流量控制、拥塞控制 UDP没有

问题:

  • 为什么UDP比TCP快
    1.TCP需要三次握手连接;
    2.TCP有流量控制、拥塞控制。

  • 为什么TCP比UDP可靠
    1.TCP是面向连接,建立连接后才发送数据;而UDP则不管对方存不存在都会发送数据。
    2.TCP有确认机制,接收端每收到一个正确包都会回应给发送端;超时或者数据包不完整的时候发送端会重传。UDP没有,因此容易丢包。

  • 什么时候使用TCP
            当对网络通讯质量有要求的时候。比如:把整个数据完整无误的发送给对方,这往往用于一些要求可靠的应用,如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输协议。在日常生活中,常见的TCP协议的应用有:浏览器、用HTTP的FlashFXP,用FTP的OutLook,用POP、SMTP 的Putty,用Telnet、SSH的QQ文件传输。

  • 什么时候应该使用UDP
            当对网络通讯质量要求不高的时候,要求网络通信速度尽量快,这时用UDP。日常常见的使用UDP协议的应用:QQ语音,QQ视频,TFTP。

  • TCP无边界
            客户端将数据分多次发生数据给服务器,如果服务器的数据缓冲区够大,那么服务器会在客户端发送完数据后一次性接收过来,所以是无边界的。

  • UDP有边界
            保护消息边界,就是指传输协议把数据当作一条独立的消息在网上传输,接收端只能接收独立的消息.也就是说存在保护消息边界,接收端一次只能接收发送端发出的一个数据包.
            而面向流则是指无保护消息保护边界的,如果发送端连续发送数据, 接收端有可能在一次接收动作中,会接收两个或者更多的数据包.
            客户端每发送一次,服务器端就会接收一次,也就是说发送多少次就会接收多少次,因此是有边界的。例如,我们连续发送三个数据包,大小分别是2k, 4k , 8k,这三个数据包,都已经到达了接收端的网络堆栈中,如果使 用UDP协议,不管我们使用多大的接收缓冲区去接收数据,我们必须有 三次接收动作,才能够把所有的数据包接收完.而使用TCP协议,我们 只要把接收的缓冲区大小设置在14k以上,我们就能够一次把所有的 数据包接收下来.只需要有一次接收动作。


参考:TCP与UDP

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,050评论 0 8
  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 13,034评论 6 174
  • 1.1 TCP/IP协议组 TCP/IP协议(传输控制协议)由网络层的IP协议和传输层的TCP协议组成 IP层负责...
    F麦子阅读 2,780评论 0 25
  • 11.1 引言 UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一...
    张芳涛阅读 2,779评论 1 6
  • 计算机网络七层模型中,传输层有两个重要的协议:(1)用户数据报协议UDP (User Datagram Proto...
    Q南南南Q阅读 1,699评论 0 3