-
Tipicamente, numa ligação TCP existe aquele designado de servidor (que abre um socket e espera passivamente por ligações) num extremo, e o cliente no outro. O cliente inicia a ligação enviando um pacote TCP com a flag SYN activa e espera-se que o servidor aceite a ligação enviando um pacote SYN+ACK. Se, durante um determinado espaço de tempo, esse pacote não for recebido ocorre um timeout e o pacote SYN é reenviado. O estabelecimento da ligação é concluído por parte do cliente, confirmando a aceitação do servidor respondendo-lhe com um pacote ACK.
Durante estas trocas, são trocados números de sequência iniciais (ISN) entre os interlocutores que irão servir para identificar os dados ao longo do fluxo, bem como servir de contador de bytes transmitidos durante a fase de transferência de dados (sessão).
No final desta fase, o servidor inscreve o cliente como uma ligação estabelecida numa tabela própria que contém um limite de conexões, o backlog. No caso do backlog ficar completamente preenchido a ligação é rejeitada ignorando (silenciosamente) todos os subsequentes pacotes SYN.
Fonte: http://pt.wikipedia.org/wiki/Transmission_Control_Protocol
-
LETRA A.
Segundo Tanenbaum(2011,p.350),"A flag SYN é usada para estabelecer conexões. A solicitação de conexão tem SYN=1 e ACK=0 para indicar que o campo de confirmação piggyback não está sendo utilizado. A resposta contém um confirmação e, portanto, tem SYN=1 e ACK=1."
Bibliografia:
TANENBAUM, A. S.; WETHERALL, D. Redes de Computadores. 5. ed. São Paulo: Pearson, 2011.
-
Essa questão é muito legal.
Durante uma tentativa de estabelecimento de conexão, teremos, obrigatoriamente no primeiro segmento enviado pelo cliente, o SYN que conterá o respectivo ISN (initial sequence number).
Pegando agora o cabeçalho do PRIMEIRO SEGMENTO do pacote:
-> Qual o valor do campo "Número de Sequência": "x"; este campo corresponde sempre ao valor do SYN envolvido na transmissão. O cliente mandou o SYN? Sim, qual valor? x.
-> Qual o valor do campo "Número de Confirmação": "0"; este campo corresponde sempre ao ACK envolvido na transmissão; Teve ACK? Ainda não, então o valor é 0;
Por isso a resposta é a letra A, que corresponde ao trecho do pacote de dados capturado a analisado pelo sniffer.