什么是tcp和udp协议,以及tcp的三次握手 数据传输 四次挥手,以及两者的优缺点

tcp和udp都工作在传输层(应用层 传输层 网络层 数据链路层 物理层),程序之间传输数据  二进制数据  
tcp基于连接  开始接通 互相数据交互 交互结束 一系列的流程都能得到反馈 并能确认对方准确接受到
udp基于非连接  对方是否收到 信息是否完整 顺序是否准确都是未知数

tcp的三次握手  数据传输   四次挥手
三次握手
一.客户端发给服务端 能否建立连接 数据包称为SYN包
二.服务端发给客户端 服务端同意链接会发送SYN+ACK包
三.客户端发给服务端 回复ACK包链接建立
为什要三次握手而不是,为了防止已失效的请求报文,突然又传到服务器引起错误 ,列入客户端发起一个SYN包,但是由于某些问题产生了滞留,这个时候客户端又发了一个相同的SYN包,到达了服务器,与服务器三次确认建立连接,上次的滞留的突然恢复,服务接收到以为又要建立新的连接,服务器认为是两个连接,客户端认为是一个,造成状态不一致,如果是三次握手的状态下,服务收不到客户端ACK的情况下,自然不会认为建立成功,三次握手主要网络信道不可靠的情况

数据传输
tcp需要处理的两个问题 丢包问题 乱序问题
建立发送缓冲区,为每个字节标记序列号0.1.2……  tcp协议头携带序列号,长度,服务段接收到数据回复的报文ACK等于序列号+长度,一问一答的发送方式,确保了数据准确接收和碎片发送的准确性

四次挥手 关闭连接
一,客户端发给服务端  发送FIN包,进入终止等待1状态,
二,服务端发给客户端 发送ACK包,进入关闭等待状态   客户端进入终止等待2状态 服务端还可以未发送完数

三,服务端发给客户端 发送FIN包 进入最后确认关闭状态
四,客户端发给服务端 收到FIN包后回复ACK包 ,客户端等待超时然后关闭,服务端收到ACK立即关闭。


为什么要等待超时关闭是为了第四次握手回复的ACK能确保服务端收到最后的关闭请求,为了在不可靠的网络连接中,确保可靠的断开

UDP 基于非连接,简单的封装数据包,把数据包从网卡发送出去,数据包之间是无状态的,性能损耗少,CPU资源占用少,稳定性弱 可能产生丢包

TCP 稳定可靠 发送文件  邮件  浏览网页等
UDP 速度快 域名查询 语音通话,视频直播等,还有一个重要的使用场景,隧道网络,vpn就是隧道网络,还有SDN中的VXLAN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值