a servidor, de forma que multiplos pacotes poderiam ser roteados da fonte ao destino a vontade dos servidores participantes, se redes intermediarias o permitissem; * funcoes de gateway (porta de entrada) para encaminhar os pacotes apropriadamente. Isso incluiria cabecalhos de IP para roteamento, interfaces dirigidas, quebra de pacotes em pedacos menores (caso necessario), etc; * a necessidade de checagens ponta a ponta, recuperacao dos pacotes de fragmentos e deteccao de duplicatas; * a necessidade do enderecamento global; * tecnicas de controle de fluxo servidor a servidor; * interfaces com varios sistemas operacionais; * eficiencia da implementacao, performance entre as redes, etc. Kahn comecou a trabalhar na serie orientada as comunicacoes dos principios do sistema operacional enquanto na BBN, e documentou alguns dos seus pensamentos num memorando interno chamado "Principios de Comunicacoes para Sistemas Operacionais". Neste ponto, ele percebeu que seria necessario aprender os detalhes de implementacao de cada sistema operacional para ter a chance de embutir neles novos protocolos de uma forma eficiente. Assim, na primavera de 1973, depois de comecar o projeto "internetting", Kahn chamou Vint Cerf (entao trabalhando em Stanford) para trabalhar com ele no desenho detalhado do protocolo. Cerf tinha se envolvido intimamente com o desenho e desenvolvimento do NCP original e ja tinha o conhecimento em interfacing com os sistemas operacionais existentes. A abordagem arquitetonica para a comunicacao de Kahn e a experiencia em NCP de Cerf possibilitaram a construcao do que se tornou TCP/IP. O trabalho de Kahn e Cerf foi altamente produtivo e a primeira versao escrita da teoria resultante foi distribuida numa reuniao especial do International Network Working Group (INWG), que tinha sido definido numa conferencia da Sussex University em setembro de 1973. Cerf tinha sido convidado para dirigir este grupo e usou a ocasiao para realizar o encontro do INWG. Algumas teses basicas surgiram da colaboracao entre Kahn e Cerf: * comunicacao entre dois processos deveria consistir logicamente de uma longa corrente de bytes (que eles chamaram de octetos). A posicao de qualquer octet na corrente seria usada para identifica-lo; * o controle do fluxo seria feito usando janelas e corredicas e acks. O destino poderia selecionar quando seria efetuado o reconhecimento e cada ack retornado seria cumulativo para todos os pacotes recebidos; * foi deixado em aberto como a fonte e o destino iriam concordar nos parametros das janelas a serem usadas. Padroes foram usados inicialmente; * apesar de a Ethernet (sistema de redes que transporta sinais (bits) para todos os microcomputadores em rede) estar em desenvolvimento em Xerox PARC naquele tempo, a proliferacao de LANs (redes locais) nao era prevista, muito menos a proliferacao de PCs (computadores pessoais) e estacoes de trabalho. O modelo original foi redes nacionais como a ARPANET, que se pensava nao iriam existir muitas como ela. Entao um IP de 32 bits foi usado, dos quais os primeiros 8 bits indicavam a rede e os restantes 24 bits designavam o servidor na rede. Esta hipotese de que 256 redes seriam suficientes para o futuro proximo passou necessariamente a ser reconsiderada quando LANs comecaram a aparecer no final da