社区
C++ 语言
帖子详情
一个比较难的问题!
SimerJoe
2007-10-22 08:50:56
我需要实现一个这样的功能:
有一台客户机c1 二台服务器 s1 s2,c1向s1发送一个tcp链接请求,s1接受到以后不和c1建立链接,但是把这个请求转发给s2,s2接受到请求以后和c1握手并建立链接,开始传输数据.
对于c1来说,整个过程只有s1是可见的,s2是透明的.
不知道表述清楚没有.
...全文
201
13
打赏
收藏
一个比较难的问题!
我需要实现一个这样的功能: 有一台客户机c1 二台服务器 s1 s2,c1向s1发送一个tcp链接请求,s1接受到以后不和c1建立链接,但是把这个请求转发给s2,s2接受到请求以后和c1握手并建立链接,开始传输数据. 对于c1来说,整个过程只有s1是可见的,s2是透明的. 不知道表述清楚没有.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
SimerJoe
2007-10-23
打赏
举报
回复
控制客户端是不可能的,我也不打算控制客户端.如果是通过NAT访问,也会有相应的端口号呀,理论上也是可以链接上的.
至于tcp协议的传输机制......
iambic
2007-10-22
打赏
举报
回复
有必要么,搞个代理算了。
boxban
2007-10-22
打赏
举报
回复
我可以很负责任地告诉你:你的想法是不可能实现的。除非你能够控制服务器以及客户端的TCP IP协议栈。而多数情况下,客户端是不可控的。就算你能够控制客户端,如果C1是通过NAT访问Internet的话,你就一点办法都没有了。
你仔细阅读一下TCP协议就会明白,TCP协议有着一套完整、严密的数据传输机制。
SimerJoe
2007-10-22
打赏
举报
回复
s1发送给s2的是c1的地址.我的c1的地址是实际存在的,s2回复请求是一个实际的地址,怎么会是半链接状态呢.就是不知道这个"攻击"怎么发,嘿嘿.不过c1明明是请求的s1,这个时候来响应的确是s2,不知道c1会不会接受这个响应.如果不接受那就真成了自己攻击自己了.
proware
2007-10-22
打赏
举报
回复
那样的话,你从s1发起到s2的tcp连接请求会是一个半连接状态的吧??那不就是自己对自己的服务器攻击了...
proware
2007-10-22
打赏
举报
回复
噢..看来我理解是正确的...你搜一下..syn攻击及其防范技术..代码就没有弄过了..
技术上是可行的..
SimerJoe
2007-10-22
打赏
举报
回复
proware说的这个意思有点和我的想法接近了,但是还是有点点区别的,s2的应答部分,不应该再次通过s1转发,会浪费资源的.s2的应答应该直接答到c1上去.
总之,除了第一次c1发的syn以外,其他部分不应该再次经过s1了.至于s1是转发给s2还是s3,这些规则是在s1上面通过实时状态诀定的.
SimerJoe
2007-10-22
打赏
举报
回复
我说的透明是对用户来说的,应为用户一直以为自己和s1在通讯呢.他的每个tcp请求都是对s1发的.但是实际和他链接的却是s2.做为软件设计者和s1,肯定是知道s2的存在,但是c1的用户却不知道.
试想一下,某网站每小时接受1000w用户的浏览,在网站的机房,有n台服务器,但是我们每个人浏览器发送的请求是对应于他的一台服务器,但是这些请求却被他门分散掉了,分散给n台服务器去响应,所以,每个客户都能有比较快的响应速度.
每个tcp链接都是通过3次握手建立起来的,我们能否在第一次握手,也就是s1监听到c1的第一个syn的时候,把这个syn转给s2,让s2去响应,s2伪装成s1,向c1发出syn/ack,这时候建立起链接.以后通讯,就是s2 和 c1 之间的这2个"端"之间的事情了,和s1没有关系,直到链接断开.
这是我的想法,但是我没实现过.理论上是可以的,可能要修改tcp/ip协议的某些部分.麻烦有经验的提点一下小弟!
proware
2007-10-22
打赏
举报
回复
你的意思是c1发送syn报文到s1,s1一看是到s2的,那么s1就发送syn报文到s2,然后s2发送syn+ack报文到s1,s1收到后自己再发送syn+ack报文到c1,c1再发送最后的ack到s1,s1发送ack到s2....是这个样子???
可以参考syn攻击中的某个预防措施....
wang_wuhui
2007-10-22
打赏
举报
回复
s2接受到请求以后和c1握手并建立链接,开始传输数据.
那s2對於c1還能透明嗎?
SimerJoe
2007-10-22
打赏
举报
回复
预设的环境,硬件以及网络方面肯定是通的.
关键是软件怎么写.
我想应该是可以实现的,我们用浏览器的时候,客户端都不知道经过多少路由器才到达web服务器,但是看上去就像直接连接的一样.
我想,把s1,作为一个类似的代理.路由器也是不建立链接然后直接转发的嘛?
weiym
2007-10-22
打赏
举报
回复
要不就让s1转发数据,要不就让s1告诉s2 c1的地址,让S2联系C1,但要确保s2能够连上C1.
星羽
2007-10-22
打赏
举报
回复
c1 不做相应处理代码, 很难做得到
18个Linux Shell脚本经典案例
通俗易懂的Shell进阶视频教程!! 在学习Linux运维时,大部分同学给我反馈是:Linux Shell是
一个
很
难
的知识板块。虽然大家都认真学,基本的语法很都学习,但有需求时,很
难
直接上手编程,要么写了很久,要么写不好!也有很多做运维很多年的朋友也是如此,Shell脚本一直写的不6!在网上看例子能照猫画虎写出来,完全独立写就困
难
了。对于初学者而言,因为没有实战经验,写不出来Shell脚本很正常,如果工作了几年的运维老年还是写不出来,那就是没主动找需求,缺乏练习,缺乏经验。针对以上
问题
,我精心总结了18个生产环境中经典的Shell脚本,通过这些案例贯穿Linux Shell脚本的大部分知识点,学习编写思路,学习编写技巧,提升Linux使用能力,让你的Shell功底上升
一个
段位!
一个
想法(续二):换个角度思考如何解决IT企业招聘
难
的
问题
!
上一篇文章:
一个
想法:成立草根技术联盟对开发人员进行技术定级解决企业员工招聘
难
问题
!当时写文的思维,是从
一个
公益组织的角度的思考。因此,有不少关于从利出发的反方观点,的确是值的思考,任何的改革都需要平衡利益,否则都只剩下空谈~于是,我换了
一个
角度思考了这个
问题
,如果这是
一个
项目....详情如下
一个
想法:成立草根技术联盟对开发人员进行技术定级解决企业员工招聘
难
问题
!
吃饭前,想起了<甄嬛传>中皇弟叹息的一句:千军易得,良将
难
寻!又逢CTO群里有友人让我帮忙评估其公司的项目及技术,一番review code,估计要写那代码的人要落岗了~不由想起,在这IT领域,千军也
难
寻,其面试代价很高,而且经常招不到合适的人。而且目前的的软考证书并不受到认可,仅是为考试而考试,跟不上如此日新月异的IT时代。吃完饭,在路上散步,突然
一个
想法就跑了出来,
一个
解决此
问题
的idea~~~于是在路上来回散步,进一步进行了初步思考,有了大体的构思后,将想法与大伙共讨~~~
NP
难
问题
求解综述
摘要:定义NP
问题
及P类
问题
,并介绍一些常见的NP
问题
,以及NP
问题
的一些求解方法,最后最NP
问题
求解的发展方向做一些展望。 关键词:NP
难
问题
P类
问题
算法 最优化
问题
正文: 一.NP
难
问题
及P类
问题
为了解释NP
难
问题
及P类
问题
,先介绍确定性算法和非确定性算法这两个概念,设A是求解
问题
Π的
一个
算法,如果在算法的整个执行过程中,每一步只有
一个
确定的选择,则称算法A是确定性(Determinism)算法。设A是求解
问题
Π的
一个
算法,如果算法A以如下猜测并验证的方式工作,就称算法A是非确定...
P
问题
、NP
问题
、NP完全
问题
和NP
难
问题
转载出处。 https://blog.csdn.net/qq_21768483/article/details/80430590 在讲P类
问题
之前先介绍两个个概念:多项式,时间复杂度。(知道这两概念的可以自动跳过这部分) 1、多项式:axn-bxn-1+c 恩....就是长这个样子的,叫x最高次为n的多项式.... 咳咳,别嫌我啰嗦。。有些人说不定还真忘了啥是多项式了。。例如第...
C++ 语言
64,645
社区成员
250,475
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章