1. Camada de transporte
Definição: fornecer serviços de comunicação para a camada de aplicação e usar os serviços da camada de rede
Funções da camada de transporte:
A camada de transporte fornece comunicação lógica entre processos e processos
multiplexação e demultiplexação
A camada de transporte realiza a detecção de erros nos pacotes recebidos
Dois protocolos na camada de transporte
Dois protocolos da camada de transporte:
1. Protocolo de controle de transmissão orientado a conexão TCP: uma conexão deve ser estabelecida antes da transmissão de dados e a conexão deve ser liberada após a transmissão de dados. Nenhum serviço de broadcast ou multicast é fornecido. Como o TCP precisa fornecer serviços confiáveis de transmissão orientados à conexão, inevitavelmente aumenta muito a sobrecarga: confirmação, controle de fluxo, cronômetro e gerenciamento de conexão. Confiável, orientado a conexão, alta latência, adequado para arquivos grandes
2. Protocolo de datagrama de usuário sem conexão UDP: Não há necessidade de estabelecer uma conexão antes de transmitir os dados, e não há necessidade de dar nenhuma confirmação depois de receber uma mensagem UDP. Não confiável, sem conexão, baixa latência, adequado para arquivos pequenos
Multiplexação : Todos os processos de aplicação na camada de aplicação podem ser transmitidos para a camada de rede através da camada de transporte
Descentralização : a camada de transporte entrega o processo de aplicação especificado após receber dados da camada de rede
Na rede, a combinação de soquete do remetente e do destinatário é usada para identificar o terminal.O soquete identifica exclusivamente um host na rede e um processo nele.
1. Protocolo UDP
O UDP adiciona apenas algumas funções ao serviço de datagrama IP, ou seja, funções de multiplexação, demultiplexação e detecção de erros
As principais características do UDP:
1. O UDP é sem conexão , reduzindo a sobrecarga e o atraso antes de enviar dados
2. UDP usa entrega de melhor esforço, o que não garante entrega
3. O UDP é orientado a mensagens, adequado para aplicativos de rede que transmitem uma pequena quantidade de dados de uma só vez
4. UDP não tem controle de congestionamento, adequado para muitas aplicações em tempo real
5. A sobrecarga do cabeçalho UDP é pequena, 8B, TCP 20B
2. Protocolo TCP
Características TCP:
TCP é um protocolo da camada de transporte orientado à conexão (conexão virtual)
Cada conexão TCP pode ter apenas dois terminais e cada conexão TCP pode ser apenas ponto a ponto .
O TCP fornece serviços de entrega confiáveis, sem erro, sem perda, sem repetição e chegada em ordem
TCP fornece comunicação full-duplex
Análise de campo TCP:
Número de seqüência : Cada byte no fluxo de bytes transmitido em uma conexão TCP é numerado em seqüência, este campo indica o número de seqüência do primeiro byte dos dados enviados neste segmento .
Número de confirmação : O número de série do primeiro byte de dados do próximo segmento que se espera receber pela outra parte. Se o número de confirmação for N, isso prova que todos os dados até o número de sequência N-1 foram recebidos corretamente
Deslocamento de dados (comprimento do cabeçalho) : a que distância está o início dos dados do segmento de mensagem TP desde o início do segmento de mensagem TCP em unidades de 4B bits, ou seja, um valor é 4B
Os seis controles são:
Bit urgente URG: Quando URG=1 , indica que há dados urgentes neste segmento de mensagem, que são dados de alta prioridade, e devem ser transmitidos o mais rápido possível sem enfileirar no cache. É usado em conjunto com o bit urgente campo de ponteiro
Bit de confirmação ACK : Quando ACK=1, o número de confirmação é válido e todos os segmentos transmitidos devem definir ACK como 1 após a conexão ser estabelecida
Push bit PSH : Quando PSH = 1, o receptor entrega o processo de aplicação de recebimento o mais rápido possível e não espera mais até que o cache esteja cheio antes de entregar para cima
Reset RST : Quando RST=1, indica que há um erro grave na conexão TCP, a conexão deve ser liberada, e então o link de transmissão deve ser restabelecido
Bit de sincronização SYN : Quando SYN=1, indica que é uma mensagem de solicitação de conexão/aceitação de conexão
Bit de terminação FIN : Quando FIN=1, indica que os dados do remetente deste segmento de mensagem foram enviados, sendo necessário liberar a conexão
Janela : refere-se à janela de recebimento da parte que está enviando este segmento, ou seja, a quantidade de dados que a outra parte agora pode enviar
Soma de verificação : verifique cabeçalho + dados, adicione 12B pseudo cabeçalho ao verificar e o quarto campo é 6
Ponteiro urgente : só tem significado quando URG=1, indicando o número de bytes de dados urgentes neste segmento
Opções : Comprimento Máximo do Segmento MSS, Expansão da Janela, Carimbo de Data e Hora, Confirmação de Seleção
3. Estabelecimento e liberação da conexão TCP
Estabelecimento de conexão TCP: handshake de três vias
RODADA 1:
O cliente envia um segmento de solicitação de conexão sem dados da camada de aplicação, SYN=1, seg=x (aleatório)
2 ª RODADA:
O servidor aloca buffers e variáveis para a conexão TCP, e retorna um segmento de mensagem de confirmação para o cliente , permitindo a conexão sem dados da camada de aplicação.
SYN=1, ACK=1, seg=y(aleatório), ack=x+1
CARREIRA 3:
O cliente aloca buffers e variáveis para a conexão TCP e retorna uma confirmação ao servidor , que pode transportar dados
SYN=0,ACK=1,seq=x+1,ack=y+1
Liberação da conexão TCP: handshake de quatro vias
RODADA 1:
O cliente envia um segmento de liberação de conexão , interrompe o envio de dados e fecha ativamente a conexão TCP.
FIN=1,seq=u
2 ª RODADA:
O servidor envia de volta um segmento de mensagem de confirmação e a conexão do cliente para o servidor nessa direção é liberada - estado meio fechado
ACK=1,seq=v,ack=u+1
CARREIRA 3:
Depois que o servidor envia os dados, ele envia um segmento de mensagem de liberação de conexão e fecha ativamente a conexão TCP.
FIN=1,ACK=1,seg=w,ack=u+1
RODADA 4:
O cliente envia de volta um segmento de mensagem de confirmação e, em seguida, espera até o 2MSL (vida útil do segmento de mensagem mais longo) definido pelo cronômetro, a conexão é completamente fechada
ACK=1,seq=u+1,ack=w+1
4. Controle de fluxo TCP
在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小,即接收窗口rwnd (接收方设置确认报文段的窗口字段来将rwnd通知给发送方),发送方的发送窗口取接收窗口rwnd和拥塞窗口cwnd的最小值。
5.TCP拥塞控制
拥塞控制的四种算法:
1.慢开始 2.拥塞避免
3.快重传 4.快恢复
发送窗口=Min(接收窗口rwnd,拥塞窗口cwnd}
接收窗口:接收方根据接受缓存设置的值,并告知给发送方,反映接收方容量
拥塞窗口:发送方根据自己估算的网络拥塞程度而设置的窗口值,反映网络当前容量
1.慢开始和拥塞避免
2.快开始和快恢复
2.应用层
两个网络应用模型:客户/服务器(c/s) 模型和P2P模型
1.客户/服务器(c/s) 模型
服务器:提供计算服务的设备。
永久提供服务
永久性访问地址/域名
客户机:请求计算服务的主机
与服务器通信,使用服务器提供的服务
间歇性接入网络
可能使用动态IP地址
不与其他客户机直接通信
2.P2P模型
特点:
不存在永远在线的服务器
每个主机既可以提供服务,也可以请求服务
任意端系统/节点之间可以直接通讯
节点间歇性接入网络
节点可能改变IP地址
可扩展性好
网络健壮性强
3.DNS系统
域名的分类:
分类 |
二次分类 |
例子 |
顶级域名 |
国家顶级域名 |
cn,us,uk |
通用顶级域名 |
com,net,org,gov,int,aero,museum,travel |
|
基础结构域名/反向域名 |
arpa |
|
二级域名 |
类别域名 |
ac,com,edu,gov,mil,net,org |
行政区域名 |
用于我国各省、自治区、直辖市 bj,js |
|
三级域名 |
❌ |
|
四级域名 |
❌ |
域名服务器:
根域名服务器
顶级域名服务器:管理该顶级域名服务器注册的所有二级域名
权限域名服务器:负责一个区的域名服务器
本地域名服务器:当一个主机发出DNS查询请求时,这个查询请求报文就发给本地域名服务器
查询解析域名的两种方法:
1递归查询
2.迭代查询
4.文件传输协议FTP
定义:提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力
FTP是基于客户/服务器(c/S)的协议
FTP工作原理:
控制连接始终保持
数据连接保持一会
是否使用TCP20端口建立数据连接与传输模式有关
主动方式使用TCP20端口
被动方式由服务器和客户端自行协商决定(端口1024)
5.电子邮件系统
1.简单邮件传送协议SMTP
SMTP规定了在两个相互通信的SMTP进程之间应如何交换信息
负责发送邮件的SMTP进程就是SMTP客户,负责接收邮件的进程就是SMTP服务器,使用的端口号是25
SMTP的缺点:
SMTP不能传送可执行文件或者其他二进制对象
SMTP仅限于传送7位ASCII码,不能传送其他非英语国家的文字
SMTP服务器会拒绝超过一定长度的邮件
解决:通用因特网邮件扩充MIME
2.网际报文存取协议IMAP
定义:IMAP协议比POP协议复杂。当用户Pc上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部,若用户需要打开某个邮件,该邮件才上传到用户的计算机上
3.基于万维网的电子邮件
6.万维网
万维网www(World Wide web)是一个大规模的、联机式的信息储藏所/资料空间,是无数个网络站点和网页的集合
URL:统一资源定位符
HTTP:超文本传输协议
万维网使用超文本标记语言HTML,使得万维网页面设计者可以很方便地从一个界面的链接转到另一个界面,并能够在自己的屏幕上显示出来
1.超文本传输协议HTTP
HTTP协议定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器
HTTP的连接方式:
1.持久连接
非流水线连接
流水线连接
2.非持久连接
HTTP的报文结构:
1.请求报文
2.响应报文
HTTP报文是面向文本的,因此在报文中的每一个字段都是一些ASCII码串