TCP与UDP简单介绍
" 月亮是嘉奖 "
网络传输是件复杂的事,本篇只是对TCP与UDP做了简单的描述,以及传输过程中为什么要进行三次握手和四次挥手,笔者觉得无非是为了更安全,更可靠更完整地把数据传输出去并保证对方成功接收,至于怎么保证安全和可靠的,也没有详细描述。
具体更多细节可以参见《图解HTTP》以及《网络是怎样连接的》
嘿嘿,网络虽然复杂,但也是挺有意思的。
一、TCP与UDP
传输层协议
1.1 TCP
Transmission Control Protocol
为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。
- TCP必须提供可靠性的良好性能
1.1.1 主要特点
(1)基于流的方式;
(2)面向连接;
(3)可靠通信方式;
(4)在网络状况不佳的时候尽量降低系统由于重传带来的带宽开销;
(5)通信连接维护是面向通信的两个端点的,而不考虑中间网段和节点。
1.1.2 工作方式
建立连接 → 三次握手
- 客户端发送请求(嘿,哥们,给我开个门)
- 服务器响应请求并确认(收到,我给你开门)------如果没有响应,连接失败
- 客户端收到服务端的确认(嗯嗯,我知道了)
-------------建立连接成功!!!--------------
断开连接 → 四次挥手
- 数据发送完毕,应用进程调用close() (好啦,完成任务,我主动关门)
- 接收方“被动关闭”,TCP确认(我已收到,收到)
- 接收方关闭套接字,调用close(我走了)
- 发送端确认(走吧走吧)
- 注意:无论是客户还是服务器,任何一端都可以执行主动关闭。通常情况是,客户执行主动关闭,但是某些协议,例如,HTTP/1.0却由服务器执行主动关闭
1.2 UDP
用户数据报协议 User Datagram Protocol
UDP使用底层的互联网协议来传送报文,同IP一样提供不可靠的无连接数据包传输服务。它不提供报文到达确认、排序、及流量控制等功能。
主要特点:
- 无连接、面向报文、不可靠、资源消耗小,快速传输
1.3 TCP与UDP对比
简单来说就是:
TCP 发送数据前建立连接,过程中反复确认,靠谱
UDP 不建立连接,不确认,不靠谱,(管你接没接,反正我发了)
-
主要区别:两者在如何实现信息的可靠传递方面不同
-
UDP协议并不提供数据传送的保证机制。
如果在传递过程中出现数据包的丢失,协议本身并不能做出任何检测或提示。
-
TCP 具有高可靠性,确保传输数据的正确性,不出现丢失或乱序;
-
1、传输数据前是否建立连接:
-
UDP 在传输数据前不建立连接,不对数据报进行检查与修改,无须等待对方的应答,
所以会出现分组丢失、重复、乱序,应用程序需要负责传输可靠性方面的所有工作
-
TCP 会建立连接,可靠,确保传输数据的正确性,不出现丢失或乱序;
2、
3、
-
UDP 实时性好,工作效率较 TCP 协议高;UDP 段结构比 TCP 的段结构简单,因此网络开销也小
-
TCP 协议可以保证接收端毫无差错地接收到发送端发出的字节流,为应用程序提供可靠的通信服务。对可靠性要求高的通信系统往往使用 TCP 传输数据
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY