Qual é a diferença entre um segmento TCP e um pacote TCP?

13

Um segmento TCP não faz parte de um pacote TCP?

Aqui está o que eu li:

A segment is a piece of application data chopped into a transportable size by TCP and wrapped with a TCP header

O próprio cabeçalho TCP não é composto de segmentos?

    
por use753231 16.06.2011 / 16:37

11 respostas

18

Dizemos que TCP segment é a unidade de dados de protocolo que consiste em um cabeçalho TCP e uma parte de dados do aplicativo (pacote) que vem da camada de aplicação (superior). Os dados da camada de transporte são geralmente denominados segment e a unidade de dados da camada de rede é denominada datagram , mas quando usamos UDP como protocolo de camada de transporte não diz UDP segment , em vez disso, diz UDP datagram . Acho que isso acontece porque não segmentamos a unidade de dados UDP (a segmentação é feita na camada de transporte quando usamos o TCP).

    
por 03.11.2012 / 14:33
7

O TCP RFC original é um pouco confuso com a forma como ele usa o termo "segmento".

Em alguns casos, o termo "segmento" refere-se apenas à parte atual do fluxo de dados do aplicativo que está sendo transmitida, o que exclui os cabeçalhos TCP. Por exemplo, o "Tamanho Máximo do Segmento" (MSS) do TCP é o tamanho máximo do fragmento de dados do aplicativo nesta mensagem, sem contar os cabeçalhos TCP.

Mas em outros casos, o termo "segmento" inclui toda a mensagem TCP, incluindo os cabeçalhos TCP. De fato, em pelo menos um caso, a especificação menciona segmentos TCP sem dados de aplicativo (como Acks simples).

Uma única mensagem IP inteira é um "datagrama".

O RFC IP original refere-se a mensagens de camada de link como "pacotes". Os datagramas IP podem ser divididos em "fragmentos" para se ajustarem aos limites de tamanho de pacote em redes de pacotes pequenos.

A camada de enlace IEEE 802.3 / Ethernet refere-se a uma única transmissão de camada física contígua como um "pacote". A parte do link de dados MAC do pacote é chamada de "frame". O quadro começa com o endereço MAC de destino e termina com a sequência de verificação de quadros. A parte do quadro que pode conter um datagrama IP (ou seu fragmento) é chamada de "campo Dados do Cliente MAC".

Então, tecnicamente, não existe um "pacote TCP" ou um "pacote IP". Pacotes são termos das camadas abaixo de IP. O TCP tem "segmentos" e o IP tem "datagramas".

    
por 17.06.2011 / 14:09
2

O cabeçalho TCP, também conhecido como "cabeçalho do segmento", e a carga útil, ou dados, ou "dados do segmento" compõem o segmento TCP, de tamanho variável.

    
por 16.06.2011 / 17:20
2

Um segmento TCP é chamado de datagrama. Normalmente, um segmento ou um datagrama é um pacote. Quando o datagrama ou pacote é processado pela camada de rede, ele adiciona o cabeçalho IP aos dados e se torna um pacote IP.

A camada de transporte segmenta os dados em unidades menores chamadas Segmentos, datagramas ou chamados pacotes. Mas geralmente os referimos como segmentos.

    
por 13.03.2013 / 06:58
2

O segmento tcp é apenas um conceito, é diferente com o desfragmentação ip

quando você envia dados que são maiores que ip mtu, eles são colocados em um pacote ip, mas a camada ip então acha que o pacote ip é muito longo para transmitir, então ele irá dividir pacotes grandes em vários pedaços, cada um deles tem o mesmo Identificador, mas com um deslocamento e um comprimento de dados diferentes. o lado da recepção é responsável por coletar todas as peças, depois de receber todas as peças, ele irá reunir todas as partes em um pacote ip inteiro e empurrá-lo para a camada superior do protocolo.

mas a camada tcp tem um comportamento diferente. quando você envia um dado que é grande o suficiente, a camada tcp não coloca os dados em um pacote tcp, então os divide em pedaços (mas o ip faz), recupera uma parte dos dados brutos em um pacote tcp e então empurra o dado. tcp packet to ip layer, o comprimento do pacote tcp é determinado por mss, depois ele recuperará outra parte dos dados restantes em outro pacote tcp e repetirá o processo até que todos os dados sejam transmitidos.

se tcp não usa mss, é horrível. suponha que você envie um dado que é maior que mss, ele será colocado em apenas um pacote tcp (os dados não são divididos em pequenos pedaços devido a mss não usados), o pacote tcp é maior que o ip mtu, então o ip irá dividir o tcp pacote em pedaços. o pacote tcp irá retransmitir se qualquer uma das partes for perdida, perder tempo e largura de banda

ps: tcp_mss = ip_mtu - tcp_header

    
por 29.08.2013 / 08:41
1

Um cabeçalho não é composto de segmentos. Um cabeçalho sempre tem o mesmo tamanho e deve estar completo. Caso contrário, o pacote não poderia ser decodificado.

O que você chama de "Segmento" é todo o "pacote" que é posteriormente combinado com outros para o fluxo TCP. Consulte:

Transmission Control Protocol accepts data from a data stream, 'segments' it into chunks, and adds a TCP header creating a TCP segment.

    
por 16.06.2011 / 17:11
1

O TCP recebe dados da camada de aplicação e "corta" esses dados em vários segmentos de dados; partes dos dados originais com um cabeçalho TCP adicionado. Parte deste cabeçalho é um número de sequência que é usado pelo protocolo TCP no final do recebimento para colocar todos os segmentos recebidos (menos os cabeçalhos) na ordem correta e remontar os dados originais que são transferidos para a camada de aplicação. .

Então, para responder sua pergunta; o termo 'pacote TCP' realmente não existe. É chamado de "segmento", que consiste em um cabeçalho e uma seção de dados. O próprio cabeçalho consiste em vários 'campos' que contêm, entre outros, um número de seqüência, soma de verificação e números de porta de origem e destino.

    
por 25.06.2013 / 14:47
1

Quando você envia dados através de uma conexão TCP, a quantidade de dados que você envia pode exceder o tamanho máximo de bytes permitido pela conexão em um único pacote. Esse valor "Maximum Segment Size" (também chamado de MSS) é "negociado" (1) no tempo de conexão entre os dois pontos finais TCP (o cliente e o servidor). O protocolo TCP de nível 4 do OSI é responsável pela dispersão / coleta. Isso significa que seu fluxo de dados é dividido em partes menores (chamadas de segmentos) e enviado separadamente pela rede. Por outro lado, a camada TCP é responsável por reunir novamente o pacote na ordem correta para reformar o fluxo exatamente como foi enviado. Nada pode lhe dizer que os segmentos chegarão ao destino na mesma ordem que na partida. É também por isso que os pacotes são numerados. Mais, os pacotes são reconhecidos um por um separadamente (2) pelo receptor, mas em algum momento os pacotes podem ser perdidos. Então, nenhum ACK será retornado do destino do pacote para o emissor. Então o emissor deve reenviá-lo (esse também é o papel do TCP). Às vezes o pacote é recebido corretamente, mas o ack não é recebido pelo emissor (perdemos o pacote novamente). Nesse caso, o emissor irá reenviá-lo, mas o destinatário vê que ele já o recebeu (ou seja, um pacote de Dup) e o elimina, mas reenvia o ack para o remetente.

Também para melhorar o rendimento, o emissor pode enviar vários pacotes em série e não precisa esperar que o ack anterior envie o próximo pacote. Também faz parte do protocolo TCP e é chamado de janelas deslizantes. O número de pacotes enviados pendentes para uma confirmação é limitado.

(1) Em fatos, não há negociação alguma, cada end point informa ao Tamanho Máximo com o qual ele é capaz de lidar. Este valor não inclui os 20 bytes do cabeçalho IP, nem os 20 bytes do cabeçalho TCP. (2) vários pacotes também podem ser reconhecidos por um único ACK.

Tenha em mente que os datagramas são dados encapsulados enviados em uma rede IP ou usando um protocolo sem conexão, como o UDP. Os pacotes são dados encapsulados para um protocolo orientado à conexão, como o TCP. Segmentos são partes de um fluxo de dados enviado no TCP. Veja W.Richard Stevens "ilustrado TCP / IP" para ter uma explicação muito melhor de todas essas coisas.

    
por 25.06.2013 / 16:18
0

Um segmento TCP é um pacote. Um segmento é apenas uma parte de um fluxo de conexão TCP entre dois computadores. Um datagrama é um "pacote" em termos de UDP.

    
por 16.06.2011 / 17:09
0

Um pacote IP é composto de um cabeçalho IP com dados anexados. Os dados, é um cabeçalho TCP e um segmento de dados de aplicativos, chamado de segmento TCP. Segmento TCP é o que você geralmente chama de Pacote TCP.

    
por 16.06.2011 / 18:12
0

O termo "genérico" para coisas como esta é a Unidade de Dados de Protocolo, ou PDU.

LAYER # - OSI NAME     - COMMON PROTOCOL OR USE - PDU NAME
-------   ------------   ----------------------   --------------------------
Layer 1 - Physical     - Transceiver            - bits, or a physical signal
Layer 2 - Datalink     - Ethernet               - frame
Layer 3 - Network      - IP                     - packet
Layer 4 - Transport    - TCP                    - segment
Layer 5 - Session      - SIP                    - data, request, or response
Layer 6 - Presentation - Encryption/compression - data, request, or response
Layer 7 - Application  - HTTP                   - data, request, or response

As coisas ficam meio borradas com protocolos específicos da camada 4 e acima (por exemplo, até hoje eu não sei de nada que seja realmente puramente um protocolo de sessão, e realmente não existe algo como um comum " apresentação "protocolo, mas é camada quase separada em um monte de software / comunicação stacks).

Além disso, como mencionado anteriormente, cada uma dessas PDUs tem um cabeçalho que é diferente de sua carga útil , ou dados. O cabeçalho contém informações sobre os dados e possivelmente uma soma de verificação para verificação no outro lado.

    
por 16.06.2011 / 20:40

Tags