扫码关注官方订阅号
84669人学习
65727人学习
82984人学习
467778人学习
498837人学习
471966人学习
256484人学习
152542人学习
224170人学习
139536人学习
81804人学习
85022人学习
11944人学习
20001人学习
60816人学习
5487人学习
15007人学习
2150人学习
6980人学习
194925人学习
359900人学习
1142人学习
19058人学习
3206人学习
180550人学习
48569人学习
17603人学习
40936人学习
1049人学习
750人学习
32909人学习
java中的网络编程,传输时的UDP协议和TCP协议,可以理解为类似QQ发送文件的离线传输和在线传输吗?离线传输不需要对方是否确认接收,但是在线传输必须对方确认接收后才能建立连接,传送文件。这种比喻是否恰当?
认证0级讲师
不太恰当吧......又存不住
实话说你理解的不是一般的偏,好好补课了要
QQ的离线传输实际上是你把文件传输到了服务器上,然后下次朋友上线时服务器另外通知到他某某人给你传了一个文件,他下载的过程是从服务器获取文件,这与文件是通过TCP还是UDP传输的没有任何关系!(当然了,QQ的离线文件的这个功能的实现是通过TCP做的)
UDP和TCP作为两种传输协议,他们的最大区别是UDP是无状态的,它对于传输结果不做任何保证。而TCP有,TCP通过维护一个虚拟的连接来帮你维持传输的可靠性。用通俗的语言来描述说,如果存在TCP和UDP的两家快递公司你用TCP给你的朋友发了一个快递,每个快递都有单号,朋友会告诉你,这个快递单号XXX收到了,如果你的朋友没有收到这个快递(朋友没有告诉你),快递公司会帮你重新发送这个快递。如果你用UDP给你的朋友发快递,没有单号,朋友也不会给你任何反馈,你只管发他只管收,但也因为如此,效率高了很多。这个类比并不完全准确,仅帮助理解。
最后提一句,此问题与java或者任意语言都无关,它是网络通信的范畴
这个比喻确实不太恰当,但是我觉得楼上的回答都偏了,你们好像没有理解题主的意思。
之所以说楼主的比喻不太恰当,不是因为离线传输和在线传输是UDP还是TCP实现的,而是因为过程不一样:TCP的确认发生在传输之后,但你的比喻中,在线传输的确认发生在传输之前,这是它们不一样的关键地方。倒是离线传输和UDP有点像:我只管发,朋友什么时候接收、有没有接收那是他的事情,我发上去了就可以不用管了。
TCP的确认发生在传输之后,但你的比喻中,在线传输的确认发生在传输之前
我只管发,朋友什么时候接收、有没有接收那是他的事情,我发上去了就可以不用管了
QQ的通讯用的是封装后的udp协议,据说很好地解决了丢包问题。文件传输等用的是tcp
比喻应该是拿这个比喻。对讲机
UDP:你拿起来按着讲话不放:“ 附近有人吗,我掉沟里了,来个人救我啊啊!!!!”
这个情况下,你发没发出去你不知道,有没有人收到你也不知道,收到的人听没听清你也不知道。
TCP:军队之间对讲: A:“01,听到请回答。01,听到请回答”, B: “01收到,请讲” A:“命令01去XXX集合,重复”, B:“命令01 去XXX集合”,A:“错误,命令01去XXX集合,重复” B:“命令01去XXX集合”, A:“正确 over”, B:“over”
这个情况下,每个信息都要求确认是不是正确的,有没有遗漏,有遗漏或者错误将会重新再发送一遍。
大哥,TCP是先建立连接才传输,你连信道都没有,咋通信。TCP是管发又管收,UDP是只管发不管收,突发场景的比较适合UDP,因为不需要建立连接,而TCP是需要保证正确性的。。。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2024 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号
精品班
技术支持
技术咨询
学习群
会员优惠
返回顶部
不太恰当吧......又存不住
实话说你理解的不是一般的偏,好好补课了要
QQ的离线传输实际上是你把文件传输到了服务器上,然后下次朋友上线时服务器另外通知到他某某人给你传了一个文件,他下载的过程是从服务器获取文件,这与文件是通过TCP还是UDP传输的没有任何关系!(当然了,QQ的离线文件的这个功能的实现是通过TCP做的)
UDP和TCP作为两种传输协议,他们的最大区别是UDP是无状态的,它对于传输结果不做任何保证。而TCP有,TCP通过维护一个虚拟的连接来帮你维持传输的可靠性。
用通俗的语言来描述说,如果存在TCP和UDP的两家快递公司
你用TCP给你的朋友发了一个快递,每个快递都有单号,朋友会告诉你,这个快递单号XXX收到了,如果你的朋友没有收到这个快递(朋友没有告诉你),快递公司会帮你重新发送这个快递。
如果你用UDP给你的朋友发快递,没有单号,朋友也不会给你任何反馈,你只管发他只管收,但也因为如此,效率高了很多。
这个类比并不完全准确,仅帮助理解。
最后提一句,此问题与java或者任意语言都无关,它是网络通信的范畴
这个比喻确实不太恰当,但是我觉得楼上的回答都偏了,你们好像没有理解题主的意思。
之所以说楼主的比喻不太恰当,不是因为离线传输和在线传输是UDP还是TCP实现的,而是因为过程不一样:
TCP的确认发生在传输之后,但你的比喻中,在线传输的确认发生在传输之前
,这是它们不一样的关键地方。倒是离线传输和UDP有点像:我只管发,朋友什么时候接收、有没有接收那是他的事情,我发上去了就可以不用管了
。QQ的通讯用的是封装后的udp协议,据说很好地解决了丢包问题。文件传输等用的是tcp
比喻应该是拿这个比喻。对讲机
这个情况下,你发没发出去你不知道,有没有人收到你也不知道,收到的人听没听清你也不知道。
这个情况下,每个信息都要求确认是不是正确的,有没有遗漏,有遗漏或者错误将会重新再发送一遍。
大哥,TCP是先建立连接才传输,你连信道都没有,咋通信。TCP是管发又管收,UDP是只管发不管收,突发场景的比较适合UDP,因为不需要建立连接,而TCP是需要保证正确性的。。。