tcp 拔掉网线_网络工程师熟读并背诵·攻防TCP

一定要看到最后哦,文末有彩蛋,安静读书有惊喜!

小A是一名跨国公司的初级网络工程师,他的梦想就是悠闲的度过这一生,每天在公司里散散步,和女同事搭搭讪,至于自己的工作?偶尔看下自己的数据流量分析仪,就算是“尽职尽责”了。

“又是摸鱼的一天啊。”椅子上的小A伸了伸懒腰,关掉网页上的股票曲线,打开分析仪,揉了揉惺忪的眼睛,突然,猛地盯着屏幕震惊道:“这是怎么回事”

原来,小A公司里有一个对外提供服务的服务器,而且某一端口是开放的,在网络上可以向该服务器发送请求进行某项服务。

可是分析仪中,出现了大量的请求数据,而且这些数据以一个每秒数十个的速度不断刷新着,即便是小A配置的很高的电脑,也在这样的服务请求下,软件造成了崩溃。

望着报错的屏幕小A脑袋突然变空了,实话实说,他就是一个勉勉强强在网络这一行入门的小白,对于简单的路由器与交换器配置,还能有一点办法,可是如果面对这漫天盖地的攻击数据,他无能无力。

“叮铃铃~”机房中的电话突然惊醒了发呆的小A,接上电话,主管口吐芬芳的话语便传进了小A的耳朵,小A皱起眉头,捂住耳朵,几分钟之后,主管才恶狠狠的说:“服务全部崩溃了,十分钟之内搞不定,你自己卷铺盖滚蛋吧。”

“这可如何是好啊。”小A挂掉电话,心里却成了一团乱麻,突然,他想起了以前在论坛里,遇到的一个大神,当初自己刚入门网络这一行,这一行对他有无限的吸引力,所以不厌其烦的了解了很多东西,还关注了一个经常发送博客和知乎的大神。

每个不曾对网络技术钻研的日子里,都是对生命的严重浪费,边读边赞,是对自己在这条路上行走的一个肯定。

他抓紧登上论坛,给大神发了一条消息,恰好,大神也在,并且留下了一个联系方式。

如同抓紧救命稻草一样,小A立马给他打过去了电话,电话接通,一个低沉性感的声音说道:“小A?”

“对对,是我大神,”小A抓紧说,“大神,能麻烦给我远程一下我,我的远程软件账号是765244669,密码是2301798538,求大神救我。”

电话那头应了一声,过了片刻一条远程连接显示在了小A的电脑,小A急忙同意,大神打开分析仪,过了片刻,小A听到了那头的一句呢喃:“Syn Flood?小A,你还记得TCP的三次握手和四次挥手吗?”

宛如打开了记忆盒子,小A回忆起当初学习时候的记忆,TCP一个面向连接,高可靠性的传输层协议,广泛用于现在的互联网络中,当时学这个,还下过一段时间的苦功夫。

三次握手,是TCP正式开始传输数据前的虚连接。

3d6c501c86fb0db85ea5177eb154a841.png

最开始,客户端想要访问服务器,进行一个数据传输。

8fe06fb6623bf6b32b353af2e3d601df.png
TCP抓包结果

第一次握手:建立连接时,客服端发送SYN包(seq=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

ddd5e3d7ab884ccff58944de43fa1091.png

第二次握手:服务器收到SYN包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(seq=k),即SYN+ACK包,此时服务器进入SYN RECV状态。

21559c115c5867fd34014ce03b131610.png

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

f31b75cc6e5161de9f87062a5925c197.png

而只有当三次握手完成之后,双方数据才会开始通信,客户端与服务器开始传输数据。

至于四次挥手,则是当数据传输完成之后,用来释放连接,以此来关闭会话。

340576b74a1a121276b2c7e1780d1ef1.png

第一步,当主机A的应用程序通知TCP数据已经发送完毕时,TCP向主机B发送一个带有FIN附加标记的报文段(FIN表示英文finish)

0d7e323f8c43480e123f76c21b73040c.png

第二步,主机B收到这个FIN报文段之后,并不立即用FIN报文段回复主机A,而是先向主机A发送一个确认序号ACK,同时通知自己相应的应用程序:对方要求关闭连接(先发送ACK的目的是为了防止在这段时间内,对方重传FIN报文段)

e9c9416c2e4fa375c7af42a8dbf8b512.png

第三步,主机B的应用程序告诉TCP:我要彻底的关闭连接,TCP向主机A送一个FIN报文段。

e77f3bcae71eda8882236d5f33bb42d6.png

第四步,主机A收到这个FIN报文段后,向主机B发送一个ACK表示连接彻底释放。

f42a1d9198fb5908039709839763bb6a.png

此时,双方连接完成,彻底释放。

电话那边的大神闻言点了点头,说:“没错,这就是三次握手和四次挥手,而Syn Flood,严格意义上说是属于DDOS攻击中的一种,它利用了TCP协议实现上的一个缺陷,通过向网络服务所在端口发送大量的伪造源地址的攻击报文,造成目标服务器中的半开连接队列被占满,从而阻止其他合法用户进行访问。”

Syn flood攻击会首先伪造地址对服务器发起SYN请求,而服务器收到第一个握手包后,顺理成章的发送一个ACK+SYN的回包,此时这个回包回回到真实的IP地址中。

而真实的IP地址收到第二个握手包后,会很诧异,因为本身自己是没有发送请求包的,所以对于握手包就会丢弃,不作任何回应,而服务器在规定的时间内,没有收到回应时,就会重试3—5次,假如在重传时间内,还没有收到回复包,就会放弃该连接。

而攻击者会伪造大量的源地址,对服务器发起SYN请求,而服务器会消耗非常多的资源来处理这些报文,同时,也会占用大量的储存时间,默认情况下,TCP的重传次数为5次,重传时间,会随着次数的增加而翻倍。

也就是说第一次为1s,第二次为2s,第三次则为4s,第四次为8s,第五次为16s,也就是1+2+4+8+16=31s,最后一个包的时间要等待31s,而这会占用大量的时间来处理这些报文。

而这样攻击的后果,会撑爆TCP的半连接队列,此时,如果有真实数据进行访问,则不会进行处理,统一拒绝服务。

听到这里,小A惊讶的吸了一口气:“这么麻烦的攻击方式,究竟是什么人配置的,该如何搞定呢?”

大神笑了笑,“管他什么人攻击你,网络这一行,有朋自远方来,虽远必诛,想要解决这个攻击也简单,但是绝大多数都是防御系统,拒强敌于墙外。”

现在主流的针对SYN flood的防御有三种:

1、cookie认证:原理是syn报文首先由DDOS防护系统来响应SYN-ACK。带上特定的sequence number (记为cookie)。真实的客户端会返回一个ACK并且Acknowledgment number 为cookie+1,而伪造的客户端,将不会作出响应。

2、reset认证:首先由防护设备来响应,当防护设备收到syn后响应SYN-ACK,将Acknowledgement number (确认号)设为特定值(记为cookie)。当真实客户端收到这个报文时,发现确认号不正确,将发送reset报文,并且sequence number 为cookie + 1。 而伪造的源,将不会有任何回应。

3、TCP首包丢弃:

2d73893483972534c3a02a64aeb649c9.png
TCP首包丢弃

“不过这些都是需要设备支持的,你现在把服务器网线拔掉,免得损失更多的数据,接下来购买一台流量清洗设备,就能解决这个问题,如果问起来,你就这么和主管聊就好”

小A闻言,狠狠的点了点头,转身将服务器网线拔掉,有些羡慕的说:“大神,不知道什么时候才能和你一样优秀。”

大神羞涩的笑笑:“我啊,都是在新盟教育学习的网络知识,新盟教育是一家助力于网络培训的公司,从事网络教育很多年了,业界有着良好的口碑和知名度,同时这里的老师平易近人,带我的班主任有问必答,很快的就通过了CCIE的考试,如果你问我,人能否改变自己的命运,我不知道,但如果你想真正的改变自己,那我建议你来新盟教育。”

“原来如此,新盟教育吗?”小A有些不好意思道,“不瞒你说大神,我已经落下了好多网络的功课,你现在叫我小白都好,我如果去上课,能够听懂吗?”

大神笑着摇了摇脑袋:“我当初还不如你,只不过是个小公司的网管,连台路由器都接触不到,但是我建议你迈出这一步,当时我事先考察了一下这个教育公司,还不错,听了几节公开课,我波澜不惊的心又激动起来了。”

“那既然如此,我该如何加入到这个大家庭呢?”小A闻言急忙问道,

“无巧不成书,事前你的远程软件的帐户名,刚好是一个技术交流群的群号,而密码,又刚好是我的私人通讯账号,你可以添加一下群和我,对于文章中不太懂的知识点,我们可以互相交流一下。”大神静静的说着。

“能不能改变命运我不知道,但是我不想浑浑噩噩下去了!”小A坚定的说着,“大神,我马上添加这个群,也添加你,希望你一定要通过一下!”

“好!”大神同样说道。

种一棵树最好的时间是十年前,其次就是现在,若有恒,何必三更起五更眠;最无益,莫过一日曝十日寒。

或许,你也可以改变一下你自己,迈出最艰难的一步,面对真实的自己。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值