SDTP 0.2
Simple Data Transfer Protocol
Classes | Macros | Functions
sdtp.h File Reference

Arquivo que contem as definicoes essenciais para a implementacao. More...

#include <stdint.h>
Include dependency graph for sdtp.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  sdtphdr
 

Macros

#define TH_FIN   0x01
 Finalize.
 
#define TH_SYN   0x02
 Synchronize.
 
#define TH_RST   0x04
 Reset.
 
#define TH_PUSH   0x08
 Push (NAO USADA)
 
#define TH_ACK   0x10
 Acknowledgment.
 
#define TH_URG   0x20
 Urgent (NAO USADA)
 
#define PORTA   21020
 Porta de conexao com o servidor.
 
#define MSS   255
 Maximo tamanho do payload ( $2^8-1$)
 
#define MAXSDTP   10 + MSS
 Tamanho do cabecalho + MSS.
 
#define LOREMSIZE   6328
 Total de bytes do arquivo a ser enviado.
 
#define ALPHA   0.125
 Valor inicial do $\alpha$.
 
#define BETA   0.25
 Valor inicial do $\beta$.
 
#define ESTIMATEDRTT   250
 RTT estimado inicial (ms)
 
#define DEVRTT   0
 Desvio do RTT estimado inicial (ms)
 

Functions

int recvtimeout (int s, char *buf, int len, int timeout, struct sockaddr *dest, int *destlen)
 
uint16_t checksum (void *hdr, int count)
 
void printpacket (struct sdtphdr *p)
 

Detailed Description

Arquivo que contem as definicoes essenciais para a implementacao.

Author
Joao Borges

Function Documentation

◆ checksum()

uint16_t checksum ( void *  hdr,
int  count 
)

Calcula o checksum de um determinado pacote, seguindo a RFC 1071

Parameters
hdrPonteiro para o inicio dos dados a somar
countA quantidade de bytes a contabilizar nesta soma
Returns
O valor do checksum contabilizado

◆ printpacket()

void printpacket ( struct sdtphdr p)

Funcao de ajuda que imprime o conteudo de um pacote STDP na tela

Parameters
pPonteiro para o pacote sdtp

◆ recvtimeout()

int recvtimeout ( int  s,
char *  buf,
int  len,
int  timeout,
struct sockaddr *  dest,
int *  destlen 
)

Timeout para a recepcao de uma mensagem UDP, utilizando a funcao recvfrom, adaptado de Beej's Guide to Network Programming

Parameters
sSocket utilizado para a recepcao dos dados
bufBuffer para armazenar os dados recebidos
lenQuantidade de bytes a receber no buffer
timeoutTempo a esperar (em milisegundos) ate declarar que a recepcao falhou
destPonteiro para o endereco do cliente recebido
destlenTamanho do endereco recebido
Returns
-2 em caso de timeout
-1 em caso de erro na recepcao
n, o tamanho de bytes recebidos (pode ser 0)

Exemplo de utilizacao no arquivo cliente_sdtp.c