首页新闻动态正文

TCP/UDP【黑马java培训】

更新时间:2019年07月26日 11时12分18秒 来源:黑马程序员论坛

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协议技术应用

推荐了解热门学科

java培训 Python人工智能 Web前端培训 PHP培训
区块链培训 影视制作培训 C++培训 产品经理培训
UI设计培训 新媒体培训 产品经理培训 Linux运维
大数据培训 智能机器人软件开发




传智播客是一家致力于培养高素质软件开发人才的科技公司“黑马程序员”是传智播客旗下高端IT教育品牌。自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在产、学、研3个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,针对性地出版了计算机系列教材50多册,制作教学视频数+套,发表各类技术文章数百篇。

传智播客从未停止思考

传智播客副总裁毕向东在2019IT培训行业变革大会提到,“传智播客意识到企业的用人需求已经从初级程序员升级到中高级程序员,具备多领域、多行业项目经验的人才成为企业用人的首选。”

中级程序员和初级程序员的差别在哪里?
项目经验。毕向东表示,“中级程序员和初级程序员最大的差别在于中级程序员比初级程序员多了三四年的工作经验,从而多出了更多的项目经验。“为此,传智播客研究院引进曾在知名IT企业如阿里、IBM就职的高级技术专家,集中研发面向中高级程序员的课程,用以满足企业用人需求,尽快补全IT行业所需的人才缺口。

何为中高级程序员课程?

传智播客进行了定义。中高级程序员课程,是在当前主流的初级程序员课程的基础上,增加多领域多行业的含金量项目,从技术的广度和深度上进行拓展“我们希望用5年的时间,打造上百个高含金量的项目,覆盖主流的32个行业。”传智播客课程研发总监于洋表示。




黑马程序员热门视频教程【点击播放】

Python入门教程完整版(懂中文就能学会) 零起点打开Java世界的大门
C++| 匠心之作 从0到1入门学编程 PHP|零基础入门开发者编程核心技术
Web前端入门教程_Web前端html+css+JavaScript 软件测试入门到精通


在线咨询 我要报名
和我们在线交谈!