Autor: Thorsten Leemhuis (Copyright (c) 2012 Heise Media UK Ltd.)
Traduzido: Marcelo Soares Souza (Dúvidas e melhorias na tradução envie por E-mail)
Originalmente: http://h-online.com/-1625047
Um novo escalonador de pacote foi criado para ajudar a evitar “buffer bloat” e o recurso "Early Retransmit" oferece uma recuperação rápida de conexões após a perda de pacote TCP. O driver E1000e traz suporte aos chips de rede da nova geração da Intel para desktop e notebook.
Para iniciar a semana, Linus Torvalds publicou[1] o quarto candidato de lançamento para o Linux 3.5. No anúncio de lançamento, Torvalds diz que houveram mais de 200 commits, porém ressalta que "estes são realmente pequenos e insignificantes".
Como sempre, os desenvolvedores do kernel integraram todas as novas funcionalidades para o Linux 3.5 no início do ciclo de desenvolvimento. O "Em Breve no Kernel do Linux" pode, portanto, fornecer uma visão geral das mais importantes novidades do Linux 3.5 - os desenvolvedores do kernel raramente adicionam, ou revertem, qualquer mudança maior durante a fase de estabilização.
O "Em Breve no Kernel do Linux" irá apresentar, na série habitual de artigos, as várias áreas do Kernel. O primeiro artigo abaixo descreve as mudanças mais importantes no Kernel para infraestrutura de redes e drivers; os artigos subsequentes irão discutir os drivers gráficos, sistemas de arquivos, suporte a armazenamento, código de arquitetura e drivers de dispositivos diversos.
Evitando o buffer bloat
O subsistema de redes agora inclui o "Codel[2]", uma implementação do escalonador de pacotes "Controlled Delay Active Queue Management (AQM)" que foi concebido[3] por Kathleen Nichols e Van Jacobson[4]. O escalonador "Fair Queue Codel AQM[5]", que também é baseado nos mecanismos do Codel, também foi integrado no Linux 3.5, mas funcionam de maneiras diferentes.
Ambos os escalonadores utilizam abordagens ligeiramente diferentes dos escalonadores anteriores quando priorizam o envio ou encaminhamento de pacotes de redes e foram projetados para evitar o problema de "buffer bloat"[6]; este problema podem causar grande quantidade de latência e problemas de conexão devido ao excessivo cache em chips recentes de rede. LWN.net provê algum background[7] sobre este problema, e sobre a abordagem usada no Codel.
Latência TCP
Um desenvolvedor do Google adicionou uma funcionalidade "Early Retransmit[8]" (ER) à pilha de protocolo TCP, este pode acelerar a recuperação de uma conexão quando pacotes são perdidos, conforme descrito na RFC 5827[9]; contudo, a implementação integrada foi ligeiramente modificada para evitar alguns problemas com o algorítimo descrito na RFC.
O "Early Retransmit" pode ser habilitado através do valor "tcp_early_retrans" no sysctl, e em testes realizados reduziu a latência TCP em até 8.5%, como descrito na seção 6 do artigo "Proportional Rate Reduction for TCP[10]", escrito por funcionários da Google para o IMC 2011. A funcionalidade "Proportional Rate Reduction (PRR)" descrita neste artigo já faz parte do Kernel desde a versão 3.2[11].
Drivers
O driver E1000e foi estendido[12] para suportar i217 PHY, que deve funcionar com o Intel Lynx Point Platform Controller Hub (PCH) - esta linha de chipset para placas mães é destinado principalmente para processadores Intel Haswell[13] e deve ser lançado em paralelo com estes processadores no primeiro semestre de 2013. O driver para placas de rede Gigabit Ethernet Realtek R8169 suportam agora o RTL8402[14] e RTL8411[15], e o driver Mwifiex Wi-Fi pode ser utilizado pelo chip USB [16] Marvell USB8797.
Diversos
O driver de teaming que foi integrado no Linux 3.3[17] agora[18] oferece balanceamento de cargas.
A nova funcionalidade "TCP connection repair[19]" é projetada para evitar problemas de tráfego de rede que podem ocorrer quando um “container” é realocado para um host diferente; detalhes podem ser encontrados no artigo na LWN.net[20].
O código de NFC (Near Field Communication) agora suporta[21][22] componentes NFC que suportam o Host Controller Interface (HCI).
Os desenvolvedores removeram o suporte para dispositivos de redes que segue os padrões Token Ring ou Econet (1[23], 2[24], 3[25]); ambas as tecnologias já podem ser encontrados quase que exclusivamente em museus de TI.
O mantenedor do subsistema de redes David Miller menciona outras mudanças no email[26] que acompanha sua requisição de Git-Pull para o Linux 3.5.
Links
[1] http://thread.gmane.org/gmane.linux.kernel/1317955
[2] http://git.kernel.org/linus/76e3cc126bb223013a6b9a0e2a51238d1ef2e409
[3] http://queue.acm.org/detail.cfm?id=2209336
[4] http://en.wikipedia.org/wiki/Van_Jacobson
[5] http://git.kernel.org/linus/4b549a2ef4bef9965d97cbd992ba67930cd3e0fe
[6] http://www.h-online.com/open/features/Kernel-Log-Updates-to-Intel-graphics-drivers-and-util-linux-1444731.html?artikelseite=3
[7] http://lwn.net/Articles/496509/
[8] http://git.kernel.org/linus/eed530b6c67624db3f2cf477bac7c4d005d8f7ba
[9] http://www.h-online.com/nettools/rfc/rfcs/rfc5827.shtml
[10] http://conferences.sigcomm.org/imc/2011/docs/p155.pdf
[11] http://www.h-online.com/open/features/Kernel-Log-Coming-in-3-2-Part-1-Networking-1379085.html
[12] http://git.kernel.org/linus/2fbe4526e5aafc9ffa5d85fa4749a7c5b22af6b2
[13] http://en.wikipedia.org/wiki/Haswell_%28microarchitecture%29
[14] http://git.kernel.org/linus/7e18dca16246b2891239cfc3c6e2dfcea715d353
[15] http://git.kernel.org/linus/b3d7b2f2f07ff0ab87442f2d499f2860ef59bfaa
[16] http://git.kernel.org/linus/4daffe3543667419294b6f22901b7255cbdebdf4
[17] http://www.h-online.com/open/features/Kernel-Log-Coming-in-3-3-Part-1-Networking-1421959.html
[18] http://git.kernel.org/linus/01d7f30a9f962573b6c91ed520c73fb30658d826
[19] http://git.kernel.org/linus/ee9952831cfd0bbe834f4a26489d7dce74582e37
[20] http://lwn.net/Articles/495304/
[21] http://git.kernel.org/linus/8b8d2e08bf0d50193931afd27482a59376b66b2b
[22] http://git.kernel.org/linus/0efbf7fb308d0c6f8419922850a2d0b45d4d4401
[23] http://git.kernel.org/linus/ee446fd5e6dafee4a16fd1bd345d2571dcfd6f5d
[24] http://git.kernel.org/linus/211ed865108e24697b44bee5daac502ee6bdd4a4
[25] http://git.kernel.org/linus/349f29d841dbae854bd7367be7c250401f974f47
[26] http://article.gmane.org/gmane.linux.kernel/1300605