简单总结比较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可能是更好的选择。

相关推荐
tan77º9 分钟前
【Linux网络编程】Socket - UDP
linux·服务器·网络·c++·udp
qq_171538854 小时前
TCP/IP协议精解:IP协议——互联网世界的邮政编码系统
网络·网络协议·tcp/ip
珹洺5 小时前
计算机网络:(七)网络层(上)网络层中重要的概念与网际协议 IP
网络·tcp/ip·计算机网络
兮动人5 小时前
获取终端外网IP地址
java·网络·网络协议·tcp/ip·获取终端外网ip地址
海外空间恒创科技7 小时前
一台香港原生ip站群服务器多少钱?
服务器·网络协议·tcp/ip
zyx没烦恼8 小时前
TCP相关实验
服务器·网络·tcp/ip
DemonAvenger8 小时前
TCP连接池设计与实现:提升Go应用网络性能
网络协议·架构·go
游戏开发爱好者814 小时前
iOS重构期调试实战:架构升级中的性能与数据保障策略
websocket·网络协议·tcp/ip·http·网络安全·https·udp
面朝大海,春不暖,花不开20 小时前
Java网络编程:TCP/UDP套接字通信详解
java·网络·tcp/ip
byxdaz20 小时前
PJSIP 中的 TCP 传输配置指南
tcp/ip