TCP和UDP应用场景

TCP和UDP应用场景

tcp是一种面向连接的、可靠的、基于字节流的传输层通信协议。是专门为了在不可靠的互联网络上提供一个可靠的端到端字节流而设计的,面向字节流。

udp(用户数据报协议)是iso参考模型中一种无连接的传输层协议,提供面向操作的简单不可靠的非连接传输层服务,面向报文。

它们之间的区别:

1、tcp是基于连接的,可靠性高;udp是基于无连接的,可靠性较低;

2、由于tcp是连接的通信,需要有三次握手、重新确认等连接过程,会有延时,实时性差;由于协议所致,安全性较高;而udp无连接,无建立连接的过程,因而实时性较强,安全略差;

3、在传输相同大小的数据时,tcp首部开销20字节;udp首部开销只有8个字节,tcp报头比udp复杂,故实际包含的用户数据较少。tcp无丢包,而udp有丢包,故tcp开销大,udp开销较小;

4、每条tcp连接只能是点到点的;udp支持一对一、一对多、多对一、多对多的交互通信。

所以对于应用这方面:

如果对实时性要求高和高速传输的场合下需要使用udp;如果需要传输大量数据且对可靠性要求高的情况下应该使用tcp;在可靠性要求较低,追求效率的情况下应该使用udp。

 

对于tcp来说,既然需要面向连接,就会涉及到三个阶段:连接建立、数据传送、连接释放三个过程;而“三次握手”就发生在连接建立这个阶段,下面对三次握手和四次挥手解释一下:

三次握手:

第一次握手:客户端发送一个tcp的syn标志位置为1的包(连接请求),指明客户打算连接服务器的端口;

第二次握手:当服务器收到连接请求之后,返回确认包(ack)应答,即将syn和ack标志位同时致为1(授予连接),并为这次连接分配资源;

第三次握手:客户端收到服务器的授予连接请求之后,再次发送确认包(ack)(syn标志位为0,ack标志位为1),并分配资源,这样tcp就建立连接了。

四次挥手:

中断连接端可以是客户端也可以是服务端

假设是客户端发起的中断连接请求,则客户端发送fin报文,服务端接收到客户端发送的fin报文后,意思是说:“客户端已经没有数据要发送给你了”,但是这时候如果服务端有数据没有发送完成,则不必着急关闭socket,可以继续发送数据,所以服务端先发送ack,告诉客户端,收到了客户端刚才的关闭连接请求,但是服务端还没有准备好,还有数据没有发送完,所以请客户端继续等我的消息,这个时候客户端就进入了fin_wait状态,继续等待服务端的fin报文;当服务端确定已经发送完数据后,则想客户端发送fin报文,告诉客户端已经发送完数据,可以关闭连接了;当客户端接收到服务端的fin报文后,就知道可以关闭连接了,但是还是不相信网络,怕服务端不知道要关闭,所以客户端发送ack给服务端后进入了time_wait状态,如果服务端没有收到ack则可以重传;服务端收到ack后,就知道可以关闭连接了;当服务端等待了2msl后依然没有收到回复,则证明服务端已经正常关闭了,那客户端也会关闭连接了,就这样,tcp连接就完成了关闭。

转载于:https://www.cnblogs.com/k1-2-3-4/p/8406159.html

TCPUDP在不同的应用场景有各自的优势,以下是它们常见的应用场景TCP应用场景: 1. 网页浏览:TCP在网页浏览被广泛使用,通过可靠的数据传输和顺序保证,在客户端和服务器之间传输HTML、CSS、JavaScript等网页内容。 2. 文件传输:TCP的可靠性保证了文件在传输过程不会丢失或损坏,因此常用于文件上传和下载,如FTP(文件传输协议)。 3. 邮件传输:TCP用于传输电子邮件,确保邮件内容的完整性和正确性。 4. 数据库访问:TCP连接用于客户端和数据库服务器之间的通信,保证安全地进行数据库操作。 UDP应用场景: 1. 实时游戏:UDP适用于实时游戏的场景,因为它的低延迟和快速传输特性,对于实时性要求高的游戏数据传输更为合适。 2. 视频和音频流传输:UDP在视频和音频流传输被广泛使用,如视频会议、音乐和视频流媒体等。UDP的快速传输能力适合对实时性要求较高的媒体数据传输。 3. DNS(域名系统):UDP常用于域名解析,通过DNS服务器将域名转换为IP地址,保证快速的查询和响应。 4. 广播和多播:UDP支持广播和多播传输方式,适用于向多个主机同时发送数据的场景,如视频直播、实时通知等。 总结:TCP适用于对可靠性和顺序性要求较高的应用场景,如网页浏览、文件传输等;UDP适用于对实时性要求较高、对可靠性要求相对较低的应用场景,如实时游戏、视频流传输等。选择使用哪种协议要根据具体需求和应用场景来决定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值