Hoje, vamos começar focando no TCP. No início do capítulo sobre camadas, mencionamos um ponto importante. Na camada de rede e abaixo, é mais sobre o host para hospedar conexões, o que significa que seu computador precisa saber onde está outro computador para se conectar a ele. No entanto, a comunicação em uma rede geralmente é a comunicação interprocessante, em vez de a comunicação intermachine. Portanto, o protocolo TCP apresenta o conceito de porta. Uma porta pode ser ocupada por apenas um processo, que fornece comunicação direta entre os processos de aplicação em execução em diferentes hosts.
A tarefa da camada de transporte é como fornecer serviços de comunicação direta entre os processos de aplicativos em execução em diferentes hosts, por isso também é conhecido como um protocolo de ponta a ponta. A camada de transporte esconde os principais detalhes da rede, permitindo que o processo de aplicação veja como se houvesse um canal de comunicação de ponta a ponta lógico entre as duas entidades da camada de transporte.
O TCP significa protocolo de controle de transmissão e é conhecido como um protocolo orientado a conexão. Isso significa que, antes que um aplicativo possa começar a enviar dados para o outro, os dois processos precisam fazer um aperto de mão. O handshake é um processo logicamente conectado que garante transmissão confiável e recepção ordenada de dados. Durante o aperto de mão, é estabelecida uma conexão entre os hosts de origem e destino trocando uma série de pacotes de controle e concordando com alguns parâmetros e regras para garantir a transmissão bem -sucedida de dados.
O que é TCP? (Mylinking'sTap de redeeCorretor de pacotes de redepode processar pacotes TCP ou UDP)
O TCP (Protocolo de Controle de Transmissão) é um protocolo de comunicação da camada de transporte baseado em conexão, confiável e baseado em bytes.
Orientado a conexão: Orientado por conexão significa que a comunicação TCP é individual, ou seja, a comunicação de ponta a ponta, diferentemente do UDP, que pode enviar mensagens para vários hosts ao mesmo tempo, para que a comunicação individual não possa ser alcançada.
Confiável: A confiabilidade do TCP garante que os pacotes sejam entregues de maneira confiável ao receptor, independentemente das alterações no link de rede, o que torna o formato do pacote de protocolo do TCP mais complexo que o UDP.
Baseado em fluxo de bytes: A natureza baseada em fluxo de bytes do TCP permite a transmissão de mensagens de qualquer tamanho e garante a ordem da mensagem: mesmo que a mensagem anterior não tenha sido totalmente recebida e, mesmo que os bytes subsequentes tenham sido recebidos, o TCP não os entregará à camada de aplicativos para processamento e soltará automaticamente pacotes duplicados.
Depois que o host A e o host B estabeleceram uma conexão, o aplicativo só precisa usar a linha de comunicação virtual para enviar e receber dados, garantindo assim a transmissão de dados. O protocolo TCP é responsável por controlar tarefas como estabelecimento de conexão, desconexão e retenção. Deve -se notar que aqui dizemos que a linha virtual significa apenas estabelecer uma conexão, a conexão do protocolo TCP indica apenas que os dois lados podem iniciar a transmissão de dados e garantir a confiabilidade dos dados. Os nós de roteamento e transporte são tratados pelos dispositivos de rede; O próprio protocolo TCP não se preocupa com esses detalhes.
Uma conexão TCP é um serviço duplex completo, o que significa que o host A e o host B podem transmitir dados em ambas as direções em uma conexão TCP. Ou seja, os dados podem ser transferidos entre o host A e o host B em um fluxo bidirecional.
O TCP armazena temporariamente dados no buffer de envio da conexão. Este buffer de envio é um dos caches configurados durante o aperto de mão de três vias. Posteriormente, o TCP enviará os dados no cache de envio para o cache de recebimento do host de destino no momento apropriado. Na prática, cada colega terá um cache de envio e um cache de recebimento, como mostrado aqui:
O buffer de envio é uma área de memória mantida pela implementação do TCP no lado do remetente que é usado para armazenar temporariamente os dados a serem enviados. Quando o aperto de mão de três vias é executado para estabelecer uma conexão, o cache de envio é configurado e usado para armazenar dados. O buffer de envio é ajustado dinamicamente de acordo com o congestionamento da rede e o feedback do receptor.
Um buffer de recebimento é uma área de memória mantida pela implementação do TCP no lado receptor usado para armazenar temporariamente os dados recebidos. O TCP armazena os dados recebidos no cache de recebimento e aguarda a aplicação superior para lê -los.
Observe que o tamanho do cache de envio e o cache de recebimento é limitado, quando o cache está cheio, o TCP pode adotar algumas estratégias, como controle de congestionamento, controle de fluxo etc., para garantir transmissão de dados confiável e estabilidade da rede.
Nas redes de computadores, a transmissão de dados entre os hosts é realizada por meio de segmentos. Então, o que é um segmento de pacotes?
O TCP cria um segmento TCP ou segmento de pacotes, dividindo o fluxo de entrada em pedaços e adicionando cabeçalhos TCP a cada pedaço. Cada segmento só pode ser transmitido por um período limitado de tempo e não pode exceder o tamanho máximo do segmento (MSS). No caminho para baixo, um segmento de pacotes passa pela camada de link. A camada de link possui uma unidade de transmissão máxima (MTU), que é o tamanho máximo do pacote que pode passar pela camada de link de dados. A unidade de transmissão máxima geralmente está relacionada à interface de comunicação.
Então, qual é a diferença entre MSS e MTU?
Nas redes de computadores, a arquitetura hierárquica é muito importante porque leva em consideração as diferenças entre os diferentes níveis. Cada camada tem um nome diferente; Na camada de transporte, os dados são chamados de segmento e, na camada de rede, os dados são chamados de pacote IP. Portanto, a unidade de transmissão máxima (MTU) pode ser pensada como o tamanho máximo do pacote IP que pode ser transmitido pela camada de rede, enquanto o tamanho máximo do segmento (MSS) é um conceito de camada de transporte que se refere à quantidade máxima de dados que podem ser transmitidos por um pacote TCP por vez.
Observe que quando o tamanho máximo do segmento (MSS) for maior que a unidade de transmissão máxima (MTU), a fragmentação IP será realizada na camada de rede e o TCP não dividirá os dados maiores em segmentos adequados para o tamanho da MTU. Haverá uma seção na camada de rede dedicada à camada IP.
Estrutura do segmento de pacotes TCP
Vamos explorar o formato e o conteúdo dos cabeçalhos TCP.
Número da sequência: Um número aleatório gerado pelo computador quando a conexão é estabelecida como seu valor inicial quando a conexão TCP é estabelecida e o número da sequência é enviado ao receptor através do pacote Syn. Durante a transmissão de dados, o remetente incrementa o número da sequência de acordo com a quantidade de dados enviados. O receptor julga a ordem dos dados de acordo com o número da sequência recebida. Se os dados forem encontrados fora de ordem, o receptor reordenará os dados para garantir a ordem dos dados.
Número de reconhecimento: Este é um número de sequência usado no TCP para reconhecer o recebimento de dados. Indica o número de sequência dos próximos dados que o remetente espera receber. Em uma conexão TCP, o receptor determina quais dados foram recebidos com sucesso com base no número de sequência do segmento de pacote de dados recebido. Quando o destinatário recebe com sucesso os dados, ele envia um pacote ACK para o remetente, que contém o número de reconhecimento de reconhecimento. Depois de receber o pacote ACK, o remetente pode confirmar que os dados antes de reconhecer o número de resposta foram recebidos com sucesso.
Os bits de controle de um segmento TCP incluem o seguinte:
Bit ack: Quando este bit é 1, significa que o campo de resposta de reconhecimento é válido. O TCP especifica que esse bit deve ser definido como 1, exceto em pacotes SYN quando a conexão é inicialmente estabelecida.
Primeiro bit: Quando este bit é 1, indica que há uma exceção na conexão TCP e a conexão deve ser forçada a ser desconectada.
Bit syn: Quando este bit é definido como 1, significa que a conexão deve ser estabelecida e o valor inicial do número de sequência é definido no campo Número da sequência.
Fin bit: Quando este bit for 1, significa que nenhum mais dados será enviado no futuro e a conexão é desejada.
As várias funções e características do TCP são incorporadas pela estrutura dos segmentos de pacotes TCP.
O que é UDP? (MyLinking'sTap de redeeCorretor de pacotes de redepode processar pacotes TCP ou UDP)
O protocolo de datagrama do usuário (UDP) é um protocolo de comunicação sem conexão. Comparado com o TCP, o UDP não fornece mecanismos de controle complexos. O protocolo UDP permite que os aplicativos enviem diretamente pacotes IP encapsulados sem estabelecer uma conexão. Quando o desenvolvedor escolhe usar o UDP em vez do TCP, o aplicativo se comunica diretamente com o IP.
O nome completo do protocolo UDP é o protocolo de datagrama do usuário e seu cabeçalho é de apenas oito bytes (64 bits), o que é muito conciso. O formato do cabeçalho UDP é o seguinte:
Portas de destino e origem: O objetivo principal deles é indicar para qual processo o UDP deve enviar pacotes.
Tamanho do pacote: O campo de tamanho do pacote contém o tamanho do cabeçalho UDP mais o tamanho dos dados
Soma de verificação: Projetado para garantir uma entrega confiável de cabeçalhos e dados UDP A função da soma de verificação é detectar se ocorreu um erro ou corrupção durante a transmissão de um pacote UDP para garantir a integridade dos dados.
Diferenças entre TCP e UDP no mylinking'sTap de redeeCorretor de pacotes de redepode processar pacotes TCP ou UDP
TCP e UDP são diferentes nos seguintes aspectos:
Conexão: O TCP é um protocolo de transporte orientado a conexão que exige que uma conexão seja estabelecida antes que os dados possam ser transferidos. O UDP, por outro lado, não requer uma conexão e pode transferir dados imediatamente.
Objeto de serviço: O TCP é um serviço individual de dois pontos, ou seja, uma conexão tem apenas dois pontos de extremidade para se comunicar. No entanto, o UDP suporta comunicação interativa individual, um para muitos e muitos para muitos, que pode se comunicar com vários hosts ao mesmo tempo.
Confiabilidade: O TCP fornece o serviço de entrega de dados de maneira confiável, garantindo que os dados sejam livres de erros, sem perdas, não duplicarem e chegue sob demanda. O UDP, por outro lado, faz o seu melhor esforço e não garante entrega confiável. O UDP pode sofrer de perda de dados e outras situações durante a transmissão.
Controle de congestionamento, controle de fluxo: O TCP possui mecanismos de controle de congestionamento e controle de fluxo, que podem ajustar a taxa de transmissão de dados de acordo com as condições da rede para garantir a segurança e a estabilidade da transmissão de dados. O UDP não possui mecanismos de controle de congestionamento e controle de fluxo, mesmo que a rede esteja muito congestionada, ele não fará ajustes na taxa de envio do UDP.
Cabeçalho acima: O TCP tem um comprimento de cabeceamento longo, geralmente 20 bytes, que aumentam quando os campos de opção são usados. O UDP, por outro lado, possui um cabeçalho fixo de apenas 8 bytes, portanto o UDP tem um cabeçalho inferior.
Cenários de aplicativos TCP e UDP:
TCP e UDP são dois protocolos de camada de transporte diferentes e têm algumas diferenças nos cenários de aplicação.
Como o TCP é um protocolo orientado a conexão, ele é usado principalmente em cenários em que a entrega confiável de dados é necessária. Alguns casos de uso comuns incluem:
Transferência de arquivos FTP: O TCP pode garantir que os arquivos não sejam perdidos e corrompidos durante a transferência.
Http/https: O TCP garante a integridade e a correção do conteúdo da Web.
Como o UDP é um protocolo sem conexão, ele não fornece garantia de confiabilidade, mas possui as características de eficiência e em tempo real. O UDP é adequado para os seguintes cenários:
Tráfego de baixo pacote, como DNS (sistema de nomes de domínio): As consultas DNS geralmente são pacotes curtos e o UDP pode completá -las mais rapidamente.
Comunicação multimídia, como vídeo e áudioPara transmissão multimídia com altos requisitos em tempo real, o UDP pode fornecer menor latência para garantir que os dados possam ser transmitidos em tempo hábil.
Comunicação de transmissão: O UDP suporta comunicação um para muitos e muitos para muitos e pode ser usado para a transmissão de mensagens de transmissão.
Resumo
Hoje aprendemos sobre o TCP. O TCP é um protocolo de comunicação de camada de transporte baseado em transferência baseado em conexão, confiável, baseado em bytes. Ele garante a transmissão confiável e a recepção ordenada dos dados, estabelecendo conexão, aperto de mão e reconhecimento. O protocolo TCP usa portas para realizar a comunicação entre os processos e fornece serviços de comunicação direta para processos de aplicativos em execução em diferentes hosts. As conexões TCP são complexas complexas, permitindo transferências de dados bidirecionais simultâneas. Por outro lado, o UDP é um protocolo de comunicação orientado sem conexão, que não fornece garantias de confiabilidade e é adequado para alguns cenários com requisitos altos em tempo real. TCP e UDP são diferentes no modo de conexão, objeto de serviço, confiabilidade, controle de congestionamento, controle de fluxo e outros aspectos e seus cenários de aplicação também são diferentes.
Hora de postagem: dez-03-2024