看完有收获,谢谢 |
谢谢分享 |
谢谢楼主分享 |
引用:xxiaoh 发表于 2021-04-13 17:34 优秀 |
引用:jevensonv 发表于 2019-12-03 17:17 这个攻击本身就是为了挤爆服务器的链接,是服务器的tcp都处于半链接状态,从而使得正常请求不能成功响应,所以攻击者发起syn后直接下线,然后服务器就会一直等这个ack,然后服务就挂了 |
引用:jevensonv 发表于 2019-12-03 17:10 第一个问题我理解起来是没写错的吧,在传输数据的时候,servicer响应的ack(X) = client放出的seq + 数据接收的长度,以此来表示servicer希望client下一个数据包从X开始 第二个问题,觉得算法应该是用于连续包的情况的,对于单一的应该有其他处理,也可能就是等超时 第三个问题因为发送端不知道啊,因为重复回ack2,发送端不知道后续的3,4,5是不是也到了,当然要考虑是重传全部剩余的还是你说的其中一个 |
8.1中第一段,"ack回4为什么表示3和4都收到了",不是应该仅仅表示3收到了嘛? |
感谢博主。很喜欢这个系列。 有一个关于DSACK的问题还是想请教下: 是否DSACK的作用还是感觉不太理解,比如以ACK丢包为例,当发送端重传第一个包的时候,接收端回复ACK=4000并附带SACK,但这时候由于ACK=4000,所以发送端已经足够确认是ACK丢失了,因为ACK已经覆盖了发送端第二个包的范围,不需要通过SACK来推断这个信息。所以DSACK在这里的作用是否会显得鸡肋一些? |
引用:jevensonv 发表于 2019-12-03 17:17 文章的意思是,正常连接有这个序列号,攻击者没有,或者不太容易伪造,是这个意思。 |
引用:一只小熊 发表于 2020-08-05 16:52 |
引用:lmyJavaDE1 发表于 2018-08-03 15:55 hello 时隔两年,你有弄明白你提出的这个疑问吗 |
还有没太理解SYN Flood攻击: 这段话:“TCP会通过源地址端口、目标地址端口和时间戳打造出一个特别的Sequence Number发回去(又叫cookie),如果是攻击者则不会有响应,如果是正常连接,则会把这个 SYN Cookie发回来,然后服务端可以通过cookie建连接(即使你不在SYN队列中)。” 为啥攻击者不会响应?如果攻击者也按照协议规定去响应呢?会不会出问题 |
不是很明白,有很多问题没有写清楚。 随便举个例子吧: 快速重传机制,这里: “”比如:如果发送方发出了1,2,3,4,5份数据,第一份先到送了,于是就ack回2“ 1, 为什么第1份数据到了是回2,不是回1,明显有问题,应该是写错 2,上面的例子只写了5份数据的情况,如果只发一份数据呢?怎么保证连续收到3次相同的包,表示需要重传 3,为啥没有解决“”是重传之前的一个还是重传所有的问题”?不是收到3次,就只传一个包就行了,不需要重传所有啊。比如收到3次#2,其他都收到了,只重传#2不就可以了。 不知道我理解的正确与否?麻烦博主回答一下 |
图文并茂,很赞 |
引用:Jonphy 发表于 2019-07-24 17:06 嗯嗯 希望床受的了 |
引用:JackJiang 发表于 2019-07-24 16:18 别别,文章过短就难以明了于阅读者,我还是卧床阅读好了 |
引用:Jonphy 发表于 2019-07-24 14:14 下次文章我弄短点,不然长此以往,不说屁股,马桶都受不了 |
我蹲在厕所里看,等完事的时候,双腿已经麻的站不起来 |
"Fast Retransmit只解决了一个问题,就是timeout的问题,它依然面临一个艰难的选择,就是,是重传之前的一个还是重传所有的问题。对于上面的示例来说,是重传#2呢还是重传#2,#3,#4,#5呢?因为发送端并不清楚这连续的3个ack(2)是谁传回来的?也许发送端发了20份数据,是#6,#10,#20传来的呢。这样,发送端很有可能要重传从2到20的这堆数据(这就是某些TCP的实际的实现)。" 这个快速重传为什么说不知重传哪个包的问题? 正如文中所说的,#1包收到了,回#2ack,结果没收到,持续发超过3次的#2ack,发送端发送#2的包,#2ack的编号不就是接受端下次的想要收到包的seq么?所以发送#2ack已经告诉发送端想要哪个包了 |
“ARP在第二层——Data Link层”, ARP不是应该在 网络层吗? |