本帖最后由 码农苏尼玛 于 2019-5-26 16:14 编辑
tcp 是基于连接协议,举个例子的话就是正式接受发送数据之前,必须和对方建立连接.才能够达到通信效果.
udp是与tcp相对应的协议,面向非连接协议,他不与对方建立连接就直接将数据包发送过去.
TCP
TCP连接必须经过典型的"三次握手"才能建立起来的.过程比较复杂,下面的话只作为简单介绍
三次握手协议过程
1.主机A与主机B发出连接请求数据包的确认 A--->>>:我要给你发数据了,接受吗? 这是第一次握手协议
2.主机B与主机A发送同意连接要求同步对话 (主机AB作为发送和接受协调调度)数据: B--->>>:可以啦!请问什么时候发送? 这是第二次握手协议
3.主机A在接受主机B的通话确认后,再次发出一个数据包确认要求同步 A--->>>:我现在就发送,请查收! 这是第三次握手协议
其中目的作用在数据包发送和接收实现同步,通过三次握手协议,主机A会向主机B正式发送数据.
优点: 可靠 稳定
TCP可靠性体现在传输数据之前,经过三次握手协议四次挥手释放连接,并存在确认,窗口,重传,拥塞控制机制,数据传输完毕断开连接
缺点: 慢 效率低 占用系统资源高 容易被入侵攻击
在建立连接往往会消耗时间,传输时由于机制问题需要占用资源,花费大量时间.
并且TCP协议机制容易被人利用,实现DOS DDOS攻击
UDP
udp适用于一次并且是少量数据传送,对于可靠性要求不高的环境下使用较广泛
经常使用的ping指令测试主机的通信是否正常.其实ping就是向对方主机发送UDP数据,让对方确认收到数据,数据是否到达的消息能够及时反馈回来.
那么两台主机的网络是连通的.
一般情况下ping操作会默认发送四个数据包,目标主机接收到四个数据包并返回消息.充分说明UDP协议是面向非连接的协议
没有建立连接过程.因为udp协议没有连接过程,所以通信效果高,但同时存在的缺陷是可靠性不如tcp协议好.
优点:快
UDP没有TCP协议机制,所以能在相对无约束的情况下使用的传输协议,因此速度快UDP被攻击者利用的漏洞少一些
但无法避免攻击例如UDP flood攻击
缺点:不可靠,不稳定
没有tcp可靠机制,网络质量影响的情况下容易丢包
TCP与UDP基本区别简单总结
1.基于连接与无连接
2.tcp要求系统资源较多,udp则相反
3.udp程序结构简单
4.流模式(TCP) 数据报模式(UDP)
5.TCP保证数据一致,UDP会出现丢包现象
6.TCP保证数据包有调序UDP则相反
TCP与UDP的应用场景
从特点上分析,TCP可靠但是传输速度比UPD慢,但是UDP协议是不可靠的.因此选用具体协议通信时候,需要根据求iu来决定
若通信数据保持完整,通信实时性而定,则首选tcp协议(文件传输,重要状态更新等应用技术);
否则可以使用udp协议(视频传输,实时对话通信等应用技术)
选用TCP:
当网络通讯质量有要求,需要数据准确完整的传输到目标时候,这往往要求可靠稳定的应用
比如HTTP HTTPS FTP等传输文件的协议
日常中常见使用TCP协议的有:
1.浏览器 http
2.QQ 文件传输
选用UDP:
对于网络通讯质量要求不高的情况下,要求网络通讯速度能尽量快捷方便,就可以使用UDP技术
日常使用UDP协议的有:
1.QQ语音
2.QQ视频
3.TFTP
4.包括游戏内即时对话聊天等应用场景均属于udp协议技术应用
|
|