TCP 和 UDP 的区别

2019-07-24 16:52:23 +08:00
 woahishui
昨天被问了这个问题,想想挺无奈的说有区别吧,反正概念上都说有,但是写代码的时候确实没感觉啊。
5731 次点击
所在节点    程序员
42 条回复
zibber
2019-07-24 18:09:57 +08:00
怪兽的设备就是 tcp 检查设备心跳 upd 发送业务数据
CEBBCAT
2019-07-24 18:20:05 +08:00
这个帖到底是想说什么啊,实现细节 Google 一大吧,吐槽这个节点也不太对吧
gliyechen
2019-07-24 18:31:47 +08:00
tcp 会保证数据包被收到,需要对方反馈。
udp 无所谓对方收不收到,反正我发出去了。
taogen
2019-07-24 18:33:52 +08:00
1. TCP 是面向连接(三次握手),UDP 是无连接的。
2. TCP 提供可靠数据传输服务,UDP 提供不可靠传输。
3. TCP 有拥塞控制(传输速度根据丢包情况调整),UDP 最大速度传输。
taogen
2019-07-24 18:46:25 +08:00
4. TCP 报文头 20 字节,UDP 报文头 8 字节
oneisall8955
2019-07-24 18:52:18 +08:00
人才楼上都是人才笑死我了
yuanbo6
2019-07-24 18:53:03 +08:00
TCP:
你女朋友发给你短信:你手机开机了吗?
你没回消息
你女朋友继续发短信:你手机开机了吗?
你回了:我手机开机了
你女朋友打电话:今晚我们去吃什么啊?工作好忙我好烦…… balaba ……再见

UDP:
你女朋友发给你短信:你手机开机了吗?
你没回消息
你女朋友继续发短信:你手机开机了吗?
你没回消息
你女朋友发给你短信:你手机开机了吗?
你没回消息
……
你女朋友发给你短信:我们分手吧
你开机了:卧槽?
Mutoo
2019-07-24 18:55:42 +08:00
自己实现一个 TCP over UDP 你就知道区别了。
stephenyin
2019-07-24 19:08:25 +08:00
@SilencerL #3 这样更直观:
TCP:
你 想听 一个 关于 T CP 的笑话 吗
你想 听一个关 于 TCP 的笑 话 吗
你想 听一个关于 TC P 的 笑话吗

UDP:
你想一个于 UP 笑吗
polebug
2019-07-24 19:12:47 +08:00
以互喷为例
TCP 是两个人先打声招呼:A: hi 可以开始喷了吗? B: 可以了
然后开始回合制对喷:A: 你傻逼 B: 不,是你傻逼
如果 A 没收到 B 的回复,会把刚刚那句再骂一遍
注意 TCP 只能两个人对喷,别人不能加入

UDP 是想喷就喷
A: blablablabla 也不管 B 听没听见 A 自己喷舒服就行
而且 A 可以喷 B 也可以同时喷 C : 你,还有你你你,你们都傻逼

:)
jamesliu96
2019-07-24 20:15:31 +08:00
1. 连接 2. 可靠性 3. 拥塞控制
wweir
2019-07-24 20:15:51 +08:00
@Mutoo 这有啥,直接把 udp 当 IP 用呗,反正两个特性基本一致。
丢包的事,直接丢给内层的 TCP 重传好了
wweir
2019-07-24 20:21:39 +08:00
TCP 本质上是全双工的流。
而 udp 则是完全是数据包,拆包、序列化、丢包都要考虑。
作为纯粹的包,可以使用很多 IP 层的特性,如广播、多拨。而 TCP 带来便利的同时,也屏蔽了很多可能性。

从业务人员的角度看,大概可以理解为:一个是重型框架,一个是轻量封装库
dgjungle
2019-07-24 20:38:11 +08:00
udp 是我给你传过来了哦 tcp 是在么?你是某某么?我要给你东西咯?拿好你的东西。大概是这么个意思吧
opengps
2019-07-24 20:41:22 +08:00
tcp 是拨通电话对话
udp 是隔空喊话
cwek
2019-07-24 20:45:59 +08:00
@caola 其实际上是在 UDP 层实现一个用户空间的类 TCP 机制。
alw
2019-07-24 21:48:01 +08:00
你想知道的知识在《 TCP/IP 协议详解 卷一》,英文版更佳。
sinxccc
2019-07-24 22:44:32 +08:00
概念几句话就能讲明白的东西,各种 xjb 类比…
koebehshian
2019-07-24 23:38:52 +08:00
TCP 内建收到确认功能,UDP 就是就是裸的 IP 加了个端口号
2kCS5c0b0ITXE5k2
2019-07-25 00:19:55 +08:00
TCP: JD 快递
UDP: 3 通

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/585847

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX