網(wǎng)絡(luò)產(chǎn)生擁塞的根本原因在于用戶提供給網(wǎng)絡(luò)的負(fù)載超過了網(wǎng)絡(luò)的存儲(chǔ)和處理能力,表現(xiàn)為無效數(shù)據(jù)包增加、報(bào)文時(shí)延增加與丟失、服務(wù)質(zhì)量降低等。如果此時(shí)不能采取有效的檢測(cè)和控制手段,就會(huì)導(dǎo)致?lián)砣饾u加重,甚至造成系統(tǒng)崩潰,在一般情況下形成網(wǎng)絡(luò)擁塞的三個(gè)直接原因是:
● 路由器存儲(chǔ)空間不足。幾個(gè)輸入數(shù)據(jù)流需要同一個(gè)輸出端口,如果入口速率之和大于出口速率,就會(huì)在這個(gè)端口上建立隊(duì)列。如果沒有足夠的存儲(chǔ)空間,數(shù)據(jù)包就會(huì)被丟棄,對(duì)突發(fā)數(shù)據(jù)流更是如此。增加存儲(chǔ)空間在表面上似乎能解決這個(gè)矛盾,但根據(jù)Nagel的研究,如果路由器有無限存儲(chǔ)量時(shí),擁塞只會(huì)變得更壞。
● 帶寬容量相對(duì)不足。直觀地說,當(dāng)數(shù)據(jù)總的輸入帶寬大于輸出帶寬時(shí),在網(wǎng)絡(luò)低速鏈路處就會(huì)形成帶寬瓶頸,網(wǎng)絡(luò)就會(huì)發(fā)生擁塞,相關(guān)證明可參考香農(nóng)信息理論。
● 處理器處理能力較弱。如果路由器的CPU在執(zhí)行排隊(duì)緩存、更新路由表等操作時(shí),處理速度跟不上高速鏈路,會(huì)產(chǎn)生擁塞。同理,低速鏈路對(duì)高速處理器也會(huì)產(chǎn)生擁塞。
以上是早期Internet網(wǎng)絡(luò)發(fā)生擁塞的三個(gè)主要原因。對(duì)此,TCP擁塞控制給出了較好的解決方案。在實(shí)際應(yīng)用中,如果所有的端用戶均遵守或兼容TCP擁塞控制機(jī)制,網(wǎng)絡(luò)的擁塞能得到很好的控制。但是,當(dāng)DDoS攻擊造成網(wǎng)絡(luò)擁塞時(shí),TCP基于窗口的擁塞控制機(jī)制對(duì)此無法加以解決。原因是攻擊帶來的擁塞是由大量惡意主機(jī)發(fā)送數(shù)據(jù)所造成的,這些主機(jī)不但不會(huì)完成TCP擁塞控制機(jī)制所規(guī)定的配合工作,甚至本身就可能包含了偽造源地址、加大數(shù)據(jù)發(fā)送量、增加連接數(shù)等攻擊方式。在此情況下,對(duì)DDoS攻擊所造成的網(wǎng)絡(luò)擁塞就必須在路由器上進(jìn)行處理,這只能是基于IP擁塞控制來實(shí)現(xiàn)的。
需要注意的是,DDoS攻擊所造成的網(wǎng)絡(luò)擁塞不同于上面所分析的普通情況,它們之間存在著本質(zhì)差異。相比之下,DDoS攻擊所造成的擁塞,其攻擊數(shù)據(jù)常常在分組大小、到達(dá)時(shí)間、協(xié)議類型等諸多方面具有一定相關(guān)性,這是由分布式拒絕服務(wù)自身特點(diǎn)所決定的。而普通情況下的網(wǎng)絡(luò)擁塞,其數(shù)據(jù)并非由多個(gè)受控攻擊者發(fā)送,因而不具有類似的相關(guān)性。對(duì)攻擊所造成的擁塞進(jìn)行防護(hù),就應(yīng)首先找到這個(gè)相關(guān)性,在此基礎(chǔ)上引入傳統(tǒng)擁塞控制機(jī)制并加以完善,才能進(jìn)行高效、準(zhǔn)確的檢測(cè)和控制工作。


