1
00:00:00,000 --> 00:00:08,000
Ao usar o TCP, os dispositivos devem primeiro estabelecer uma conexão com um sistema peer antes que a transmissão de

2
00:00:09,000 --> 00:00:10,000
dados possa ocorrer,

3
00:00:11,000 --> 00:00:16,000
assim a sessão orientada à conexão será estabelecida entre o host A e

4
00:00:17,000 --> 00:00:23,000
o host B Uma máquina iniciará a conexão que deverá ser aceita pela outra máquina.

5
00:00:24,000 --> 00:00:28,000
Módulos de software de protocolos nos sistemas operacionais dos dispositivos host se comunicam

6
00:00:29,000 --> 00:00:33,000
entre si enviando mensagens pela rede para verificar se a transferência está autorizada

7
00:00:34,000 --> 00:00:36,000
e se ambos os lados estão

8
00:00:37,000 --> 00:00:39,000
prontos para a transmissão de dados.

9
00:00:40,000 --> 00:00:48,000
Para que isso aconteça, um handshake de três vias ocorre entre os dispositivos host usando TCP.

10
00:00:49,000 --> 00:00:55,000
Portanto, o host que inicia a sessão configurará o sinalizador SYN ou o bit SYN no

11
00:00:56,000 --> 00:01:00,000
cabeçalho TCP do segmento inicial enviado para o host B.

12
00:01:01,000 --> 00:01:05,000
O host A também escolherá um número de seqüência inicial

13
00:01:06,000 --> 00:01:08,000
que, neste exemplo, digamos 100.

14
00:01:09,000 --> 00:01:12,000
Portanto, o sinalizador de controle SYN é definido e o

15
00:01:13,000 --> 00:01:16,000
número de sequência é definido para um valor inicial de 100.

16
00:01:17,000 --> 00:01:20,000
Isso é então usado para iniciar o processo de handshake.

17
00:01:21,000 --> 00:01:27,000
Esse segmento de sincronização também especifica o número da porta à qual o remetente

18
00:01:28,000 --> 00:01:32,000
deseja se conectar, por exemplo, a porta 80 ou HTTP.

19
00:01:33,000 --> 00:01:38,000
O host no lado direito estará aguardando uma solicitação de conexão do cliente remoto,

20
00:01:39,000 --> 00:01:41,000
nesse caso, o host A.

21
00:01:42,000 --> 00:01:45,000
quando o SYN é recebido e aceito,

22
00:01:46,000 --> 00:01:53,000
o host b envia de volta um segmento TCP com as flags SYN e ACK definidas.

23
00:01:54,000 --> 00:01:57,000
Portanto, os sinalizadores de controle SYN e ACK são definidos

24
00:01:58,000 --> 00:02:01,000
e usados ​​para negociar a conexão e confirmar o recebimento

25
00:02:02,000 --> 00:02:04,000
do segmento de sincronização de iniciais do remetente.

26
00:02:05,000 --> 00:02:08,000
B também define um número de seqüência inicial para indicar

27
00:02:09,000 --> 00:02:12,000
o próximo número de seqüência do próximo byte de dados

28
00:02:13,000 --> 00:02:15,000
que espera receber do host A.

29
00:02:16,000 --> 00:02:21,000
O host B também define o sinalizador de confirmação para,

30
00:02:22,000 --> 00:02:30,000
neste caso, 101 um sinalizador ACK indica, a próxima parte de dados, o host espera receber.

31
00:02:31,000 --> 00:02:34,000
Então, o host A inicialmente enviou um número de sequência de 100

32
00:02:35,000 --> 00:02:39,000
e host B, neste caso, assumindo que um tamanho de janela de 1 devolve um reconhecimento

33
00:02:40,000 --> 00:02:41,000
de um 101.

34
00:02:42,000 --> 00:02:47,000
A terceira etapa do handshake de três vias é quando o host inicial, neste

35
00:02:48,000 --> 00:02:56,000
caso, hospeda A, recebe o SYN do host B e envia de volta um segmento TCP com o campo de controle configurado

36
00:03:01,000 --> 00:03:06,000
para ACK, em outras palavras, reconhecimento. 36 O Host A está, portanto, reconhecendo o próximo segmento que espera

37
00:03:07,000 --> 00:03:11,000
receber do host B neste caso 301, inicialmente o host B enviou um número de sequência de 300.

38
00:03:12,000 --> 00:03:16,000
Então, o host A está esperando o próximo segmento 301.

39
00:03:17,000 --> 00:03:21,000
O host A define seu número de sequência como 101.

40
00:03:22,000 --> 00:03:29,000
O segmento inicial enviado foi 100 e o próximo neste caso é 101 porque o bit SYN ou o sinalizador

41
00:03:30,000 --> 00:03:32,000
SYN não está definido, o que

42
00:03:33,000 --> 00:03:37,000
confirma que o handshake de três vias foi concluído com êxito.

43
00:03:38,000 --> 00:03:45,000
Apenas para reiterar, os bits ou flags de controle inicialmente A enviam um

44
00:03:46,000 --> 00:03:51,000
segmento com o bit SYN ou o sinalizador SYN configurado.

45
00:03:55,000 --> 00:04:00,000
Portanto, o sinalizador de controle SYN é definido como 1. 46 O host B na segunda etapa do handshake de

46
00:04:01,000 --> 00:04:04,000
três vias define seus flags de controle ou bits como SYN ACK.

47
00:04:05,000 --> 00:04:07,000
Em outras palavras, o bit SYN é definido como

48
00:04:08,000 --> 00:04:10,000
1 e o bit ACK é definido como 1.

49
00:04:11,000 --> 00:04:13,000
Na última etapa do handshake de três

50
00:04:14,000 --> 00:04:19,000
vias, o Host A define o bit ACK como 1 ou o sinalizador ACK é ativado.

51
00:04:21,000 --> 00:04:24,000
O bit SYN ou o sinalizador SYN é definido como 0 para indicar que

52
00:04:25,000 --> 00:04:27,000
o handshake de três vias foi concluído com êxito.

53
00:04:28,000 --> 00:04:32,000
Agora os números de sequência e os agradecimentos podem causar muita confusão. Então, vou explicá-los

54
00:04:33,000 --> 00:04:34,000
com mais detalhes agora.

55
00:04:35,000 --> 00:04:39,000
Estamos assumindo neste exemplo que um tamanho de janela de 1 é usado.

56
00:04:40,000 --> 00:04:42,000
Agora, se você lembrar que o tamanho da janela é a quantidade máxima

57
00:04:48,000 --> 00:04:52,000
de dados que o destinatário pode receber de um remetente e processá-lo corretamente. 59 Então, vamos supor que apenas um

58
00:04:53,000 --> 00:04:56,000
segmento pode ser transmitido a qualquer momento antes que uma confirmação

59
00:04:57,000 --> 00:04:59,000
seja recebida para confirmar o recebimento daquele segmento.

60
00:05:00,000 --> 00:05:03,000
Então vamos supor que A começa com um número de sequência inicial

61
00:05:04,000 --> 00:05:09,000
de 5 por causa de um tamanho de janela de 1, apenas 1 segmento pode ser enviado de A para B.

62
00:05:10,000 --> 00:05:14,000
B recebe com sucesso o segmento de A

63
00:05:15,000 --> 00:05:19,000
e reconhece o próximo segmento que deseja receber.

64
00:05:20,000 --> 00:05:23,000
então, em vez de confirmar o recebimento do número de

65
00:05:24,000 --> 00:05:26,000
sequência de 5, ele reconhece para o

66
00:05:27,000 --> 00:05:32,000
número de sequência 6, o que implica que todos os números de sequência anteriores receberão corretamente.

67
00:05:33,000 --> 00:05:37,000
Assim, B reconhece neste caso a sequência número 6, mas B pode começar

68
00:05:42,000 --> 00:05:47,000
com um número de sequência inicial de 10. 71 Assim, no cabeçalho TCP, B informa A que seu número

69
00:05:48,000 --> 00:05:52,000
de seqüência inicial é 10 e que seu número de sequência recebido com sucesso 5 de A

70
00:05:53,000 --> 00:05:56,000
e está esperando o número de sequência 6 de A no próximo pacote.

71
00:05:57,000 --> 00:06:00,000
Suponhamos que recebamos com sucesso esse segmento, de modo

72
00:06:01,000 --> 00:06:05,000
que A envie agora o segmento 6 para B, em outras palavras,

73
00:06:06,000 --> 00:06:08,000
o próximo número de sequência.

74
00:06:09,000 --> 00:06:14,000
A também reconhece o recebimento do segmento 10 do host B.

75
00:06:15,000 --> 00:06:19,000
Então A recebeu com sucesso o segmento com o número de seqüência 10.

76
00:06:20,000 --> 00:06:21,000
Observe mais uma vez

77
00:06:22,000 --> 00:06:24,000
que o host pode escolher aleatoriamente os

78
00:06:25,000 --> 00:06:27,000
números de sequência inicial e, assim, no

79
00:06:28,000 --> 00:06:31,000
handshake triplo inicial, as informações precisam ser comunicadas entre os dois

80
00:06:35,000 --> 00:06:42,000
hosts, para que eles saibam quais são os números de sequência inicial. 84
Então, mais uma vez, A envia o número de sequência 6 para B e confirma a sequência 11.

81
00:06:43,000 --> 00:06:45,000
Suponhamos que B receba com sucesso

82
00:06:46,000 --> 00:06:49,000
esse segmento e, portanto, confirmará o segmento 7.

83
00:06:50,000 --> 00:06:52,000
O próximo segmento que espera

84
00:06:53,000 --> 00:06:58,000
receber novamente 7 no reconhecimento indica que o segmento anterior foi recebido com sucesso.

85
00:06:59,000 --> 00:07:03,000
Então, o host B, configurando o número de sequência para 7, está dizendo ao host A que

86
00:07:04,000 --> 00:07:06,000
o número de sequência 6 foi recebido com sucesso.

87
00:07:07,000 --> 00:07:10,000
O host B envia o número de sequência 11 porque

88
00:07:11,000 --> 00:07:14,000
esse é o próximo número de sequência que A espera receber.

89
00:07:15,000 --> 00:07:19,000
O que devemos notar mais uma vez é que os números de sequência

90
00:07:25,000 --> 00:07:29,000
inicial que o host espera receber e a seqüência de número de, por

91
00:07:30,000 --> 00:07:36,000
exemplo, 11, implica que o número de sequência 10 e o número de sequência anterior foram recebidos com sucesso.

92
00:07:37,000 --> 00:07:41,000
Agora, mais uma vez, o controle de fluxo impede um problema em que o remetente está enviando tantos

93
00:07:45,000 --> 00:07:47,000
dados 99 que os buffers do receptor estão sobrecarregados.

94
00:08:05,000 --> 00:08:09,000
Se esta é uma máquina muito poderosa e esta é uma máquina mais antiga

que não é tão poderoso, é possível que A ultrapasse

os buffers de B porque está enviando muitos dados. 103 Então, B precisa de um mecanismo para avisar a lentidão para que D possa

95
00:08:14,000 --> 00:08:16,000
processar com êxito o tráfego que está recebendo. 105 Então, como exemplo, vamos supor que o tamanho da janela neste exemplo seja

96
00:08:49,000 --> 00:08:51,000
3 em vez de 1. 107
Então, A pode enviar 3 segmentos de dados antes de obter uma confirmação. 108
A vantagem de aumentar o tamanho da janela é essa taxa de transferência

pode aumentar drasticamente porque um host pode enviar mais dados

com menos reconhecimentos e, portanto, os cronômetros de ida e volta diminuem drasticamente. 111
Portanto, neste exemplo, A envia 3 segmentos para B. 112 Suponhamos que o buffer

97
00:09:00,000 --> 00:09:03,000
recebido de B esteja cheio e não possa lidar com essa quantidade de dados 114 B enviará um indicador não pronto para A 115 e faz isso definindo o tamanho da janela como 0.

98
00:09:20,000 --> 00:09:27,000
Isso diz ao remetente para parar de enviar dados

e aguarde o indicador pronto do receptor. 118
Assumindo que o host B agora foi capaz de processar os dados

no buffer de recebimento e agora pode receber mais dados. 120
Ele pode enviar um indicador pronto para A, para que ele continue o envio de datagramas.

99
00:09:37,000 --> 00:09:42,000
então A retoma a transmissão enviando por exemplo 3 segmentos para B. 122
Porque o tamanho da janela é 3. 123 Então, por favor note em segundo plano o host TCP envolvida na conversa pode negociar

100
00:09:54,000 --> 00:09:58,000
vários parâmetros e um deles é o controle de fluxo 125 onde um receptor, pode dizer a um remetente para desacelerar ou parar de enviar dados 126 até que o receptor tenha espaço de buffer disponível para receber segmentos transmitidos.

101
00:10:08,000 --> 00:10:12,000
Isto é permite a comunicação entre um muito poderoso

ou máquina rápida e uma máquina mais lenta ou menos potente

onde eles podem negociar a taxa de transmissão.
