SlideShare uma empresa Scribd logo
Google Summer of Code     O que é o Google Summer of Code?       A instituição: "The FreeBSD Project" Sistemas Unix      Porque foi a plataforma escolhida      FreeBSD - Por que será que o Google tem 10k+ instalações em       suas redes de produção?   Teste de software no mundo código aberto      Tipos de testes mais usados TCP/IP      Uma visão de alto nível dessa suíte de protocolos      TCP/IP Regression Test – tcptest (python)‏  
O que é o Google Summer of Code? Quais são os objetivos do programa? Como funciona o GSoC? Pagamento Projetos participantes Estatísticas do GSoC Google Summer of Code     O que é o Google Summer of Code?
O que é o Google Summer of Code? O Google Summer of Code é um programa criado para incentivar alunos de faculdade a participar do desenvolvimento de projetos open source Google Summer of Code     O que é o Google Summer of Code?
Quais são os objetivos do programa? Inspirar desenvolvedores a participar de projetos código aberto. Prover a alunos de faculdade financiamento para trabalhar em seus projetos de faculdade. Trazer mais código aberto criado e distribuido em beneƒício de todos.  Ajudar os projetos código aberto a identificar e envolver novos desenvolvedores e commiters. Google Summer of Code     O que é o Google Summer of Code?
Como funciona o GSoC? Princípios O verão como oportunidade de trabalhos Trabalhando no verão com projetos código aberto Exposição com o mundo real Anuncio > organizações > alunos/orgs > org rank > google slots > adequação > codificação > avaliação > codificação > avaliação final. Google Summer of Code     O que é o Google Summer of Code?
Projetos participantes Sistemas Operacionais Mobiles Bancos de dados Internet e Redes Video, foto e TV Multimídia, Audio e Música Trabalhos Científicos e publicações Tecnologias Web Games Google Summer of Code     O que é o Google Summer of Code?
Organizações Google MINIX Debian  Gentoo  openSUSE PostgreSQL MySQL PHP Python Software Foundation The Perl Foundation Mono Project The Eclipse Foundation  Subclipse Subversion Mercurial The Apache Foundation  WebKit Django Joomla  Plone Foundation Zope Foundation, Inc WordPress MoinMoin Wiki Project The FreeBSD Project  The NetBSD Project The X.Org Foundation GNOME  KDE The Mozilla Project The Wine Project Nmap  GIMP
Estatísticas Organizações 2006 ==> 100 2007 ==> 130 2008 ==> 177* Estudantes 2006 ==> 630 2007 ==> 900 2008 ==> 1125 *contadas na página  http://code.google.com/soc/2008/  em 17/09/08 as 11:23h Google Summer of Code     O que é o Google Summer of Code?
Google Summer of Code     O que é o Google Summer of Code?       A instituição: "The FreeBSD Project" Sistemas Unix      Porque foi a plataforma escolhida      FreeBSD - Por que será que o Google tem 10k+ instalações em       suas redes de produção?   Teste de software no mundo código aberto      Tipos de testes mais usados TCP/IP      Uma visão de alto nível dessa suíte de protocolos      TCP/IP Regression Test – tcptest (python)‏  
A instituição: "The FreeBSD Project" 19 Estudantes em 2008 “ The FreeBSD Project” é uma organização grande e madura. Inicio-se 15 anos atrás, em 1993, mas é baseado no trabalhado realizado na faculdade de Berkeley,  já com 30 anos (1978).  Atualmente por volta de 300 desenvolvedores tem acesso de escruta ao sistema de controle de versão de produção; Milhares com acesso aos servidores Perforce para experimentos e/ou desenvolvimento de  software para o freebsd; (gsoc)‏ Mentoring ativo. Não só GsoC, Mailing, blogs, ircs. Google Summer of Code     A instituição: "The FreeBSD Project"
Google Summer of Code     O que é o Google Summer of Code?       A instituição: "The FreeBSD Project" Sistemas Unix      Porque foi a plataforma escolhida      FreeBSD - Por que será que o Google tem 10k+ instalações em       suas redes de produção?   Teste de software no mundo código aberto      Tipos de testes mais usados TCP/IP      Uma visão de alto nível dessa suíte de protocolos      TCP/IP Regression Test – tcptest (python)‏  
Pilha TCP/IP confiável Codigo fonte aberto e livre Facilidade de programação e debug Facilidade de configuração do tcp/ip Sistemas Unix      Porque foi a plataforma escolhida   Porque foi a plataforma escolhida
Google Summer of Code     O que é o Google Summer of Code?       A instituição: "The FreeBSD Project" Sistemas Unix      Porque foi a plataforma escolhida      FreeBSD - Por que será que o Google tem 10k+ instalações em       suas redes de produção?   Teste de software no mundo código aberto      Tipos de testes mais usados TCP/IP      Uma visão de alto nível dessa suíte de protocolos      TCP/IP Regression Test – tcptest (python)‏  
Relevancia para o Google:  O Google tem milhares de dispositivos baseados no FreeBSD ajudando a rodar as redes de produção, MacOS X laptops e alguns servidores FreeBSD de teste e monitoramento. Pesquisas no FreeBSD envolvendo segurança, redes e outras áreas tem sido regularmente adotadas no Google e nos 30 de história por outros sistemas código aberto.. Um exemplo recente foi o JEMalloc. usado no Firefox e largamente usado no Google. Segundo a Google este é um momento excelente para o FreeBSD.  Grandes empresas já usam em suas soluções embedded: juniper, NetApp, Force 10 e Cisco. Sistemas Unix      FreeBSD - Por que será que o Google tem 10k+ instalações em       suas redes de produção?   FreeBSD - 10k+ instalações no Google?
Sistemas Unix      FreeBSD - Por que será que o Google tem 10k+ instalações em       suas redes de produção?   FreeBSD - 10k+ instalações no Google? http://bsd.slashdot.org/bsd/08/03/06/1313218.shtml
Sistemas Unix      FreeBSD - Por que será que o Google tem 10k+ instalações em       suas redes de produção?   FreeBSD - 10k+ instalações no Google? http://bsd.slashdot.org/bsd/08/03/06/1313218.shtml
Google Summer of Code     O que é o Google Summer of Code?       A instituição: "The FreeBSD Project" Sistemas Unix      Porque foi a plataforma escolhida      FreeBSD - Por que será que o Google tem 10k+ instalações em       suas redes de produção?   Teste de software no mundo código aberto      Tipos de testes mais usados TCP/IP      Uma visão de alto nível dessa suíte de protocolos      TCP/IP Regression Test – tcptest (python)‏  
Teste de Unidade Teste de Regressão Teste de Performance / Estresse Teste de Segurança Teste de Internacionalização Homologação? Release Candidate Teste de software no mundo código aberto      Tipos de testes mais usados   Tipos de testes mais usados
Google Summer of Code     O que é o Google Summer of Code?       A instituição: "The FreeBSD Project" Sistemas Unix      Porque foi a plataforma escolhida      FreeBSD - Por que será que o Google tem 10k+ instalações em       suas redes de produção?   Teste de software no mundo código aberto      Tipos de testes mais usados TCP/IP      Uma visão de alto nível dessa suíte de protocolos      TCP/IP Regression Test – tcptest (python)‏  
TCP/IP      Uma visão de alto nível dessa suíte de protocolos Uma visão de alto nível dessa suíte de protocolos TCP/UDP Exemplo básico [userland] browser solicita conexão tcp com o servidor [os] three way handshake [userland] browser solicita conteúdo [os] solicita e retorna ao browser [os] encerra a conexão
Google Summer of Code     O que é o Google Summer of Code?       A instituição: "The FreeBSD Project" Sistemas Unix      Porque foi a plataforma escolhida      FreeBSD - Por que será que o Google tem 10k+ instalações em       suas redes de produção?   Teste de software no mundo código aberto      Tipos de testes mais usados TCP/IP      Uma visão de alto nível dessa suíte de protocolos      TCP/IP Regression Test – tcptest (python)‏  
TCP/IP      TCP/IP Regression Test – tcptest (python)‏ TCP/IP Regression Test – tcptest (python)‏ O que é? Ferramenta de teste Tecnologias: python > pyrex > libpcap > pcs > unittest > tcptest Como funciona: libpcap > pyrex > pcs > tcptest Exemplo
#constants self.thisside = 0 self.thatside = 1 self.tcb = tcptest.tcb()‏ self.tcb.ip = { self.thisside : pcs.inet_atol(&quot;10.211.55.210&quot;) , \ self.thatside : pcs.inet_atol(&quot;10.211.55.220&quot;)} self.tcb.ipid = { self.thisside : random.randrange(1, (1<<16)-1) , \ self.thatside : 0} self.tcb.tcpport = { self.thisside : random.randrange(50000, 60000) , \ self.thatside : 9} self.tcb.tcpsequence = { self.thisside : random.randrange(1,(1<<32)-1),\ self.thatside : 0} self.tcb.ether = \ { self.thisside : ethernet.ether_atob(&quot;00:1c:42:9d:57:c9&quot;) , \ self.thatside : ethernet.ether_atob(&quot;00:1c:42:db:c5:22&quot;) } self.tcb.output = { self.thisside : pcs.PcapConnector(&quot;ed0&quot;) , \ self.thatside : pcs.PcapConnector(&quot;ed0&quot;) }
def threewayhandshakenoopt(self, tcb, from_, to):  #  #--->Sending SYN (ipsyn, tcpsyn) = createsyn(self, tcb, from_, to)‏ createwritepacket(self, tcb, ipsyn, tcpsyn, from_, to)‏ #  #--->Receivinig SYN + ACK (ipsynack, tcpsynack) = receive(self, tcb, from_, to)  #Some blackmagic to use assertSequenceAcknowledgmentOK at SYN tcb.tcpsequence[ to ] = tcpsynack.sequence  assertSequenceAcknowledgmentOK(self, tcb, tcpsynack, from_, to)‏ assertSynPresent(self, tcpsynack)‏ tcb.tcpsequence[ to ] = tcpsynack.sequence + 1 # #-->Sending ACK (ipack, tcpack) = createip(self, tcb, from_, to)‏ createwritepacket(self, tcb, ipack, tcpack, from_, to)‏
def createsyn(self, tcb, from_, to): &quot;&quot;&quot;Create tcp syn flag expertise&quot;&quot;&quot; (ip, tcp) = createip(self, tcb, from_, to)‏ #business tcp.syn = 1 tcp.ack = 0 tcb.tcpsequence[ from_ ] += 1 return (ip, tcp)‏ def createip(self, tcb, from_, to): &quot;&quot;&quot;Create ip packet tcp is also created here&quot;&quot;&quot; ip1 = ipv4.ipv4()‏ ip1.version = 4  ip1.hlen = 5  ip1.tos = 0  ip1.id = tcb.ipid[ from_ ]  ip1.flags = 0  ip1.offset = 0 ip1.ttl = 64 ip1.protocol = pcs.IPPROTO_TCP ip1.src = tcb.ip[ from_ ] ip1.dst = tcb.ip[ to ] ip1.length = len(ip1.bytes)‏ # tcp here tcp1 = createtcp(self, tcb, ip1, from_, to)‏ ip1.length = len(ip1.bytes) + len(tcp1.bytes)  #ip1.checksum = ip_cksum(ip1) #doind this at checkout(createwritepacket)‏ return (ip1, tcp1)
def createtcp(self, tcb, ip, from_, to): &quot;&quot;&quot;Create tcp packet&quot;&quot;&quot; tcp1 = tcp.tcp()‏ tcp1.sport = tcb.tcpport[ from_ ]  tcp1.dport = tcb.tcpport[ to ] tcp1.sequence = tcb.tcpsequence[ from_ ]  tcp1.ack_number = tcb.tcpsequence[ to ] tcp1.offset = 5 tcp1.urgent = 0 tcp1.ack = 1 tcp1.push = 0 tcp1.reset = 0 tcp1.syn = 0 tcp1.fin = 0 tcp1.window = (1<<16)-1 tcp1.urg_point = 0 #tcp1.options #tcp1.checksum = tcp_cksum(tcp1 , ip) #doind this at checkout(createwrite)‏ return tcp1 def createwritepacket(self, tcb, ip, tcp, from_, to): ether = createethernet(self, tcb, from_, to)‏ tcp.checksum = tcp_cksum(tcp , ip)  ip.length = len(ip.bytes) + len(tcp.bytes)  ip.checksum = ip_cksum(ip)‏ packet = pcs.Chain([ ether, ip, tcp ])‏ tcb.output[ from_ ].write(packet.bytes, len(packet.bytes))‏
Obrigado! Perguntas? Contatos Victor  Bilouro email: [email_address]  (msn, gtalk)‏ site: bilouro.com currículo: bilouro.com/curriculo.doc resume: bilouro.com/resume.doc

Mais conteúdo relacionado

PDF
Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história ...
PDF
Migração de Banco de Dados - Oracle para MongoDB - TDC2014
PDF
Python com baterias incluídas v2.0
PDF
Py S60
PDF
Globo.com - Porque amamos open-source?
ODP
The zen of python 2010
PDF
Virtualenv e Pip
PPTX
Introdução ao Testbed FIBRE e visão de futuro
Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história ...
Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Python com baterias incluídas v2.0
Py S60
Globo.com - Porque amamos open-source?
The zen of python 2010
Virtualenv e Pip
Introdução ao Testbed FIBRE e visão de futuro

Destaque (20)

PPTX
Kanban - Migrando do Scrum para o Kanban
PDF
Desenvolvendos Apps para iPad - TDC 2010
PDF
Design for developers
PPT
Nanavegacao rede
PPTX
1 presentación
PPTX
Las 10 claves Dani e Ilan
PPTX
Collage computacion 1°
DOCX
Ropa zara
PPT
Uyhe
PPTX
Making carrot salad
PDF
WOT - 05_socialmediatoolkit (custo-benefício)
PPT
Els ocells fent panellets
PPTX
Imagine
PDF
Eivanak House
PPTX
Power point trabajo final
PPT
ODP
Blue Hole. Presentacion prueba
PDF
NOM-FITO-001-2001
PDF
20121106
Kanban - Migrando do Scrum para o Kanban
Desenvolvendos Apps para iPad - TDC 2010
Design for developers
Nanavegacao rede
1 presentación
Las 10 claves Dani e Ilan
Collage computacion 1°
Ropa zara
Uyhe
Making carrot salad
WOT - 05_socialmediatoolkit (custo-benefício)
Els ocells fent panellets
Imagine
Eivanak House
Power point trabajo final
Blue Hole. Presentacion prueba
NOM-FITO-001-2001
20121106
Anúncio

Semelhante a GSoC tcptest - TCP/IP Regression Test (20)

ZIP
Python e Django na Globo.com
PDF
Treinamento Android Embarcado
ODP
Calourada2010
PDF
Escalando uma plataforma poliglota - QConSP 17
PDF
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...
PPTX
ASP.NET vNext no .NET Architects Days 2014
PPT
CEPUG 2 - Bem-vindo a Framework CodeIgniter
PDF
PT-BR - Lauching a Public PaaS on Open Source Getup & OpenShift Origin - FISL14
PDF
Python e suas aplicações
PDF
Otimização de Aplicações Android
PPTX
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
PDF
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
PDF
Android Dev Conference 2017 - Automação de Testes na Cloud
PPTX
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
PDF
Introdução a linguagem Python
PDF
Semana Acadêmica ICET - Feevale - 12/04/2014
PDF
Práticas de Agilidade e QA na Comunidade KDE
ODP
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
PDF
Realidade Aumentada
PDF
Criando uma grid para execução de testes paralelo com Appium
Python e Django na Globo.com
Treinamento Android Embarcado
Calourada2010
Escalando uma plataforma poliglota - QConSP 17
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...
ASP.NET vNext no .NET Architects Days 2014
CEPUG 2 - Bem-vindo a Framework CodeIgniter
PT-BR - Lauching a Public PaaS on Open Source Getup & OpenShift Origin - FISL14
Python e suas aplicações
Otimização de Aplicações Android
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Android Dev Conference 2017 - Automação de Testes na Cloud
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Introdução a linguagem Python
Semana Acadêmica ICET - Feevale - 12/04/2014
Práticas de Agilidade e QA na Comunidade KDE
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
Realidade Aumentada
Criando uma grid para execução de testes paralelo com Appium
Anúncio

Último (16)

PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Arquitetura de computadores - Memórias Secundárias
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Processos na gestão de transportes, TM100 Col18
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Arquitetura de computadores - Memórias Secundárias
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
COBITxITIL-Entenda as diferença em uso governança TI
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Custos e liquidação no SAP Transportation Management, TM130 Col18
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14

GSoC tcptest - TCP/IP Regression Test

  • 1. Google Summer of Code    O que é o Google Summer of Code?     A instituição: &quot;The FreeBSD Project&quot; Sistemas Unix     Porque foi a plataforma escolhida     FreeBSD - Por que será que o Google tem 10k+ instalações em      suas redes de produção?   Teste de software no mundo código aberto    Tipos de testes mais usados TCP/IP    Uma visão de alto nível dessa suíte de protocolos     TCP/IP Regression Test – tcptest (python)‏  
  • 2. O que é o Google Summer of Code? Quais são os objetivos do programa? Como funciona o GSoC? Pagamento Projetos participantes Estatísticas do GSoC Google Summer of Code    O que é o Google Summer of Code?
  • 3. O que é o Google Summer of Code? O Google Summer of Code é um programa criado para incentivar alunos de faculdade a participar do desenvolvimento de projetos open source Google Summer of Code    O que é o Google Summer of Code?
  • 4. Quais são os objetivos do programa? Inspirar desenvolvedores a participar de projetos código aberto. Prover a alunos de faculdade financiamento para trabalhar em seus projetos de faculdade. Trazer mais código aberto criado e distribuido em beneƒício de todos. Ajudar os projetos código aberto a identificar e envolver novos desenvolvedores e commiters. Google Summer of Code    O que é o Google Summer of Code?
  • 5. Como funciona o GSoC? Princípios O verão como oportunidade de trabalhos Trabalhando no verão com projetos código aberto Exposição com o mundo real Anuncio > organizações > alunos/orgs > org rank > google slots > adequação > codificação > avaliação > codificação > avaliação final. Google Summer of Code    O que é o Google Summer of Code?
  • 6. Projetos participantes Sistemas Operacionais Mobiles Bancos de dados Internet e Redes Video, foto e TV Multimídia, Audio e Música Trabalhos Científicos e publicações Tecnologias Web Games Google Summer of Code    O que é o Google Summer of Code?
  • 7. Organizações Google MINIX Debian Gentoo openSUSE PostgreSQL MySQL PHP Python Software Foundation The Perl Foundation Mono Project The Eclipse Foundation Subclipse Subversion Mercurial The Apache Foundation WebKit Django Joomla Plone Foundation Zope Foundation, Inc WordPress MoinMoin Wiki Project The FreeBSD Project The NetBSD Project The X.Org Foundation GNOME KDE The Mozilla Project The Wine Project Nmap GIMP
  • 8. Estatísticas Organizações 2006 ==> 100 2007 ==> 130 2008 ==> 177* Estudantes 2006 ==> 630 2007 ==> 900 2008 ==> 1125 *contadas na página http://code.google.com/soc/2008/ em 17/09/08 as 11:23h Google Summer of Code    O que é o Google Summer of Code?
  • 9. Google Summer of Code    O que é o Google Summer of Code?     A instituição: &quot;The FreeBSD Project&quot; Sistemas Unix     Porque foi a plataforma escolhida     FreeBSD - Por que será que o Google tem 10k+ instalações em      suas redes de produção?   Teste de software no mundo código aberto    Tipos de testes mais usados TCP/IP    Uma visão de alto nível dessa suíte de protocolos     TCP/IP Regression Test – tcptest (python)‏  
  • 10. A instituição: &quot;The FreeBSD Project&quot; 19 Estudantes em 2008 “ The FreeBSD Project” é uma organização grande e madura. Inicio-se 15 anos atrás, em 1993, mas é baseado no trabalhado realizado na faculdade de Berkeley, já com 30 anos (1978). Atualmente por volta de 300 desenvolvedores tem acesso de escruta ao sistema de controle de versão de produção; Milhares com acesso aos servidores Perforce para experimentos e/ou desenvolvimento de software para o freebsd; (gsoc)‏ Mentoring ativo. Não só GsoC, Mailing, blogs, ircs. Google Summer of Code    A instituição: &quot;The FreeBSD Project&quot;
  • 11. Google Summer of Code    O que é o Google Summer of Code?     A instituição: &quot;The FreeBSD Project&quot; Sistemas Unix     Porque foi a plataforma escolhida     FreeBSD - Por que será que o Google tem 10k+ instalações em      suas redes de produção?   Teste de software no mundo código aberto    Tipos de testes mais usados TCP/IP    Uma visão de alto nível dessa suíte de protocolos     TCP/IP Regression Test – tcptest (python)‏  
  • 12. Pilha TCP/IP confiável Codigo fonte aberto e livre Facilidade de programação e debug Facilidade de configuração do tcp/ip Sistemas Unix     Porque foi a plataforma escolhida   Porque foi a plataforma escolhida
  • 13. Google Summer of Code    O que é o Google Summer of Code?     A instituição: &quot;The FreeBSD Project&quot; Sistemas Unix     Porque foi a plataforma escolhida     FreeBSD - Por que será que o Google tem 10k+ instalações em      suas redes de produção?   Teste de software no mundo código aberto    Tipos de testes mais usados TCP/IP    Uma visão de alto nível dessa suíte de protocolos     TCP/IP Regression Test – tcptest (python)‏  
  • 14. Relevancia para o Google: O Google tem milhares de dispositivos baseados no FreeBSD ajudando a rodar as redes de produção, MacOS X laptops e alguns servidores FreeBSD de teste e monitoramento. Pesquisas no FreeBSD envolvendo segurança, redes e outras áreas tem sido regularmente adotadas no Google e nos 30 de história por outros sistemas código aberto.. Um exemplo recente foi o JEMalloc. usado no Firefox e largamente usado no Google. Segundo a Google este é um momento excelente para o FreeBSD. Grandes empresas já usam em suas soluções embedded: juniper, NetApp, Force 10 e Cisco. Sistemas Unix     FreeBSD - Por que será que o Google tem 10k+ instalações em      suas redes de produção?   FreeBSD - 10k+ instalações no Google?
  • 15. Sistemas Unix     FreeBSD - Por que será que o Google tem 10k+ instalações em      suas redes de produção?   FreeBSD - 10k+ instalações no Google? http://bsd.slashdot.org/bsd/08/03/06/1313218.shtml
  • 16. Sistemas Unix     FreeBSD - Por que será que o Google tem 10k+ instalações em      suas redes de produção?   FreeBSD - 10k+ instalações no Google? http://bsd.slashdot.org/bsd/08/03/06/1313218.shtml
  • 17. Google Summer of Code    O que é o Google Summer of Code?     A instituição: &quot;The FreeBSD Project&quot; Sistemas Unix     Porque foi a plataforma escolhida     FreeBSD - Por que será que o Google tem 10k+ instalações em      suas redes de produção?   Teste de software no mundo código aberto    Tipos de testes mais usados TCP/IP    Uma visão de alto nível dessa suíte de protocolos     TCP/IP Regression Test – tcptest (python)‏  
  • 18. Teste de Unidade Teste de Regressão Teste de Performance / Estresse Teste de Segurança Teste de Internacionalização Homologação? Release Candidate Teste de software no mundo código aberto    Tipos de testes mais usados   Tipos de testes mais usados
  • 19. Google Summer of Code    O que é o Google Summer of Code?     A instituição: &quot;The FreeBSD Project&quot; Sistemas Unix     Porque foi a plataforma escolhida     FreeBSD - Por que será que o Google tem 10k+ instalações em      suas redes de produção?   Teste de software no mundo código aberto    Tipos de testes mais usados TCP/IP    Uma visão de alto nível dessa suíte de protocolos     TCP/IP Regression Test – tcptest (python)‏  
  • 20. TCP/IP    Uma visão de alto nível dessa suíte de protocolos Uma visão de alto nível dessa suíte de protocolos TCP/UDP Exemplo básico [userland] browser solicita conexão tcp com o servidor [os] three way handshake [userland] browser solicita conteúdo [os] solicita e retorna ao browser [os] encerra a conexão
  • 21. Google Summer of Code    O que é o Google Summer of Code?     A instituição: &quot;The FreeBSD Project&quot; Sistemas Unix     Porque foi a plataforma escolhida     FreeBSD - Por que será que o Google tem 10k+ instalações em      suas redes de produção?   Teste de software no mundo código aberto    Tipos de testes mais usados TCP/IP    Uma visão de alto nível dessa suíte de protocolos     TCP/IP Regression Test – tcptest (python)‏  
  • 22. TCP/IP    TCP/IP Regression Test – tcptest (python)‏ TCP/IP Regression Test – tcptest (python)‏ O que é? Ferramenta de teste Tecnologias: python > pyrex > libpcap > pcs > unittest > tcptest Como funciona: libpcap > pyrex > pcs > tcptest Exemplo
  • 23. #constants self.thisside = 0 self.thatside = 1 self.tcb = tcptest.tcb()‏ self.tcb.ip = { self.thisside : pcs.inet_atol(&quot;10.211.55.210&quot;) , \ self.thatside : pcs.inet_atol(&quot;10.211.55.220&quot;)} self.tcb.ipid = { self.thisside : random.randrange(1, (1<<16)-1) , \ self.thatside : 0} self.tcb.tcpport = { self.thisside : random.randrange(50000, 60000) , \ self.thatside : 9} self.tcb.tcpsequence = { self.thisside : random.randrange(1,(1<<32)-1),\ self.thatside : 0} self.tcb.ether = \ { self.thisside : ethernet.ether_atob(&quot;00:1c:42:9d:57:c9&quot;) , \ self.thatside : ethernet.ether_atob(&quot;00:1c:42:db:c5:22&quot;) } self.tcb.output = { self.thisside : pcs.PcapConnector(&quot;ed0&quot;) , \ self.thatside : pcs.PcapConnector(&quot;ed0&quot;) }
  • 24. def threewayhandshakenoopt(self, tcb, from_, to): # #--->Sending SYN (ipsyn, tcpsyn) = createsyn(self, tcb, from_, to)‏ createwritepacket(self, tcb, ipsyn, tcpsyn, from_, to)‏ # #--->Receivinig SYN + ACK (ipsynack, tcpsynack) = receive(self, tcb, from_, to) #Some blackmagic to use assertSequenceAcknowledgmentOK at SYN tcb.tcpsequence[ to ] = tcpsynack.sequence assertSequenceAcknowledgmentOK(self, tcb, tcpsynack, from_, to)‏ assertSynPresent(self, tcpsynack)‏ tcb.tcpsequence[ to ] = tcpsynack.sequence + 1 # #-->Sending ACK (ipack, tcpack) = createip(self, tcb, from_, to)‏ createwritepacket(self, tcb, ipack, tcpack, from_, to)‏
  • 25. def createsyn(self, tcb, from_, to): &quot;&quot;&quot;Create tcp syn flag expertise&quot;&quot;&quot; (ip, tcp) = createip(self, tcb, from_, to)‏ #business tcp.syn = 1 tcp.ack = 0 tcb.tcpsequence[ from_ ] += 1 return (ip, tcp)‏ def createip(self, tcb, from_, to): &quot;&quot;&quot;Create ip packet tcp is also created here&quot;&quot;&quot; ip1 = ipv4.ipv4()‏ ip1.version = 4 ip1.hlen = 5 ip1.tos = 0 ip1.id = tcb.ipid[ from_ ] ip1.flags = 0 ip1.offset = 0 ip1.ttl = 64 ip1.protocol = pcs.IPPROTO_TCP ip1.src = tcb.ip[ from_ ] ip1.dst = tcb.ip[ to ] ip1.length = len(ip1.bytes)‏ # tcp here tcp1 = createtcp(self, tcb, ip1, from_, to)‏ ip1.length = len(ip1.bytes) + len(tcp1.bytes) #ip1.checksum = ip_cksum(ip1) #doind this at checkout(createwritepacket)‏ return (ip1, tcp1)
  • 26. def createtcp(self, tcb, ip, from_, to): &quot;&quot;&quot;Create tcp packet&quot;&quot;&quot; tcp1 = tcp.tcp()‏ tcp1.sport = tcb.tcpport[ from_ ] tcp1.dport = tcb.tcpport[ to ] tcp1.sequence = tcb.tcpsequence[ from_ ] tcp1.ack_number = tcb.tcpsequence[ to ] tcp1.offset = 5 tcp1.urgent = 0 tcp1.ack = 1 tcp1.push = 0 tcp1.reset = 0 tcp1.syn = 0 tcp1.fin = 0 tcp1.window = (1<<16)-1 tcp1.urg_point = 0 #tcp1.options #tcp1.checksum = tcp_cksum(tcp1 , ip) #doind this at checkout(createwrite)‏ return tcp1 def createwritepacket(self, tcb, ip, tcp, from_, to): ether = createethernet(self, tcb, from_, to)‏ tcp.checksum = tcp_cksum(tcp , ip) ip.length = len(ip.bytes) + len(tcp.bytes) ip.checksum = ip_cksum(ip)‏ packet = pcs.Chain([ ether, ip, tcp ])‏ tcb.output[ from_ ].write(packet.bytes, len(packet.bytes))‏
  • 27. Obrigado! Perguntas? Contatos Victor Bilouro email: [email_address] (msn, gtalk)‏ site: bilouro.com currículo: bilouro.com/curriculo.doc resume: bilouro.com/resume.doc