简单总结比较TCP,UDP,Socket协议

一、Socket

1.Socket(又叫套接字)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接协议,客户端的IP地址,客户端的端口,服务器的IP地址,服务器的端口。

一个Socket是一对IP地址和端口。可以看成在两个程序进行通讯连接中的一个端点,一个程序将一段信息写入Socket中,该Socket将这段信息发送给另外一个Socket中,使这段信息能传送到其他程序中。

你可以这么理解:Socket是进程之间用来对话的中间层工具。

2.作用

应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口,区分不同应用程序进程间的网络通信和连接。Socket(套接字)是对 TCP/IP 或者UDP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。通过调用这个接口(API),程序员在开发网络应用程序的时候,就可以不用关心底层是怎么实现的,减轻开发的难度。

Socket 是操作系统提供的网络通信接口,封装了底层协议(TCP/UDP)的细节。

二、TCP

TCP(传输控制协议)

在数据传输之前,需要建立一个连接。通过序列号、确认应答、重传机制等确保数据的可靠传输。通过滑动窗口算法进行流量控制,避免网络拥塞。确保数据按照发送顺序到达接收方。使用校验和来检测数据在传输过程中的任何错误。

应用场景:适用于对数据准确性要求高的应用,如Web浏览、电子邮件、文件传输等。

三、UDP

UDP(用户数据报协议)

发送数据之前不需要建立连接。不保证数据包的顺序,也不保证数据包的完整性。发送端发送数据的速度不会因为接收端的处理速度而改变。

数据以数据报的形式发送,每个数据报的大小限制在64KB之内。头部开销小,处理速度快。

应用场景:适用于对实时性要求高的应用,如视频会议、在线游戏、实时音视频流等。

四、比较TCP,UDP

TCP 提供可靠交付,UDP继承了IP包的特性,不保证不丢失,不保证按时到达;

TCP是面向字节流的,发送的时候发的是一个流,没头没尾的。UDP继承了IP的特性,基于数据报的,一个个发,一个个收;

TCP是可以有拥堵控制的,可以根据网络环境调整自己的行为;UDP就是应用让我发,我就发,管它洪水滔天;

TCP是一个有状态的服务,通俗的讲就是有脑子的,可以精确的记着,自己发送了没有,接收到没有,发送到哪个了,应该接收到哪个了,错一点儿都不行;UDP其实是一个无状态服务,无脑子,天真无邪的发出去就发出去呗;

在选择使用TCP还是UDP时,需要根据应用的具体需求来决定。如果数据传输的可靠性比实时性更重要,应该选择TCP;如果实时性比数据的完整性更重要,UDP可能是更好的选择。

相关推荐
blasit8 小时前
笔记:Qt C++建立子线程做一个socket TCP常连接通信
c++·qt·tcp/ip
YuMiao14 小时前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
Jony_3 天前
高可用移动网络连接
网络协议
chilix4 天前
Linux 跨网段路由转发配置
网络协议
gihigo19985 天前
基于TCP协议实现视频采集与通信
网络协议·tcp/ip·音视频
龙仔7255 天前
在麒麟V10服务器安全加固,sshd防暴力破解加固,实现“密码错误3次封IP”的需求
服务器·tcp/ip·安全
白太岁5 天前
通信:(5) 电路交换、报文交换与分组交换
运维·服务器·网络·网络协议
EasyGBS5 天前
国标安全升级:GB28181平台EasyGBS支持GB35114协议的应用场景与核心优势
网络协议·安全·gb28181·gb35114
凯酱6 天前
Windows防火墙入站规则IP白名单
windows·网络协议·tcp/ip
稻草猫.6 天前
TCP与UDP:传输层协议深度解析
笔记·后端·网络协议