TCP与UDP

1.TCP

TCP:transmission control protocol传输控制协议。是面向连接的可靠的基于字节流的传输层通信协议
三次握手建立连接四次挥手断开连接

三次握手
TCP服务器进程创建传输控制块(TCB)时刻准备接收客户端的传输请求iu,此时处于监听LISTEN状态。
TCP客户端创建传输控制块(TCB)向服务器发出建立传输请求。
TCP服务器收到传输请求后,若同意连接,则发出确认报文,此时处于SYN-RCVD(同步收到)状态。
TCP客户端收到服务器的确认请求之后,再次向服务器端发出确认请求表明已收到服务器的确认请求。客户端进入ESTABLISHED(已建立连接)状态。
TCP服务器收到客户端的确认请求后,进入ESTABLISHED(已建立连接)状态。
双方开始通信。

三次握手的必要性(为什么不两次)
存在这样的情况:客户端第一次请求因为网络堵塞未能及时到达服务器端,客户端会再次发送一次新的请求,服务器收到请求后发送确认请求,客户端收到确认请求,开始通信。通信结束后,客户端的第一次请求姗姗来迟到达服务器端,服务器接收到后再次发送确认请求,并开始通信。
三次握手的话即使发生这样的请况,通信结束之后客户端不会回应服务器的确认报文,不会建立连接。

四次挥手:
客户端进程发送释放连接报文,并停止发送数据。此时客户端已经没有消息要发送,但是服务器传来的消息客户端依旧要接受。
服务器端收到客户端发送的释放连接报文后,发送确认收到报文。服务端就进入了CLOSE-WAIT(关闭等待)状态。
待服务器端消息发送完毕之后,再给客户端发送连接释放报文。停止发送消息。
客户端收到服务器端的释放连接报文之后进入CLOSE-WAIT(关闭等待)状态。注意此时TCP连接还没有释放,必须经过2MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。
服务器只要收到了客户端发出的确认,立即进入CLOSED状态。同样,撤销TCB后,就结束了这次的TCP连接。可以看到,服务器结束TCP连接的时间要比客户端早一些。

客户端要等待2MSL的原因:
确保发送的确认报文能够被服务器接收到。
防止类似与“三次握手”中提到了的“已经失效的连接请求报文段”出现在本连接中。客户端发送完最后一个确认报文后,在这个2MSL时间中,就可以使本连接持续的时间内所产生的所有报文段都从网络中消失。这样新的连接中不会出现旧连接的请求报文。

2.UDP

upd:user datagram protocol 用户数据报协议
在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。
UDP协议的主要作用是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据的传输单位。每一个数据包的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。

udp特性:
1.无连接
2.由于1故不用维持连接状态,可以一对一、一对多
3. UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。
4. UDP使用尽最大努力交付,即不保证可靠交付。故udp不可靠。

tcp与udp区别:

1.tcp可靠udp不可靠
2.tcp开销大,udp开销小,对应tcp速度慢udp速度快
3.使用场景:tcp适用于需要可靠的数据传输:如传输文件
udp适用于效率优先于质量的数据传输:如电话、广告、直播等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值