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

相关推荐
墨雨听阁1 小时前
8.18网络编程——基于UDP的TFTP文件传输客户端
网络·网络协议·学习·udp
小晶晶京京1 小时前
day35-负载均衡
运维·网络·网络协议·学习·负载均衡
xie_pin_an3 小时前
网络原理与编程实战:从 TCP/IP 到 HTTP/HTTPS
网络·tcp/ip·http
teeeeeeemo3 小时前
如何做HTTP优化
前端·网络·笔记·网络协议·http
weisian1513 小时前
HTTP协议-4-浏览器是怎么抉择HTTP版本的?
网络·网络协议·http
herderl5 小时前
**僵尸进程(Zombie Process)** 和**孤儿进程(Orphan Process)**
linux·运维·服务器·网络·网络协议
XINVRY-FPGA7 小时前
10CL016YF484C8G Altera FPGA Cyclone
嵌入式硬件·网络协议·fpga开发·云计算·硬件工程·信息与通信·fpga
元清加油16 小时前
【Golang】:函数和包
服务器·开发语言·网络·后端·网络协议·golang
athink_cn20 小时前
HTTP/2新型漏洞“MadeYouReset“曝光:可发动大规模DoS攻击
网络·网络协议·安全·http·网络安全
九州ip动态1 天前
如何安全使用改IP软件更改异地IP地址?
网络·tcp/ip·安全