<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arquivo para Protocolos - Bóson Treinamentos em Ciência e Tecnologia</title>
	<atom:link href="https://www.bosontreinamentos.com.br/tag/protocolos/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bosontreinamentos.com.br/tag/protocolos/</link>
	<description>Artigos e Tutoriais sobre Desenvolvimento de Software, Bancos de Dados SQL, Linux, Lógica de Programação, Inteligência Artificial, Hardware, Eletrônica, Arduino, Técnicas e Teorias de Estudo e Aprendizagem, Carreira em TI, Ciências Cognitivas, e muito mais!</description>
	<lastBuildDate>Thu, 28 Mar 2024 12:59:38 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>
	<item>
		<title>Formato do Cabeçalho IPv6</title>
		<link>https://www.bosontreinamentos.com.br/redes-computadores/formato-do-cabecalho-ipv6/</link>
					<comments>https://www.bosontreinamentos.com.br/redes-computadores/formato-do-cabecalho-ipv6/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Wed, 22 Jul 2020 16:30:14 +0000</pubDate>
				<category><![CDATA[Redes de Computadores]]></category>
		<category><![CDATA[Protocolos]]></category>
		<category><![CDATA[Redes]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=16802</guid>

					<description><![CDATA[<p>O Formato do Cabeçalho IPv6 O cabeçalho de um pacote IPv6 é uma versão simplificada do cabeçalho do pacote IPv4. Alguns campos foram eliminados, por serem desnecessários ou raramente usados, ao passo que alguns outros campos são acrescentados, por exemplo de modo a fornecer suporte melhorado a tráfego em tempo real. Estrutura do Pacote IPv6 A seguir temos a estrutura de um pacote IPv6: Estrutura de um pacote IPv6 Note que existem três divisões principais em um pacote IPv6: seu cabeçalho, os cabeçalhos de extensão e o PDU (Protocol Data Unit) da camada superior; juntas, as extensões mais a PDU constituem o payload do pacote. O PDU da camada superior corresponde ao cabeçalho do protocolo da camada superior (camada de transporte) com seus dados (payload), como por exemplo uma mensagem UDP ou um segmento TCP. Já o payload de um pacote IPv6 é constituído pelo PDU da camada superior acrescido dos cabeçalhos de extensão, até um tamanho máximo padrão de 65535 bytes. Caso seja necessário enviar um payload maior do que esse tamanho, existe a possibilidade de se empregar um Payload Jumbo no cabeçalho de extensão Hop-by-Hop Options (Opções Salto-a-Salto). Cabeçalho de um pacote IPv6 Um cabeçalho IPv6 possui um tamanho [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/redes-computadores/formato-do-cabecalho-ipv6/">Formato do Cabeçalho IPv6</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>O Formato do Cabeçalho IPv6</h2>
<p>O cabeçalho de um pacote IPv6 é uma versão simplificada do cabeçalho do pacote IPv4. Alguns campos foram eliminados, por serem desnecessários ou raramente usados, ao passo que alguns outros campos são acrescentados, por exemplo de modo a fornecer suporte melhorado a tráfego em tempo real.</p>
<h3>Estrutura do Pacote IPv6</h3>
<p>A seguir temos a estrutura de um pacote IPv6:</p>
<div id="attachment_16891" style="width: 809px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-16891" class="wp-image-16891" title="Estrutura de um pacote IPv6" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/07/estrutura-pacote-IPv6.jpg" alt="Estrutura de um pacote IPv6" width="799" height="210" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/07/estrutura-pacote-IPv6.jpg 867w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/07/estrutura-pacote-IPv6-420x110.jpg 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/07/estrutura-pacote-IPv6-768x202.jpg 768w" sizes="(max-width: 799px) 100vw, 799px" /><p id="caption-attachment-16891" class="wp-caption-text">Estrutura de um pacote IPv6</p></div>
<p>Note que existem três divisões principais em um pacote IPv6: seu cabeçalho, os cabeçalhos de extensão e o PDU (Protocol Data Unit) da camada superior; juntas, as extensões mais a PDU constituem o <em>payload</em> do pacote.</p>
<p>O PDU da camada superior corresponde ao cabeçalho do protocolo da camada superior (camada de transporte) com seus dados (payload), como por exemplo uma mensagem UDP ou um segmento TCP.</p>
<p>Já o payload de um pacote IPv6 é constituído pelo PDU da camada superior acrescido dos cabeçalhos de extensão, até um tamanho máximo padrão de 65535 bytes. Caso seja necessário enviar um payload maior do que esse tamanho, existe a possibilidade de se empregar um Payload Jumbo no cabeçalho de extensão Hop-by-Hop Options (Opções Salto-a-Salto).</p>
<h2>Cabeçalho de um pacote IPv6</h2>
<p>Um cabeçalho IPv6 possui um tamanho fixo de 40 bytes (320 bits), dos quais 32 bytes (256 bits) correspondem aos endereços IPv6 de origem e destino do pacote, com os demais campos ocupando os 64 bits restantes.</p>
<p>O cabeçalho IPv6, juntamente com os cabeçalhos de extensão, substituem o cabeçalho IPv4 e suas opções de cabeçalho. Os cabeçalhos de extensão IPv6 não possuem tamanho máximo (ao contrário do IPv4), e podem ser expandidos para acomodar quaisquer dados que sejam necessários para a comunicação usando o protocolo IPv6.</p>
<p>A ilustração a seguir mostra a estrutura de campos de um pacote IPv6:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-16803" title="Campos de um cabeçalho IPv6" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/05/IPv6-header-protocolos-redes.jpg" alt="Campos de um cabeçalho IPv6" width="701" height="458" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/05/IPv6-header-protocolos-redes.jpg 959w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/05/IPv6-header-protocolos-redes-420x275.jpg 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/05/IPv6-header-protocolos-redes-768x502.jpg 768w" sizes="auto, (max-width: 701px) 100vw, 701px" /></p>
<p>A seguir, descrevemos cada um dos campos encontrados em um pacote IPv6.</p>
<h3>Campos do Pacotes IPv6</h3>
<ul>
<li><strong>Versão</strong>: Indica a versão do protocolo IP em uso. Para o protocolo IPv6, o valor 6 é utilizado neste campo. Tamanho: 4 bits.</li>
<li><strong>Classe de Tráfego</strong>: Indica a classe ou prioridade do pacote IPv6, sendo um campo similar ao campo de serviços de um pacote IPv4. Este campo auxilia os roteadores a manipular tráfego baseado na prioridade do pacote. Quando ocorre congestionamento em um roteador, pacotes com menor prioridade são descartados. Tamanho: 8 bits.</li>
<li><strong>Rótulo de Fluxo</strong>: Empregado pela origem para rotular os pacotes que pertencem ao mesmo fluxo de dados, de modo a requisitar manipulação especial por roteadores IPv6 intermediários. Exemplos desse tratamento especial são o uso de QoS não padrão ou serviços de tempo real. Tamanho: 20 bits</li>
<li><strong>Tamanho do Conteúdo</strong>: Valor que indica o tamanho total da carga (payload), informando aos roteadores a quantidade de informação que um pacote contém, incluindo dados e cabeçalhos de extensão (se houver algum). Tamanho: 16 bits.</li>
<li><strong>Próximo Cabeçalho</strong>: Indica o tipo de cabeçalho de extensão (se houver) imediatamente após o cabeçalho IP básico. Pode indicar os protocolos contidos no pacote da camada superior, TCP ou UDP. Tamanho: 8 bits.</li>
<li><strong>Limite de Saltos</strong>: Similar ao campo TTL de um pacote IPv4, medido em saltos, que indica o número máximo de nós IPv6 intermediários que o pacote pode atravessar (ser roteado). Seu valor é decrementado de 1 a cada nó que o pacote atravessa. Caso esse valor chegar a 0 antes de atingir seu destino, o pacote é descartado. Tamanho: 8 bits.</li>
<li><strong>Endereço IP de Origem</strong>: Endereço IP do remetente original do pacote. Tamanho: 128 bits.</li>
<li><strong>Endereço IP de Destino</strong>: Endereço IP do destinatário final do pacote (no geral). Tamanho: 128 bits.</li>
<li><strong>Cabeçalhos de Extensão</strong>: Algumas vezes, informações adicionais precisam ser transportadas juntamente com o pacote. Estas informações, em um pacote IPv4, estariam no campo de Opções. Para tal, é empregado o campo de Cabeçalho de Extensão.<br />
Um pacote IPv6 pode conter zero ou mais cabeçalhos de extensão, que devem aparecer em uma ordem recomendada. Vamos tratar mais a fundo das extensões IPv6 na próxima lição.</li>
<li><strong>Dados</strong>: <em><strong>Payload</strong></em> do pacote (provenientes da camada de nível superior).</li>
</ul>
<h3>Diferenças entre os cabeçalhos IPv4 e IPv6</h3>
<p>A tabela a seguir mostra uma comparação básica entre os campos constituintes do cabeçalho de um pacote IPv4 e de um pacote IPv6:</p>
<table style="border-collapse: collapse; width: 100%; height: 277px;" border="1">
<thead>
<tr style="height: 23px;">
<td style="width: 40.4643%; height: 23px; text-align: center;"><strong>Campo no cabeçalho IPv4</strong></td>
<td style="width: 59.5357%; height: 23px; text-align: center;"><strong>Campo no cabeçalho IPv6</strong></td>
</tr>
</thead>
<tbody>
<tr style="height: 23px;">
<td style="width: 40.4643%; height: 23px;">Versão</td>
<td style="width: 59.5357%; height: 23px;">Igual, mas com números diferentes para versão</td>
</tr>
<tr style="height: 23px;">
<td style="width: 40.4643%; height: 23px;">Comprimento do Cabeçalho IP</td>
<td style="width: 59.5357%; height: 23px;">Campo removido no IPv6 &#8211; o cabeçalho IPv6 possui tamanho fixo de 40 bytes.</td>
</tr>
<tr style="height: 23px;">
<td style="width: 40.4643%; height: 23px;">Tipo de Serviço</td>
<td style="width: 59.5357%; height: 23px;">Substituído pelo campo Classe de Tráfego</td>
</tr>
<tr style="height: 23px;">
<td style="width: 40.4643%; height: 23px;">Tamanho Total</td>
<td style="width: 59.5357%; height: 23px;">Tamanho do Conteúdo (Payload Length), que mostra apenas o tamanho do payload.</td>
</tr>
<tr style="height: 47px;">
<td style="width: 40.4643%; height: 47px;">Identificação, Flags de Fragmentação, Offset de Fragmento</td>
<td style="width: 59.5357%; height: 47px;">Removidos no IPv6. As informações sobre fragmentação estão em um cabeçalho de extensão.</td>
</tr>
<tr style="height: 23px;">
<td style="width: 40.4643%; height: 23px;">TTL (Time to Live)</td>
<td style="width: 59.5357%; height: 23px;">Substituído pelo campo Limite de Salto</td>
</tr>
<tr style="height: 23px;">
<td style="width: 40.4643%; height: 23px;">Protocolo</td>
<td style="width: 59.5357%; height: 23px;">Substituído pelo campo Próximo Cabeçalho</td>
</tr>
<tr style="height: 23px;">
<td style="width: 40.4643%; height: 23px;">Checksum do Cabeçalho</td>
<td style="width: 59.5357%; height: 23px;">Removido no IPv6. Verificações de erro são realizadas na camada de link de dados.</td>
</tr>
<tr style="height: 23px;">
<td style="width: 40.4643%; height: 23px;">Endereço de Origem</td>
<td style="width: 59.5357%; height: 23px;">Igual, mas contendo um endereço de 128 bits.</td>
</tr>
<tr style="height: 23px;">
<td style="width: 40.4643%; height: 23px;">Endereço de Destino</td>
<td style="width: 59.5357%; height: 23px;">Igual, mas contendo um endereço de 128 bits.</td>
</tr>
<tr>
<td style="width: 40.4643%;">Opções</td>
<td style="width: 59.5357%;">Removido no IPv6. As opções IPv4 foram substituídas pelos cabeçalhos de extensão.</td>
</tr>
</tbody>
</table>
<p>No próximo artigo vamos nos aprofundar nos cabeçalhos de extensão, mostrando os principais tipos de extensões que podem ser usadas no envio de mensagens usando o protocolo IPv6.</p>
<h3>Colabore com a Bóson Treinamentos</h3>
<p>Ajude o canal adquirindo meus cursos na Udemy:</p>
<ul>
<li>Bancos de Dados com MySQL Básico: <a href="https://bit.ly/35QdWE4" target="_blank" rel="noopener">https://bit.ly/35QdWE4</a></li>
<li>Lógica de Programação com Português Estruturado: <a href="https://bit.ly/3QKPn22" target="_blank" rel="noopener">https://bit.ly/3QKPn22</a></li>
<li>Programação em Python do Zero: <a href="https://bit.ly/python-boson" target="_blank" rel="noopener">https://bit.ly/python-boson</a></li>
</ul>
<p>Adquira também livros e outros itens na loja da Bóson Treinamentos na Amazon e ajude o canal a se manter e crescer: <a href="https://www.amazon.com.br/shop/bosontreinamentos" target="_blank" rel="noopener">https://www.amazon.com.br/shop/bosontreinamentos</a></p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/redes-computadores/formato-do-cabecalho-ipv6/">Formato do Cabeçalho IPv6</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/redes-computadores/formato-do-cabecalho-ipv6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>12 diferenças entre os protocolos TCP e UDP</title>
		<link>https://www.bosontreinamentos.com.br/redes-computadores/12-diferencas-entre-os-protocolos-tcp-e-udp/</link>
					<comments>https://www.bosontreinamentos.com.br/redes-computadores/12-diferencas-entre-os-protocolos-tcp-e-udp/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Tue, 14 Jan 2020 13:25:01 +0000</pubDate>
				<category><![CDATA[Redes de Computadores]]></category>
		<category><![CDATA[Protocolos]]></category>
		<category><![CDATA[Redes]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=12586</guid>

					<description><![CDATA[<p>12 diferenças entre os protocolos TCP e UDP A camada de transporte da pilha TCP/IP, intermediária entre as camadas de Aplicação e Internet, é responsável por funções de comunicação entre processos de computadores diferentes. Desta forma, as aplicações podem enviar e receber dados entre si. Na pilha TCP/IP, os dois principais protocolos da camada de transporte são o protocolo TCP (Transmission Control Protocol)  e o protocolo UDP (User Datagram Protocol). Vamos neste artigo mostrar as diferenças (e semelhanças) entre esses dois protocolos, para que seja possível saber quando se deve utilizar um ou o outro. Qual a diferença entre os protocolos TCP e UDP? Vamos resumir na tabela a seguir as diferenças entre as características e funcionalidades dos protocolos UDP e TCP: Característica TCP UDP Significado Transmission Control Protocol User Datagram Protocol Camada TCP/IP Transporte Transporte Conexão Orientado a conexão &#8211; Os dispositivos envolvidos precisam estabelecer uma conexão antes de transmitir dados (com handshake) Não orientado a conexão &#8211; Os dispositivos envolvidos não precisam estabelecer uma conexão antes de transmitir dados (sem handshake) Aplicação Para aplicações que requeiram alta confiabilidade, com tempo de transmissão não muito crítico, como envio de e-mails e download de arquivos Para aplicações que necessitem de [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/redes-computadores/12-diferencas-entre-os-protocolos-tcp-e-udp/">12 diferenças entre os protocolos TCP e UDP</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>12 diferenças entre os protocolos TCP e UDP</h2>
<p>A <a href="http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-camada-de-transporte-da-pilha-tcpip/">camada de transporte da pilha TCP/IP</a>, intermediária entre as camadas de Aplicação e Internet, é responsável por funções de comunicação entre processos de computadores diferentes. Desta forma, as aplicações podem enviar e receber dados entre si.</p>
<p>Na pilha TCP/IP, os dois principais protocolos da camada de transporte são o <a href="http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-transmission-control-protocol/">protocolo TCP (Transmission Control Protocol)</a>  e o <a href="http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-udp-user-datagram-protocol/">protocolo UDP (User Datagram Protocol)</a>. Vamos neste artigo mostrar as diferenças (e semelhanças) entre esses dois protocolos, para que seja possível saber quando se deve utilizar um ou o outro.</p>
<h3>Qual a diferença entre os protocolos TCP e UDP?</h3>
<p>Vamos resumir na tabela a seguir as diferenças entre as características e funcionalidades dos protocolos UDP e TCP:</p>
<table style="border-collapse: collapse; width: 100%; height: 46px;" border="1">
<thead>
<tr style="height: 23px;">
<td style="width: 33.3333%; text-align: center; height: 23px;"><strong>Característica</strong></td>
<td style="width: 33.3333%; text-align: center; height: 23px;"><strong>TCP</strong></td>
<td style="width: 33.3333%; text-align: center; height: 23px;"><strong>UDP</strong></td>
</tr>
</thead>
<tbody>
<tr style="height: 23px;">
<td style="width: 33.3333%; height: 23px;">Significado</td>
<td style="width: 33.3333%; height: 23px;">Transmission Control Protocol</td>
<td style="width: 33.3333%; height: 23px;">User Datagram Protocol</td>
</tr>
<tr>
<td style="width: 33.3333%;">Camada TCP/IP</td>
<td style="width: 33.3333%;">Transporte</td>
<td style="width: 33.3333%;">Transporte</td>
</tr>
<tr>
<td style="width: 33.3333%;">Conexão</td>
<td style="width: 33.3333%;">Orientado a conexão &#8211; Os dispositivos envolvidos precisam estabelecer uma conexão antes de transmitir dados (com handshake)</td>
<td style="width: 33.3333%;">Não orientado a conexão &#8211; Os dispositivos envolvidos não precisam estabelecer uma conexão antes de transmitir dados (sem handshake)</td>
</tr>
<tr>
<td style="width: 33.3333%;">Aplicação</td>
<td style="width: 33.3333%;">Para aplicações que requeiram alta confiabilidade, com tempo de transmissão não muito crítico, como envio de e-mails e download de arquivos</td>
<td style="width: 33.3333%;">Para aplicações que necessitem de transmissão de dados rápida e eficiente, como streaming de vídeo e jogos online</td>
</tr>
<tr>
<td style="width: 33.3333%;">Ordenação de dados</td>
<td style="width: 33.3333%;">Os pacotes de dados são organizados em uma ordem especificada</td>
<td style="width: 33.3333%;">Não há ordem específica para os pacotes de dados. Se for necessária, a ordem deve ser gerenciada pela camada de aplicação</td>
</tr>
<tr>
<td style="width: 33.3333%;">Confiabilidade</td>
<td style="width: 33.3333%;">Confiável, pois garante a entrega dos dados ao destino</td>
<td style="width: 33.3333%;">Não confiável, pois a entrega de dados ao destino não pode ser garantida</td>
</tr>
<tr>
<td style="width: 33.3333%;">Verificação de Erros</td>
<td style="width: 33.3333%;">Possui mecanismos de verificação de erros sofisticados e recuperação de erros</td>
<td style="width: 33.3333%;">Mecanismo de verificação de erros básico, com checksum apenas, sem recuperação de erros</td>
</tr>
<tr>
<td style="width: 33.3333%;">Velocidade</td>
<td style="width: 33.3333%;">Mais lento que o UDP</td>
<td style="width: 33.3333%;">Mais rápido que o TCP, mais simples e eficiente</td>
</tr>
<tr>
<td style="width: 33.3333%;">Retransmissão de pacotes</td>
<td style="width: 33.3333%;">Pacotes perdidos podem ser retransmitidos</td>
<td style="width: 33.3333%;">Pacotes perdidos não são retransmitidos</td>
</tr>
<tr>
<td style="width: 33.3333%;">Tamanho do cabeçalho</td>
<td style="width: 33.3333%;">Cabeçalho de tamanho variável, de 20 a 80 bytes (padrão 20)</td>
<td style="width: 33.3333%;">Cabeçalho de tamanho fixo: 8 bytes</td>
</tr>
<tr>
<td style="width: 33.3333%;">Suporta broadcasting?</td>
<td style="width: 33.3333%;">Não suporta broadcasting de dados</td>
<td style="width: 33.3333%;">Suporta broadcasting de dados</td>
</tr>
<tr>
<td style="width: 33.3333%;">Protocolos que o empregam</td>
<td style="width: 33.3333%;">O TCP é usado por protocolos como HTTP, FTP, SMTP, HTTPS</td>
<td style="width: 33.3333%;">O UDP é usado pelos protocolos DNS, DHCP, SNMP, RIP, TFTP</td>
</tr>
<tr>
<td style="width: 33.3333%;">Controle de Fluxo</td>
<td style="width: 33.3333%;">Realiza controle de fluxo</td>
<td style="width: 33.3333%;">Não realiza controle de fluxo</td>
</tr>
</tbody>
</table>
<h3>Comparação dos campos dos cabeçalhos dos protocolos TCP e UDP</h3>
<p><strong>Campos do cabeçalho TCP:</strong><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-16207" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/01/cabecalho-tcp-campos-boson.jpg" alt="Campos do cabeçalho TCP" width="856" height="598" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/01/cabecalho-tcp-campos-boson.jpg 856w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/01/cabecalho-tcp-campos-boson-420x293.jpg 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/01/cabecalho-tcp-campos-boson-768x537.jpg 768w" sizes="auto, (max-width: 856px) 100vw, 856px" />Como podemos ver na ilustração, o cabeçalho do protocolo TCP é composto de doze campos, a saber:</p>
<ul>
<li>Número de Porta de Origem</li>
<li>Número de Porta de Destino</li>
<li>Número de Sequência</li>
<li>Número de Confirmação</li>
<li>Comprimento do Cabeçalho</li>
<li>Reservado</li>
<li>Flags ECN</li>
<li>Bits de Controle</li>
<li>Tamanho da Janela</li>
<li>Checksum</li>
<li>Ponteiro de Urgente</li>
<li>Opções</li>
</ul>
<p><strong>Campos do cabeçalho UDP:</strong><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-16208" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/01/campos-cabecalho-protocolo-UDP-boson.png" alt="Campos do cabeçalho UDP" width="862" height="322" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/01/campos-cabecalho-protocolo-UDP-boson.png 862w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/01/campos-cabecalho-protocolo-UDP-boson-420x157.png 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/01/campos-cabecalho-protocolo-UDP-boson-768x287.png 768w" sizes="auto, (max-width: 862px) 100vw, 862px" />Já o cabeçalho do protocolo UDP é composto de apenas quatro campos, que são os seguintes:</p>
<ul>
<li>Número de Porta de Origem</li>
<li>Número de Porta de Destino</li>
<li>Comprimento</li>
<li>Checksum</li>
</ul>
<h3>Saiba Mais</h3>
<p>Para saber mais sobre os protocolos TCP e UDP leia também:</p>
<ul>
<li><a href="http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-camada-de-transporte-da-pilha-tcpip/">Camada de Transporte da pilha TCP/IP</a></li>
<li><a href="http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-udp-user-datagram-protocol/">O que é o protocolo UDP</a></li>
<li><a href="http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-transmission-control-protocol/">O que é o protocolo TCP</a></li>
<li><a href="http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-controle-de-fluxo/">Controle de Fluxo e Controle de Erros do Protocolo TCP</a></li>
<li><a href="http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-handshake-de-tres-vias/">O Handshake de Três Vias no Protocolo TCP</a></li>
<li><a href="http://www.bosontreinamentos.com.br/quiz-basico-de-protocolo-tcpip/">Quiz Básico de Protocolo TCP/IP</a></li>
</ul>
<h3>Referências</h3>
<ul>
<li>Stevens, R. <em><strong>TCP/IP Illustrated, Volume 1</strong></em>. Ed. Addison Wesley, 2000</li>
<li>Siyan, K. S.; Parker, T. <em><strong>TCP/IP Unleashed</strong></em>. Ed. SAMS Publishing, 2002</li>
<li>Forouzan, B. A. <em><strong>TCP/IP Protocol Suite</strong></em>. 4º edição. Ed. McGraw-Hill, 2010</li>
<li>Murhammer; Atakan; Bretz; Pugh; Suzuki; Wood. <em><strong>TCP/IP Tutorial e Técnico &#8211; IBM Books</strong></em>. Makron Books.</li>
</ul>
<h3>Colabore com a Bóson Treinamentos</h3>
<p>Ajude o canal adquirindo meus cursos na Udemy:</p>
<ul>
<li>Bancos de Dados com MySQL Básico: <a href="https://bit.ly/35QdWE4" target="_blank" rel="noopener">https://bit.ly/35QdWE4</a></li>
<li>Lógica de Programação com Português Estruturado: <a href="https://bit.ly/3QKPn22" target="_blank" rel="noopener">https://bit.ly/3QKPn22</a></li>
<li>Programação em Python do Zero: <a href="https://bit.ly/python-boson" target="_blank" rel="noopener">https://bit.ly/python-boson</a></li>
</ul>
<p>Adquira também livros e outros itens na loja da Bóson Treinamentos na Amazon e ajude o canal a se manter e crescer: <a href="https://www.amazon.com.br/shop/bosontreinamentos" target="_blank" rel="noopener">https://www.amazon.com.br/shop/bosontreinamentos</a></p>
<p>O post <a href="https://www.bosontreinamentos.com.br/redes-computadores/12-diferencas-entre-os-protocolos-tcp-e-udp/">12 diferenças entre os protocolos TCP e UDP</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/redes-computadores/12-diferencas-entre-os-protocolos-tcp-e-udp/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Curso de Redes &#8211; Protocolo TCP &#8211; Controle de Fluxo e Controle de Erros</title>
		<link>https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-controle-de-fluxo/</link>
					<comments>https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-controle-de-fluxo/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Thu, 27 Sep 2018 18:18:24 +0000</pubDate>
				<category><![CDATA[Redes de Computadores]]></category>
		<category><![CDATA[Protocolos]]></category>
		<category><![CDATA[Redes]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=5224</guid>

					<description><![CDATA[<p>Protocolo TCP &#8211; Controle de Fluxo e Controle de Erros Controle de Fluxo Sempre que um dispositivo de comunicação produz informação que será consumida por um outro dispositivo de comunicação, deve haver um balanço entre a taxa de produção de um e a taxa de consumo do outro. Se um dos dispositivos transmite informações em uma taxa superior à taxa de consumo do outro dispositivo, provavelmente mensagens terão de ser descartadas. O contrário também pode ocorrer &#8211; um dispositivo transmissor enviando informações em uma taxa muito inferior à taxa que o dispositivo de destino pode suportar &#8211; fazendo com que nesse caso haja desperdício de capacidade do sistema. Deve haver um balanço para que o sistema seja eficiente. No que tange à taxa de transmissão do primeiro caso, o balanço pode ser alcançado usando-se técnicas de Controle de Fluxo, para que seja evitada a perda de dados no dispositivo de destino da transmissão. O Controle de Fluxo deve ser empregado quando a transmissão de dados entre dois dispositivos se dá da forma que denominamos Push, na qual o transmissor simplesmente envia dados para o receptor assim que eles estão disponíveis, sem que o receptor os tenha requisitado. Neste caso, o [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-controle-de-fluxo/">Curso de Redes &#8211; Protocolo TCP &#8211; Controle de Fluxo e Controle de Erros</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Protocolo TCP &#8211; Controle de Fluxo e Controle de Erros</h2>
<h3>Controle de Fluxo</h3>
<p>Sempre que um dispositivo de comunicação produz informação que será consumida por um outro dispositivo de comunicação, deve haver um balanço entre a taxa de produção de um e a taxa de consumo do outro. Se um dos dispositivos transmite informações em uma taxa superior à taxa de consumo do outro dispositivo, provavelmente mensagens terão de ser descartadas.</p>
<p>O contrário também pode ocorrer &#8211; um dispositivo transmissor enviando informações em uma taxa muito inferior à taxa que o dispositivo de destino pode suportar &#8211; fazendo com que nesse caso haja desperdício de capacidade do sistema. Deve haver um balanço para que o sistema seja eficiente.</p>
<p>No que tange à taxa de transmissão do primeiro caso, o balanço pode ser alcançado usando-se técnicas de Controle de Fluxo, para que seja evitada a perda de dados no dispositivo de destino da transmissão.</p>
<p>O Controle de Fluxo deve ser empregado quando a transmissão de dados entre dois dispositivos se dá da forma que denominamos <strong>Push</strong>, na qual o transmissor simplesmente envia dados para o receptor assim que eles estão disponíveis, sem que o receptor os tenha requisitado.</p>
<p>Neste caso, o receptor pode acabar recebendo dados em uma taxa muito superior à que ele suporta, e então dados acabam por serem descartados. Para que isso não ocorra, o receptor precisa pedir ao transmissor que pare de enviar dados momentaneamente, até que os dados recebidos sejam processados, e o receptor esteja pronto para receber mais dados.</p>
<p>Quando o receptor requisita os dados não há a necessidade de controle de fluxo, e chamamos essa forma de transmissão de modo <strong>Pull</strong>.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-5176 size-full" title="Controle de Fluxo via Push na camada de transporte TCP" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/controle-fluxo-push-camada-transporte.png" alt="Controle de Fluxo via Push na camada de transporte TCP" width="486" height="200" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/controle-fluxo-push-camada-transporte.png 486w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/controle-fluxo-push-camada-transporte-420x173.png 420w" sizes="auto, (max-width: 486px) 100vw, 486px" /></p>
<p>Para que o controle de fluxo possa ser implementado, são usados <strong>Buffers</strong>. Um Buffer é um local na memória que armazena pacotes conforme são recebidos. Existem dois buffers para realização de controle de fluxo: uma na camada de transporte do host transmissor, e outro na camada de transporte do host receptor.</p>
<p>O primeiro buffer armazena dados provenientes da camada de aplicação do mesmo host, e o segundo buffer armazena os dados recebidos a partir da rede, no host receptor (de destino). Quando o buffer da camada de transporte do host de destino está cheio, ele informa à camada de transporte do transmissor que ela deve parar de enviar pacotes. Quando o buffer começa a se esvaziar, ele informa à camada de transporte do transmissor que ele pode continuar a enviar dados.</p>
<p>O mesmo ocorre com o buffer da camada de transporte do transmissor: Quando ele está cheio, informa à camada de aplicação do transmissor que ela deve parar de enviar mensagens. Quando o buffer começa a se esvaziar, ele informa à camada de aplicação que pode continuar a enviar as mensagens.</p>
<h3>Controle de Erros</h3>
<p>A camada de Internet (Rede) é dita como &#8220;não-confiável&#8221;, o que significa que não há garantia da entrega de pacotes entre dois hosts que se comunicam entre si. Para que uma comunicação possa ser considerada confiável, a camada de transporte pode implementar mecanismos para garantir a entrega desses pacotes durante uma transmissão.</p>
<p>Chamamos a esse processo de &#8220;Controle de Erros&#8221;, e ele consiste, basicamente, em detectar e descartar pacotes corrompidos, acompanhar pacotes descartados e perdidos (para reenviá-los), verificar a existência de pacotes duplicados (e descartá-los), e guardar em buffer pacotes que cheguem fora de ordem, até que seja possível reordená-los.</p>
<p>O controle de erros é realizado pela camada de transporte do host de destino dos dados, e funciona informando à camada de transporte do transmissor a repeito de problemas que venham a ocorrer.</p>
<p>Uma das informações que são usadas para realizar o controle de erros são o Números de Sequência, que são números usados para numerar os segmentos enviados. Esse número é gravado em um dos campos do cabeçalho do segmento na camada de transporte, e quando um pacote é corrompido ou perdido, a camada de transporte do receptor detecta a falta do segmento respectivo e pode informar ao transmissor para que ele reenvie o segmento faltante.</p>
<p>Já segmentos duplicados são facilmente detectados, pois tem o mesmo número de sequência. E para colocá-los em ordem basta também observar esse número, pois os segmentos são numerados sequencialmente.</p>
<p>Quando um ou mais segmentos chegam corretamente ao seu destino, o host receptor pode enviar uma mensagem ACK (acknowledgement / confirmação) para o host transmissor, informando que recebeu os pacotes. Pacotes perdidos podem ser detectados pelo próprio transmissor com o uso de um timer, que é ativado ao enviar um pacote. Quando esse timer expira, se uma mensagem ACK não tiver sido recebida de volta, o transmissor reenvia o pacote.</p>
<p>Na próxima lição veremos como os controles de fluxo e de erros podem ser combinados e para que serve essa combinação.</p>
<p>Quer aprender tudo sobre Redes de Computadores? Minha dica é o livro <a href="https://hotm.art/4SSBcChY" target="_blank" rel="noopener"><strong>Redes de Computadores &#8211; 2ª Edição, de Gabriel Torres</strong></a>, que você pode adquirir em formato digital com preço promocional clicando na capa do livro a seguir:<a href="https://hotm.art/4SSBcChY" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="aligncenter wp-image-15500 size-full" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2019/09/redes2018-capa-300x433.jpg" alt="Curso de Redes de Computadores - Gabriel Torres" width="300" height="433" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2019/09/redes2018-capa-300x433.jpg 300w, https://www.bosontreinamentos.com.br/wp-content/uploads/2019/09/redes2018-capa-300x433-291x420.jpg 291w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>&nbsp;</p>
<h3>Colabore com a Bóson Treinamentos</h3>
<p>Ajude o canal adquirindo meus cursos na Udemy:</p>
<ul>
<li>Bancos de Dados com MySQL Básico: <a href="https://bit.ly/35QdWE4" target="_blank" rel="noopener">https://bit.ly/35QdWE4</a></li>
<li>Lógica de Programação com Português Estruturado: <a href="https://bit.ly/3QKPn22" target="_blank" rel="noopener">https://bit.ly/3QKPn22</a></li>
<li>Programação em Python do Zero: <a href="https://bit.ly/python-boson" target="_blank" rel="noopener">https://bit.ly/python-boson</a></li>
</ul>
<p>Adquira também livros e outros itens na loja da Bóson Treinamentos na Amazon e ajude o canal a se manter e crescer: <a href="https://www.amazon.com.br/shop/bosontreinamentos" target="_blank" rel="noopener">https://www.amazon.com.br/shop/bosontreinamentos</a></p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-controle-de-fluxo/">Curso de Redes &#8211; Protocolo TCP &#8211; Controle de Fluxo e Controle de Erros</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-controle-de-fluxo/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>O que é um Endereço IP</title>
		<link>https://www.bosontreinamentos.com.br/redes-computadores/o-que-e-um-endereco-ip/</link>
					<comments>https://www.bosontreinamentos.com.br/redes-computadores/o-que-e-um-endereco-ip/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Sun, 08 Apr 2018 13:30:34 +0000</pubDate>
				<category><![CDATA[Redes de Computadores]]></category>
		<category><![CDATA[Protocolos]]></category>
		<category><![CDATA[Redes]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=11789</guid>

					<description><![CDATA[<p>Endereço IP Um Endereço IP é um identificador para computadores ou outros dispositivos em uma rede baseada na pilha de protocolos TCP/IP. Redes que utilizam a suíte TCP/IP roteiam (encaminham) mensagens baseando-se no endereço IP do host de destino. O formato de um endereço IPv4 (&#8220;IP versão 4&#8221;, tratado nesta lição) consiste em um endereço binário de 32 bits representado em um formato decimal separado por pontos. Neste formato, os 32 bits que formam o endereço são divididos em quatro grupos de 8 bits, separados por um ponto, e denominados Octetos. Cada um desses quatro números pode ser um valor no intervalo de 0 a 255 (valores comportados em um número de 8 bits, em binário). Um exemplo de endereço IP válido é, por exemplo, o endereço 10.25.63.154. Já um IP como 163.298.32.61 NÃO é válido, pois um de seus octetos (298) ultrapassa o valor permitido de 255. Neste esquema, cada combinação de oito bits (octeto) pode ser convertida para um número decimal correspondente. E, da mesma forma, cada posição binária (bit) possui um valor decimal atribuído, conforme podemos ver na tabela a seguir: 128 64 32 16 8 4 2 1 &#160;Valores em Decimal de cada Posição 8 7 [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/redes-computadores/o-que-e-um-endereco-ip/">O que é um Endereço IP</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Endereço IP</h2>
<p>Um <strong>Endereço IP</strong> é um identificador para computadores ou outros dispositivos em uma rede baseada na pilha de protocolos TCP/IP.</p>
<p>Redes que utilizam a suíte TCP/IP roteiam (encaminham) mensagens baseando-se no endereço IP do host de destino.</p>
<p>O formato de um endereço IPv4 (&#8220;IP versão 4&#8221;, tratado nesta lição) consiste em um endereço binário de 32 bits representado em um formato decimal separado por pontos. Neste formato, os 32 bits que formam o endereço são divididos em quatro grupos de 8 bits, separados por um ponto, e denominados <em><strong>Octetos</strong></em>.</p>
<p>Cada um desses quatro números pode ser um valor no intervalo de 0 a 255 (valores comportados em um número de 8 bits, em binário).</p>
<p>Um exemplo de endereço IP válido é, por exemplo, o endereço <strong>10.25.63.154</strong>. Já um IP como <strong>163.298.32.61</strong> <span style="color: #000080;"><em><strong>NÃO</strong></em></span> é válido, pois um de seus octetos (298) ultrapassa o valor permitido de 255.</p>
<p>Neste esquema, cada combinação de oito bits (octeto) pode ser convertida para um número decimal correspondente. E, da mesma forma, cada posição binária (bit) possui um valor decimal atribuído, conforme podemos ver na tabela a seguir:</p>
<table style="height: 67px; width: 572px;">
<tbody>
<tr style="height: 48.7301px;">
<td style="width: 36.9318px; text-align: center; height: 48.7301px;">128</td>
<td style="width: 42.3864px; text-align: center; height: 48.7301px;">64</td>
<td style="width: 42.3864px; text-align: center; height: 48.7301px;">32</td>
<td style="width: 43.2955px; text-align: center; height: 48.7301px;">16</td>
<td style="width: 43.2955px; text-align: center; height: 48.7301px;">8</td>
<td style="width: 48.75px; text-align: center; height: 48.7301px;">4</td>
<td style="width: 43.2955px; text-align: center; height: 48.7301px;">2</td>
<td style="width: 43.2955px; text-align: center; height: 48.7301px;">1</td>
<td style="width: 172.386px; text-align: center; height: 48.7301px;">&nbsp;Valores em Decimal de cada Posição</td>
</tr>
<tr style="height: 48.7301px;">
<td style="width: 36.9318px; text-align: center; height: 48.7301px;">8</td>
<td style="width: 42.3864px; text-align: center; height: 48.7301px;">7</td>
<td style="width: 42.3864px; text-align: center; height: 48.7301px;">6</td>
<td style="width: 43.2955px; text-align: center; height: 48.7301px;">5</td>
<td style="width: 43.2955px; text-align: center; height: 48.7301px;">4</td>
<td style="width: 48.75px; text-align: center; height: 48.7301px;">3</td>
<td style="width: 43.2955px; text-align: center; height: 48.7301px;">2</td>
<td style="width: 43.2955px; text-align: center; height: 48.7301px;">1</td>
<td style="width: 172.386px; text-align: center; height: 48.7301px;">Números das Posições (bits)</td>
</tr>
</tbody>
</table>
<p>Contamos as posições da direita para a esquerda, ou seja, do menor valor significativo para o maior valor.</p>
<p>Vejamos a um exemplo: Vamos descobrir o valor do octeto <strong>11011011</strong> usando a tabela anterior:</p>
<table style="height: 151px; width: 573px;">
<tbody>
<tr>
<td style="width: 38.75px; text-align: center;">128</td>
<td style="width: 43.2955px; text-align: center;">64</td>
<td style="width: 43.2955px; text-align: center;">32</td>
<td style="width: 43.2955px; text-align: center;">16</td>
<td style="width: 43.2955px; text-align: center;">8</td>
<td style="width: 48.75px; text-align: center;">4</td>
<td style="width: 43.2955px; text-align: center;">2</td>
<td style="width: 43.2955px; text-align: center;">1</td>
<td style="width: 169.659px; text-align: center;">Valores em Decimal de cada Posição</td>
</tr>
<tr>
<td style="width: 38.75px; text-align: center;"><strong>1</strong></td>
<td style="width: 43.2955px; text-align: center;"><strong>1</strong></td>
<td style="width: 43.2955px; text-align: center;"><strong>0</strong></td>
<td style="width: 43.2955px; text-align: center;"><strong>1</strong></td>
<td style="width: 43.2955px; text-align: center;"><strong>1</strong></td>
<td style="width: 48.75px; text-align: center;"><strong>0</strong></td>
<td style="width: 43.2955px; text-align: center;"><strong>1</strong></td>
<td style="width: 43.2955px; text-align: center;"><strong>1</strong></td>
<td style="width: 169.659px; text-align: center;">Bits do octeto</td>
</tr>
<tr>
<td style="width: 38.75px; text-align: center;">128</td>
<td style="width: 43.2955px; text-align: center;">64</td>
<td style="width: 43.2955px; text-align: center;">0</td>
<td style="width: 43.2955px; text-align: center;">16</td>
<td style="width: 43.2955px; text-align: center;">8</td>
<td style="width: 48.75px; text-align: center;">0</td>
<td style="width: 43.2955px; text-align: center;">2</td>
<td style="width: 43.2955px; text-align: center;">1</td>
<td style="width: 169.659px; text-align: center;">Valor do octeto em decimal: somatório</td>
</tr>
</tbody>
</table>
<p>Valor do octeto em decimal: 128 + 64 + 0+ 16 + 8 + 0+ 2 + 1 = <strong>219&nbsp;</strong></p>
<p>Suponha um endereço IP cujos octetos sejam a combinação de bits <strong>11011000.00011011.00111101.10001001</strong>. Qual o valor correspondente a esse IP em decimal?</p>
<p>R.: 216.27.61.137</p>
<h3>Classes de Endereçamento Primárias</h3>
<p>Para que seja possível suportar redes de tamanhos diferentes, os projetistas da Internet decidiram que o espaço de endereços IP deveria ser dividido em três classes de endereçamento distintas &#8211; batizadas de &#8220;Classe A&#8221;, &#8220;Classe B&#8221; e &#8220;Classe C&#8221;. Chamamos esse esquema geralmente de endereçamento &#8220;<strong><em>classfull</em></strong>&#8220;, pois o espaço de endereço é dividido em três classes.</p>
<p>Cada classe identifica o limite entre o prefixo de rede e o número do host em um ponto diferente dentro do endereço de 32 bits.<br />
A seguir temos uma descrição mais específica de cada classe de endereçamento disponível:</p>
<ul>
<li><strong>Classe A</strong>: Endereços de classe A são usados para redes muito grandes. Seus endereços começam com números no intervalo de 1 a 126 no primeiro octeto. Há 126 redes disponíveis dentro da classe A.<br />
Cada uma dessas redes pode conter cerca de 17 milhões de endereços IP, totalizando mais de 2 bilhões de endereços para a classe toda.<br />
O primeiro octeto especifica a rede em si e os três últimos octetos especificam os computadores na rede.<br />
Exemplo de endereço Classe A: <strong>115.1.99.66</strong></li>
<li><strong>Classe B</strong>: Endereços de classe B são usados para redes de tamanho médio a grande. Esses endereços começam com números de 128 a 191, sendo possível formar mais de 16.000 redes distintas. cada rede classe B pode comportar até 65535 endereços, totalizando mais de 1 bilhão de endereços para a classe toda.<br />
Os primeiros dois octetos especificam a rede em si e os dois últimos octetos especificam os computadores na rede.<br />
Exemplo de endereço Classe B: <strong>181.56.196.200</strong></li>
<li><strong>Classe C</strong>: Endereços de classe C encontram aplicação em redes domésticas pequenas / corporativas). Seus endereços começam&nbsp;com valores no intervalo 192-223. Nesse caso, os primeiros três octetos especificam a rede em si e o último octeto especifica os computadores na rede. Podemos ter até 254 hosts em cada rede Classe C.<br />
Exemplo de endereço classe C: <strong>196.56.23.78</strong></li>
<li><strong>Classe D</strong>: Classe especial, utilizada para envio de mensagens multicast (para grupos de hosts em uma rede), sendo seu intervalo de endereços os valores de 224.0.0.0 a 239.255.255.255.</li>
<li><strong>Loopback</strong>: O endereço 127.0.0.1 é reservado para loopback (na prática, toda a rede, de 127.0.0.0 a 127.255.255.255).</li>
</ul>
<h3>Como descobrir o endereço IP de sua máquina</h3>
<p>Para descobrir o endereço IP de seu computador, abra um prompt de comandos / Windows PowerShell (no Windows), ou um Terminal (Linux / BSD / Mac OS X), e execute o comando a seguir:</p>
<p>No Windows:</p>
<pre><span style="color: #ff0000;"><strong>ipconfig</strong></span></pre>
<p>A seguir temos a saída do comando ipconfig, mostrando os endereços IP de meu computador &#8211; no caso, meu endereço IPv4 é 192.168.1.106:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-7569" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2016/07/ipconfig-redes-windows.png" alt="Comando ipconfig no Windows" width="760" height="606" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2016/07/ipconfig-redes-windows.png 854w, https://www.bosontreinamentos.com.br/wp-content/uploads/2016/07/ipconfig-redes-windows-420x335.png 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2016/07/ipconfig-redes-windows-768x612.png 768w" sizes="auto, (max-width: 760px) 100vw, 760px" /></p>
<p>Mais sobre o <a href="http://www.bosontreinamentos.com.br/redes-computadores/utilitario-de-diagnostico-de-rede-ipconfig/" target="_blank" rel="noopener">utilitário ipconfig pode ser lido neste artigo</a>.</p>
<p>No Linux podemos usar o comando <strong>ip addr</strong> para descobrir o endereço IP da máquina, como segue:</p>
<pre><span style="color: #ff0000;"><strong>$ ip addr show</strong></span></pre>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-11810" title="Endereço IP Linux ip addr show" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2018/04/linux-ip-addr-show-endereço-1024x417.jpg" alt="Endereço IP Linux ip addr show" width="751" height="306" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2018/04/linux-ip-addr-show-endereço-1024x417.jpg 1024w, https://www.bosontreinamentos.com.br/wp-content/uploads/2018/04/linux-ip-addr-show-endereço-420x171.jpg 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2018/04/linux-ip-addr-show-endereço-768x313.jpg 768w, https://www.bosontreinamentos.com.br/wp-content/uploads/2018/04/linux-ip-addr-show-endereço.jpg 1121w" sizes="auto, (max-width: 751px) 100vw, 751px" /></p>
<p>Neste caso, o IP da máquina é 192.168.1.101, como podemos ver na linha &#8220;<strong>inet</strong>&#8220;.</p>
<p>Um endereço IP pode ser estático ou dinâmico, dependendo da forma como ele é atribuído às estações:</p>
<ul>
<li>IP Estático: Configurado manualmente em cada estação</li>
<li>IP Dinâmico: Atribuído automaticamente às estações por um servidor de endereços DHCP.</li>
</ul>
<h3>Sub-Redes</h3>
<p>Criar sub-redes a partir de uma rede IP permite que você divida o que parece (logicamente) ser uma única rede de tamanho grande (do ponto de vista do número de hosts comportados) em redes de tamanho menor. Esse processo também permite reduzir a sobrecarga de rede, dividindo as partes que recebem transmissões em broadcast (para todos os hosts da rede).</p>
<p>A divisão em sub-redes é um assunto mais complexo, e por isso iremos tratar dele em uma lição dedicada.</p>
<p>Quer aprender tudo sobre Redes de Computadores? Minha dica é o livro <a href="https://hotm.art/4SSBcChY" target="_blank" rel="noopener"><strong>Redes de Computadores &#8211; 2ª Edição, de Gabriel Torres</strong></a>, que você pode adquirir em formato digital com preço promocional clicando na capa do livro a seguir:<a href="https://hotm.art/4SSBcChY" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="aligncenter wp-image-15500 size-full" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2019/09/redes2018-capa-300x433.jpg" alt="Curso de Redes de Computadores - Gabriel Torres" width="300" height="433" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2019/09/redes2018-capa-300x433.jpg 300w, https://www.bosontreinamentos.com.br/wp-content/uploads/2019/09/redes2018-capa-300x433-291x420.jpg 291w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/redes-computadores/o-que-e-um-endereco-ip/">O que é um Endereço IP</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/redes-computadores/o-que-e-um-endereco-ip/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Protocolo WHOIS</title>
		<link>https://www.bosontreinamentos.com.br/redes-computadores/whois/</link>
					<comments>https://www.bosontreinamentos.com.br/redes-computadores/whois/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Fri, 20 Oct 2017 11:50:18 +0000</pubDate>
				<category><![CDATA[Redes de Computadores]]></category>
		<category><![CDATA[Protocolos]]></category>
		<category><![CDATA[Segurança]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=8671</guid>

					<description><![CDATA[<p>O que é o WHOIS O WHOIS é um protocolo de consulta e resposta utilizado para realizar consultas de informações de contato e dados DNS sobre recursos na Internet em bancos de dados específicos. Ele utiliza o TCP como protocolo da camada de transporte, por meio da porta bem-conhecida de número 43, e é descrito na especificação de protocolo RFC 3912. Recursos Na Internet, definimos como Recursos (ou Entidades) nomes de domínio, endereços IP ou ainda Sistemas Autônomos (AS) Um banco de dados whois consiste em um conjunto de registros textuais para cada recurso. Esses registros consistem em várias informações sobre o recurso em si, e também informações associadas, como informações administrativas e datas de criação e expiração de registros. São retornados pelo WHOIS três tipos de contatos para um recurso (&#8220;Registrar Data&#8221;): Contato Administrativo Contato Técnico Contato de Cobrança Nem sempre essas informações são totalmente exibidas. Como são de responsabilidade do provedor de Internet, algumas informações podem ser bloqueadas (WHOIS privado). Ferramentas de WHOIS Existem diversas ferramentas de WHOIS disponíveis, muitas delas acessíveis on-line, como: www.who.is www.whois.net whois.registro.br (somente domínios com terminação .br) whois.apnic.net whois.arin.net whois.domaintools.com/ Servidores WHOIS Os servidores whois são mantidos pelos RIR (Regional Internet Registries), e podem ser consultados diretamente [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/redes-computadores/whois/">Protocolo WHOIS</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>O que é o WHOIS</h2>
<p>O WHOIS é um protocolo de consulta e resposta utilizado para realizar consultas de informações de contato e dados DNS sobre recursos na Internet em bancos de dados específicos.<br />
 Ele utiliza o TCP como protocolo da camada de transporte, por meio da porta bem-conhecida de número 43, e é descrito na especificação de protocolo <a href="https://tools.ietf.org/html/rfc3912" target="_blank" rel="nofollow noopener noreferrer">RFC 3912</a>.</p>
<h3>Recursos</h3>
<p>Na Internet, definimos como <strong>Recursos</strong> (ou <strong>Entidades</strong>) nomes de domínio, endereços IP ou ainda Sistemas Autônomos (AS)</p>
<p>Um banco de dados whois consiste em um conjunto de registros textuais para cada recurso. Esses registros consistem em várias informações sobre o recurso em si, e também informações associadas, como informações administrativas e datas de criação e expiração de registros.</p>
<p>São retornados pelo WHOIS três tipos de contatos para um recurso (&#8220;Registrar Data&#8221;):</p>
<ul>
<li>Contato Administrativo</li>
<li>Contato Técnico</li>
<li>Contato de Cobrança</li>
</ul>
<p>Nem sempre essas informações são totalmente exibidas. Como são de responsabilidade do provedor de Internet, algumas informações podem ser bloqueadas (<em>WHOIS privado</em>).</p>
<h3>Ferramentas de WHOIS</h3>
<p>Existem diversas ferramentas de WHOIS disponíveis, muitas delas acessíveis on-line, como:</p>
<ul>
<li>www.who.is</li>
<li>www.whois.net</li>
<li>whois.registro.br (somente domínios com terminação .br)</li>
<li>whois.apnic.net</li>
<li>whois.arin.net</li>
<li>whois.domaintools.com/</li>
</ul>
<h3>Servidores WHOIS</h3>
<p>Os servidores whois são mantidos pelos <strong>RIR</strong> (<em>Regional Internet Registries</em>), e podem ser consultados diretamente para determinar o provedor de serviços de Internet responsável por um recurso em particular.</p>
<p>Também existem servidores comerciais que executam o protocolo, como por exemplo o Routing Assets Database, que é usado por algumas redes de grande porte, como alguns provedores de Internet específicos.</p>
<p>A imagem a seguir mostra os registros regionais de Internet ao redor do globo:</p>
<div id="attachment_10923" style="width: 610px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-10923" class="wp-image-10923" title="Registros regionais da internet" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2017/10/rir-regional-internet-registries-420x187.png" alt="Registros Regionais da Internet RIR" width="600" height="267" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2017/10/rir-regional-internet-registries-420x187.png 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2017/10/rir-regional-internet-registries-768x342.png 768w, https://www.bosontreinamentos.com.br/wp-content/uploads/2017/10/rir-regional-internet-registries.png 1006w" sizes="auto, (max-width: 600px) 100vw, 600px" /><p id="caption-attachment-10923" class="wp-caption-text">Registros Regionais da Internet &#8211; Wikimedia Commons</p></div>
<h3>Exemplo de consulta</h3>
<p>A seguir temos um exemplo de consulta WHOIS a um site da Internet: <strong>www.oracle.com</strong> usando o sistema on-line <strong>who.is</strong>:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-8672" title="Exemplo do comando Whois" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2016/11/whois-exemplo.png" alt="Exemplo do comando Whois" width="700" height="651" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2016/11/whois-exemplo.png 784w, https://www.bosontreinamentos.com.br/wp-content/uploads/2016/11/whois-exemplo-420x391.png 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2016/11/whois-exemplo-768x714.png 768w" sizes="auto, (max-width: 700px) 100vw, 700px" /></p>
<p>E diversos aplicativos também estão disponíveis, tanto para desktops quanto para dispositivos móveis (smartphones e tablets), como por exemplo:</p>
<ul>
<li>iNetTools (para iPhone e iPad)</li>
<li>Deep Whois (para iPhone e iPad)</li>
<li>Whois &amp; DNS Lookup (para Android)</li>
<li>Project Whois (Desktop, Windows)</li>
</ul>
<p>A seguir podemos ver o app iNetTools sendo executado em um smartphone Apple iPhone para realizar a consulta de dados via WHOIS do domínio ibm.com:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-10925 size-medium" title="Whois rodando no iPhone com iNetTools" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2017/10/whois-inet-tools-iphone-ipad-280x420.png" alt="Whois rodando no iPhone com iNetTools" width="280" height="420" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2017/10/whois-inet-tools-iphone-ipad-280x420.png 280w, https://www.bosontreinamentos.com.br/wp-content/uploads/2017/10/whois-inet-tools-iphone-ipad.png 640w" sizes="auto, (max-width: 280px) 100vw, 280px" /></p>
<p>Note que usamos o servidor whois.arin.net. Vários outros estão disponíveis no aplicativo para escolha.</p>
<p>É isso aí! Neste artigo vimos uma pequena introdução ao protocolo WHOIS. No próximo artigo vamos abordar mais protocolos de rede. Até lá!</p>
<p>Anterior: <a href="http://www.bosontreinamentos.com.br/redes-computadores/o-que-e-um-endereco-mac-mac-address/">O que é um Endereço MAC (MAC Address)</a></p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/redes-computadores/whois/">Protocolo WHOIS</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/redes-computadores/whois/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Curso de Redes &#8211; Protocolo UDP (User Datagram Protocol)</title>
		<link>https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-udp-user-datagram-protocol/</link>
					<comments>https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-udp-user-datagram-protocol/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Thu, 07 Jan 2016 18:14:17 +0000</pubDate>
				<category><![CDATA[Redes de Computadores]]></category>
		<category><![CDATA[Protocolos]]></category>
		<category><![CDATA[Redes]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=5180</guid>

					<description><![CDATA[<p>Protocolo UDP (User Datagram Protocol) O Protocolo UDP, que pertence à camada de transporte juntamente com o protocolo TCP, é um protocolo simples, orientado a datagrama. Ele não fornece confiabilidade na transmissão, pois envia os datagramas&#160;requisitados pela aplicação sem nenhuma garanta de que eles chegarão ao seu destino. O UDP não estabelece conexões antes de enviar dados. Apenas os empacota em datagramas e os envia. Além disso, não fornece confirmação da entrega desses dados.&#160;Portanto, o UDP não fornece nenhuma garantia de que as mensagens serão entregues, e não consegue detectar mensagens perdidas, tampouco retransmiti-las. Além disso, não garante que as mensagens serão recebidas na mesma ordem em que foram enviadas, e não possui mecanismos para gerenciamento do fluxo de dados entre os dispositivos. Basicamente, o UDP é apenas um sistema de endereçamento de portas para o protocolo IP. É muito comum pensar que, por conta dessas características específicas, nós deveríamos sempre usar o protocolo TCP para enviar dados em rede; porém, diversas aplicações se beneficiam desse modelo de envio, sem confiabilidade, por conta de sua performance. O UDP é um protocolo simples, porém rápido. O UDP encontra aplicações, por exemplo, em sistemas onde a performance da transmissão de dados é [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-udp-user-datagram-protocol/">Curso de Redes &#8211; Protocolo UDP (User Datagram Protocol)</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Protocolo UDP (User Datagram Protocol)</h2>
<p>O Protocolo UDP, que pertence à camada de transporte juntamente com o protocolo TCP, é um protocolo simples, orientado a datagrama. Ele não fornece confiabilidade na transmissão, pois envia os datagramas&nbsp;requisitados pela aplicação sem nenhuma garanta de que eles chegarão ao seu destino.</p>
<p>O UDP não estabelece conexões antes de enviar dados. Apenas os empacota em datagramas e os envia. Além disso, não fornece confirmação da entrega desses dados.&nbsp;Portanto, o UDP não fornece nenhuma garantia de que as mensagens serão entregues, e não consegue detectar mensagens perdidas, tampouco retransmiti-las.<br />
Além disso, não garante que as mensagens serão recebidas na mesma ordem em que foram enviadas, e não possui mecanismos para gerenciamento do fluxo de dados entre os dispositivos.</p>
<p>Basicamente, o UDP é apenas um sistema de endereçamento de portas para o protocolo IP.</p>
<p>É muito comum pensar que, por conta dessas características específicas, nós deveríamos sempre usar o protocolo TCP para enviar dados em rede; porém, diversas aplicações se beneficiam desse modelo de envio, sem confiabilidade, por conta de sua performance. O UDP é um protocolo <strong>simples</strong>, porém <strong>rápido</strong>.</p>
<p>O UDP encontra aplicações, por exemplo, em sistemas onde a performance da transmissão de dados é mais importante do que a plenitude da entrega de todos os datagramas. Como exemplo podemos citar aplicações multimídia. Se você estiver assistindo a um vídeo em streaming pela Internet (como os&nbsp;vídeos do canal da Bóson no YouTube), o mais importante é que o fluxo de transmissão seja rápido e uniforme, sem &#8220;travamentos&#8221; ou &#8220;saltos&#8221; durante a exibição do vídeo. Se alguns datagramas forem perdidos ou descartados durante a transmissão, muito provavelmente nada será notado pelo usuário.</p>
<h2>Aplicações&nbsp;do Protocolo UDP</h2>
<p>O protocolo UDP encontra inúmeras aplicações em comunicação de redes, sendo que algumas das mais comuns estão compiladas na tabela a seguir:</p>
<table>
<tbody>
<tr>
<td><strong>Porta</strong></td>
<td><strong>Protocolo</strong></td>
<td><strong>Aplicação</strong></td>
</tr>
<tr>
<td>53</td>
<td>DNS</td>
<td>Sistema de resolução de nomes de domínio</td>
</tr>
<tr>
<td>67 e 68</td>
<td>DHCP</td>
<td>Protocolo de configuração de hosts dinâmico</td>
</tr>
<tr>
<td>161 e 162</td>
<td>SNMP</td>
<td>Protocolo para gerenciamento de redes, que utiliza mensagens curtas</td>
</tr>
<tr>
<td>520 e 521</td>
<td>RIP</td>
<td>Protocolo de roteamento que não requer conexões</td>
</tr>
</tbody>
</table>
<p>Alguns protocolos usam, na verdade, tanto o protocolo TCP quanto o UDP para transmissão de suas mensagens. O exemplo típico é o protocolo DNS, que também usa TCP para funções que requerem confiabilidade, como transferências de zonas.</p>
<p>O UDP encontra uso&nbsp;em streaming de áudio e vídeo, VoIP, gaming, mecanismos de broadcast e conexões VPN (OpenVPN, por exemplo), entre outras.</p>
<h2>Cabeçalho UDP</h2>
<p>Um segmento UDP é encapsulado em um datagrama IP, conforme podemos ver na figura a seguir:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-5977 size-full" title="Encapsulamento de um segmento UDP - Protocolos" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2016/01/encapsulamento-segmento-UDP.png" alt="Encapsulamento de um segmento UDP - Protocolos" width="447" height="189" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2016/01/encapsulamento-segmento-UDP.png 447w, https://www.bosontreinamentos.com.br/wp-content/uploads/2016/01/encapsulamento-segmento-UDP-420x178.png 420w" sizes="auto, (max-width: 447px) 100vw, 447px" /></p>
<p>E na figura a seguir podemos ver o formato completo de um cabeçalho UDP, cujo tamanho é de 8&nbsp;bytes, conforme mostrado na ilustração anterior:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-5978" title="Formato do Cabeçalho UDP" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2016/01/formato-cabeçalho-protocolo-UDP.png" alt="Formato do Cabeçalho UDP" width="750" height="280" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2016/01/formato-cabeçalho-protocolo-UDP.png 862w, https://www.bosontreinamentos.com.br/wp-content/uploads/2016/01/formato-cabeçalho-protocolo-UDP-420x157.png 420w" sizes="auto, (max-width: 750px) 100vw, 750px" /></p>
<p>O uso dos campos &#8220;Checksum&#8221; e &#8220;Número de Porta de Origem&#8221; é opcional em IPv4; já em IPv6 apenas o campo &#8220;Número de Porta de Origem&#8221; é opcional.</p>
<p>Segue uma descrição sucinta de cada um dos campos no cabeçalho UDP</p>
<ul>
<li><strong>Número de Porta de Origem</strong>: número que identifica a aplicação (processo) que envia os dados</li>
<li><strong>Número de Porta de Destino</strong>: número que identifica a aplicação (processo) que deve receber os dados</li>
<li><strong>Comprimento</strong>:&nbsp;Este é um campo que especifica o comprimento em bytes do cabeçalho UDP mais os dados carregados. O tamanho mínimo é de 8 bytes devido ao comprimento do cabeçalho. O tamanho máximo possível para um datagrama UDP é de 65.507 bytes (65.535 − 8 bytes do cabeçalho UDP − 20 bytes do cabeçalho IP), devido ao protocolo IPv4. Em IPv6 é possível termos pacotes de tamanho maior do que 65.535.</li>
<li><strong>Checksum</strong>: Pode ser usado para verificação de erros do cabeçalho e dos dados transmitidos. É opcional em IPv4 e mandatório em IPv6. Se não for usado, deverá ser preenchido com zeros.</li>
</ul>
<p>Note que ambos os protocolos, TCP e UDP, utilizam números de portas para identificar os processos que estão se comunicando, mas esses números são independentes- as portas TCP não tem relação com as portas UDP, e vice-versa.</p>
<h2>Comparando os protocolos TCP e UDP</h2>
<p>Se compararmos o protocolo UDP com o protocolo TCP, vamos notar as seguintes diferenças:</p>
<ul>
<li>O UDP não é confiável &#8211; as mensagens enviadas podem não alcançar o destino. O TCP trata disso tentando garantir a entrega da mensagem ao destino.</li>
<li>O UDP não ordena os datagramas enviados &#8211; se chegarem fora de ordem, não serão reordenados. O TCP os reordena no destino, caso cheguem desordenados.</li>
<li>O UDP é um protocolo mais leve, pois não realiza handshake para estabelecer e finalizar conexões nem tampouco mantém registro das conexões ativas. O TCP realiza estas tarefas.</li>
<li>Como o UDP não é orientado à conexão, ele pode enviar pacotes em broadcast ou multicast tranquilamente. O TCP é projetado para trabalhar em comunicação unicast.</li>
</ul>
<p>Quer aprender tudo sobre Redes de Computadores? Minha dica é o livro <a href="https://hotm.art/4SSBcChY" target="_blank" rel="noopener"><strong>Redes de Computadores &#8211; 2ª Edição, de Gabriel Torres</strong></a>, que você pode adquirir em formato digital com preço promocional clicando na capa do livro a seguir:<a href="https://hotm.art/4SSBcChY" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="aligncenter wp-image-15500 size-full" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2019/09/redes2018-capa-300x433.jpg" alt="Curso de Redes de Computadores - Gabriel Torres" width="300" height="433" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2019/09/redes2018-capa-300x433.jpg 300w, https://www.bosontreinamentos.com.br/wp-content/uploads/2019/09/redes2018-capa-300x433-291x420.jpg 291w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-udp-user-datagram-protocol/">Curso de Redes &#8211; Protocolo UDP (User Datagram Protocol)</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-udp-user-datagram-protocol/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Curso de Redes &#8211; Protocolo TCP &#8211; Finalizando uma conexão entre dois hosts</title>
		<link>https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-finalizando-uma-conexao-entre-dois-hosts/</link>
					<comments>https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-finalizando-uma-conexao-entre-dois-hosts/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Sun, 01 Nov 2015 23:39:20 +0000</pubDate>
				<category><![CDATA[Redes de Computadores]]></category>
		<category><![CDATA[Protocolos]]></category>
		<category><![CDATA[Redes]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=5665</guid>

					<description><![CDATA[<p>Protocolo TCP &#8211; Finalizando uma conexão entre dois hosts Na lição anterior mostramos como é estabelecida uma conexão TCP entre dois hosts em uma rede, pelo processo denominado de Handshake de Três Vias. Após o estabelecimento dessa conexão, os hosts podem trocar dados entre si livremente. Quando a troca de dados chega ao fim &#8211; por exemplo, quando um download é finalizado ou quando você sai de um website &#8211; a conexão entre os hosts deve ser finalizada. Para isso, é realizado um processo de finalização da conexão,  parecido com o processo de estabelecimento de conexão. Porém, há algumas diferenças. Por exemplo, como as conexões realizadas via protocolo TCP são full-duplex (dados podem trafegar em ambas as direções independentemente da outra direção), cada host deve finalizar a conexão independentemente. Ou seja, cada host deve enviar um segmento com a flag FIN ativada quando terminar de enviar seus dados. Assim quando o protocolo TCP em um host recebe um segmento com a flag FIN, ele informará à aplicação envolvida na comunicação de que o outro host encerrou a transmissão de dados. Chamamos o processo de finalização da conexão TCP de &#8220;Handshake de Quatro Vias&#8221;, pois são trocados ao todo quatro segmentos [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-finalizando-uma-conexao-entre-dois-hosts/">Curso de Redes &#8211; Protocolo TCP &#8211; Finalizando uma conexão entre dois hosts</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Protocolo TCP &#8211; Finalizando uma conexão entre dois hosts</h2>
<p>Na lição anterior mostramos como é estabelecida uma conexão TCP entre dois hosts em uma rede, pelo processo denominado de Handshake de Três Vias. Após o estabelecimento dessa conexão, os hosts podem trocar dados entre si livremente.</p>
<p>Quando a troca de dados chega ao fim &#8211; por exemplo, quando um download é finalizado ou quando você sai de um website &#8211; a conexão entre os hosts deve ser finalizada. Para isso, é realizado um processo de finalização da conexão,  parecido com o processo de estabelecimento de conexão. Porém, há algumas diferenças.</p>
<p>Por exemplo, como as conexões realizadas via protocolo TCP são full-duplex (dados podem trafegar em ambas as direções independentemente da outra direção), cada host deve finalizar a conexão independentemente. Ou seja, cada host deve enviar um segmento com a flag FIN ativada quando terminar de enviar seus dados. Assim quando o protocolo TCP em um host recebe um segmento com a flag FIN, ele informará à aplicação envolvida na comunicação de que o outro host encerrou a transmissão de dados.</p>
<p>Chamamos o processo de finalização da conexão TCP de &#8220;Handshake de Quatro Vias&#8221;, pois são trocados ao todo quatro segmentos entre os hosts, ao contrário do processo de estabelecimento de conexão, onde são trocados três segmentos.</p>
<p>O host que emite primeiramente o segmento FIN realiza o que chamamos de <strong>finalização ativa</strong>, e o host que recebe esse segmento realiza uma <strong>finalização passiva</strong>. A seguir listamos as etapas da finalização de uma conexão TCP:</p>
<ol>
<li>Um dos hosts (vamos chamá-lo de host A) termina de enviar seus dados e então envia um segmento TCP com a flag FIN (finalization) ativada para o outro host, e aguarda o retorno. Neste ponto, o host A ainda pode receber dados do outro host, porém não aceita mais dados da aplicação local para envio.</li>
<li>O outro host (host B) recebe o segmento e então responde com outro segmento confirmando (ACK) o número de sequência recebido + 1. Um segmento FIN utiliza um número de sequência, assim como um segmento SYN.</li>
<li>O host B então emite uma mensagem para a aplicação envolvida na comunicação informando que a transmissão de dados finalizou, e envia um segmento TCP com a flag FIN ativa, fechando sua conexão.</li>
<li>O host A, após receber o segmento FIN do host B, responde de volta confirmando (ACK) o número de sequência recebido + 1 (incrementado). Neste ponto, a conexão está encerrada entre os dois hosts.</li>
</ol>
<p>As conexões entre hosts são geralmente iniciadas por um host cliente, e podem ser finalizadas tanto pelo cliente quanto pelo servidor (ou outro host). Porém, é mais comum que o próprio cliente que iniciou a conexão a finalize, pois os processos na máquina cliente são normalmente controlados por um usuário, que em algum momento encerra a aplicação que estava transmitindo e recebendo dados pela rede &#8211; por exemplo, o cliente fecha o navegador e encerra as conexões que estavam ativas com os websites abertos.</p>
<p>A figura a seguir detalha o esquema de troca de segmentos entre os dois hosts ao finalizar a conexão TCP.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-5673" title="Handshake de quatro vias - finalizando conexão TCP" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/11/handshake-quatro-vias-TCP-scheme.jpg" alt="Handshake de quatro vias - finalizando conexão TCP" width="700" height="552" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/11/handshake-quatro-vias-TCP-scheme.jpg 832w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/11/handshake-quatro-vias-TCP-scheme-420x331.jpg 420w" sizes="auto, (max-width: 700px) 100vw, 700px" /></p>
<p>A figura anterior mostra também os <strong>estados dos dispositivos</strong> durante o processo de finalização da conexão. Inicialmente, ambos os hosts (cliente e servidor) esão no estado &#8220;<strong>ESTABLISHED</strong>&#8220;, que significa que a conexão está estabelecida e que podem trocar dados. Os demais estados são explicados a seguir:</p>
<ul>
<li><strong>FIN_WAIT_1</strong>: Após enviar o segmento FIN ao servidor, o cliente (que solicitou a finalização da conexão) entra no estado FIN_WAIT_1, no qual aguarda tanto o ACK, quanto o segmento FIN do servidor. O cliente ainda pode receber dados, mas não pode mais enviar dados nesta conexão.</li>
<li><strong>CLOSE_WAIT</strong>: O servidor está aguardando que o processo da aplicação local sinalize que está pronta para finalizar. Após o encerramento da aplicação local, o segmento FIN é enviado ao cliente.</li>
<li><strong>FIN_WAIT_2</strong>: Após aguardar o recebimento do segmento FIN do servidor, o cliente recebe esse segmento e envia de volta um segmento ACK.</li>
<li><strong>LAST_ACK</strong>: O servidor está aguardando um ACK (confirmação) do segmento FIN que ele enviou anteriormente. Ao receber essa confirmação, fecha a conexão de seu lado.</li>
<li><strong>TIME_WAIT</strong>: O cliente então aguarda por um período de tempo igual a duas vezes o <strong>MSL</strong> (maximum segment lifetime), para ter certeza de que o ACK enviado foi recebido pelo servidor. Decorrido esse tempo, o timer expira e a conexão estará fechada (<strong>CLOSED</strong>).</li>
</ul>
<table style="height: 56px; border-color: #0000c8;" width="713">
<tbody>
<tr>
<td style="border-color: #0000c8;">
<p><strong>MSL: Maximum Segment Lifetime</strong> (Tempo de Vida Máximo do Segmento), é o tempo durante o qual um segmento TCP pode existir em uma rede antes de ser descartado. É utilizado para calcular o valor do estado TIME_WAIT, que é de 2 vezes o valor do MSL.Podemos determinar o valor do MSL em um sistema Linux (usei a distribuição Debian como exemplo) executando o comando a seguir no terminal:</p>
<p><span style="color: #ff0000;"><strong># sysctl net.ipv4.tcp_fin_timeout</strong></span></p>
<p>Veja a saída abaixo:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5674" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/11/MSL-linux-debian.jpg" alt="Maximum Segment Lifetime no GNU Debian Linux" width="582" height="112" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/11/MSL-linux-debian.jpg 582w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/11/MSL-linux-debian-420x81.jpg 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/11/MSL-linux-debian-580x112.jpg 580w" sizes="auto, (max-width: 582px) 100vw, 582px" /></p>
<p>O MSL desse sistema é, portanto, de 60 segundos. O RFC 793 determina que o MSL deve ser de 2 minutos, mas as implementações comuns do protocolo TCP utilizam também temporizações de 30 ou 60 segundos, por exemplo.</p>
</td>
</tr>
</tbody>
</table>
<p>Também é possível executar o processo de finalização de uma conexão TCP usando um handshake de três vias. Neste caso, o host A envia o segmento FIN, e o host B responde com um único segmento combinando os passos 2 e 3 descritos anteriormente, ou seja, com as flags FIN e ACK juntas, e então o host A responde de volta com o ACK. Este é um método muito comum de finalização da conexão, e a figura a seguir mostra uma captura de pacotes do Wireshark onde podemos visualizar esse processo:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-5668" title="Finalizando uma conexão TCP" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/11/finalizar-conexão-TCP.jpg" alt="Finalizando uma conexão TCP" width="800" height="287" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/11/finalizar-conexão-TCP.jpg 1016w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/11/finalizar-conexão-TCP-420x151.jpg 420w" sizes="auto, (max-width: 800px) 100vw, 800px" /></p>
<p>Na figura podemos ver que meu host, de IP 192,168,1,100, está finalizando a conexão ao servidor remoto de IP 64.233.186.121. Meu host envia o segmento FIN, recebendo de volta um segmento FIN + ACK, e então finaliza o processo confirmando a recepção desse segmento com outro ACK.</p>
<p>Uma observação importante é a de que uma conexão pode estar em um estado chamado &#8220;half-open&#8221; (semi-aberta), na qual um dos hosts executou o processo de finalização da conexão, mas o outro não. Assim, o host que finalizou não pode mais enviar dados por esta conexão, mas o outro host ainda pode, de modo que o host que iniciou a finalização da conexão continua a receber dados até que o outro host também finalize a conexão.</p>
<p>Anterior: <a href="http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-handshake-de-tres-vias/">Estabelecendo uma conexão TCP entre dois hosts</a></p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-finalizando-uma-conexao-entre-dois-hosts/">Curso de Redes &#8211; Protocolo TCP &#8211; Finalizando uma conexão entre dois hosts</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-finalizando-uma-conexao-entre-dois-hosts/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Curso de Redes &#8211; Protocolo TCP &#8211; Handshake de Três Vias</title>
		<link>https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-handshake-de-tres-vias/</link>
					<comments>https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-handshake-de-tres-vias/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Sat, 31 Oct 2015 18:22:24 +0000</pubDate>
				<category><![CDATA[Redes de Computadores]]></category>
		<category><![CDATA[Protocolos]]></category>
		<category><![CDATA[Redes]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=5507</guid>

					<description><![CDATA[<p>Protocolo TCP &#8211; Estabelecendo uma conexão entre dois hosts O protocolo TCP, como vimos nas lições anteriores, é um protocolo orientado a conexão. Isso significa que, antes que qualquer dado possa ser enviado entre dois hosts, uma conexão deve ser estabelecida entre eles primeiramente. Vamos estudar nessa lição o processo pela qual uma conexão TCP é estabelecida entre dois hosts em uma rede. Estabelecendo uma conexão TCP O processo de estabelecimento de conexões TCP se dá da seguinte forma: O host que quer iniciar a conexão, que normalmente é o cliente, envia um segmento com a flag SYN ativada, especificando a qual número de porta no servidor de destino ele quer se conectar, juntamente com o número de sequência inicial (Seq ISN). O servidor então responde com um segmento contendo a flag SYN, e seu número de sequência inicial. Além disso, o segmento SYN enviado pelo cliente é confirmado pela ativação da flag ACK neste segmento de resposta, confirmando o ISN do cliente + 1. O cliente então confirma o segmento SYN proveniente do servidor enviando outro segmento com a flag ACK ativada e o ISN do servidor + 1. Após essa troca de três segmentos entre cliente e servidor, o processo de estabelecimento [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-handshake-de-tres-vias/">Curso de Redes &#8211; Protocolo TCP &#8211; Handshake de Três Vias</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Protocolo TCP &#8211; Estabelecendo uma conexão entre dois hosts</h2>
<p>O protocolo TCP, como vimos nas lições anteriores, é um protocolo orientado a conexão. Isso significa que, antes que qualquer dado possa ser enviado entre dois hosts, uma conexão deve ser estabelecida entre eles primeiramente. Vamos estudar nessa lição o processo pela qual uma conexão TCP é estabelecida entre dois hosts em uma rede.</p>
<h3>Estabelecendo uma conexão TCP</h3>
<p>O processo de estabelecimento de conexões TCP se dá da seguinte forma:</p>
<ol>
<li>O host que quer iniciar a conexão, que normalmente é o cliente, envia um segmento com a flag SYN ativada, especificando a qual número de porta no servidor de destino ele quer se conectar, juntamente com o número de sequência inicial (Seq ISN).</li>
<li>O servidor então responde com um segmento contendo a flag SYN, e seu número de sequência inicial. Além disso, o segmento SYN enviado pelo cliente é confirmado pela ativação da flag ACK neste segmento de resposta, confirmando o ISN do cliente + 1.</li>
<li>O cliente então confirma o segmento SYN proveniente do servidor enviando outro segmento com a flag ACK ativada e o ISN do servidor + 1.</li>
</ol>
<p>Após essa troca de três segmentos entre cliente e servidor, o processo de estabelecimento de conexão está completo. Chamamos esse processo de Handshake de três Vias ( Three-Way Handshake). Neste caso, o host que envia o primeiro segmento SYN realiza o que chamamos de uma <strong>abertura de conexão ativa</strong>. Já o outro host, em nosso exemplo o servidor que recebe o segmento SYN, realiza uma <strong>abertura de conexão passiva</strong>.</p>
<p>Cada vez que um dos hosts envia um segmento com a flag SYN para estabelecer a conexão, ele escolhe um número de sequência inicial para a conexão. Esse ISN muda ao longo do tempo, de modo que cada conexão terá um ISN diferente. De acordo com a RFC 793, o ISN deve ser visualizado como um contador de 32 bits que é incrementado em um a cada 4 μs (microsegundos). Desta forma, pacotes que sofrem um atraso muito grande na rede não serão entregues e, assim, evita-se que sejam interpretados erroneamente como pertencentes a outra conexão.</p>
<p>Veja na figura a seguir a captura dos pacotes trocados durante um handshake de três vias ao acessar um website a partir de um navegador:</p>
<div id="attachment_5658" style="width: 810px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5658" class="wp-image-5658" title="Handshake de três vias TCP" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/handshake-três-vias-protocolo-TCP.jpg" alt="Handshake de três vias TCP" width="800" height="363" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/handshake-três-vias-protocolo-TCP.jpg 963w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/handshake-três-vias-protocolo-TCP-420x191.jpg 420w" sizes="auto, (max-width: 800px) 100vw, 800px" /><p id="caption-attachment-5658" class="wp-caption-text">Estabelecendo uma conexão TCP entre dois hosts</p></div>
<p>Meu host é o 192.168.1.119, e estou acessando o host 186.202.153.82. Note nas figuras as flags trocadas, e os números de sequência dos segmentos TCP.<br />
Meu host envia um segmento com a flag SYN ativada, e número de sequência 0 (Seq=0); o servidor web remoto envia como resposta um segmento com as flags SYN e ACK ativas, número de sequência 0 (Seq=0) e confirmação do ISN igual a 0 + 1 =1 (Ack=1).<br />
O cliente, então, finaliza o processo enviando outro segmento ao servidor, com a flag ACK ativa, número de sequência igual ISN a 1 (Seq=1) e confirmando o ISN do servidor (Ack=1).</p>
<p>A figura a seguir detalha o esquema de troca de segmentos entre os dois hosts considerados na captura anterior:</p>
<div id="attachment_5660" style="width: 660px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5660" class="wp-image-5660" title="Handshake de Três Vias TCP" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/handshake-tres-vias-TCP-esquema.jpg" alt="Handshake de Três Vias TCP" width="650" height="505" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/handshake-tres-vias-TCP-esquema.jpg 721w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/handshake-tres-vias-TCP-esquema-420x326.jpg 420w" sizes="auto, (max-width: 650px) 100vw, 650px" /><p id="caption-attachment-5660" class="wp-caption-text">Handshake de Três Vias TCP</p></div>
<p>Apos o processo do handshake de três vias ter sido concluído, a conexão estará estabelecida e os hosts podem começar a trocar dados entre si. Ao final da comunicação, será necessário realizar um processo de finalização da conexão, que detalharemos na próxima lição.</p>
<p>Anterior: <a href="http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-transmission-control-protocol/">O Protocolo TCP</a></p>
<p style="text-align: right;">Próximo: <a href="http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-finalizando-uma-conexao-entre-dois-hosts/">Finalizando a conexão TCP entre dois hosts</a></p>
<p>O post <a href="https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-handshake-de-tres-vias/">Curso de Redes &#8211; Protocolo TCP &#8211; Handshake de Três Vias</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-handshake-de-tres-vias/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>PackETH &#8211; Ferramenta para gerar pacotes de rede</title>
		<link>https://www.bosontreinamentos.com.br/redes-computadores/packeth-ferramenta-para-gerar-pacotes-de-rede/</link>
					<comments>https://www.bosontreinamentos.com.br/redes-computadores/packeth-ferramenta-para-gerar-pacotes-de-rede/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Fri, 16 Oct 2015 10:48:19 +0000</pubDate>
				<category><![CDATA[Redes de Computadores]]></category>
		<category><![CDATA[Protocolos]]></category>
		<category><![CDATA[Redes]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=5169</guid>

					<description><![CDATA[<p>PackETH &#8211; Gerando pacotes de rede O packETH é um software gerador de pacotes de rede que permite criar e enviar quaisquer tipos de pacotes, totalmente personalizados campo a campo, em uma rede Ethernet. Com ele podemos ajustar inúmeros parâmetros e então enviar o pacote (ou sequência de pacotes) pela rede, sendo uma ferramenta muito útil para realização de testes em redes e estudo de protocolos. O packETH pode ser obtido no site http://packeth.sourceforge.net/packeth/Home.html, e possui versões para Windows, Mac e Linux. A versão mais recente é a 1.8.1 (para Linux), sendo as versões para Windows e Mac ligeiramente mais antigas (até o momento). Características básicas do packETH: Protocolos suportados: Ethernet II, 802.3, 802.1q, quadros ethernet definidos pelo usuário ARP, IPv4, IPv6 UDP, TCP, ICMP, ICMPv6, IGMP RTP e quadros Jumbo É possível também ajustar diversos parâmetros nos pacotes, tais como: Atraso entre pacotes Número de pacotes a enviar Velocidade de envio Alterar parâmetros ao enviar, como endereços IP e MAC, entre outros E ainda é possível salvar configurações em um arquivo e carregar essas configurações posteriormente, além de suportar o formato pcap. O software possui versões para interface gráfica (GUI) e linha de comandos (CLI). Neste tutorial vou usar a [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/redes-computadores/packeth-ferramenta-para-gerar-pacotes-de-rede/">PackETH &#8211; Ferramenta para gerar pacotes de rede</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>PackETH &#8211; Gerando pacotes de rede</h2>
<p>O packETH é um software gerador de pacotes de rede que permite criar e enviar quaisquer tipos de pacotes, totalmente personalizados campo a campo, em uma rede Ethernet.<br />
 Com ele podemos ajustar inúmeros parâmetros e então enviar o pacote (ou sequência de pacotes) pela rede, sendo uma ferramenta muito útil para realização de testes em redes e estudo de protocolos.<br />
 O packETH pode ser obtido no site <a href="http://packeth.sourceforge.net/packeth/Home.html" target="_blank" rel="noopener noreferrer">http://packeth.sourceforge.net/packeth/Home.html</a>, e possui versões para Windows, Mac e Linux. A versão mais recente é a 1.8.1 (para Linux), sendo as versões para Windows e Mac ligeiramente mais antigas (até o momento).</p>
<p><strong>Características básicas do packETH:</strong><br />
 Protocolos suportados:</p>
<ul>
<li>Ethernet II, 802.3, 802.1q, quadros ethernet definidos pelo usuário</li>
<li>ARP, IPv4, IPv6</li>
<li>UDP, TCP, ICMP, ICMPv6, IGMP</li>
<li>RTP e quadros Jumbo</li>
</ul>
<p>É possível também ajustar diversos parâmetros nos pacotes, tais como:</p>
<ul>
<li>Atraso entre pacotes</li>
<li>Número de pacotes a enviar</li>
<li>Velocidade de envio</li>
<li>Alterar parâmetros ao enviar, como endereços IP e MAC, entre outros</li>
</ul>
<p>E ainda é possível salvar configurações em um arquivo e carregar essas configurações posteriormente, além de suportar o formato <strong>pcap</strong>.</p>
<p>O software possui versões para interface gráfica (GUI) e linha de comandos (CLI). Neste tutorial vou usar a versão para interface gráfica.</p>
<p>Para instalar o packETH, clique no link a seguir, que o levará à página de downloads, onde você poderá escolher a versão mais adequada a seu sistema:</p>
<p><a href="http://sourceforge.net/projects/packeth/files/" target="_blank" rel="noopener noreferrer">Download do packETH</a></p>
<p>Se você estiver utilizando alguma distribuição Linux, é possível que o packETH esteja presente nos repositórios de sua distro. Como vou utilizar o Linux Debian nos exemplos, irei instalá-lo via apt-get. Para isso, usarei o comando a seguir (funciona também no Ubuntu e derivados):</p>
<table style="height: 32px;" width="598">
<tbody>
<tr>
<td><strong><span style="color: #ff0000;">$ sudo apt-get install packeth</span></strong></td>
</tr>
</tbody>
</table>
<p>Caso você queira usar a versão para Windows, sua instalação é bem simples e básica: basta baixar o pacote zipado, extrair seu conteúdo em uma pasta qualquer do sistema, e então executar o arquivo packETH.exe. Porém, você deve estar ciente do seguinte: as versões para Windows e OS X foram portadas por terceiros, e possuem <a href="http://packeth.sourceforge.net/packeth/FAQ.html" target="_blank" rel="noopener noreferrer">alguns bugs</a>. Por isso, recomendamos utilizar a versão para Linux, para que o software possa ser utilizado sem nenhum tipo de problemas e com todos os seus recursos funcionais.</p>
<p>Observação: Caso apareça o erro &#8220;O programa não pode ser iniciado porque está faltando wpcap.dll no seu computador&#8221;, você precisará instalar a biblioteca WinPcap para que seja possível utilizar o packETH. <a href="http://www.winpcap.org/install/bin/WinPcap_4_1_3.exe" target="_blank" rel="noopener noreferrer">Clique aqui para baixar o WinPcap</a> (para Windows). Se preferir, <a href="http://www.winpcap.org/" target="_blank" rel="noopener noreferrer">visite o site oficial do projeto WinPcap</a>.</p>
<div id="attachment_5171" style="width: 482px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5171" class="wp-image-5171 size-full" title="Erro de falta de dll WinPcap" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/02-pachETH-erro-sistema.png" alt="Erro de falta de dll WinPcap" width="472" height="157" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/02-pachETH-erro-sistema.png 472w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/02-pachETH-erro-sistema-420x140.png 420w" sizes="auto, (max-width: 472px) 100vw, 472px" /><p id="caption-attachment-5171" class="wp-caption-text">Erro: falta biblioteca e driver WinPcap</p></div>
<p>Após instalar a biblioteca WinPcap (instalador corriqueiro &#8211; execute-o e siga as instruções para instalá-lo), tente abrir novamente o packETH.</p>
<p>Como citado, neste artigo vou usar a versão para Linux. Veja a tela inicial do programa aberto abaixo (é necessário privilégios de administrador para poder enviar os pacotes):</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-5199" title="packETH no Linux Debian" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packETH-linux-debian.png" alt="packETH no Linux Debian" width="700" height="480" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packETH-linux-debian.png 1023w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packETH-linux-debian-420x288.png 420w" sizes="auto, (max-width: 700px) 100vw, 700px" /></p>
<p>A barra de ferramentas nos permite acessar os vários modos de funcionamento do programa. Veja abaixo a barra de ferramentas e a seguir uma descrição sucinta de cada um de seus botões:</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-5173" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/04-packETH-barra-ferramentas.png" alt="Barra de Ferramentas do packETH" width="551" height="57" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/04-packETH-barra-ferramentas.png 551w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/04-packETH-barra-ferramentas-420x43.png 420w" sizes="auto, (max-width: 551px) 100vw, 551px" /></p>
<ul>
<li><strong>Builder</strong> &#8211; Modo de construção dos pacotes / quadros</li>
<li><strong>Gen-b</strong> &#8211; Especificar número de pacotes a enviar, atraso, offset e CRC</li>
<li><strong>Gen-s</strong> &#8211; Especificar tipos diferentes de pacotes, no formato pcap.</li>
<li><strong>Pcap</strong> &#8211; Permite carregar pacotes capturados previamente com Wireshark (ou tcpdmp, etc)</li>
<li><strong>Load</strong> &#8211; Abre uma caixa de diálogo para selecionar pacotes a serem carregados no Builder</li>
<li><strong>Save</strong> &#8211; Salvar o pacote definido atualmente no Builder</li>
<li><strong>Default</strong> &#8211; Carrega o pacote que foi armazenado por último com o botão Default (Salvar)</li>
<li><strong>Default</strong> (Salvar &#8211; símbolo do disquete) &#8211; Salvar o pacote aberto atualmente para que possa ser utilizado posteriormente</li>
<li><strong>Interface</strong> &#8211; Permite escolher a interface de rede a ser utilizada no envio dos pacotes</li>
<li><strong>Send</strong> &#8211; Enviar os pacotes</li>
<li><strong>Stop</strong> &#8211; Parar o envio dos pacotes</li>
</ul>
<h2>Criando pacotes com packETH</h2>
<p>Vamos criar um pacote de exemplo simples e enviá-lo pela rede. As configurações do equipamento que utilizarei são as seguintes:</p>
<ul>
<li>Host onde o pckETH será executado: Linux Ubuntu, com IP 192.168.1.114/24 e MAC Address 08:00:27:6c:c0:f4</li>
<li>Wireshark instalado neste host, para capturar e analisar os pacotes gerados</li>
<li>Host de destino: será meu gateway, de IP 192.168.1.1/24 e MAC Address c8:d7:19:ee:2a:17</li>
</ul>
<p>Vou criar um pacote <strong>ICMP Echo request</strong> (&#8220;ping&#8221;) e  enviarei do meu host ao meu roteador. Para isso, vamos configurar os campos nas camadas de Enlace e Internet do pacote, de acordo com os dados a seguir:</p>
<p><strong>Camada de Enlace</strong></p>
<ul>
<li>Ethernet ver. II</li>
<li>MAC de destino: c8:d7:19:ee:2a:17</li>
<li>MAC de origem: 08:00:27:6c:c0:f4</li>
<li>Ethertype: 0x0800 (IPv4)</li>
</ul>
<p>Próxima camada (Next layer): IPv4</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-5203" title="packETH - Camada de Enlace" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-enlace-ping.png" alt="packETH - Camada de Enlace" width="700" height="235" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-enlace-ping.png 885w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-enlace-ping-420x141.png 420w" sizes="auto, (max-width: 700px) 100vw, 700px" /></p>
<p><strong>Camada de Internet</strong></p>
<ul>
<li>Versão: 4</li>
<li>Comprimento do cabeçalho: 5</li>
<li>TOS: 00</li>
<li>Comprimento total: Auto (será calculado automaticamente)</li>
<li>Identificação: 1234</li>
<li>Flags: 2 (Don´t fragment  = Set; More fragments = Not set)</li>
<li>Offset de fragmento: 0</li>
<li>TTL: 255</li>
<li>Protocolo: 1 (ICMP)</li>
<li>Checksum do cabeçalho: Auto (será calculado automaticamente)</li>
<li>Endereço IP de origem: 192.168.1.114</li>
<li>Endereço IP de destino: 192.168.1.1</li>
<li>Opções: Vazio.</li>
</ul>
<p>Próxima camada (Next layer): ICMP</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-5204" title="packETH - Camada de Internet" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-internet-ping.png" alt="packETH - Camada de Internet" width="700" height="220" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-internet-ping.png 959w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-internet-ping-420x132.png 420w" sizes="auto, (max-width: 700px) 100vw, 700px" /></p>
<p><strong>Dados do pacote ICMP:</strong></p>
<ul>
<li>Tipo: 08 (Echo Request)</li>
<li>Código: 00</li>
<li>Checksum: Auto (será calculado automaticamente)</li>
<li>Identificador: 0001</li>
<li>Número de sequência: 0001</li>
<li>Dados: 464142494F (a palavra &#8220;FÁBIO&#8221; em hexadecimal, convertida do ASCII 7065667379)</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5205" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-icmp-ping.png" alt="packETH - Pacote ICMP Echo Request" width="439" height="239" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-icmp-ping.png 439w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-icmp-ping-420x229.png 420w" sizes="auto, (max-width: 439px) 100vw, 439px" /></p>
<p>Após configurar o pacote, basta clicar no botão Send para enviá-lo. Não se esqueça de antes clicar no botão Interface e selecionar a interface de rede que será utilizada no envio do pacote. Veja na figura a seguir o pacote capturado no Wireshark, e note que houve a resposta Echo Reply do meu host de destino. Note também o payload do pacote (&#8220;FÁBIO&#8221;):</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-5206" title="packETH - Capturando ping no Wireshark" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-wireshark-ping.png" alt="packETH - Capturando ping no Wireshark" width="800" height="394" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-wireshark-ping.png 952w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-wireshark-ping-420x207.png 420w" sizes="auto, (max-width: 800px) 100vw, 800px" /></p>
<p>&nbsp;</p>
<h3>Exemplo 02: Enviando um pacote TCP</h3>
<p>Vamos a um segundo exemplo. Desta vez vou enviar um pacote TCP com o flag SYN ativado, o que irá iniciar o procedimento do handshake de três vias entre os hosts. Espera-se que o host de destino responda com um pacote contendo as flags SYN e ACK ativadas, indicando que a conexão foi aceita, mas não será compeltada pois meu host irá usar uma porta fictícia (não ativa), e deverá responder de volta com um flag RST (reset).</p>
<p>Configurações do equipamento::</p>
<ul>
<li>Host onde o pckETH será executado: Linux Ubuntu, com IP 192.168.1.100/24 e MAC Address 08:00:27:6c:c0:f4</li>
<li>Wireshark instalado neste host, para capturar e analisar os pacotes gerados</li>
<li>Host de destino: será meu gateway, de IP 192.168.1.1/24 e MAC Address c8:d7:19:ee:2a:17, com serviço de Web (porta 80) ativo (padrão)</li>
</ul>
<p><strong>Camada de Enlace</strong></p>
<ul>
<li>Ethernet ver. II</li>
<li>MAC de destino: c8:d7:19:ee:2a:17</li>
<li>MAC de origem: 08:00:27:6c:c0:f4</li>
<li>Ethertype: 0x0800 (IPv4)</li>
</ul>
<p>Próxima camada (Next layer): IPv4</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-5203" title="Camada de enlace no packETH" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-enlace-ping.png" alt="packETH - Camada de Enlace" width="690" height="232" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-enlace-ping.png 885w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-enlace-ping-420x141.png 420w" sizes="auto, (max-width: 690px) 100vw, 690px" /></p>
<p><strong>Camada de Internet</strong></p>
<ul>
<li>Versão: 4</li>
<li>Comprimento do cabeçalho: 5</li>
<li>TOS: 00</li>
<li>Comprimento total: Auto (será calculado automaticamente)</li>
<li>Identificação: 7000</li>
<li>Flags: 2 (Don´t fragment  = Set; More fragments = Not set)</li>
<li>Offset de fragmento: 0</li>
<li>TTL: 15</li>
<li>Protocolo: 6 (TCP)</li>
<li>Checksum do cabeçalho: Auto (será calculado automaticamente)</li>
<li>Endereço IP de origem: 192.168.1.100</li>
<li>Endereço IP de destino: 192.168.1.1</li>
<li>Opções: Vazio.</li>
</ul>
<p>Próxima camada (Next layer): TCP</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-5329" title="Pacote TCP no packeth - Linux Ubuntu" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-ubuntu-internet-TCP.png" alt="Pacote TCP no packeth - Linux Ubuntu" width="700" height="221" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-ubuntu-internet-TCP.png 944w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-ubuntu-internet-TCP-420x133.png 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-ubuntu-internet-TCP-940x298.png 940w" sizes="auto, (max-width: 700px) 100vw, 700px" /></p>
<p>&nbsp;</p>
<p><strong>Camada de Transporte (Dados TCP)</strong></p>
<ul>
<li>Porta de Origem: 555</li>
<li>Porta de Destino: 80</li>
<li>Número de Sequência: 100</li>
<li>Número de Confirmação (ACK): 100</li>
<li>Comprimento do Cabeçalho: 20</li>
<li>Flags: SYN</li>
<li>Tamanho da Janela: 4000</li>
<li>Checksum: Auto (será calculado automaticamente)</li>
<li>Ponteiro de Urgente: 0</li>
<li>Opções: Vazio</li>
<li>TCP payload (dados): 464142494F</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-5330" title="Camada de Transporte - Protocolo TCP no packETH - Ubuntu Linux" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-ubuntu-transporte-TCP.png" alt="Camada de Transporte - Protocolo TCP no packETH - Ubuntu Linux" width="700" height="316" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-ubuntu-transporte-TCP.png 835w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-ubuntu-transporte-TCP-420x190.png 420w" sizes="auto, (max-width: 700px) 100vw, 700px" /></p>
<p>Após configurar o pacote, basta clicar no botão Send para enviá-lo. Veja na figura a seguir o pacote capturado no Wireshark, e note que houve a resposta do meu gateway com as flags SYN e ACK ativadas, e veja que a máquina de origem respondeu de volta com a flag RST ativada, resetando a conexão:</p>
<p><div id="attachment_5332" style="width: 710px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5332" class="wp-image-5332" title="Captura de pacote TCP com wireshark a partir do packETH" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-ubuntu-TCP-wireshark.png" alt="Captura de pacote TCP com wireshark a partir do packETH" width="700" height="344" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-ubuntu-TCP-wireshark.png 953w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-ubuntu-TCP-wireshark-420x206.png 420w" sizes="auto, (max-width: 700px) 100vw, 700px" /><p id="caption-attachment-5332" class="wp-caption-text">Gateway respondendo com flags SYN e ACK</p></div> <div id="attachment_5333" style="width: 710px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5333" class="wp-image-5333" title="Captura de pacote TCP com Wireshark e packETH no Ubuntu" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-ubuntu-TCP-wireshark-RST.png" alt="Captura de pacote TCP com Wireshark e packETH no Ubuntu" width="700" height="345" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-ubuntu-TCP-wireshark-RST.png 950w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/packeth-ubuntu-TCP-wireshark-RST-420x207.png 420w" sizes="auto, (max-width: 700px) 100vw, 700px" /><p id="caption-attachment-5333" class="wp-caption-text">Host respondendo ao gateway com flag RST ativada</p></div></p>
<p>Você pode criar uma infinidade de tipos de pacotes, combinando as opções de campos disponíveis, e realizar testes variados em sua rede, com testes de conectividade e segurança. Nos próximos artigos vou tratar sobre funcionalidades mais avançadas do packETH, que podem ser configuradas clicando nos botões Gen-b, Gen-s e Pcap.</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/redes-computadores/packeth-ferramenta-para-gerar-pacotes-de-rede/">PackETH &#8211; Ferramenta para gerar pacotes de rede</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/redes-computadores/packeth-ferramenta-para-gerar-pacotes-de-rede/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Curso de Redes &#8211; Protocolo TCP (Transmission Control Protocol)</title>
		<link>https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-transmission-control-protocol/</link>
					<comments>https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-transmission-control-protocol/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Mon, 12 Oct 2015 13:22:00 +0000</pubDate>
				<category><![CDATA[Redes de Computadores]]></category>
		<category><![CDATA[Protocolos]]></category>
		<category><![CDATA[Redes]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=5179</guid>

					<description><![CDATA[<p>Protocolo TCP (Transmission Control Protocol) O Protocolo TCP, que pertence à camada de Transporte juntamente com o UDP, fornece um serviço de entrega de pacotes confiável e orientado a conexão. Dizemos que um serviço é orientado à conexão quando duas aplicações que estejam usando o protocolo (por exemplo, TCP) para se comunicarem entre si &#8211; normalmente um cliente e um servidor &#8211; necessitem estabelecer uma conexão uma com a outra antes que possam trocar dados. Funções do Protocolo TCP O protocolo TCP é um tanto complexo, e seu estudo será realizado ao longo de diversas lições. Para simplificar um pouco o processo, listamos a seguir as principais funções realizadas pelo TCP: Estabelecer, Manter e Terminar Conexões Fornecer Confiabilidade Fornecer Controle de Fluxo Multiplexação Endereçamento de Aplicações Controle de Congestionamento Claramente podemos ver que o protocolo TCP é extremamente importante &#8211; não é à toa que a pilha TCP/IP o tem em seu nome. Vamos começar seu estudo conhecendo os campos que formam o cabeçalho de um segmento TCP e suas respectivas funções. Cabeçalho TCP Um segmento TCP é encapsulado em um datagrama IP, conforme podemos ver na figura a seguir: E na figura a seguir podemos ver o formato completo [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-transmission-control-protocol/">Curso de Redes &#8211; Protocolo TCP (Transmission Control Protocol)</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Protocolo TCP (Transmission Control Protocol)</h2>
<p>O Protocolo TCP, que pertence à camada de Transporte juntamente com o UDP, fornece um serviço de entrega de pacotes confiável e orientado a conexão.</p>
<p>Dizemos que um serviço é orientado à conexão quando duas aplicações que estejam usando o protocolo (por exemplo, TCP) para se comunicarem entre si &#8211; normalmente um cliente e um servidor &#8211; necessitem estabelecer uma conexão uma com a outra antes que possam trocar dados.</p>
<h2>Funções do Protocolo TCP</h2>
<p>O protocolo TCP é um tanto complexo, e seu estudo será realizado ao longo de diversas lições. Para simplificar um pouco o processo, listamos a seguir as principais funções realizadas pelo TCP:</p>
<ul>
<li>Estabelecer, Manter e Terminar Conexões</li>
<li>Fornecer Confiabilidade</li>
<li>Fornecer Controle de Fluxo</li>
<li>Multiplexação</li>
<li>Endereçamento de Aplicações</li>
<li>Controle de Congestionamento</li>
</ul>
<p>Claramente podemos ver que o protocolo TCP é extremamente importante &#8211; não é à toa que a pilha TCP/IP o tem em seu nome. Vamos começar seu estudo conhecendo os campos que formam o cabeçalho de um segmento TCP e suas respectivas funções.</p>
<h2>Cabeçalho TCP</h2>
<p>Um segmento TCP é encapsulado em um datagrama IP, conforme podemos ver na figura a seguir:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-5214" title="Encapsulamento TCP - CUrso de Redes" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/encapsulamento-TCP.jpg" alt="Encapsulamento TCP - CUrso de Redes" width="600" height="237" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/encapsulamento-TCP.jpg 996w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/encapsulamento-TCP-420x166.jpg 420w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p>E na figura a seguir podemos ver o formato completo de um cabeçalho TCP, cujo tamanho normal é de 20 bytes, conforme mostrado na ilustração anterior (mas pode ser maior, se houverem opções presentes):</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-5218" title="Campos do Cabeçalho TCP - Curso de Redes" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/cabeçalho-tcp-campos-.jpg" alt="Campos do Cabeçalho TCP - Curso de Redes" width="750" height="524" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/cabeçalho-tcp-campos-.jpg 856w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/cabeçalho-tcp-campos--420x293.jpg 420w" sizes="auto, (max-width: 750px) 100vw, 750px" /></p>
<p>Segue uma descrição sucinta de cada um dos campos no cabeçalho TCP:</p>
<ul>
<li><strong>Número de Porta de Origem</strong>: número que identifica a aplicação (processo) que envia os dados</li>
<li><strong>Número de Porta de Destino</strong>: número que identifica a aplicação (processo) que deve receber os dados</li>
<li><strong>Número de Sequência</strong>: número que identifica o byte em um fluxo de dados do transmissor para o receptor.<br />
 Se considerarmos o fluxo de bytes em uma direção entre dois hosts, o TCP identifica cada byte com um número de sequência. O número de sequência possui 32 bits de tamanho, com valores possíveis entre 0 e 2<sup>32</sup> &#8211; 1.<br />
 Quando uma nova conexão é estabelecida, a flag SYN é ativada. Neste caso, o campo número de sequência possui o &#8220;número de sequência inicial&#8221; (<strong>ISN</strong>, initial sequence number), o qual é escolhido pelo host para esta conexão em particular. O número de sequência do primeiro byte de dados que será enviado será o ISN mais um.<br />
 Como cada byte que é transmitido é numerado, o número de confirmação (acknowledgment) contém o próximo número de sequência que o host que enviou a confirmação espera receber. Portanto, é o número de sequência mais 1 do último byte de dados que foi recebido com sucesso.</li>
<li><strong>Número de Confirmação</strong>: Se a flag ACK estiver ativada o valor deste campo será o próximo número de sequência que o destinatário espera receber. Assim é confirmada a recepção de todos os bytes anteriores, se houverem. A exceção é o primeiro ACK enviado pelos hosts da conexão, que confirma o número de sequência inicial (ISN) de cada um.</li>
<li><strong>Comprimento do Cabeçalho</strong> (Data offset): Tamanho do cabeçalho TCP em palavras de 32 bits. O tamanho mínimo é de 5 palavras (20 bytes, sem opções) e o tamanho máximo é de 15 palavras (60 bytes, com opções). Indica o ponto de início dos dados a partir do início do segmento TCP.</li>
<li><strong>Reservado</strong> (3 bits): Para uso futuro. Consiste atualmente na sequência 000.</li>
<li><strong>Flags</strong>: <strong>ECN</strong> &#8211; Explicit Congestion Notification / Notificação Explícita de Congestionamento, adicionados no <a href="http://www.rfc-editor.org/info/rfc3168" target="_blank" rel="noopener noreferrer">RFC 3168</a> (Cada flag usa 1 bit):
<ul>
<li>NS &#8211; Campo opcional adicionado ao ECN para proteger contra dissimulação acidental ou maliciosa de pacotes marcados do transmissor</li>
<li>CWR &#8211; Congestion Window Reduced, enviada pelo host transmissor para indicar que recebeu um segmento TCP com o flag ECE ativado e respondeu no mecanismo de controle de congestionamento</li>
<li>ECE &#8211; ECN-Echo. Sua função depende do valor da flag SYN. Se a flag SYN estiver ativada, então o parceiro na conexão TCP é compatível com ECN; se a flag SYN estiver desativada, um pacote com a flag &#8220;congestinamento experimentado&#8221; no datagrama IP foi recebido durante a transmissão normal</li>
</ul>
</li>
<li><strong>Flags: Bits de Controle</strong> (Cada flag usa 1 bit):
<ul>
<li>URG &#8211; Quando ativado, indica que o Campo Ponteiro de Urgente é válido e o recurso Transferência de dados com prioridade foi invocado</li>
<li>ACK &#8211; Bit de Confirmação. Quando ativado, indica que o segmento carrega uma mensagem de confirmação e que o valor do campo Número de Confirmação é válido, e carrega o próximo número de sequência esperado pelo host.</li>
<li>PSH &#8211; Bit de Push. Quando ativado, indica que o transmissor do segmento usa o recurso TCP Push, o qual requisita que os dados no segmento sejam imediatamente transmitidos à aplicação no dispositivo de destino</li>
<li>RST &#8211; Bit de Reset. Quando ativado indica que o transmissor encontrou um problema e deseja resetar a conexão.</li>
<li>SYN &#8211; Bit de Sincronismo. Requisição para sincronizar números de sequência e estabelecer uma conexão entre dois hosts. O campo Número de Sequência contém o número de sequência inicial (ISN) do host que transmite o segmento.</li>
<li>FIN &#8211; Bit de Finalização. Quando ativado indica que o transmissor do segmento requisita que a conexão seja encerrada.</li>
</ul>
</li>
<li><strong>Tamanho da Janela</strong>: O tamanho da janela de recepção indica o número de bytes que o transmissor deste segmento quer aceitar do host de destino, em cada transmissão. Seu valor é também o tamanho da janela de envio do host que recebe este segmento.</li>
<li><strong>Checksum</strong>: Usado para verificação de erros do cabeçalho e dos dados transmitidos. Protege o segmento TCP contra erros de transmissão e de entrega dos dados.</li>
<li><strong>Ponteiro de Urgente</strong>: Usado em conjunto com o flag URG para transferência de dados com prioridade. Contém o número de sequência do último byte de dados urgentes.</li>
<li><strong>Opções</strong>: Campo opcional, que representa informações não cobertas pelos demais campos do cabeçalho TCP. Uma das opções mais comuns é o MSS (Maximum Segment Size). Se o valor do campo de opções não for um múltiplo de 32, então ele será preenchido com zeros (padding) até que seja um valor múltiplo de 32 bits.</li>
</ul>
<h2>Confiabilidade</h2>
<p>O protocolo TCP fornece confiabilidade (&#8220;reliability&#8221;) a uma conexão por meio dos seguintes processos:</p>
<ul>
<li>O TCP divide os dados recebidos da camada de aplicação em blocos de tamanho adequado para envio, chamados de <strong>segmentos</strong>. Quando um segmento é enviado, um timer é ativado, e o transmissor espera o recebimento de uma mensagem de confirmação do destinatário do segmento. Caso a confirmação não seja recebida antes do timer expirar, o segmento é considerado perdido e então será retransmitido.</li>
<li>Portanto, quando um host recebe um pacote de dados TCP, ele envia uma confirmação para o transmissor.</li>
<li>O TCP no host de destino pode reordenar os segmentos caso cheguem fora de ordem (já que datagramas IP podem chegar fora de ordem, e segmentos TCP são enviados em datagramas IP). Assim, os dados são repassados na ordem correta à aplicação que os irá processar.</li>
<li>O protocolo TCP utiliza um checksum que envolve o cabeçalho TCP e os dados transmitidos. Caso um segmento recebido possua um checksum inválido, o segmento será descartado e não será enviada a mensagem de confirmação para o transmissor.</li>
<li>Uma de suas principais funções é o controle de fluxo. Um host receptor permite apenas o envio de dados na medida em que seu buffer suporte.</li>
<li>Pacotes duplicados são detectados e descartados pelo TCP.</li>
</ul>
<p>Em resumo, o protocolo TCP fornece um serviço orientado a conexão, confiável, na camada de transporte da pilha TCP/IP. Os dados são empacotados em unidades denominadas segmentos, e as mensagens enviadas recebem uma confirmação de recebimento, além de serem reordenadas no host de destino, que também verifica a ocorrência de erros de transmissão. Caso haja algum erro, os dados são retransmitidos e, caso hajam segmentos duplicados, são descartados. Além disso, o protocolo TCP permite enviar dados de múltiplas aplicações multiplexadas, e usa o mecanismo de portas de comunicação para determinar a qual aplicação enviar e entregar os dados transmitidos.</p>
<p>Nas próximas lições vamos estudar mais a fundo o funcionamento dos mecanismos de Controle de Fluxo, Controle de Erros, Estabelecimento e Terminação de Conexões, e outros relativos ao protocolo TCP.</p>
<p style="text-align: right;">Próximo: <a href="http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-handshake-de-tres-vias/">Estabelecendo uma conexão TCP entre dois hosts</a></p>
<p>O post <a href="https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-transmission-control-protocol/">Curso de Redes &#8211; Protocolo TCP (Transmission Control Protocol)</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-transmission-control-protocol/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
