SlideShare uma empresa Scribd logo
1 de 27
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)‏  
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],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? ,[object Object],[object Object],[object Object],[object Object],Google Summer of Code     O que é o Google Summer of Code?
Como funciona o GSoC? ,[object Object],[object Object],[object Object],[object Object],[object Object],Google Summer of Code     O que é o Google Summer of Code?
Projetos participantes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],*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" ,[object Object],[object Object],[object Object],[object Object],[object Object],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)‏  
[object Object],[object Object],[object Object],[object Object],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)‏  
[object Object],[object Object],[object Object],[object Object],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)‏  
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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)‏ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
#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)

Kanban - Migrando do Scrum para o Kanban
Kanban - Migrando do Scrum para o KanbanKanban - Migrando do Scrum para o Kanban
Kanban - Migrando do Scrum para o Kanban
 
Desenvolvendos Apps para iPad - TDC 2010
Desenvolvendos Apps para iPad - TDC 2010Desenvolvendos Apps para iPad - TDC 2010
Desenvolvendos Apps para iPad - TDC 2010
 
Design for developers
Design for developersDesign for developers
Design for developers
 
Nanavegacao rede
Nanavegacao redeNanavegacao rede
Nanavegacao rede
 
1 presentación
1 presentación1 presentación
1 presentación
 
Las 10 claves Dani e Ilan
Las 10 claves Dani e IlanLas 10 claves Dani e Ilan
Las 10 claves Dani e Ilan
 
Estalvi energetic
Estalvi energeticEstalvi energetic
Estalvi energetic
 
Collage computacion 1°
Collage computacion 1°Collage computacion 1°
Collage computacion 1°
 
Ropa zara
Ropa zaraRopa zara
Ropa zara
 
Uyhe
UyheUyhe
Uyhe
 
Making carrot salad
Making carrot saladMaking carrot salad
Making carrot salad
 
WOT - 05_socialmediatoolkit (custo-benefício)
WOT - 05_socialmediatoolkit (custo-benefício)WOT - 05_socialmediatoolkit (custo-benefício)
WOT - 05_socialmediatoolkit (custo-benefício)
 
Els ocells fent panellets
Els ocells fent panelletsEls ocells fent panellets
Els ocells fent panellets
 
Imagine
ImagineImagine
Imagine
 
Eivanak House
Eivanak HouseEivanak House
Eivanak House
 
Power point trabajo final
Power point trabajo finalPower point trabajo final
Power point trabajo final
 
Derecho e historia
Derecho e historia  Derecho e historia
Derecho e historia
 
Blue Hole. Presentacion prueba
Blue Hole. Presentacion pruebaBlue Hole. Presentacion prueba
Blue Hole. Presentacion prueba
 
NOM-FITO-001-2001
NOM-FITO-001-2001NOM-FITO-001-2001
NOM-FITO-001-2001
 
20121106
2012110620121106
20121106
 

Semelhante a GSoC tcptest - TCP/IP Regression Test

Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.comricobl
 
Treinamento Android Embarcado
Treinamento Android EmbarcadoTreinamento Android Embarcado
Treinamento Android EmbarcadoOdair Sousa
 
Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17Leandro Moreira
 
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...Alvaro Viebrantz
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014Giovanni Bassi
 
CEPUG 2 - Bem-vindo a Framework CodeIgniter
CEPUG 2 - Bem-vindo a Framework CodeIgniterCEPUG 2 - Bem-vindo a Framework CodeIgniter
CEPUG 2 - Bem-vindo a Framework CodeIgniterEric Silva
 
PT-BR - Lauching a Public PaaS on Open Source Getup & OpenShift Origin - FISL14
PT-BR - Lauching a Public PaaS on Open Source Getup & OpenShift Origin - FISL14PT-BR - Lauching a Public PaaS on Open Source Getup & OpenShift Origin - FISL14
PT-BR - Lauching a Public PaaS on Open Source Getup & OpenShift Origin - FISL14Getup Cloud
 
Otimização de Aplicações Android
Otimização de Aplicações AndroidOtimização de Aplicações Android
Otimização de Aplicações AndroidPeslPinguim
 
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Renato Groff
 
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.Rodrigo Senra
 
Android Dev Conference 2017 - Automação de Testes na Cloud
Android Dev Conference 2017 - Automação de Testes na CloudAndroid Dev Conference 2017 - Automação de Testes na Cloud
Android Dev Conference 2017 - Automação de Testes na CloudiMasters
 
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Renato Groff
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Getup Cloud
 
Práticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDEPráticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDESandro Andrade
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...tdc-globalcode
 
Criando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com AppiumCriando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com AppiumElias Nogueira
 

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

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

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.
  • 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.
  • 5.
  • 6.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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