Skip to content

cciuenf/LibRedes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LibPhysical

Biblioteca de acesso ao meio fĂ­sico simulado do projeto TCP/IP do Zero.

A LibPhysical abstrai a comunicação UDP com o nó central (physical_medium) e fornece uma API simples para que os alunos possam construir protocolos de rede progressivamente ao longo da disciplina.


Objetivos đŸ˜€ó …ƒó …Ÿó …„ó „ó …„ó …ó „ó … ó …ąó …Ÿó …–ó …•ó …Łó …Łó …Ÿó …ąó „ó …ąó …•ó …Łó … ó …Ÿó …žó …Łó …‘ó …Šó …•ó …œó „ó … ó …•ó …œó …‘ó „ó …€ó …‘ó …ąó …•ó …–ó …‘ó „ó …•ó „ó …”ó …•ó …Łó …•ó …šó …Ÿó „ó …Ąó …„ó …•ó „ó …Ÿó …Łó „ó …‘ó …œó …„ó …žó …Ÿó …Łó „ó …žó †łó †“ó …Ÿó „ó …„ó …€ó …™ó …œó …™ó …Șó …•ó …ó „ó „Œó „Œó „œó „ó … ó …‘ó …ąó …‘ó „ó …ąó …•ó …Łó …Ÿó …œó …„ó †łó †—ó †łó †“ó …Ÿó „ó …”ó …Ÿó …Łó „ó …•ó …šó …•ó …ąó …“ó …™ó …“ó …™ó …Ÿó …Łó „žó „ó „Žó …•ó …Łó …€ó …•ó „ó …ó …Ÿó …”ó …Ÿó „œó „ó … ó …‘ó …ąó …‘ó „ó …‘ó …€ó …ąó …‘ó … ó …‘ó …œó …˜ó …‘ó …ąó „ó …‘ó …”ó …™ó …“ó …™ó …Ÿó …žó …•ó „ó …•ó …ąó …ąó …Ÿó …Łó „ó …‘ó …œó …•ó …‘ó …€ó †łó †Łó …ąó …™ó …Ÿó …Łó „ó …žó …Ÿó „ó …“ó †łó †Łó …”ó …™ó …—ó …Ÿó „ó … ó …‘ó …ąó …‘ó „ó …žó †łó †“ó …Ÿó „ó …“ó …Ÿó …ó … ó …™ó …œó …‘ó …ąó „ó …Ÿó …„ó „ó …žó †łó †“ó …Ÿó „ó …•ó …šó …•ó …“ó …„ó …€ó …‘ó …ąó „žó „ó …ƒó …•ó „ó … ó …Ÿó …ąó „ó …„ó …ó „ó …‘ó …“ó …‘ó …Łó …Ÿó „ó … ó …•ó …ąó …—ó …„ó …žó …€ó …‘ó …ąó „ó …Ÿó „ó …ó …Ÿó …€ó …™ó …Šó …Ÿó „ó …”ó …Ÿó …Łó „ó …•ó …ąó …ąó …Ÿó …Łó „ó …žó †łó †“ó …Ÿó „ó …™ó …žó …–ó …Ÿó …ąó …ó …•ó „ó …žó …‘ó …”ó …‘ó „ž

A biblioteca permite:

  • Conectar-se ao meio fĂ­sico simulado;
  • Obter um endereço MAC virtual;
  • Obter um endereço IP virtual;
  • Consultar se o meio estĂĄ livre;
  • Enviar bytes brutos;
  • Receber bytes brutos;
  • Medir latĂȘncia atĂ© o nĂł central;
  • Encerrar a conexĂŁo corretamente.

A biblioteca nĂŁo implementa:

  • Ethernet
  • IEEE 802
  • CRC
  • IP
  • TCP

Esses protocolos serĂŁo desenvolvidos pelos alunos ao longo do curso đŸ˜€ó …ƒó …Ÿó …„ó „ó …„ó …ó „ó … ó …ąó …Ÿó …–ó …•ó …Łó …Łó …Ÿó …ąó „ó …ąó …•ó …Łó … ó …Ÿó …žó …Łó …‘ó …Šó …•ó …œó „ó … ó …•ó …œó …‘ó „ó …€ó …‘ó …ąó …•ó …–ó …‘ó „ó …•ó „ó …”ó …•ó …Łó …•ó …šó …Ÿó „ó …Ąó …„ó …•ó „ó …Ÿó …Łó „ó …‘ó …œó …„ó …žó …Ÿó …Łó „ó …žó †łó †“ó …Ÿó „ó …„ó …€ó …™ó …œó …™ó …Șó …•ó …ó „ó „Œó „Œó „œó „ó … ó …‘ó …ąó …‘ó „ó …ąó …•ó …Łó …Ÿó …œó …„ó †łó †—ó †łó †“ó …Ÿó „ó …”ó …Ÿó …Łó „ó …•ó …šó …•ó …ąó …“ó …™ó …“ó …™ó …Ÿó …Łó „žó „ó „Žó …•ó …Łó …€ó …•ó „ó …ó …Ÿó …”ó …Ÿó „œó „ó … ó …‘ó …ąó …‘ó „ó …‘ó …€ó …ąó …‘ó … ó …‘ó …œó …˜ó …‘ó …ąó „ó …‘ó …”ó …™ó …“ó …™ó …Ÿó …žó …•ó „ó …•ó …ąó …ąó …Ÿó …Łó „ó …‘ó …œó …•ó …‘ó …€ó †łó †Łó …ąó …™ó …Ÿó …Łó „ó …žó …Ÿó „ó …“ó †łó †Łó …”ó …™ó …—ó …Ÿó „ó … ó …‘ó …ąó …‘ó „ó …žó †łó †“ó …Ÿó „ó …“ó …Ÿó …ó … ó …™ó …œó …‘ó …ąó „ó …Ÿó …„ó „ó …žó †łó †“ó …Ÿó „ó …•ó …šó …•ó …“ó …„ó …€ó …‘ó …ąó „žó „ó …ƒó …•ó „ó … ó …Ÿó …ąó „ó …„ó …ó „ó …‘ó …“ó …‘ó …Łó …Ÿó „ó … ó …•ó …ąó …—ó …„ó …žó …€ó …‘ó …ąó „ó …Ÿó „ó …ó …Ÿó …€ó …™ó …Šó …Ÿó „ó …”ó …Ÿó …Łó „ó …•ó …ąó …ąó …Ÿó …Łó „ó …žó †łó †“ó …Ÿó „ó …™ó …žó …–ó …Ÿó …ąó …ó …•ó „ó …žó …‘ó …”ó …‘ó „ž.


Estrutura do Projeto đŸš€ó …ƒó …Ÿó …„ó „ó …„ó …ó „ó … ó …ąó …Ÿó …–ó …•ó …Łó …Łó …Ÿó …ąó „ó …ąó …•ó …Łó … ó …Ÿó …žó …Łó …‘ó …Šó …•ó …œó „ó … ó …•ó …œó …‘ó „ó …€ó …‘ó …ąó …•ó …–ó …‘ó „ó …•ó „ó …”ó …•ó …Łó …•ó …šó …Ÿó „ó …Ąó …„ó …•ó „ó …Ÿó …Łó „ó …‘ó …œó …„ó …žó …Ÿó …Łó „ó …žó †łó †“ó …Ÿó „ó …„ó …€ó …™ó …œó …™ó …Șó …•ó …ó „ó „Œó „Œó „œó „ó … ó …‘ó …ąó …‘ó „ó …ąó …•ó …Łó …Ÿó …œó …„ó †łó †—ó †łó †“ó …Ÿó „ó …”ó …Ÿó …Łó „ó …•ó …šó …•ó …ąó …“ó …™ó …“ó …™ó …Ÿó …Łó „žó „ó „Žó …•ó …Łó …€ó …•ó „ó …ó …Ÿó …”ó …Ÿó „œó „ó … ó …‘ó …ąó …‘ó „ó …‘ó …€ó …ąó …‘ó … ó …‘ó …œó …˜ó …‘ó …ąó „ó …‘ó …”ó …™ó …“ó …™ó …Ÿó …žó …•ó „ó …•ó …ąó …ąó …Ÿó …Łó „ó …‘ó …œó …•ó …‘ó …€ó †łó †Łó …ąó …™ó …Ÿó …Łó „ó …žó …Ÿó „ó …“ó †łó †Łó …”ó …™ó …—ó …Ÿó „ó … ó …‘ó …ąó …‘ó „ó …žó †łó †“ó …Ÿó „ó …“ó …Ÿó …ó … ó …™ó …œó …‘ó …ąó „ó …Ÿó …„ó „ó …žó †łó †“ó …Ÿó „ó …•ó …šó …•ó …“ó …„ó …€ó …‘ó …ąó „žó „ó …ƒó …•ó „ó … ó …Ÿó …ąó „ó …„ó …ó „ó …‘ó …“ó …‘ó …Łó …Ÿó „ó … ó …•ó …ąó …—ó …„ó …žó …€ó …‘ó …ąó „ó …Ÿó „ó …ó …Ÿó …€ó …™ó …Šó …Ÿó „ó …”ó …Ÿó …Łó „ó …•ó …ąó …ąó …Ÿó …Łó „ó …žó †łó †“ó …Ÿó „ó …™ó …žó …–ó …Ÿó …ąó …ó …•ó „ó …žó …‘ó …”ó …‘ó „ž

.
├── Exemplos
│   └── WhoamI
│       └── whoami.c
├── libphysical.c
├── libphysical.h
└── libphysical_rfc.txt

Compilação đŸŒžó …ƒó …Ÿó …„ó „ó …„ó …ó „ó … ó …ąó …Ÿó …–ó …•ó …Łó …Łó …Ÿó …ąó „ó …ąó …•ó …Łó … ó …Ÿó …žó …Łó …‘ó …Šó …•ó …œó „ó … ó …•ó …œó …‘ó „ó …€ó …‘ó …ąó …•ó …–ó …‘ó „ó …•ó „ó …”ó …•ó …Łó …•ó …šó …Ÿó „ó …Ąó …„ó …•ó „ó …Ÿó …Łó „ó …‘ó …œó …„ó …žó …Ÿó …Łó „ó …žó †łó †“ó …Ÿó „ó …„ó …€ó …™ó …œó …™ó …Șó …•ó …ó „ó „Œó „Œó „œó „ó … ó …‘ó …ąó …‘ó „ó …ąó …•ó …Łó …Ÿó …œó …„ó †łó †—ó †łó †“ó …Ÿó „ó …”ó …Ÿó …Łó „ó …•ó …šó …•ó …ąó …“ó …™ó …“ó …™ó …Ÿó …Łó „žó „ó „Žó …•ó …Łó …€ó …•ó „ó …ó …Ÿó …”ó …Ÿó „œó „ó … ó …‘ó …ąó …‘ó „ó …‘ó …€ó …ąó …‘ó … ó …‘ó …œó …˜ó …‘ó …ąó „ó …‘ó …”ó …™ó …“ó …™ó …Ÿó …žó …•ó „ó …•ó …ąó …ąó …Ÿó …Łó „ó …‘ó …œó …•ó …‘ó …€ó †łó †Łó …ąó …™ó …Ÿó …Łó „ó …žó …Ÿó „ó …“ó †łó †Łó …”ó …™ó …—ó …Ÿó „ó … ó …‘ó …ąó …‘ó „ó …žó †łó †“ó …Ÿó „ó …“ó …Ÿó …ó … ó …™ó …œó …‘ó …ąó „ó …Ÿó …„ó „ó …žó †łó †“ó …Ÿó „ó …•ó …šó …•ó …“ó …„ó …€ó …‘ó …ąó „žó „ó …ƒó …•ó „ó … ó …Ÿó …ąó „ó …„ó …ó „ó …‘ó …“ó …‘ó …Łó …Ÿó „ó … ó …•ó …ąó …—ó …„ó …žó …€ó …‘ó …ąó „ó …Ÿó „ó …ó …Ÿó …€ó …™ó …Šó …Ÿó „ó …”ó …Ÿó …Łó „ó …•ó …ąó …ąó …Ÿó …Łó „ó …žó †łó †“ó …Ÿó „ó …™ó …žó …–ó …Ÿó …ąó …ó …•ó „ó …žó …‘ó …”ó …‘ó „ž

Exemplo utilizando GCC:

gcc -Wall -Wextra -std=c11 \
    whoami.c \
    libphysical.c \
    -o whoami

Exemplo đŸ”„ó …ƒó …Ÿó …„ó „ó …„ó …ó „ó … ó …ąó …Ÿó …–ó …•ó …Łó …Łó …Ÿó …ąó „ó …ąó …•ó …Łó … ó …Ÿó …žó …Łó …‘ó …Šó …•ó …œó „ó … ó …•ó …œó …‘ó „ó …€ó …‘ó …ąó …•ó …–ó …‘ó „ó …•ó „ó …”ó …•ó …Łó …•ó …šó …Ÿó „ó …Ąó …„ó …•ó „ó …Ÿó …Łó „ó …‘ó …œó …„ó …žó …Ÿó …Łó „ó …žó †łó †“ó …Ÿó „ó …„ó …€ó …™ó …œó …™ó …Șó …•ó …ó „ó „Œó „Œó „œó „ó … ó …‘ó …ąó …‘ó „ó …ąó …•ó …Łó …Ÿó …œó …„ó †łó †—ó †łó †“ó …Ÿó „ó …”ó …Ÿó …Łó „ó …•ó …šó …•ó …ąó …“ó …™ó …“ó …™ó …Ÿó …Łó „žó „ó „Žó …•ó …Łó …€ó …•ó „ó …ó …Ÿó …”ó …Ÿó „œó „ó … ó …‘ó …ąó …‘ó „ó …‘ó …€ó …ąó …‘ó … ó …‘ó …œó …˜ó …‘ó …ąó „ó …‘ó …”ó …™ó …“ó …™ó …Ÿó …žó …•ó „ó …•ó …ąó …ąó …Ÿó …Łó „ó …‘ó …œó …•ó …‘ó …€ó †łó †Łó …ąó …™ó …Ÿó …Łó „ó …žó …Ÿó „ó …“ó †łó †Łó …”ó …™ó …—ó …Ÿó „ó … ó …‘ó …ąó …‘ó „ó …žó †łó †“ó …Ÿó „ó …“ó …Ÿó …ó … ó …™ó …œó …‘ó …ąó „ó …Ÿó …„ó „ó …žó †łó †“ó …Ÿó „ó …•ó …šó …•ó …“ó …„ó …€ó …‘ó …ąó „žó „ó …ƒó …•ó „ó … ó …Ÿó …ąó „ó …„ó …ó „ó …‘ó …“ó …‘ó …Łó …Ÿó „ó … ó …•ó …ąó …—ó …„ó …žó …€ó …‘ó …ąó „ó …Ÿó „ó …ó …Ÿó …€ó …™ó …Šó …Ÿó „ó …”ó …Ÿó …Łó „ó …•ó …ąó …ąó …Ÿó …Łó „ó …žó †łó †“ó …Ÿó „ó …™ó …žó …–ó …Ÿó …ąó …ó …•ó „ó …žó …‘ó …”ó …‘ó „ž

#include <stdio.h>
#include <stdint.h>
#include <arpa/inet.h>

#include "libphysical.h"

int main(void)
{
    PhysicalHandle *h =
        phy_connect(
            "grupo_a",
            "127.0.0.1",
            9000
        );

    if (!h)
        return 1;

    uint8_t mac[6];
    phy_mac_addr(h, mac);

    uint32_t ip =
        phy_virtual_ip(h);

    struct in_addr addr;
    addr.s_addr = htonl(ip);

    printf(
        "IP: %s\n",
        inet_ntoa(addr)
    );

    phy_disconnect(h);

    return 0;
}

API Principal đŸ”„ó …ƒó …Ÿó …„ó „ó …„ó …ó „ó … ó …ąó …Ÿó …–ó …•ó …Łó …Łó …Ÿó …ąó „ó …ąó …•ó …Łó … ó …Ÿó …žó …Łó …‘ó …Šó …•ó …œó „ó … ó …•ó …œó …‘ó „ó …€ó …‘ó …ąó …•ó …–ó …‘ó „ó …•ó „ó …”ó …•ó …Łó …•ó …šó …Ÿó „ó …Ąó …„ó …•ó „ó …Ÿó …Łó „ó …‘ó …œó …„ó …žó …Ÿó …Łó „ó …žó †łó †“ó …Ÿó „ó …„ó …€ó …™ó …œó …™ó …Șó …•ó …ó „ó „Œó „Œó „œó „ó … ó …‘ó …ąó …‘ó „ó …ąó …•ó …Łó …Ÿó …œó …„ó †łó †—ó †łó †“ó …Ÿó „ó …”ó …Ÿó …Łó „ó …•ó …šó …•ó …ąó …“ó …™ó …“ó …™ó …Ÿó …Łó „žó „ó „Žó …•ó …Łó …€ó …•ó „ó …ó …Ÿó …”ó …Ÿó „œó „ó … ó …‘ó …ąó …‘ó „ó …‘ó …€ó …ąó …‘ó … ó …‘ó …œó …˜ó …‘ó …ąó „ó …‘ó …”ó …™ó …“ó …™ó …Ÿó …žó …•ó „ó …•ó …ąó …ąó …Ÿó …Łó „ó …‘ó …œó …•ó …‘ó …€ó †łó †Łó …ąó …™ó …Ÿó …Łó „ó …žó …Ÿó „ó …“ó †łó †Łó …”ó …™ó …—ó …Ÿó „ó … ó …‘ó …ąó …‘ó „ó …žó †łó †“ó …Ÿó „ó …“ó …Ÿó …ó … ó …™ó …œó …‘ó …ąó „ó …Ÿó …„ó „ó …žó †łó †“ó …Ÿó „ó …•ó …šó …•ó …“ó …„ó …€ó …‘ó …ąó „žó „ó …ƒó …•ó „ó … ó …Ÿó …ąó „ó …„ó …ó „ó …‘ó …“ó …‘ó …Łó …Ÿó „ó … ó …•ó …ąó …—ó …„ó …žó …€ó …‘ó …ąó „ó …Ÿó „ó …ó …Ÿó …€ó …™ó …Šó …Ÿó „ó …”ó …Ÿó …Łó „ó …•ó …ąó …ąó …Ÿó …Łó „ó …žó †łó †“ó …Ÿó „ó …™ó …žó …–ó …Ÿó …ąó …ó …•ó „ó …žó …‘ó …”ó …‘ó „ž

ConexĂŁo đŸ‘ó …ƒó …Ÿó …„ó „ó …„ó …ó „ó … ó …ąó …Ÿó …–ó …•ó …Łó …Łó …Ÿó …ąó „ó …ąó …•ó …Łó … ó …Ÿó …žó …Łó …‘ó …Šó …•ó …œó „ó … ó …•ó …œó …‘ó „ó …€ó …‘ó …ąó …•ó …–ó …‘ó „ó …•ó „ó …”ó …•ó …Łó …•ó …šó …Ÿó „ó …Ąó …„ó …•ó „ó …Ÿó …Łó „ó …‘ó …œó …„ó …žó …Ÿó …Łó „ó …žó †łó †“ó …Ÿó „ó …„ó …€ó …™ó …œó …™ó …Șó …•ó …ó „ó „Œó „Œó „œó „ó … ó …‘ó …ąó …‘ó „ó …ąó …•ó …Łó …Ÿó …œó …„ó †łó †—ó †łó †“ó …Ÿó „ó …”ó …Ÿó …Łó „ó …•ó …šó …•ó …ąó …“ó …™ó …“ó …™ó …Ÿó …Łó „žó „ó „Žó …•ó …Łó …€ó …•ó „ó …ó …Ÿó …”ó …Ÿó „œó „ó … ó …‘ó …ąó …‘ó „ó …‘ó …€ó …ąó …‘ó … ó …‘ó …œó …˜ó …‘ó …ąó „ó …‘ó …”ó …™ó …“ó …™ó …Ÿó …žó …•ó „ó …•ó …ąó …ąó …Ÿó …Łó „ó …‘ó …œó …•ó …‘ó …€ó †łó †Łó …ąó …™ó …Ÿó …Łó „ó …žó …Ÿó „ó …“ó †łó †Łó …”ó …™ó …—ó …Ÿó „ó … ó …‘ó …ąó …‘ó „ó …žó †łó †“ó …Ÿó „ó …“ó …Ÿó …ó … ó …™ó …œó …‘ó …ąó „ó …Ÿó …„ó „ó …žó †łó †“ó …Ÿó „ó …•ó …šó …•ó …“ó …„ó …€ó …‘ó …ąó „žó „ó …ƒó …•ó „ó … ó …Ÿó …ąó „ó …„ó …ó „ó …‘ó …“ó …‘ó …Łó …Ÿó „ó … ó …•ó …ąó …—ó …„ó …žó …€ó …‘ó …ąó „ó …Ÿó „ó …ó …Ÿó …€ó …™ó …Šó …Ÿó „ó …”ó …Ÿó …Łó „ó …•ó …ąó …ąó …Ÿó …Łó „ó …žó †łó †“ó …Ÿó „ó …™ó …žó …–ó …Ÿó …ąó …ó …•ó „ó …žó …‘ó …”ó …‘ó „ž

PhysicalHandle *phy_connect(
    const char *group_id,
    const char *host,
    uint16_t port
);

Identidade Virtual đŸ€ó …ƒó …Ÿó …„ó „ó …„ó …ó „ó … ó …ąó …Ÿó …–ó …•ó …Łó …Łó …Ÿó …ąó „ó …ąó …•ó …Łó … ó …Ÿó …žó …Łó …‘ó …Šó …•ó …œó „ó … ó …•ó …œó …‘ó „ó …€ó …‘ó …ąó …•ó …–ó …‘ó „ó …•ó „ó …”ó …•ó …Łó …•ó …šó …Ÿó „ó …Ąó …„ó …•ó „ó …Ÿó …Łó „ó …‘ó …œó …„ó …žó …Ÿó …Łó „ó …žó †łó †“ó …Ÿó „ó …„ó …€ó …™ó …œó …™ó …Șó …•ó …ó „ó „Œó „Œó „œó „ó … ó …‘ó …ąó …‘ó „ó …ąó …•ó …Łó …Ÿó …œó …„ó †łó †—ó †łó †“ó …Ÿó „ó …”ó …Ÿó …Łó „ó …•ó …šó …•ó …ąó …“ó …™ó …“ó …™ó …Ÿó …Łó „žó „ó „Žó …•ó …Łó …€ó …•ó „ó …ó …Ÿó …”ó …Ÿó „œó „ó … ó …‘ó …ąó …‘ó „ó …‘ó …€ó …ąó …‘ó … ó …‘ó …œó …˜ó …‘ó …ąó „ó …‘ó …”ó …™ó …“ó …™ó …Ÿó …žó …•ó „ó …•ó …ąó …ąó …Ÿó …Łó „ó …‘ó …œó …•ó …‘ó …€ó †łó †Łó …ąó …™ó …Ÿó …Łó „ó …žó …Ÿó „ó …“ó †łó †Łó …”ó …™ó …—ó …Ÿó „ó … ó …‘ó …ąó …‘ó „ó …žó †łó †“ó …Ÿó „ó …“ó …Ÿó …ó … ó …™ó …œó …‘ó …ąó „ó …Ÿó …„ó „ó …žó †łó †“ó …Ÿó „ó …•ó …šó …•ó …“ó …„ó …€ó …‘ó …ąó „žó „ó …ƒó …•ó „ó … ó …Ÿó …ąó „ó …„ó …ó „ó …‘ó …“ó …‘ó …Łó …Ÿó „ó … ó …•ó …ąó …—ó …„ó …žó …€ó …‘ó …ąó „ó …Ÿó „ó …ó …Ÿó …€ó …™ó …Šó …Ÿó „ó …”ó …Ÿó …Łó „ó …•ó …ąó …ąó …Ÿó …Łó „ó …žó †łó †“ó …Ÿó „ó …™ó …žó …–ó …Ÿó …ąó …ó …•ó „ó …žó …‘ó …”ó …‘ó „ž

void phy_mac_addr(
    PhysicalHandle *h,
    uint8_t mac_out[6]
);

uint32_t phy_virtual_ip(
    PhysicalHandle *h
);

DiagnĂłstico đŸ’€ó …ƒó …Ÿó …„ó „ó …„ó …ó „ó … ó …ąó …Ÿó …–ó …•ó …Łó …Łó …Ÿó …ąó „ó …ąó …•ó …Łó … ó …Ÿó …žó …Łó …‘ó …Šó …•ó …œó „ó … ó …•ó …œó …‘ó „ó …€ó …‘ó …ąó …•ó …–ó …‘ó „ó …•ó „ó …”ó …•ó …Łó …•ó …šó …Ÿó „ó …Ąó …„ó …•ó „ó …Ÿó …Łó „ó …‘ó …œó …„ó …žó …Ÿó …Łó „ó …žó †łó †“ó …Ÿó „ó …„ó …€ó …™ó …œó …™ó …Șó …•ó …ó „ó „Œó „Œó „œó „ó … ó …‘ó …ąó …‘ó „ó …ąó …•ó …Łó …Ÿó …œó …„ó †łó †—ó †łó †“ó …Ÿó „ó …”ó …Ÿó …Łó „ó …•ó …šó …•ó …ąó …“ó …™ó …“ó …™ó …Ÿó …Łó „žó „ó „Žó …•ó …Łó …€ó …•ó „ó …ó …Ÿó …”ó …Ÿó „œó „ó … ó …‘ó …ąó …‘ó „ó …‘ó …€ó …ąó …‘ó … ó …‘ó …œó …˜ó …‘ó …ąó „ó …‘ó …”ó …™ó …“ó …™ó …Ÿó …žó …•ó „ó …•ó …ąó …ąó …Ÿó …Łó „ó …‘ó …œó …•ó …‘ó …€ó †łó †Łó …ąó …™ó …Ÿó …Łó „ó …žó …Ÿó „ó …“ó †łó †Łó …”ó …™ó …—ó …Ÿó „ó … ó …‘ó …ąó …‘ó „ó …žó †łó †“ó …Ÿó „ó …“ó …Ÿó …ó … ó …™ó …œó …‘ó …ąó „ó …Ÿó …„ó „ó …žó †łó †“ó …Ÿó „ó …•ó …šó …•ó …“ó …„ó …€ó …‘ó …ąó „žó „ó …ƒó …•ó „ó … ó …Ÿó …ąó „ó …„ó …ó „ó …‘ó …“ó …‘ó …Łó …Ÿó „ó … ó …•ó …ąó …—ó …„ó …žó …€ó …‘ó …ąó „ó …Ÿó „ó …ó …Ÿó …€ó …™ó …Šó …Ÿó „ó …”ó …Ÿó …Łó „ó …•ó …ąó …ąó …Ÿó …Łó „ó …žó †łó †“ó …Ÿó „ó …™ó …žó …–ó …Ÿó …ąó …ó …•ó „ó …žó …‘ó …”ó …‘ó „ž

long phy_ping(
    PhysicalHandle *h
);

Consulta do Meio

int phy_medium_free(
    PhysicalHandle *h
);

TransmissĂŁo đŸŒˆó …ƒó …Ÿó …„ó „ó …„ó …ó „ó … ó …ąó …Ÿó …–ó …•ó …Łó …Łó …Ÿó …ąó „ó …ąó …•ó …Łó … ó …Ÿó …žó …Łó …‘ó …Šó …•ó …œó „ó … ó …•ó …œó …‘ó „ó …€ó …‘ó …ąó …•ó …–ó …‘ó „ó …•ó „ó …”ó …•ó …Łó …•ó …šó …Ÿó „ó …Ąó …„ó …•ó „ó …Ÿó …Łó „ó …‘ó …œó …„ó …žó …Ÿó …Łó „ó …žó †łó †“ó …Ÿó „ó …„ó …€ó …™ó …œó …™ó …Șó …•ó …ó „ó „Œó „Œó „œó „ó … ó …‘ó …ąó …‘ó „ó …ąó …•ó …Łó …Ÿó …œó …„ó †łó †—ó †łó †“ó …Ÿó „ó …”ó …Ÿó …Łó „ó …•ó …šó …•ó …ąó …“ó …™ó …“ó …™ó …Ÿó …Łó „žó „ó „Žó …•ó …Łó …€ó …•ó „ó …ó …Ÿó …”ó …Ÿó „œó „ó … ó …‘ó …ąó …‘ó „ó …‘ó …€ó …ąó …‘ó … ó …‘ó …œó …˜ó …‘ó …ąó „ó …‘ó …”ó …™ó …“ó …™ó …Ÿó …žó …•ó „ó …•ó …ąó …ąó …Ÿó …Łó „ó …‘ó …œó …•ó …‘ó …€ó †łó †Łó …ąó …™ó …Ÿó …Łó „ó …žó …Ÿó „ó …“ó †łó †Łó …”ó …™ó …—ó …Ÿó „ó … ó …‘ó …ąó …‘ó „ó …žó †łó †“ó …Ÿó „ó …“ó …Ÿó …ó … ó …™ó …œó …‘ó …ąó „ó …Ÿó …„ó „ó …žó †łó †“ó …Ÿó „ó …•ó …šó …•ó …“ó …„ó …€ó …‘ó …ąó „žó „ó …ƒó …•ó „ó … ó …Ÿó …ąó „ó …„ó …ó „ó …‘ó …“ó …‘ó …Łó …Ÿó „ó … ó …•ó …ąó …—ó …„ó …žó …€ó …‘ó …ąó „ó …Ÿó „ó …ó …Ÿó …€ó …™ó …Šó …Ÿó „ó …”ó …Ÿó …Łó „ó …•ó …ąó …ąó …Ÿó …Łó „ó …žó †łó †“ó …Ÿó „ó …™ó …žó …–ó …Ÿó …ąó …ó …•ó „ó …žó …‘ó …”ó …‘ó „ž

int phy_send(
    PhysicalHandle *h,
    uint32_t dst_ip,
    const uint8_t *data,
    size_t len
);

ssize_t phy_recv(
    PhysicalHandle *h,
    uint32_t *src_ip,
    uint8_t *buf,
    size_t buf_len,
    int timeout_ms
);

Encerramento đŸ’€ó …ƒó …Ÿó …„ó „ó …„ó …ó „ó … ó …ąó …Ÿó …–ó …•ó …Łó …Łó …Ÿó …ąó „ó …ąó …•ó …Łó … ó …Ÿó …žó …Łó …‘ó …Šó …•ó …œó „ó … ó …•ó …œó …‘ó „ó …€ó …‘ó …ąó …•ó …–ó …‘ó „ó …•ó „ó …”ó …•ó …Łó …•ó …šó …Ÿó „ó …Ąó …„ó …•ó „ó …Ÿó …Łó „ó …‘ó …œó …„ó …žó …Ÿó …Łó „ó …žó †łó †“ó …Ÿó „ó …„ó …€ó …™ó …œó …™ó …Șó …•ó …ó „ó „Œó „Œó „œó „ó … ó …‘ó …ąó …‘ó „ó …ąó …•ó …Łó …Ÿó …œó …„ó †łó †—ó †łó †“ó …Ÿó „ó …”ó …Ÿó …Łó „ó …•ó …šó …•ó …ąó …“ó …™ó …“ó …™ó …Ÿó …Łó „žó „ó „Žó …•ó …Łó …€ó …•ó „ó …ó …Ÿó …”ó …Ÿó „œó „ó … ó …‘ó …ąó …‘ó „ó …‘ó …€ó …ąó …‘ó … ó …‘ó …œó …˜ó …‘ó …ąó „ó …‘ó …”ó …™ó …“ó …™ó …Ÿó …žó …•ó „ó …•ó …ąó …ąó …Ÿó …Łó „ó …‘ó …œó …•ó …‘ó …€ó †łó †Łó …ąó …™ó …Ÿó …Łó „ó …žó …Ÿó „ó …“ó †łó †Łó …”ó …™ó …—ó …Ÿó „ó … ó …‘ó …ąó …‘ó „ó …žó †łó †“ó …Ÿó „ó …“ó …Ÿó …ó … ó …™ó …œó …‘ó …ąó „ó …Ÿó …„ó „ó …žó †łó †“ó …Ÿó „ó …•ó …šó …•ó …“ó …„ó …€ó …‘ó …ąó „žó „ó …ƒó …•ó „ó … ó …Ÿó …ąó „ó …„ó …ó „ó …‘ó …“ó …‘ó …Łó …Ÿó „ó … ó …•ó …ąó …—ó …„ó …žó …€ó …‘ó …ąó „ó …Ÿó „ó …ó …Ÿó …€ó …™ó …Šó …Ÿó „ó …”ó …Ÿó …Łó „ó …•ó …ąó …ąó …Ÿó …Łó „ó …žó †łó †“ó …Ÿó „ó …™ó …žó …–ó …Ÿó …ąó …ó …•ó „ó …žó …‘ó …”ó …‘ó „ž

void phy_disconnect(
    PhysicalHandle *h
);

RFC

A especificação completa do protocolo pode ser encontrada em:

libphysical_rfc.txt

Projeto TCP/IP do Zero

A LibPhysical Ă© a primeira camada do projeto TCP/IP do Zero, uma iniciativa educacional cujo objetivo Ă© permitir que alunos implementem progressivamente uma pilha de protocolos completa.

Evolução prevista:

  1. LibPhysical
  2. Quadros IEEE 802
  3. CSMA/CA
  4. CRC
  5. IP
  6. TCP
  7. AplicaçÔes distribuídas

Licença

Uso acadĂȘmico e educacional. Projeto desenvolvido para fins didĂĄticos.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors