Protocolo da camada de transporte
1. Protocolo TCP e UDP
TCP/IP协议族的传输层协议
TCP(Transmission Control Protocol)传输控制协议
UDP(User Datagram Protocol)用户数据报协议
-
Protocolo TCP: protocolo de controle de transmissão, transmissão estável e confiável
-
O TCP é um protocolo de comunicação processo a processo confiável e orientado para conexão. O TCP fornece serviços full-duplex, ou seja, os dados podem ser transmitidos em ambas as direções ao mesmo tempo. Cada TCP tem um buffer de envio e um buffer de recebimento para temporariamente armazenamento de dados.
-
Protocolo UDP: protocolo de datagrama do usuário, maior eficiência de transmissão
-
O protocolo UDP é um protocolo de camada de transporte confiável e sem conexão. O remetente não se importa se os dados enviados chegam ao host de destino, se os dados estão errados, etc. O host que recebe os dados não dirá ao remetente se recebeu os dados. Sua confiabilidade é garantida pelo protocolo da camada superior. Transfira dados com mais rapidez e eficiência.
O protocolo de rede orientado para conexão refere-se ao estabelecimento de uma conexão entre as partes em comunicação antes da comunicação. Por exemplo, ao fazer uma chamada, as duas partes precisam estabelecer uma conexão antes de falar.
O protocolo de rede sem conexão significa que as partes de comunicação não precisam estabelecer uma linha de comunicação com antecedência, mas enviar cada pacote com o endereço de destino para a linha de rede, e o sistema seleciona independentemente a rota para transmissão. Por exemplo, qq, WeChat envia informações.
Dois. Pacotes TCP
TCP将若干个字节构成一个分组,叫报文段
TCP报文段封装在IP数据报中 10部分
- Número da porta de origem: o número da porta correspondente ao processo do remetente.
- Número da porta de destino: corresponde ao número da porta do processo na extremidade receptora.
- Número de sequência: O remetente numerará cada byte para facilitar a remontagem correta do receptor.
- Número de confirmação: usado para confirmar as informações do remetente. Isso é usado para informar ao remetente que os segmentos de dados antes do número de sequência foram recebidos.Se o número de confirmação for N, significa que os primeiros N-1 segmentos de dados foram recebidos.
- Comprimento do cabeçalho: use-o para determinar o comprimento do byte da estrutura de dados do cabeçalho TCP. Em circunstâncias normais, o cabeçalho TCP tem 20 bytes, mas o comprimento do cabeçalho pode ser estendido para 60 bytes no máximo.
- Reservado: como um bit de extensão, não usado atualmente.
Bit de controle:
URG | Bit de emergência | Bit eficaz do ponteiro de emergência, usado com o ponteiro de emergência |
---|---|---|
ACK | Bit de confirmação | Quando ACK = 1, o campo do número de sequência de confirmação é válido, quando for 0, é inválido |
PSH | Urgência | Quando o bit de sinalizador é 1, o receptor é obrigado a enviar o segmento de dados para a camada de aplicação o mais rápido possível |
RST | Reiniciar bit | Quando o valor RST é 1, ele é notificado para restabelecer a conexão TCP |
SYN | Bit de sincronização (conexão) | Bit do número da sequência de sincronização, defina este valor como 1 quando o TCP precisar estabelecer uma conexão |
FIM | Off bit | Quando o TCP concluir a transmissão de dados e precisar se desconectar, a parte que propõe a desconexão definirá esse valor como 1. |
-
Tamanho da janela: indica o número de segmentos de dados que podem ser aceitos localmente. O tamanho deste valor é variável. Quando a rede é desbloqueada, a extremidade receptora responde à mensagem para aumentar o valor da janela para acelerar a velocidade de transmissão. Quando a rede está instável, a redução desse valor pode garantir a transmissão confiável dos dados da rede , o tráfego no controle TCP é obtido alterando o tamanho da janela. Por exemplo, a velocidade de download aumenta gradualmente de alguns KB para alguns MB no início. Usado para controlar a velocidade da rede.
-
Checksum: usado para controle de erros. O escopo da inspeção de campo inclui duas partes: cabeçalho e dados. O segmento de dados será verificado e calculado quando for enviado e quando chegar ao destino.Se os valores forem inconsistentes, os dados serão considerados corrompidos e o destinatário descartará os dados.
-
Ponteiro de emergência: usado em conjunto com URG, válido quando URG = 1.
-
Opção: pode haver até 40 bytes de informações opcionais no cabeçalho TCP. Por exemplo, o comprimento máximo do segmento MSS (Tamanho Máximo do Segmento). O MSS informa ao TCP da outra parte: O campo de dados do segmento da mensagem que meu buffer pode receber tem até bytes de MSS.
3. Processo de handshake de três vias
-
PC1 deseja estabelecer uma conexão com PC2, primeiro envie uma mensagem SYN (SYN = 1) para solicitar o estabelecimento de uma conexão PC1seq número de sequência x
-
Após o recebimento de PC2, ele envia pacotes SYN e ACK, ou seja, (ACK = 1) confirma e também (SYN = 1) solicitação para estabelecer uma conexão. PC2seq é y, Ack = x + 1, este Ack é o número de confirmação , o que significa que ox de PC1 foi Roger isso.
-
PC1 recebe a solicitação de PC2 para estabelecer uma conexão e também confirma (ACK = 1) e responde com seq = x + 1, Ack = y + 1 significa que y de PC2 foi recebido.
Quatro. Processo de quatro ondas
-
PC1 deseja se desconectar do PC2, primeiro envie (FIN = 1) para solicitar a desconexão e (ACK = 1) confirmação.
-
PC2 responde (ACK = 1) e concorda em desconectar. Este está meio desconectado. Neste momento, o PC1 não pode mais se conectar ao PC2, mas o PC2 ainda pode enviar dados para o PC1.
-
Então, o PC2 também deseja se desconectar do PC1, enviar (FIN = 1) e confirmar (ACK = 1).
-
PC1 (ACK = 1) confirma a desconexão.