昨天被问了这个问题,想想挺无奈的说有区别吧,反正概念上都说有,但是写代码的时候确实没感觉啊。

1 d5 Jul 24, 2019 udp 是尽力而为的传输,tcp 要先握手,就算不记得专业词汇,也总能说上点什么吧。 |
2 wysnylc Jul 24, 2019 百度的已经够详细了 |
3 SilencerL Jul 24, 2019 TCP: 你想听一个关于 TCP 的笑话吗 你想听一个关于 TCP 的笑话吗 你想听一个关于 TCP 的笑话吗 UDP: 你想一个于 UP 笑吗 // ?可能举的例子不太严谨 |
4 frozenway Jul 24, 2019 一个是打电话,一个是发短信 |
5 Chenamy2017 Jul 24, 2019 你都写代码了,应该清楚他们的区别。 |
8 CallMeReznov Jul 24, 2019 TCP 是制导导弹,UDP 是射后不管 |
9 FelixLiu Jul 24, 2019 代码写的不多吧,写多了就能发现很多不同 1.UDP 适合多点传输,因为不需要连接,适合服务器转发给多个主机 2.实时视频流传输 UDP,你懂的 3.UDP 怎么处理包乱序,毕竟 TCP 不需要 4.UDP 包要多大才合适?你知道 UDP 分片丢一个,整个 UDP 包就作废,so。。。。 5.TCP 大多时候是比 UDP 高效的,so。。。 |
10 laojiaqing Jul 24, 2019 建议你多看看书 |
11 wweir Jul 24, 2019 via Android udp 这例子不太好吧,udp 是丢包,又不是没有校验。 单包内部的正确性,还是值得信任的。 还有,TCP 不是无故重传,是没收到 ack 或者包出问题才重传 |
12 Buges Jul 24, 2019 via Android 虽然协议分层让你可以不关心下层具体内容,但你总不能真就一无所知就上岗吧… |
13 xnode Jul 24, 2019 tcp 是彬彬有礼的表白 udp 是直接脱裤子就上 |
14 jasonyang9 Jul 24, 2019 @wweir 假设每个字一是个包 |
15 q397064399 Jul 24, 2019 一个是可靠性传输 一个是不可靠性传输, 有根本性的区别吧,平时写代码不考虑 udp 的丢包情况? |
16 caola Jul 24, 2019 草案中的 HTTP3 就是基于 UDP,草案一但通过,应该用不久就会代替 TCP 成为主流 |
17 mattx Jul 24, 2019 没写过 udp 代码吧? 写 udp 连接代码要在逻辑层考虑可靠(会丢包和乱序等) udp 比 tcp 好的地方是, tcp 拥塞控制(重传, 丢包策略等)非常复杂, 在一些情况下表现不好, 而且比较公平 封装的 udp 可以用更不公平的策略等, 可以去看看 kcp github 官网介绍. |
18 twoyuan Jul 24, 2019 |
19 hansenwang Jul 24, 2019 via iPhone @twoyuan 666 |
20 Yyyye Jul 24, 2019 via Android tcpip 那本书里面有的 |
21 zibber Jul 24, 2019 怪兽的设备就是 tcp 检查设备心跳 upd 发送业务数据 |
22 CEBBCAT Jul 24, 2019 这个帖到底是想说什么啊,实现细节 Google 一大吧,吐槽这个节点也不太对吧 |
23 gliyechen Jul 24, 2019 tcp 会保证数据包被收到,需要对方反馈。 udp 无所谓对方收不收到,反正我发出去了。 |
24 taogen Jul 24, 2019 via Android 1. TCP 是面向连接(三次握手),UDP 是无连接的。 2. TCP 提供可靠数据传输服务,UDP 提供不可靠传输。 3. TCP 有拥塞控制(传输速度根据丢包情况调整),UDP 最大速度传输。 |
25 taogen Jul 24 2019 via Android 4. TCP 报文头 20 字节,UDP 报文头 8 字节 |
26 itechify PRO 人才楼上都是人才笑死我了 |
27 yuanbo6 Jul 24, 2019 TCP: 你女朋友发给你短信:你手机开机了吗? 你没回消息 你女朋友继续发短信:你手机开机了吗? 你回了:我手机开机了 你女朋友打电话:今晚我们去吃什么啊?工作好忙我好烦…… balaba ……再见 UDP: 你女朋友发给你短信:你手机开机了吗? 你没回消息 你女朋友继续发短信:你手机开机了吗? 你没回消息 你女朋友发给你短信:你手机开机了吗? 你没回消息 …… 你女朋友发给你短信:我们分手吧 你开机了:卧槽? |
28 Mutoo Jul 24, 2019 自己实现一个 TCP over UDP 你就知道区别了。 |
29 stephenyin Jul 24, 2019 @SilencerL #3 这样更直观: TCP: 你 想听 一个 关于 T CP 的笑话 吗 你想 听一个关 于 TCP 的笑 话 吗 你想 听一个关于 TC P 的 笑话吗 UDP: 你想一个于 UP 笑吗 |
30 polebug Jul 24, 2019 以互喷为例 TCP 是两个人先打声招呼:A: hi 可以开始喷了吗? B: 可以了 然后开始回合制对喷:A: 你傻逼 B: 不,是你傻逼 如果 A 没收到 B 的回复,会把刚刚那句再骂一遍 注意 TCP 只能两个人对喷,别人不能加入 UDP 是想喷就喷 A: blablablabla 也不管 B 听没听见 A 自己喷舒服就行 而且 A 可以喷 B 也可以同时喷 C : 你,还有你你你,你们都傻逼 :) |
31 jamesliu96 Jul 24, 2019 via Android 1. 连接 2. 可靠性 3. 拥塞控制 |
33 wweir Jul 24, 2019 via Android TCP 本质上是全双工的流。 而 udp 则是完全是数据包,拆包、序列化、丢包都要考虑。 作为纯粹的包,可以使用很多 IP 层的特性,如广播、多拨。而 TCP 带来便利的同时,也屏蔽了很多可能性。 从业务人员的角度看,大概可以理解为:一个是重型框架,一个是轻量封装库 |
34 dgjungle Jul 24, 2019 udp 是我给你传过来了哦 tcp 是在么?你是某某么?我要给你东西咯?拿好你的东西。大概是这么个意思吧 |
35 opengps Jul 24, 2019 tcp 是拨通电话对话 udp 是隔空喊话 |
37 alw Jul 24, 2019 你想知道的知识在《 TCP/IP 协议详解 卷一》,英文版更佳。 |
38 sinxccc Jul 24, 2019 概念几句话就能讲明白的东西,各种 xjb 类比… |
39 koebehshian Jul 24, 2019 TCP 内建收到确认功能,UDP 就是就是裸的 IP 加了个端口号 |
40 2kCS5c0b0ITXE5k2 Jul 25, 2019 TCP: JD 快递 UDP: 3 通 |
41 fghjghf Jul 25, 2019 我没有 JB 类比。 tcp 三次握手 4 次挥手这个不用说了吧,关键是 tcp 每次发包,都会有 ack 验证,检测数据包是否完整。所以性能比 udp 是低了点。 写 socket 的时候都一样的,ip+端口号 写 webapp 的时候你肯定体会不到,框架都封装好一切了。面试瞎几把问而已 |