给产品经理讲技术,不得不懂的TCP和UDP

简介: TCP/IP协议,你一定经常听说吧,其中TCP(Transmission Control Protocol)称为传输控制协议,IP(Internet Protocol)称为因特网互联协议,好吧,这都是什么2B名字,根本不知所云,这个时候,计算机科学对于一个没有经过深入研究的人,毫无用户体验可言。

TCP/IP协议,你一定经常听说吧,其中TCP(Transmission Control Protocol)称为传输控制协议,IP(Internet Protocol)称为因特网互联协议,好吧,这都是什么2B名字,根本不知所云,这个时候,计算机科学对于一个没有经过深入研究的人,毫无用户体验可言。

其实TCP/IP协议,是一个协议簇,就是一大堆协议的集合,这一大套协议定义了整个互联网通信的基础,比如一次网络链接要经过哪些步骤,一块数据 传输过程中应该如何解释,这块数据该如何展示给编程者等等问题。就好比小时候玩过家家的游戏,谁负责当爸,谁负责当妈,谁负责当儿子,都有明确的指派,谁 负责买菜,买菜之后的钱交给谁来管理,如果没花了,怎么办,每天应该几点起床,起床之后应该谁叠被,都会明确指出,每个人都会默默遵从人物角色和规则。 TCP/IP整个协议集合大概做的就是这个事情,他包含了很多个不同的角色(对应于协议),并定义好了数据如何传输,不同角色之间如何协商。

理解了TCP/IP是什么,你应该可以看懂一些简单的技术博客或百度百科里面的一些描述了,时时刻刻认为,它里面包涵很多个协议,这些协议就是一整套规则,它定义了整个互联网如何连接,如何协商的最基础规则。

TCP/IP协议又分为了4层,分别为应用层,传输层,IP层,物理层。

重点介绍下传输层,也就是TCP,UDP两个协议,也是今天最想描述清楚的。TCP的英文前面抄写过了,UDP(User Datagram Protocol),也是读过之后根本不懂啥意思了。

反正这两个协议,是用来传输数据的,因为他们叫传输层嘛,那不做这个事情,毫无用处了。

我们想象一个场景,网络中任意两个端要通信,会采用什么样的传输方式呢?

想象下人类之间的通信吧。

第一种是拨电话,我拨通了你的手机号码,直到你回答“喂,你好”,我听到了这个话之后,我们之间才继续进行交谈。

第二种是发短信,我给你的手机号码发送一条短信,然后就没有然后了,有可能你没收到,有可能你收到了一会儿又给我回复。

第一种对应的就是TCP,第二种对应的是UDP,TCP是需要对方确认的,也就是传输之前需要进行“三次握手”(这里又是一个专有名词,就是传输的两端要经过三次确认,才能开始通信)。UDP是比较粗暴的,不管对方什么情况,直接发送,不需要确认过程。

很多博客和书籍中说的,TCP是可靠的链接(因为中间有个Control的单词,带上了这个单词,以为着更可靠哦),UDP是不可靠的链接就是这个 意思。可靠的链接带来的是效率的下降,比如一次网络请求很大一部分时间都是浪费在互相确认的过程当中,资源消耗比较多,但是保证了数据的传输是可靠的,并 且数据传输是有序的。不可靠的链接带来的是效率的提升,但可能服务质量有下降。

今天想写这个,主要是想摆脱一种人为的误区,不要以为UDP不可靠,就没有什么应用场景,据说QQ发送数据就是靠UDP发送的呢,虽然是不可靠的链 接,但是还是用了很多校验算法保证了数据质量的稳定,同时保证了效率。TCP虽然耗时,但是对于稳定性优先的场景,还是应该有限选用TCP,比如浏览器中 访问网页用的就是TCP。此外在一些长连接系统里面,比如微信,连接通道应该也是用TCP建立的,因为要维护一条稳定的信息传输通道。

具体协议是如何控制的,数据包是如何传输的,怎么校验数据的正确性,还有重传特性,这些都是协议中重要的控制过程,但是不做详述了,不但枯燥,而且对于实际的产品并没有什么卵用。具体选用什么样的数据传输方式,应该根据场景而定。

PS:写了4,5个小时,删了改,改了删,删了再改,不知道讲没讲清楚,如果没说清楚,欢迎给我留言,我们探讨之后,我再搞个续集:)

相关文章
|
1月前
|
网络协议 算法 网络性能优化
|
14天前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
47 2
|
19天前
|
网络协议 SEO
TCP连接管理与UDP协议IP协议与ethernet协议
TCP、UDP、IP和Ethernet协议是网络通信的基石,各自负责不同的功能和层次。TCP通过三次握手和四次挥手实现可靠的连接管理,适用于需要数据完整性的场景;UDP提供不可靠的传输服务,适用于低延迟要求的实时通信;IP协议负责数据包的寻址和路由,是网络层的重要协议;Ethernet协议定义了局域网的数据帧传输方式,广泛应用于局域网设备之间的通信。理解这些协议的工作原理和应用场景,有助于设计和维护高效可靠的网络系统。
27 4
|
25天前
|
缓存 负载均衡 网络协议
面试:TCP、UDP如何解决丢包问题
TCP、UDP如何解决丢包问题。TCP:基于数据块传输/数据分片、对失序数据包重新排序以及去重、流量控制(滑动窗口)、拥塞控制、自主重传ARQ;UDP:程序执行后马上开始监听、控制报文大小、每个分割块的长度小于MTU
|
2月前
|
网络协议 前端开发 物联网
TCP和UDP区别?
本文首发于微信公众号“前端徐徐”,详细介绍了TCP和UDP两种传输层协议的核心概念、连接性和握手过程、数据传输和可靠性、延迟和效率、应用场景及头部开销。TCP面向连接、可靠、有序,适用于网页浏览、文件传输等;UDP无连接、低延迟、高效,适用于实时音视频传输、在线游戏等。
49 1
TCP和UDP区别?
|
2月前
|
Web App开发 缓存 网络协议
不为人知的网络编程(十八):UDP比TCP高效?还真不一定!
熟悉网络编程的(尤其搞实时音视频聊天技术的)同学们都有个约定俗成的主观论调,一提起UDP和TCP,马上想到的是UDP没有TCP可靠,但UDP肯定比TCP高效。说到UDP比TCP高效,理由是什么呢?事实真是这样吗?跟着本文咱们一探究竟!
53 10
|
2月前
|
网络协议 网络性能优化 C#
C# 一分钟浅谈:UDP 与 TCP 协议区别
【10月更文挑战第8天】在网络编程中,传输层协议的选择对应用程序的性能和可靠性至关重要。本文介绍了 TCP 和 UDP 两种常用协议的基础概念、区别及应用场景,并通过 C# 代码示例详细说明了如何处理常见的问题和易错点。TCP 适用于需要可靠传输和顺序保证的场景,而 UDP 适用于对延迟敏感且可以容忍一定数据丢失的实时应用。
40 1
|
2月前
|
网络协议 Linux 网络性能优化
Linux C/C++之TCP / UDP通信
这篇文章详细介绍了Linux下C/C++语言实现TCP和UDP通信的方法,包括网络基础、通信模型、编程示例以及TCP和UDP的优缺点比较。
38 0
Linux C/C++之TCP / UDP通信
|
3月前
|
存储 网络协议 算法
UDP 协议和 TCP 协议
本文介绍了UDP和TCP协议的基本结构与特性。UDP协议具有简单的报文结构,包括报头和载荷,报头由源端口、目的端口、报文长度和校验和组成。UDP使用CRC校验和来检测传输错误。相比之下,TCP协议提供更可靠的传输服务,其结构复杂,包含序列号、确认序号和标志位等字段。TCP通过确认应答和超时重传来保证数据传输的可靠性,并采用三次握手建立连接,四次挥手断开连接,确保通信的稳定性和完整性。
93 1
UDP 协议和 TCP 协议
|
4月前
|
消息中间件 网络协议 算法
UDP 和 TCP 哪个更好?
【8月更文挑战第23天】
217 0