Liber 000 - Astrum Argentum

Liber 000 - Astrum Argentum Liber 000 - Astrum Argentum

astrumargentum.org
from astrumargentum.org More from this publisher
01.01.2013 Views

importantes. Cliente Servidor SYN Socket Socket, bind, listen Connect SYN, ACK Accept Conexão ativa Retorno da Conexão Accept retorna Opções TCP : Leitura Quando analisamos um pacote com o (TCPDUMP por exemplo), observamos uma série de parâmetros no protocolo. Por exemplo vamos observar o pacote abaixo : 20:21:24.247573 localhost.1024 > localhost.ftp: S 244024089:244024089 (0) win 32767 (DF) Acima temos vários trechos interessantes neste pacote, vamos analisar o início do pacote : 20:21:24.247573 localhost.1024 > localhost.ftp: Neste caso está sendo feita uma conexão da porta 1024 do servidor localhost para o serviço ftp no servidor localhost ( comando ftp 127.0.0.1). S 244024089:244024089(0) O segmento SYN é enviado pelo cliente com seus números de sincronização e o (0), indica que nenhum dado está sendo enviado. MSS é uma das opções que não explicamos anteriormente. MSS vem do inglês Maximun Segmente Size, Máximo Tamanho do Segmento, ou seja a capacidade de dados que pode ser aceitaem cada segmento TCP em uma conexão. Neste caso temos o valor de 16396, isto pode chegar até 65535 (Stevens, Unix Networking program Vol I.). 36 ACK

SackOK é típico de um cliente FTP, significa aceite de uma conexão (RFC 2018), este é o método que que o receptor envia ao emissor qie os segmentos chegaram com sucesso. TimeStamp é utilizada em conexões rápidas, para prevenir corrupção de dados causados por pacotes perdidos que podem reaparecer em uma conexão. Não precisamos nos importar com estsa opção agora. Por último a opção nop indica no operation e wscale o início do tamanho da janela. (DF) O Don’t Fragment (Não Fragmentar) é a opção que faz com que o pacote não seja fragmentado, iu seja envia o datagrama inteiro para o destino. Gostaríamos de falar mais, sobre esta opção mas fica para um próximo artigo. Depois desta pequena teoria, vamos a parte prática de nosso tutorial de sockets apresentando as funções básicas para esta segunda parte. As novas funções em nosso tutorial A Função listen() A função listen tem a função de ouvir, ou seja espera de modo passivo uma conexão de um socket e o aceite do mesmo. Quando nos declaramos um socket, a função listen determina quantas conexões poderão ser feitas simultanemamente. Um servidor telnet pode receber n conexões, simultâneas. Nota-se que esta função é amplamente utilizada por servidores, para podermos criar a possibilidade de vários clientes se conectarem ao nosso futuro servidor. A declaração da função é feita da seguinte maneira : #include int listen(int nsocket, int bdoorc); Onde declaramos o seguinte : a) nsocket – Declaração de nosso socket; b) bdoorc – definirá i número de conexões simultâneas ao nosso servidor. Podemos declarar aqui o valor 10 e teremos dez conexões concorrentes ai nosso servidor. Falaremos mais a frente de uma outra função (accept) para o aceite da conexão. 37

importantes.<br />

Cliente Servidor<br />

SYN<br />

Socket Socket, bind, listen<br />

Connect<br />

SYN, ACK<br />

Accept<br />

Conexão ativa<br />

Retorno da Conexão Accept retorna<br />

Opções TCP :<br />

Leitura<br />

Quando analisamos um pacote com o (TCPDUMP por exemplo),<br />

observamos uma série de parâmetros no protocolo. Por exemplo vamos<br />

observar o pacote abaixo :<br />

20:21:24.247573 localhost.1024 > localhost.ftp: S 244024089:244024089<br />

(0) win 32767 <br />

(DF)<br />

Acima temos vários trechos interessantes neste pacote, vamos analisar o<br />

início do pacote :<br />

20:21:24.247573 localhost.1024 > localhost.ftp:<br />

Neste caso está sendo feita uma conexão da porta 1024 do servidor<br />

localhost para o serviço ftp no servidor localhost ( comando ftp<br />

127.0.0.1).<br />

S 244024089:244024089(0)<br />

O segmento SYN é enviado pelo cliente com seus números de<br />

sincronização e o (0), indica que nenhum dado está sendo enviado.<br />

<br />

MSS é uma das opções que não explicamos anteriormente. MSS vem do<br />

inglês Maximun Segmente Size, Máximo Tamanho do Segmento, ou seja a<br />

capacidade de dados que pode ser aceitaem cada segmento TCP em uma<br />

conexão. Neste caso temos o valor de 16396, isto pode chegar até 65535<br />

(Stevens, Unix Networking program Vol I.).<br />

36<br />

ACK

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!