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

Destaque (20)

PPTX
Kanban - Migrando do Scrum para o Kanban
Victor Hugo Bilouro
 
PDF
Desenvolvendos Apps para iPad - TDC 2010
Felipe Cypriano
 
PDF
Design for developers
Johan Ronsse
 
PPT
Nanavegacao rede
myrianlaste
 
PPTX
1 presentación
leonidaspailiacho
 
PPTX
Las 10 claves Dani e Ilan
Pablo Fernandez Cultraro
 
PPTX
Collage computacion 1°
Hugo Tobias Gallardo
 
DOCX
Ropa zara
cordovaamalia
 
PPT
Uyhe
azthutik
 
PPTX
Making carrot salad
sueduffy
 
PDF
WOT - 05_socialmediatoolkit (custo-benefício)
WOT - Social Web Contents
 
PPT
Els ocells fent panellets
Carme Mori
 
PPTX
Imagine
pepebarreirob
 
PDF
Eivanak House
aban1348
 
PPTX
Power point trabajo final
Silebruno
 
PPT
Derecho e historia
Juan Sebastian Fernandez Giangreco
 
ODP
Blue Hole. Presentacion prueba
Lydialocas
 
PDF
NOM-FITO-001-2001
Erwin Navarrete
 
PDF
20121106
Norberto Gallo
 
Kanban - Migrando do Scrum para o Kanban
Victor Hugo Bilouro
 
Desenvolvendos Apps para iPad - TDC 2010
Felipe Cypriano
 
Design for developers
Johan Ronsse
 
Nanavegacao rede
myrianlaste
 
1 presentación
leonidaspailiacho
 
Las 10 claves Dani e Ilan
Pablo Fernandez Cultraro
 
Collage computacion 1°
Hugo Tobias Gallardo
 
Ropa zara
cordovaamalia
 
Uyhe
azthutik
 
Making carrot salad
sueduffy
 
WOT - 05_socialmediatoolkit (custo-benefício)
WOT - Social Web Contents
 
Els ocells fent panellets
Carme Mori
 
Imagine
pepebarreirob
 
Eivanak House
aban1348
 
Power point trabajo final
Silebruno
 
Blue Hole. Presentacion prueba
Lydialocas
 
NOM-FITO-001-2001
Erwin Navarrete
 
20121106
Norberto Gallo
 

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

PDF
Projeto TCOS - III ENSOL
Aécio Pires
 
PDF
ARTIGO ANÁLISE COMPARATIVA DE SISTEMAS DE CONTROLE DE VERSÕES BASEADOS EM CÓD...
Erivan de Sena Ramos
 
PDF
Programando Software Livre em C
Diego Santos
 
PDF
Oportunidades no Mercado com Linux e Software Livre
Eduardo Lima
 
PDF
Software para redes
leonardo sales
 
PDF
App Engine: aplicações escaláveis em poucas horas
Osvaldo Santana Neto
 
PDF
Programabilidade em Redes Virtualizadas
Ricardo Luis dos Santos
 
PDF
ReVir – Programabilidade em Redes Virtualizadas
Wanderson Paim
 
PDF
Apresentação sobre a COSINF
Allyson Barros
 
ODP
AApresentação do labMacambira.sf.net
Renato Fabbri
 
PDF
Luis Medinas Caixa Magica presentation 15/03/2010
Luis Medinas
 
PDF
Luis Medinas Caixa Magica presentation 25/03/2010
Luis Medinas
 
PDF
Apresentando o FreeBSD
flisolmaringa
 
PPTX
Trabalho sobre linux-Denise Guimarães
Cassandra Cristina
 
PDF
O mundo visto de dentro do Ruby
Vítor Avelino Dutra Magalhães
 
PDF
TDC 2012: Trilha - Android University Back end Android
Inael Rodrigues
 
PDF
PHP, Gearman e Memcache
Andre Golvea
 
KEY
Mini-curso de linux básico
Adriano Melo
 
PDF
Distribua seu código
Thiago Paes
 
PDF
Sistemas Distribuídos: RMI, CORBA e SOA
Líus Fontenelle Carneiro
 
Projeto TCOS - III ENSOL
Aécio Pires
 
ARTIGO ANÁLISE COMPARATIVA DE SISTEMAS DE CONTROLE DE VERSÕES BASEADOS EM CÓD...
Erivan de Sena Ramos
 
Programando Software Livre em C
Diego Santos
 
Oportunidades no Mercado com Linux e Software Livre
Eduardo Lima
 
Software para redes
leonardo sales
 
App Engine: aplicações escaláveis em poucas horas
Osvaldo Santana Neto
 
Programabilidade em Redes Virtualizadas
Ricardo Luis dos Santos
 
ReVir – Programabilidade em Redes Virtualizadas
Wanderson Paim
 
Apresentação sobre a COSINF
Allyson Barros
 
AApresentação do labMacambira.sf.net
Renato Fabbri
 
Luis Medinas Caixa Magica presentation 15/03/2010
Luis Medinas
 
Luis Medinas Caixa Magica presentation 25/03/2010
Luis Medinas
 
Apresentando o FreeBSD
flisolmaringa
 
Trabalho sobre linux-Denise Guimarães
Cassandra Cristina
 
O mundo visto de dentro do Ruby
Vítor Avelino Dutra Magalhães
 
TDC 2012: Trilha - Android University Back end Android
Inael Rodrigues
 
PHP, Gearman e Memcache
Andre Golvea
 
Mini-curso de linux básico
Adriano Melo
 
Distribua seu código
Thiago Paes
 
Sistemas Distribuídos: RMI, CORBA e SOA
Líus Fontenelle Carneiro
 
Anúncio

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