Escolar Documentos
Profissional Documentos
Cultura Documentos
Licenciatura: ETI
Turma : ETC1
Grupo : Rd2_t4-03 Data: 2010/11/26
___________________________________________________________________________________
1º Semestre Relatório do 3º Guião Laboratorial de Avaliação: TCP
1
2010/2011 Rev. 1.0
III – Gestão de Ligação TCP
A – Estabelecimento ligação TCP
5.
a)
Pacotes utilizados:
TCP[Syn]: Tipicamente, um pacote TCP com a flag SYN activa é utilizado para iniciar uma sessão TCP
(primeiro pacote emitido), uma vez que determina o sincronismo dos números de sequência. Isto é, os
números de sequência começam a contar a partir do número de sequência do pacote com TCP com a
flag SYN activa.
___________________________________________________________________________________
1º Semestre Relatório do 3º Guião Laboratorial de Avaliação: TCP
2
2010/2011 Rev. 1.0
TCP[SYN, ACK]: Neste caso temos um pacote com a flag SYN activa para marcar o inicio de envio de
pacotes TCP por parte do Linux3 em resposta ao dados enviados pelo Linux1, daí a utilização da flag ACK
que marca a recepção da mensagem SYN em Linux 3 enviados pelo Linux1.
TCP[ACK]: Esta flag é utilizada por parte do Linux 1 em resposta a recepção do SYN, ACK anterior e serve
meramente para confirmar que efectivamente recebeu os dados que lhe foram enviados.
b) As flags mais relevantes para o estabelecimento de ligação usando o protocolo TCP são:
SYNchronize sequence numbers (1 bit) - Indica o início de uma ligação.
ACKnowledge (1 bit) - Marca se o campo Acknowledment number é significativo ou não.
RST (1 bit) - Faz reset à ligação quando está activo.
c) Os números de sequência relativos iniciais do servidor e do cliente são o ‘0’. No entanto, o número de
sequência real para o servidor é: 1094022442.
d) O número de bits necessários para codificar em binário cada número de sequência é 32 bits. Em
hexadecimal, como podemos observar nas figuras acima, são 8 dígitos.
___________________________________________________________________________________
1º Semestre Relatório do 3º Guião Laboratorial de Avaliação: TCP
3
2010/2011 Rev. 1.0
e)
A primeira mensagem que contém dados é a primeira mensagem que tem o campo “Len” diferente de
zero. Neste caso o “len” tem o valor 12 e um número de sequência relativo de ‘1’ e real de ‘2461463288’.
f)
O MSS negociado entre o cliente e o servidor é de 1460 Bytes e foi enviado no cabeçalho do pacote TCP,
mais concretamente no campo das opções. O maximum segment size determina o tamanho máximo dos dados
que pode ser enviado num único segmento. O MSS é determinado através do MTU do nível da ligação de dados
da rede na qual o emissor e o receptor estão ligados, neste caso são 1500 bytes do MTU da ethernet menos 20
bytes do cabeçalho IP e menos outros 20 bytes do cabeçalho TCP, portanto o MSS só diz respeito ao payload
sem os cabeçalhos TCP.
g) O tamanho da janela do emissor é de 5840 bytes e do receptor é de 5792 bytes. Estes valores são
enviados no campo Window Size do pacote TCP e não no Options como o MSS.
h) O tamanho do cabeçalho TCP é de 40 bytes mas este valor muda para 32 bytes à medida que o campo
Options se vai alterando, mais concretamente, uma vez que o MSS já foi negociado o campo Options
decresce de 20 bytes para 12 bytes.
i) O tempo necessário para estabeler a ligação TCP corresponde ao tempo que decorreu desde o SYN
enviado pelo cliente até que o mesmo envia um ACK ao servidor a confirmar a ligação.
35,579751 - 35,579336 = 0,000415.
___________________________________________________________________________________
1º Semestre Relatório do 3º Guião Laboratorial de Avaliação: TCP
4
2010/2011 Rev. 1.0
j) Foi utilizado endereçamento Unicast entre as duas máquinas uma vez que a comunicação foi directa. Os
portos envolvidas foram os seguintes: (i) No lado do servidor foi utilizado o porto Telnet (port 23); (ii) No
lado do cliente foi usado o porto digital-notary (port 1335).
___________________________________________________________________________________
1º Semestre Relatório do 3º Guião Laboratorial de Avaliação: TCP
5
2010/2011 Rev. 1.0
B – Encerramento ligação TCP (iniciado pelo cliente).
6.
a)
Mensagens trocadas:
TCP[FIN, ACK]: Um pacote com a flag FIN indica que o emissor deste pacote terminou de enviar dados e
que pretende terminar a ligação. A flag ACK neste caso indica o acknowledge do pacote recebido
previamente.
TCP[ACK]: Neste caso concreto, o emissor host 10.0.1.1 indica ao servidor telnet com a flag ACK que
recebeu o pacote TCP[FIN, ACK] com sucesso. É o último pacote trocado ao terminar uma ligação TCP.
___________________________________________________________________________________
1º Semestre Relatório do 3º Guião Laboratorial de Avaliação: TCP
6
2010/2011 Rev. 1.0
b) Para além das flags mencionadas na alínea anterior, outros campos importantes para o término da
ligação são o campo de Origem e Destino.
O término da ligação funciona de maneira semelhante ao protocolo de estabelecimento de sessão TCP
de 3 vias. Inicialmente o cliente envia uma mensagem ao servidor com as flags FIN e ACK activas, a
primeira flag serve para indicar ao servidor que não vai enviar mais dados e a segunda serve para avisar
que recebeu correctamente os dados enviados anteriormente. Em resposta a esta mensagem, o
servidor envia uma mensagem TCP com as flags FIN e ACK activas, a flag FIN para indicar que o servidor
também não vai enviar mais dados e o ACK para indicar que a mensagem de término de ligação do
cliente foi correctamente recebida. Por último, o cliente responde ao servidor com um ACK que
confirma a recepção da última mensagem enviada e por fim cessa a ligação.
2.
a)
b) A diferença mais significativa deve-se ao facto da sessão ser encerrada pelo servidor de maneira
automática devido ao período de inactividade presente na sessão Telnet. Na secção anterior, o término
da ligação foi efectuado activamente por nós (cliente).
c)
___________________________________________________________________________________
1º Semestre Relatório do 3º Guião Laboratorial de Avaliação: TCP
7
2010/2011 Rev. 1.0
Figura 12: Linux 1 (Cliente).
Podemos observar, tanto na captura do cliente como na captura do servidor, que o tempo de timeout
que o servidor Telnet emprega para finalizar a ligação é de 60 segundos.
5.
a) Os pacotes que são esperados existir na troca de dados TCP são quatro:
Pacote onde se envia o carácter (do cliente para o servidor);
Pacote de ACK da recepção do carácter (do servidor para o cliente);
Pacote com o “echo” do carácter recebido pelo servidor (do servidor para o cliente);
Pacote de ACK do “echo” enviado anteriormente (do cliente para o servidor).
Como podemos observar na figura 13, são enviados apenas 3 pacotes, sendo que o 2ª e 3ª pacote são
enviados num só (piggybacking). Ou seja o servidor envia o ACK da recepção do carácter e o “echo” num
só pacote. É por esta razão que não conseguimos visualizar o envio de 4 pacotes por cada carácter
premido.
B – Controlo de Fluxo
5.
a) Todos os segmentos possuem um número de sequência pois é obrigatório para se poder fazer uma
comunicação com uma sequência lógica entre cliente/servidor. No entanto, reparamos que por ter um
___________________________________________________________________________________
1º Semestre Relatório do 3º Guião Laboratorial de Avaliação: TCP
8
2010/2011 Rev. 1.0
campo de payload vazio (Len = 0), este número não vai ser incrementado (caso seja um ACK). Esta
situação não é ambígua para o receptor pois ao receber este pacote, não necessitará de confirmar um
ACK. Já no caso da mensagem ser um SYN, o número de sequência irá aumentar um valor, para que o
receptor a possa confirmar (ACK). Desta forma não irá haver situações de indecisão nos receptores.
b) O servidor irá enviar ACK’s sensivelmente de 0,0007 segundos em 0,0007 segundos. Podemos observar
que nem sempre existe um ACK para cada segmento, havendo mais do que um segmento a ser
confirmado num único ACK, o que irá aliviar o tráfego na rede.
c) A gama de variação da janela do receptor é entre 5792-63712. A janela varia ao longo da sessão TCP de
forma crescente como podemos ver na figura que se segue. Quando o valor da janela chega a 63712,
mantém-se com este valor, o que nos leva a concluir que este é o valor máximo da janela do receptor.
Figura 16: Segmento que indica que a janela do receptor chegou a zero.
___________________________________________________________________________________
1º Semestre Relatório do 3º Guião Laboratorial de Avaliação: TCP
9
2010/2011 Rev. 1.0
vi) O [Dup ACK] Significa que um segmento se perdeu ou que foi enviado fora de ordem e informa
que segmento (número de sequencia) é esperado pelo receptor, para que o emissor possa
reenviar o segmento, caso este tenha sido perdido.
vii) A dimensão típica da janela do receptor no [Dup ACK] é a máxima possível, dado que antes de
ser enviado este segmento, é enviado um [TCP Window Update] e irá por a janela do receptor
no seu valor máximo.
6.
a) As perdas de segmentos são detectadas quando o emissor envia um segmento e não recebe nenhum
ACK para esse segmento durante um determinado tempo. De seguida, ao esgotar esse tempo, o emissor
enviará um segmento do tipo [TCP Retransmission]. Além desta situação poderão ocorrer envios de
[TCP Dup ACK] por parte do receptor, para avisar o emissor que não recebeu o segmento que estava à
espera.
c) Após o envio da mensagem anterior, o receptor envia um [TCP Dup ACK] com numero de sequência
relativo 192161, o que significa que a mensagem anterior inserida pelo WireShark estava certa e o
receptor estava à espera de um segmento que deveria ter sido enviado anteriormente, pois tem um
numero de sequência menor.
d) O emissor ao receber o TCP Dup ACK com numero de sequência 192161, irá aperceber-se de que algo
de errado aconteceu e que o receptor continua à espera daquele segmento. O que o emissor irá fazer é
retransmitir esse mesmo segmento numa mensagem do tipo [TCP Retransmition], com Len = 1448
bytes.
e) São reenviados 1448 bytes para o receptor e podemos observar que o TCP Previous Segment Lost tem o
número de sequência 193609 e o TCP Retransmission tem o número de sequência 192161, logo:
192161 + 1448 = 193609. Como sabemos, o TCP é um serviço fiável, pelo que quando detectados erros
de envio, estes terão que ser reenviados e é por isso que os valores estejam correctos.
f) A mensagem do tipo [TCP Out of order] é enviada pelo emissor quando este se apercebe que um
segmento foi enviado fora de ordem. Após receber este mensagem o receptor envia um ACK caso a
mensagem afinal não esteja fora de ordem, ou com um Dup ACK caso esteja. O emissor fica assim a
saber que a mensagem foi entregue embora esteja fora de ordem.
No instante anterior a t=0, foi começada uma emissão em ‘slow start’ a partir do instante t = -1 | SM’s =
7 (supondo que este é o ponto inicial da emissão), daí que de t = 0 para t = 1 o número de segmentos
deu um salto de 2 Segmentos (de SM’s = 8 para SM’s = 10). É de notar que este crescimento pára no
limiar existente em SM’s = 10.
___________________________________________________________________________________
1º Semestre Relatório do 3º Guião Laboratorial de Avaliação: TCP
10
2010/2011 Rev. 1.0
2. Assumindo que não há problemas de congestão no instante t=13 s, qual será o tamanho da rajada
transmitida?
O tamanho da próxima rajada a ser transmitida irá ser de SM’s = 5, visto que o limiar passa a ser metade
do tamanho máximo da janela antes do time-out anterior (que ocorreu em t=9 e SM’s = 10) e a
transmissão está em slow-start até esse limiar.
___________________________________________________________________________________
1º Semestre Relatório do 3º Guião Laboratorial de Avaliação: TCP
11
2010/2011 Rev. 1.0