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

相关推荐
我爱cope13 小时前
【计算机网络 | 网络层1:网络层的职责:IP 协议究竟解决了什么问题?】
网络·tcp/ip·计算机网络
tang7778920 小时前
Scrapy框架动态IP自动轮换集成配置教程
爬虫·tcp/ip·scrapy·架构·爬虫代理·动态ip
牛大兵21 小时前
机顶盒获取局域网已经使用IP,开放的端口号,扫描摄像头,NAS,共享主机等开机自启局域网全量扫描工具
数据库·网络协议·tcp/ip
XUEYUAN52121 天前
代理 IP 的三层架构:从网络层到应用层的技术拆解
网络·tcp/ip·架构
Mr. zhihao1 天前
从零手写一个 RPC 框架:用一条因果链推导出 Dubbo 的骨架
网络协议·rpc·dubbo
dog2501 天前
多路径聚合效率的统计理论
网络·tcp/ip
剑锋所指,所向披靡!1 天前
TCP并发服务器
服务器·网络·tcp/ip
AI备忘录1 天前
(十一)DHCP 配置命令五厂商对照:华为 华三 锐捷 迈普 思科
服务器·网络·网络协议·网络安全·华为
暴力求解1 天前
Linux网络---传输层协议TCP(二)
linux·服务器·开发语言·网络·tcp/ip
游戏开发爱好者81 天前
WebSocket 抓包怎么查看内容?从握手到消息帧完整解读
网络协议·计算机网络·网络安全·ios·adb·https·udp