`
xumingrencai
  • 浏览: 1181933 次
文章分类
社区版块
存档分类
最新评论

(笔记)今日的学习收获

 
阅读更多

“也就是关于设计UDP协议使能快速稳定传输的思路”
如果想用udp 就别考虑稳定...
如果想用tcp就别考虑快速

---------------------------------------------------------------------------------------------------------------------------------

如果用UDP传输文件之类的东西,必须自己在上面再封装一层可靠的传输协议。可以参考reliable-udp这个规范(搜索一下RELIABLE UDP PROTOCOL就有)

UDP打洞了为了在两台局域网的机器建立好UDP连接,这个过程需要一台公网服务器支持,建立好以后就不再需要公网服务器了,过程大致如下:

1、双方都通过UDP与服务器通讯后,网关默认就是做了一个外网IP和端口号 与你内网IP与端口号的映射,这个无需设置的,服务器也不需要知道客户的真正内网IP
2、用户A先通过服务器知道用户B的外网地址与端口
3、用户A向用户B的外网地址与端口发送消息,
4、在这一次发送中,用户B的网关会拒收这条消息,因为它的映射中并没有这条规则。
5、但是用户A的网关就会增加了一条允许规则,允许接收从B发送过来的消息
6、服务器要求用户B发送一个消息到用户A的外网IP与端口号
7、用户B发送一条消息,这时用户A就可以接收到B的消息,而且网关B也增加了允许规则
8、之后,由于网关A与网关B都增加了允许规则,所以A与B都可以向对方的外网IP和端口号发送消息

----------------------------------------------------------------------------------------------------------------------------------

发送截图这种方式,应该只适用于局域网。
很显然,它对带宽和响应速度,都有极高的要求。
楼主想做远程控制,Java貌似也有相关的开源框架,可以考虑一下。

UDP传输大文件,应该在UDP一层上面再指定一层应用层的传输协议,以便高效传输。
楼主的应用场景还要求较高的相应速度,这与语音通信可能要类似。

思路:
1.可将每个文件,按照产生的时间来编号。
2.将文件按照固定大小进行拆分、编号、发送。
3.接收端将接收到的文件碎片进行整理、归纳。
4.文件编号靠前并且丢包率低的文件,对丢失的包进行补传(该功能可省略)。
5.将接收到的完整文件,进行显示。
如果文件过于老旧(比如10秒中之前有客户端传过来的),则直接丢弃。

打孔。
这个概念,需要楼主对网络协议有个清醒的认识。
主要要了解IP协议、UDP协议、TCP协议和NAT协议。
打孔技术,主要应用在有NAT存在的场景中。

我们知道,在网络中,是用IP和PORT来定位通信程序的。
我们通常将IP和PORT,这一组合称为套接字,也就是Socket。它仿佛就是邮件的地址。
收发双方,只要拿到了对方的Socket,就可以定位对方,然后进行通信了。

在NAT存在的场景中,会将IP地址和PORT进行转换,这样,对方拿到的Socket和你本机获得的Socket,
在内容上(IP和PORT)就不同了。
当然,NAT的存在,有着很光辉的作用,它可以解决在IPv6未进行推广应用时,公网IP显著不足的问题。
如果通信双方中,通信的发起方存在NAT,另一方没有NAT,这是不影响信息传输的。
因为,发起方,经过NAT以后,到达另一方,虽然,后者拿到的Socket与发起方本身的Socket有所不同,
但是,当信息的返回过程中,NAT还会进行Socket的还原转换。
如果通信双方都存在NAT的情况下,发起方无法知道,究竟使用什么Socket才能连接到对方。
因为NAT的转换规则,不由双方控制,而是由NAT主机自行决定的。
这样,就需要在公网当中,设置一个没有NAT存在的中介服务器。
通信双方都首先向他连接,这样,中介服务器,就会拿到,通信双方各自NAT后的Socket了。
之后,中介服务器将双方NAT后的IP和PORT,分别告诉给对方。
这样,发起方就可以拿着对方NAT后的Socket,向另一方进行连接、数据传输了。

具体解说,网上面灰常多,楼主只要搜索一下,UDP打孔技术,就会有了。

--------------------------------------------------------------------------------------------------------------------

我新增加的认识:

“因为公网的IP地址不够用,因此想让中国的每一个学生都有一个独立的公网IP肯定是办不到的!于是诞生了一些“社团、社区服务器”,这些服务器都有一个公网的IP,而且下辖N多个处于特定区域的个人电脑集群。一台机器上可用的TCP端口和UDP端口都各有65536个,而在实际应用的时候,这么多端口是根本用不完的,除了一些常用的端口:比如80端口(负责浏览器),1433端口(SQLServer),邮件端口以及1000来个系统所使用的端口,余下的端口的数量仍然非常之庞大!于是,既然IP地址不够用了,那么就充分利用这些“社团、社区服务器”的端口,比如说,下辖在这个服务器中的一个子个人电脑要浏览网页了,那么他实际上不需要自己的IP地址为公网的IP地址,而只要能让这个社团服务器准确定位到就可以了!等他要浏览网页的时候,它确实会打开80端口,不过不是直接用自己的IP+Port去连接外网上的web服务器请求服务,而是连接到社团服务器,这时候社团服务器会打开一个端口,让下辖的个人电脑的ip+port地址转换为自己的ip+port地址,由自己代理他去访问web服务器,到接收到内容以后,就由自己传递给其下辖的个人电脑。就像小弟要和另一个帮派的小弟发出正式的挑战,他想去喝另一个帮派的老大商议,但是他又不够格,就只能先告知给自己的老大,让自己的老大去和另一个帮派的老大商议,老大们商议完毕后,才会告知小弟他发出的挑战是否已经被认可了,之后要在哪儿哪儿设置擂台...
最后,在总结一下,也就是让社团服务器的每一个TCP和UDP端口能得到最大化的应用,用同一公网IP地址上端口数量的使用的增加解决公网IP不够用的问题!”

附一份http代理的java源码

分享到:
评论

相关推荐

    西瓜书机器学习的学习笔记(十分详细)

    学习了机器学习的基础以及相关理论,颇有收获,并做了相关笔记,对于机器学习有了更为深入的理解,为以后的学习以及研究打下基础。 主要内容包含以下相关主题: - 模型的评估与选择 - 神经网络 - 支持向量机 - ...

    Java学习笔记 经典必看

    Java学习笔记 经典必看 很经典的总结 不可错过的 一定会有收获

    nat配置学习笔记大全

    这是关于NAT的学习笔记。学习必有收获~~

    NDIS5.1学习笔记

    NDIS5.1的学习笔记,很好的开发NDIS的学习笔记,学习NDIS看看会有收获的

    Matlab系列--学习matlab的收获和笔记.zip

    Matlab系列--学习matlab的收获和笔记

    B站刘二大人Pytorch课程学习笔记及课后作业

    内容概要:本人在学习B站刘二大人Pytorch实践课程时,做的一些学习笔记。包含课程要点、教学源码以及课后作业和作业源码。 目录: 第一讲 概述 第二讲 线性模型创建 第三讲 梯度下降算法 第四讲 反向传播机制 第五讲...

    达内学习笔记全套(学习java的好文档)

    整个tarena学习笔记 让你收获不少的东西

    文件IO学习笔记

    文件IO学习笔记,内置老师理解的心得以及讲解相关的框图,方便入门

    学习cookie的笔记和总结

    学习,cookie,笔记和总结,cookie和session的区别

    VC++技术内幕-学习笔记

    这篇学习笔记是后补的,因为这本书我已经看到了第三十二章,之前并没有做笔记,只是随意的在书上画了画重点,可是越向后学越觉得前面的知识并没有掌握,所以决定重新来过并补上笔记。我认为只有踏踏实实的记录下每天...

    VC++技术内幕-学习笔记

    这篇学习笔记是后补的,因为这本书我已经看到了第三十二章,之前并没有做笔记,只是随意的在书上画了画重点,可是越向后学越觉得前面的知识并没有掌握,所以决定重新来过并补上笔记。我认为只有踏踏实实的记录下...

    vc技术内幕学习笔记

    这篇学习笔记是后补的,因为这本书我已经看到了第三十二章,之前并没有做笔记,只是随意的在书上画了画重点,可是越向后学越觉得前面的知识并没有掌握,所以决定重新来过并补上笔记。我认为只有踏踏实实的记录下每天...

    C语言学习笔记资源包,C语言初学者必备

    本资源包适用于所有想要深入学习C语言的初学者,无论你是编程新手还是有一定编程基础的学习者,都能从中获得启发和收获。 使用方式: 学习者可以根据资源包中的笔记内容,系统地学习C语言的核心知识点,并结合实践...

    JavaEE学习实战笔记心得

    包括JavaSE基础要点,Servlet,JSP,MySQL,HTML,SSH三大框架,网页前台心得,学务处,电院学生会,物品申报项目

    semantic web学习笔记

    semantic web学习笔记 内容包括原书中RDF、RDFs、OWL、SPARQL等内容的总结。

    vc技术内幕学习笔记WORD

    这篇学习笔记是后补的,因为这本书我已经看到了第三十二章,之前并没有做笔记,只是随意的在书上画了画重点,可是越向后学越觉得前面的知识并没有掌握,所以决定重新来过并补上笔记。我认为只有踏踏实实的记录下每天...

    中文版WPF学习笔记

    中文版WPF学习笔记,建议初学者看看,会有收获的

    Altium Designer学习笔记

    Altium Designer学习笔记(看视频总结,看完相当于看完20集教学视频),看完你一定有所收获,ad必背。

    哈工大概率论期末全套复习笔记

    很高兴能够来到哈工大读书,到了大学我依旧保持对学习的热爱与认真的态度,每一门课认真听讲,上课坐前排,认真记笔记。...如果屏幕前的您也在学习概率论,不妨看看我的笔记,相信你一定会有很多收获的!

    机器学习实战学习笔记.zip

    机器学习历经70年的曲折发展,以深度学习为代表借鉴人脑的多分层结构、神经元的连接交互信息的逐层分析处理机制,自适应、自学习的强大并行信息处理能力,在很多方面收获了突破性进展,其中最有代表性的是图像识别...

Global site tag (gtag.js) - Google Analytics