Google Summer of Code     O que é o Google Summer of Code?       A instituição: "The FreeBSD Project" Sistemas U...
<ul><ul><li>O que é o Google Summer of Code? </li></ul></ul><ul><ul><li>Quais são os objetivos do programa? </li></ul></ul...
O que é o Google Summer of Code? O Google Summer of Code é um programa criado para incentivar alunos de faculdade a partic...
Quais são os objetivos do programa? <ul><li>Inspirar desenvolvedores a participar de projetos código aberto. </li></ul><ul...
Como funciona o GSoC? <ul><li>Princípios </li></ul><ul><ul><li>O verão como oportunidade de trabalhos </li></ul></ul><ul><...
Projetos participantes <ul><li>Sistemas Operacionais </li></ul><ul><li>Mobiles </li></ul><ul><li>Bancos de dados </li></ul...
Organizações Google MINIX Debian  Gentoo  openSUSE PostgreSQL MySQL PHP Python Software Foundation The Perl Foundation Mon...
Estatísticas <ul><li>Organizações </li></ul><ul><li>2006 ==> 100 </li></ul><ul><li>2007 ==> 130 </li></ul><ul><li>2008 ==>...
Google Summer of Code     O que é o Google Summer of Code?       A instituição: &quot;The FreeBSD Project&quot; Sistemas U...
A instituição: &quot;The FreeBSD Project&quot; <ul><li>19 Estudantes em 2008 </li></ul><ul><li>“ The FreeBSD Project” é um...
Google Summer of Code     O que é o Google Summer of Code?       A instituição: &quot;The FreeBSD Project&quot; Sistemas U...
<ul><li>Pilha TCP/IP confiável </li></ul><ul><li>Codigo fonte aberto e livre </li></ul><ul><li>Facilidade de programação e...
Google Summer of Code     O que é o Google Summer of Code?       A instituição: &quot;The FreeBSD Project&quot; Sistemas U...
<ul><li>Relevancia para o Google:  O Google tem milhares de dispositivos baseados no FreeBSD ajudando a rodar as redes de ...
Sistemas Unix      FreeBSD - Por que será que o Google tem 10k+ instalações em       suas redes de produção?   FreeBSD - 1...
Sistemas Unix      FreeBSD - Por que será que o Google tem 10k+ instalações em       suas redes de produção?   FreeBSD - 1...
Google Summer of Code     O que é o Google Summer of Code?       A instituição: &quot;The FreeBSD Project&quot; Sistemas U...
<ul><li>Teste de Unidade </li></ul><ul><li>Teste de Regressão </li></ul><ul><li>Teste de Performance / Estresse </li></ul>...
Google Summer of Code     O que é o Google Summer of Code?       A instituição: &quot;The FreeBSD Project&quot; Sistemas U...
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 <ul><li>TC...
Google Summer of Code     O que é o Google Summer of Code?       A instituição: &quot;The FreeBSD Project&quot; Sistemas U...
TCP/IP      TCP/IP Regression Test – tcptest (python)‏ TCP/IP Regression Test – tcptest (python)‏ <ul><li>O que é? </li></...
#constants self.thisside = 0 self.thatside = 1 self.tcb = tcptest.tcb()‏ self.tcb.ip = { self.thisside : pcs.inet_atol(&qu...
def threewayhandshakenoopt(self, tcb, from_, to):  #  #--->Sending SYN (ipsyn, tcpsyn) = createsyn(self, tcb, from_, to)‏ ...
def createsyn(self, tcb, from_, to): &quot;&quot;&quot;Create tcp syn flag expertise&quot;&quot;&quot; (ip, tcp) = createi...
def createtcp(self, tcb, ip, from_, to): &quot;&quot;&quot;Create tcp packet&quot;&quot;&quot; tcp1 = tcp.tcp()‏ tcp1.spor...
Obrigado! Perguntas? Contatos Victor  Bilouro email: [email_address]  (msn, gtalk)‏ site: bilouro.com currículo: bilouro.c...
Próximos SlideShares
Carregando em…5
×

GSoC tcptest - TCP/IP Regression Test

1.753 visualizações

Publicada em

Google Summer of Code project made in python presentation

Publicada em: Tecnologia
0 comentários
3 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.753
No SlideShare
0
A partir de incorporações
0
Número de incorporações
46
Ações
Compartilhamentos
0
Downloads
15
Comentários
0
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

GSoC tcptest - TCP/IP Regression Test

  1. 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. 2. <ul><ul><li>O que é o Google Summer of Code? </li></ul></ul><ul><ul><li>Quais são os objetivos do programa? </li></ul></ul><ul><ul><li>Como funciona o GSoC? </li></ul></ul><ul><ul><li>Pagamento </li></ul></ul><ul><ul><li>Projetos participantes </li></ul></ul><ul><ul><li>Estatísticas do GSoC </li></ul></ul>Google Summer of Code    O que é o Google Summer of Code?
  3. 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. 4. Quais são os objetivos do programa? <ul><li>Inspirar desenvolvedores a participar de projetos código aberto. </li></ul><ul><li>Prover a alunos de faculdade financiamento para trabalhar em seus projetos de faculdade. </li></ul><ul><li>Trazer mais código aberto criado e distribuido em beneƒício de todos. </li></ul><ul><li>Ajudar os projetos código aberto a identificar e envolver novos desenvolvedores e commiters. </li></ul>Google Summer of Code    O que é o Google Summer of Code?
  5. 5. Como funciona o GSoC? <ul><li>Princípios </li></ul><ul><ul><li>O verão como oportunidade de trabalhos </li></ul></ul><ul><ul><li>Trabalhando no verão com projetos código aberto </li></ul></ul><ul><ul><li>Exposição com o mundo real </li></ul></ul><ul><li>Anuncio > organizações > alunos/orgs > org rank > google slots > adequação > codificação > avaliação > codificação > avaliação final. </li></ul>Google Summer of Code    O que é o Google Summer of Code?
  6. 6. Projetos participantes <ul><li>Sistemas Operacionais </li></ul><ul><li>Mobiles </li></ul><ul><li>Bancos de dados </li></ul><ul><li>Internet e Redes </li></ul><ul><li>Video, foto e TV </li></ul><ul><li>Multimídia, Audio e Música </li></ul><ul><li>Trabalhos Científicos e publicações </li></ul><ul><li>Tecnologias Web </li></ul><ul><li>Games </li></ul>Google Summer of Code    O que é o Google Summer of Code?
  7. 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. 8. Estatísticas <ul><li>Organizações </li></ul><ul><li>2006 ==> 100 </li></ul><ul><li>2007 ==> 130 </li></ul><ul><li>2008 ==> 177* </li></ul><ul><li>Estudantes </li></ul><ul><li>2006 ==> 630 </li></ul><ul><li>2007 ==> 900 </li></ul><ul><li>2008 ==> 1125 </li></ul>*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. 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. 10. A instituição: &quot;The FreeBSD Project&quot; <ul><li>19 Estudantes em 2008 </li></ul><ul><li>“ 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). </li></ul><ul><li>Atualmente por volta de 300 desenvolvedores tem acesso de escruta ao sistema de controle de versão de produção; </li></ul><ul><li>Milhares com acesso aos servidores Perforce para experimentos e/ou desenvolvimento de software para o freebsd; (gsoc)‏ </li></ul><ul><li>Mentoring ativo. Não só GsoC, Mailing, blogs, ircs. </li></ul>Google Summer of Code    A instituição: &quot;The FreeBSD Project&quot;
  11. 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. 12. <ul><li>Pilha TCP/IP confiável </li></ul><ul><li>Codigo fonte aberto e livre </li></ul><ul><li>Facilidade de programação e debug </li></ul><ul><li>Facilidade de configuração do tcp/ip </li></ul>Sistemas Unix     Porque foi a plataforma escolhida   Porque foi a plataforma escolhida
  13. 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. 14. <ul><li>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. </li></ul><ul><li>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.. </li></ul><ul><li>Um exemplo recente foi o JEMalloc. usado no Firefox e largamente usado no Google. </li></ul><ul><li>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. </li></ul>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. 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. 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. 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. 18. <ul><li>Teste de Unidade </li></ul><ul><li>Teste de Regressão </li></ul><ul><li>Teste de Performance / Estresse </li></ul><ul><li>Teste de Segurança </li></ul><ul><li>Teste de Internacionalização </li></ul><ul><li>Homologação? Release Candidate </li></ul>Teste de software no mundo código aberto    Tipos de testes mais usados   Tipos de testes mais usados
  19. 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. 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 <ul><li>TCP/UDP </li></ul><ul><li>Exemplo básico </li></ul><ul><ul><li>[userland] browser solicita conexão tcp com o servidor </li></ul></ul><ul><ul><li>[os] three way handshake </li></ul></ul><ul><ul><li>[userland] browser solicita conteúdo </li></ul></ul><ul><ul><li>[os] solicita e retorna ao browser </li></ul></ul><ul><ul><li>[os] encerra a conexão </li></ul></ul>
  21. 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. 22. TCP/IP    TCP/IP Regression Test – tcptest (python)‏ TCP/IP Regression Test – tcptest (python)‏ <ul><li>O que é? </li></ul><ul><ul><li>Ferramenta de teste </li></ul></ul><ul><li>Tecnologias: </li></ul><ul><ul><li>python > pyrex > libpcap > pcs > unittest > tcptest </li></ul></ul><ul><li>Como funciona: </li></ul><ul><ul><li>libpcap > pyrex > pcs > tcptest </li></ul></ul><ul><li>Exemplo </li></ul>
  23. 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. 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. 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. 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. 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

×