TCP 和 UDP 有什么区别?

大家好,我是前端西瓜哥,今天来聊聊 TCP 和 UDP 的区别。

TCP 和 UDP 都是 TCP/IP 协议簇中的比较有代表性的 传输层协议。这里的传输层负责为应用程序提供端对端的通信服务。

TCP,全称 Transmission Control Protocol,中文为传输控制协议,是一种 面向连接的、可靠的、基于字节流的传输层通信协议

TCP 需要先在端到端进行正式的连接后,才开始传输真正的数据,且有重传等机制保证数据能够可靠地收发。

UDP,全称 User Datagram Protocol,中文为用户数据报协议,它是一种无连接的面向数据报的协议。

是否面向连接

TCP 是面向连接的,在发送真正的数据前,需要先建立 TCP 链接,即我们常说的 TCP 三次握手。这时数据就可以在两端之间进行任意方向的传输。如果要断开连接,也要进行 TCP 四次挥手。

UDP 则是无连接的,知道 IP 地址后,直接就将数据发送过去了,也不做数据报文的拆分和拼接。

是否可靠

TCP 是可靠的连接,会给每个 TCP 包设置序号,来确保消息发送的 顺序正确

接收端接受数据后会返回 ACK 确认,客户端如果一段时间没收到 ACK,会认为数据可能丢包了,就会进行重传,这样就能 确保数据是完整的

TCP 头部还有一个校验和(checksum)来确定数据是否因为信号突变产生出错,如果出错就丢掉。UDP 也可以使用校验和,不过它是可选的。

UDP 不需要额外建立连接。因为没有重传机制,所以不保证消息能成功地发送给对方。发送端发出 UDP 数据后,数据不会进行备份,因为 UDP 不会重发。

UDP 不保证发送的数据的顺序,基本上是乱序的。

速度

TCP 需要建立连接,并带有校验和重传机制,所以速度会相对较慢。

UDP 很快,因为它是自由的。

是否支持广播

广播(broadcast)是指将信息数据包发往指定网络范围内的所有设备。

TCP 不支持广播,只能在固定的两端进行收发。

UDP 支持广播。

传输方式

TCP 面向字节流的。所谓字节流,就是应用层的一个完整的消息,会被 TCP 拆分和组合,放到 TCP 包里进行发送。

相邻两个数据的边界需要应用层自己来确定。比如 HTTP/1 通过换行来切割头字段,并通过 Content-Length 来确定请求主体的长度,来确定截断边界。

UDP 是面向报文的,不会对应用层完整的消息进行拆分,直接放到 UDP 包里。一个 UDP 就是一个完整的数据。

场景

UDP 的优点是快,不需要做额外的建立连接工作,且减少了额外开销,所以适合实时性强的场景。常见的场景有

  1. 流媒体(当然也有些流媒体实时性要求不高)
  2. 高实时性的多人竞技游戏
  3. 音视频通话
  4. DNS 查询

TCP 的优点是数据可靠,适合要求质量的场景。绝大多应用软件都使用 HTTP 请求,而 HTTP 是基于 TCP 的。

结尾

TCP 可靠,UDP 快,这是它们最大的不同。

我是前端西瓜哥,欢迎关注我,学习更多前端知识。

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

推荐阅读更多精彩内容