Кіріспе
Рандомдық ерте анықтау (RED) алгоритмі, сондай-ақ кездейсоқ ерте жою немесе кездейсоқ ерте тастау деп те аталады, – желілік кесте жасаушы үшін қолайлы кезек тәртібі, ол желілік қанағаттандыруды болдырмауға арналған. Дәстүрлі құйрық тастау алгоритмінде маршрутизатор немесе басқа желілік компонент мүмкіндігінше көп пакеттерді буферге сақтайды және буферге сыймайтын пакеттерді жай ғана тастайды. Буферлер үнемі толып тұрса, желі тығырылады. Құйрық тастау буферлік кеңістікті трафик ағындары арасында теңсіз бөледі. Құйрық тастау барлық TCP қосылымдарының бір уақытта "тоқтауына", содан кейін бір уақытта қайта бастауына себеп болатын TCP глобальдық синхронизациясына да әкелуі мүмкін. Бұл желілердің тиімсіз пайдаланылуына және толқу толқындарына ұшырауына себеп болады. RED бұл мәселелерді буфер толып кетпес бұрын пакеттерді алдын ала тастау арқылы шешеді. Ол қай пакеттерді тастау керектігін анықтау үшін болжамдық модельдерді пайдаланады. Оны 1990-шы жылдардың басында Салли Флойд және Ван Джейкобсон ойлап тапқан.
Random early detection (RED), also known as random early discard or random early drop, is a queuing discipline for a network scheduler suited for congestion avoidance. In the conventional tail drop algorithm, a router or other network component buffers as many packets as it can, and simply drops the ones it cannot buffer. If buffers are constantly full, the network is congested. Tail drop distributes buffer space unfairly among traffic flows. Tail drop can also lead to TCP global synchronization as all TCP connections "hold back" simultaneously, and then step forward simultaneously. Networks become under utilized and flooded—alternately, in waves. RED addresses these issues by pre emptively dropping packets before the buffer becomes completely full. It uses predictive models to decide which packets to drop. It was invented in the early 1990s by Sally Floyd and Van Jacobson.
Операция
RED орташа кезек көлемін қадағалайды және статистикалық ықтималдықтар негізінде пакеттерді тастайды (немесе ECN қолданылған жағдайда белгілейді). Егер буфер бос болса, барлық келіп түсетін пакеттер қабылданады. Кезек ұзарған сайын, келіп түсетін пакетті тастау ықтималдығы да артады. Буфер толып кеткенде, ықтималдық 1-ге жетеді және барлық келіп түсетін пакеттер тасталады. RED, құйрықтан тастауға қарағанда әділдеу, себебі ол жолақтың шағын бөлігін ғана пайдаланатын импульстік трафикке қатысты ешқандай жағдай жасамайды. Хост неғұрлым көп дерек жіберсе, оның пакеттерінің жоғалу ықтималдығы соғұрлым артады, өйткені хост пакеттерінің жоғалу ықтималдығы кезектегі дерек көлеміне пропорционалды. Ерте анықтау TCP-ның жаһандық синхронизациясына жол бермеуге көмектеседі.
Классикалық RED-пен проблемалар
Ван Джейкобсонның айтуынша, "классикалық RED-те бір емес, екі қате бар". Алгоритмді жақсартулар жасалды және мақаланың жобасы дайындалды, бірақ мақала ешқашан жарияланбады, ал жақсартулар кеңінен таралмады немесе қолданылмады. Зерттеуді аяқтау және қателерді жою бойынша жұмыс жүргізілді. QoS талаптарын ескере отырып, ерте анықтауды қамтамасыз етуге бағытталды.
ЖІТКЕН
Бағаланған RED жүйесінде әртүрлі басымдықтарға (IP басымдығы, DSCP) және/немесе кезектерге сәйкес түрлі ықтималдықтар тағайындауға болады.
АРЕД
Адаптациялық RED немесе белсенді RED (ARED) алгоритмі орташа кезек ұзындығын бақылау арқылы RED-ті қаншалықты агрессивті ету керектігін анықтайды. Егер орташа кезек ұзындығы ең төменгі шегінің маңында тербелсе, ерте анықтау тым агрессивті болып шығады. Ал егер орташа кезек ұзындығы ең жоғары шегінің маңында тербелсе, ерте анықтау тым консервативті болады. Алгоритм трафикті қаншалықты белсенді түрде жоюды жүзеге асырғанына қарай ықтималдықты өзгертеді. Бұл техникалар мен олардың талдауы туралы толық мәліметтер үшін Srikant-қа жүгініңіз.
RRED
Берік рандомизацияланған ерте анықтау (RRED) алгоритмі, қызметтен бас тарту (DoS) шабуылдарына, әсіресе төмен жылдамдықты қызметтен бас тарту (LDoS) шабуылдарына қарсы TCP өткізу қабілетін жақсарту үшін ұсынылды. Тәжірибелер, шабуылдардың салдарынан туындаған тербелмелі TCP кезек өлшемiнен қазіргі RED-қа ұқсас алгоритмдердің төмен жылдамдықты қызметтен бас тарту (LDoS) шабуылдары кезінде әлдеқайда осал екенін растады. RRED алгоритмі төмен жылдамдықты қызметтен бас тарту шабуылдары кезінде TCP өнімділігін айтарлықтай жақсарта алады.