Intermediate Queueing

Intermediate Queueing, IMQ – „pośrednie urządzenie kolejkujące” używane w systemie operacyjnym Linux.

Jest to wirtualny interfejs wykorzystywany do sterowania ruchem wchodzącym lub wychodzącym z routera, na przykład z pomocą pakietu iproute2. W odróżnieniu od rzeczywistych interfejsów, takich jak eth czy ppp, IMQ:

IMQ umożliwia rozwiązanie dwóch problemów:

  • Sterowanie ruchem wchodzącym przez rzeczywisty interfejs. Jeśli chcemy ograniczyć ruch wchodzący przez rzeczywisty interfejs, to wystarczy za pomocą iptables cały ruch z niego skierować do imq i sterować ruchem na wyjściu imq, czyli faktycznie na wejściu interfejsu rzeczywistego.
  • Sterowanie ruchem przechodzącym przez więcej niż jeden interfejs rzeczywisty.

Przykład wydruku komendy ifconfig, obrazujący różnice pomiędzy interfejsem rzeczywistym a wirtualnym:

eth0      Link encap:Ethernet  HWaddr 00:E0:4C:75:01:E7
inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:2383775 errors:0 dropped:0 overruns:0 frame:0
TX packets:2583178 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:586768599 (559.5 Mb)  TX bytes:1718379338 (1638.7 Mb)
Interrupt:10 Base address:0x1000
 
imq0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
UP RUNNING NOARP  MTU:1500  Metric:1
RX packets:1852185 errors:0 dropped:0 overruns:0 frame:0
TX packets:1852185 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:30
RX bytes:1605531582 (1531.1 Mb)  TX bytes:1605531582 (1531.1 Mb)

Koncepcję IMQ opracował i dokonał pierwszej implementacji Martin Devera, następnie prace nad IMQ przejął Patrick McHardy, który potem zrezygnował z jego rozwijania. Obecnie IMQ sporadycznie jest dostosowywane do nowych wersji jądra systemu. Jako że koncepcja ta nie jest do końca poprawna z punktu widzenia inżynierii oprogramowania, nie została i prawdopodobnie nigdy nie zostanie włączona do głównego nurtu systemu - w zamian za to udostępniony został mechanizm Intermediate Functional Block.

Zobacz też

Linki zewnętrzne

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.