TCP和UDP

区别

1.TCP面向连接(比如打电话需要拨号建立连接);UDP是无连接的,即发送数据之前 不需要建立连接

2.TCP提供可靠的服务,也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,而且是按照顺序到达,UDP不保证可靠交付

3.TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的,UDP没有阻塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有效,比如IP电话,实时的视频会议等)

4.每一条TCP链接只能是点到点的,UDP支持一对一、一对多、多对多的交互通信

5.TCP首部开销20字节,UDP的首部开销小,只有8字节

6.TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

虽然UDP不提供可靠的交付,但在某些情况UDP确实是一种最有效的工作方式(即时通信)

由于TCP要提供可靠的面向连接的传输服务,难免增加许多开销,如确认,流量控制,计时器以及连接管理,这就不仅使得协议数据单元的首部增大很多,还要占用许多处理机资源

TCP的三次握手

  1. 客户端采用TCP协议将带有SYN标志的数据包发送给服务器 。等待服务器确认

  1. 服务器在收到SYN 的数据包婚后,必须确认SYN ,即自己发送的ACK标志,同时自己发送一个SYN标志

  1. 客户端在收到服务器的SYN和ACK包后,自己向服务器发送一个ACK包,完成三次握手

四次挥手

断开服务器和客户端之间的通信,之所以要断开链接,是因为TCP/IP协议需要占用端口,计算机的端口有限,避免造成资源浪费

  1. 客户端想服务器发送FIN数据包,表示自己要断开通信

  1. 服务器收到FIN标志的数据包,发送ACK标志的应答信息,使客户端明白服务器还有数据需要进行发送

  1. 当服务器数据发送完成,向客户端发送FIN标志数据包,通知客户端断开链接

  1. 客户端收到FIN后,担心网络上某些并不可控因素,服务器不知道也要断开连接,会发送ACK进行确认,同时自己设置成Time_WAIT状态,启动定时器,服务器收到请求之后断开连接,当客户端等待2MLS(两倍报文最大生存时间)后,没收到请求重传以后,客户端断开连接,TCP通信结束

三次握手和四次挥手的必要性

  1. 三次握手每一次都是必须的,如两次,在第二次结束后,服务器不能保证客户端收到第二次请求,如此一来,服务器会一直保存着这个通信过程,因为TCP通信都是占用端口造成资源良妃,所以一定要客户端来发送ACK进行确认请求

  1. 四次挥手不能像三次握手一样,将ACK和SYN一起发送,ACK确认消息后,SYN建立连接。四次挥手,ACK和FIN不能一同发送,ACK只是个告诉客户端我收到了,带我将数据发送完毕向其发送FIN标志

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值