24
EST 1998 - Nuno Valero Ribeiro DSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 1 ARPANET : O surgir do TCP/IP * Os protocolos usados na ARPANET não eram adequados para se executarem em várias redes. * DARPA começou a trabalhar numa tecnologia para a Internet em meados da década de 70. * Esse conjunto de protocolos tomou a forma conhecida actualmente entre 1977-79 - Modelo TCP/IP * Modelo TCP/IP » Desenhado para suportar comunicação entre redes físicas distintas » Integrado no Unix BSD (Interface Sockets) » Foram desenvolvidas um grande numero de

ARPANET : O surgir do TCP/IP

  • Upload
    vivian

  • View
    21

  • Download
    0

Embed Size (px)

DESCRIPTION

ARPANET : O surgir do TCP/IP. Os protocolos usados na ARPANET não eram adequados para se executarem em várias redes. DARPA começou a trabalhar numa tecnologia para a Internet em meados da década de 70. - PowerPoint PPT Presentation

Citation preview

Page 1: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 1

ARPANET : O surgir do TCP/IP* Os protocolos usados na ARPANET não eram

adequados para se executarem em várias redes.* DARPA começou a trabalhar numa tecnologia para a

Internet em meados da década de 70.* Esse conjunto de protocolos tomou a forma conhecida

actualmente entre 1977-79 - Modelo TCP/IP* Modelo TCP/IP

» Desenhado para suportar comunicação entre redes físicas distintas» Integrado no Unix BSD (Interface Sockets)» Foram desenvolvidas um grande numero de aplicações e utilitários

Page 2: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 2

O crescimento do TCP/IP* Muitas instituições usaram a tecnologia TCP/IP para

interligarem as suas redes com a DARPA.» A National Science Foundation (NSF), Department of Energy (DOE),

Department of Defense (DOD), Health and Human Services Agency (HHA), National Aeronautics and Space Administration (NASA)

* A entidade resultante, conhecida por “Connected Internet”, “DARPA/NSF Internet” ou simplesmente “Internet”, permitiu às instituições trocarem facilmente informação.

* O sucesso desta cooperação demostrou a viabilidade do TCP/IP, sobre um conjunto heterogéneo de redes.

* O que torna o modelo TCP/IP interessante é a sua adopção quase universal, bem como a dimensão que a Internet atingiu.

Page 3: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 3

O modelo TCP/IP

O modelo TCP/IP é constituído por 4 camadas.

Internet(IP,ICMP,ARP,RARP)

Transport (Host-to-Host)TCP,UDP

Aplications(FTP, TELNET, HTTP, SMTP, X-

Windows, OSPF, RIP, etc.)

Network Interface(OSI, IEEE,PPP,SLIP)

Page 4: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 4

TCP / IP* Aplication Layer

» Programas que fornecem serviços (Ex: TELNET, FTP, SMTP).– Escolhe o tipo de transporte necessário.

* Transport Layer– Fornece forma de comunicação entre duas aplicações (ponto a ponto).– Controle de fluxo.– Controle de erros.– Segmentação e reagrupamento das mensagens.

* Internet Layer– Fornece comunicação entre duas máquinas.– Responsável pelo encaminhamento.– Verifica a validade dos datagramas recebidos.– Recebe/envia mensagens ICMP de controle e informação e erros.– Envia datagramas IP.

* Network Interface Layer– Transmite datagramas IP e envia-os para uma rede física específica.– Recebe datagramas IP de uma rede física específica.

Page 5: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 5

Interligação de redes

Network 1 Network 2

Router

Porto

Endereçoglobal

Host A Host B

TCP/UDP

IP

Network AcessProtocol #1

Aplicações

IP

NAP 1 NAP 1

TCP/UDP

IP

Network AcessProtocol #2

Aplicações

Page 6: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 6

Esconde a arquitectura física da Internet - Rede VirtualCria identificadores universais - Endereços IP (id a 32 bits)Define unidade de transferência do protocolo - Datagramas IPFaz encaminhamento da informaçãoFornece um serviço não fiável, de comunicação entre máquinasResponsável por converter endereços IP em endereços físicos

IP (Internet Protocol)

Redes físicas

IP

IP

TCP

Acesso à rede

UDP

ARPICMP

Page 7: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 7

VERS HLEN SERVICE TYPE

FRAGMENT OFFSETFLAGS

PROTOCOL HEADER CHKSUM

SOURCE IP ADDRESS

TOTAL LEN

IDENTIFICATION

TTL

DESTINATION IP ADDRESS

IP OPTIONS ( 0 ou mais) PADDING

DADOS

0 4 8 16 19 24 31

HEADER

Datagrama IP (1)

Page 8: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 8

Endereços IP

8 16 24 31Classe A

tudo 0s

tudo 0s

tudo 1s

Host Local

Host nesta rede

netid0 hostid1 0 netid hostid1 1 netid hostid0

1 1 Multicast address1 0

1 1 reservado para uso futuro1 1 0

127 qualquer (normalmente 1)

Broadcast limitado

Broadcast directo para a rede

Loopback

Classe B

Classe C

Classe D

Classe E

host

net tudo 1s

Page 9: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 9

A 0.1.0.0 126.0.0.0 126B 128.0.0.0 191.255.0.0 16.384C 192.0.1.0 223.255.255.0 2.097.151D 224.0.0.0 239.255.255.255E 240.0.0.0 247.255.255.255

Class End. min End. Max Num. Redes

Alcance de cada classe de endereços IP

* Internet Assigned Number Authority (IANA) » Entidade que controla a unicidade dos endereços IP

* Internet Information Center (INTERNIC) » Entidade que distribui os enedereços IP

Page 10: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 10

PortosUDP

UDP (User Datagram Protocol)

Fornece serviço não fiável (igual ao do IP) Adiciona o conceito de porto -

Capacidade de distinguir múltiplos destinos numa mesma máquinaUDP

Internet(endereços IP )

Aplicação 1 Aplicação 2 Aplicação n...

IP

TCP

Acesso à rede

UDP

ARPICMP

Page 11: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 11

Portos UDP atribuídosecho 7/udpdiscard 9/udp sink nulldaytime 13/udpmsp 18/udp # message send protocolchargen 19/udp ttytst sourcetime 37/udp timserverrlp 39/udp resource # resource locationdomain 53/udp nameserverbootps 67/udp # BOOTP serverbootpc 68/udp # BOOTP clienttftp 69/udpgopher 70/udp # Internet Gopherwww 80/udp # HyperText Transfer Protocolkerberos 88/udp krb5 # Kerberos v5csnet-ns 105/udp cso-nsrtelnet 107/udp # Remote Telnetpop2 109/udp postoffice # POP version 2pop3 110/udp # POP version 3pop3q 112/udp # POP version 3sunrpc 111/udp

ntp 123/udp # Network Time Protocolmsrpc 135/udp # Microsoft RPCnetbios-ns 137/udp # NETBIOS Name Servicenetbios-dgm 138/udp # NETBIOS Datagram Servicenetbios-ssn 139/udp # NETBIOS session serviceimap2 143/udp # Interim Mail Access Proto v2snmp 161/udp # Simple Net Mgmt Protosnmp-trap 162/udp snmptrap # Traps for SNMPcmip-man 163/udp # ISO mgmt over IP (CMOT)cmip-agent 164/udpxdmcp 177/udp # X Display Mgr. Control Protonextstep 178/udp NeXTStep NextStep # serverbgp 179/udp # Border Gateway Proto.prospero 191/udp # Cliff Neuman's Prosperoirc 194/udp # Internet Relay Chatsmux 199/udp # SNMP Unix Multiplexer

Page 12: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 12

Serviço fiável Transfere cadeias (streams) de “bytes” sem estrutura. Canais virtuais com estabelecimento de ligação. Comunicação nos dois sentidos em simultâneo (full-duplex) “Bufferização” dos dados enviados e recebidos. Adiciona o conceito de porto - capacidade de distinguir múltiplos destinos numa mesma máquina Não assume nada acerca da(s) interface(s) física que irá suportar a comunicação

TCP

Internet(endereços IP )

Aplicação 1 Aplicação 2 Aplicação n...

PortosTCP

TCP (Transmission Control Protocol)

IP

TCP

Acesso à rede

UDP

ARPICMP

Page 13: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 13

Formato do segmento TCP (1)0

DESTINATION PORT SOURCE PORT

SEQUENCE NUMBER

ACKNOWLEDGEMENT NUMBER

WINDOWCODE BITSRESERVEDHLEN

URGENT POINTERCHECKSUM

OPTIONS (if any) PADDING

DATA...

16 31244 10

Page 14: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 14

Ligações TCP (1)

* Um porto TCP não corresponde a uma única fila. * Podem existir várias aplicações a comunicar sobre o mesmo

porto TCP desde que em ligações diferentes.* Uma ligação TCP é identificada por um par de endpoints.* Um endpoint é constituído por 2 identificadores

» <Endereço IP, porto>

* Para que exista uma ligação diferente, basta que mude um dos identificadores dos 2 endpoints.

Page 15: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 15

Ligações TCP (2)

TCP (A)

Aplicação A1 Aplicação A2

21TCP (B) TCP (C)

1024

Aplicação C1

1024

Aplicação B1

1025

Aplicação B2

* 3 Ligações:» A1 B1 : <A, 21> <B, 1024>» A2 B2 : <A, 21> <B, 1025>» A3 C1 : <A, 21> <C, 1024>

3 aplicações a comunicarem sobre o porto 21 TCP da máquina A

Aplicação A3

Page 16: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 16

Portos TCP atribuídos

supdup 95/tcphostnames 101/tcp hostname # usually from sri-niciso-tsap 102/tcp tsap # part of ISODE.csnet-ns 105/tcp cso-ns # also used by CSO name serverpop2 109/tcp postoffice # POP version 2pop3 110/tcp # POP version 3pop3q 112/tcp # POP version 3sunrpc 111/tcpauth 113/tcp tap ident authenticationsftp 115/tcpuucp-path 117/tcpnntp 119/tcp readnews untp # USENET News Transfer Protocolntp 123/tcpmsrpc 135/tcp # Microsoft RPCnetbios-ns 137/tcp # NETBIOS Name Servicenetbios-dgm 138/tcp # NETBIOS Datagram Servicenetbios-ssn 139/tcp # NETBIOS session serviceirc 194/tcp # Internet Relay Chatproxy 3128/tcp # Squid Proxy

tcpmux 1/tcp # TCP port service multiplexerecho 7/tcpdiscard 9/tcp sink nullsystat 11/tcp usersdaytime 13/tcpnetstat 15/tcpqotd 17/tcp quote of the daymsp 18/tcp # message send protocolchargen 19/tcp ttytst sourceftp-data 20\tcp File transfer protocol (data)ftp 21/tcp File transfer protocol (control)ssh 22/tcptelnet 23/tcptelnets 24/tcpsmtp 25/tcp mailtime 37/tcp timservernameserver 42/tcp name # IEN 116whois 43/tcp nicnamedomain 53/tcp nameserver # name-domain servermtp 57/tcp # deprecatedbootps 67/tcp # BOOTP serverbootpc 68/tcp # BOOTP clientgopher 70/tcp # Internet Gopherrje 77/tcp netrjsfinger 79/tcpwww 80/tcp http # WorldWideWeb HTTPlink 87/tcp ttylinkkerberos 88/tcp krb5 # Kerberos v5

Page 17: ARPANET : O surgir do TCP/IP

ISEL 1998 - Luis FalcãoDEEC - LEIC - Tecnologias de Internet

1.3 - Interface de Sockets

* Sockets : Interface TCP/IP no UNIX BSD* WinSockets : Interface TCP/IP No Windows

Page 18: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 18

Interface connectionless (UDP)ServidorServidor

Bloqueia até serem recebidos dados do cliente

socket( )

bind( )

recvfrom( )

sendto( )

Processa pedido

socket( )

bind( )

sendto( )

recvfrom( )

ClienteCliente

Dados (pedido)

Dados (resposta)

Page 19: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 19

Interface connectio-oriented (TCP)ServidorServidor

ClienteCliente

Processa pedido

socket( )

recv( )

bind( )

listen( )

accept( )

Bloqueia até cliente estabelecer ligação

send( )

socket( )

connect( )

send( )

recv( )

Dados (pedido)

Dados (resposta)

Estabelecimento

da ligação

Abertura passiva da ligação

Abertura activa da ligação

Page 20: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 20

Estruturas de endereços nos sockets

// Estrutura genéricastruct sockaddr {

u_short sa_family; // família de endereços (2 bytes)char sa_data[14]; // Endereço específico do protocolo

};// Estrutura para família Internet (sa_family = AF_INET)struct sockaddr_in { short sin_family; // familia TCP/IP (AF_INET) unsigned short sin_port; // porto struct in_addr sin_addr; // Endereço IP char sin_zero[8];};struct in_addr {

u_long s_addr; // 32 bits com endereço IP, em ordenação de rede.};

Page 21: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 21

Primitivas para ambos (1)// Cria um descritor para um socket de determinado protocoloint socket(int family, int type, int protocol);

family - AF_INET, AF_UNIXtype - SOCK_STREAM, SOCK_DGRAM, SOCK_RAWprotocol - IPPROTO_UDP, IPPROTO_TCP, IPPROTO_ICMP, IPPROTO_RAW

// Associa um socket a um porto e a um endereçoint bind ( int sockfd, struct sockaddr * myaddr, int addrlen);

sockfd - Descritor do socketmy_addr - Estrutura com endereço a reservar atribuir ao socket.addrlen - Dimensão da estrutura myaddr

Page 22: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 22

Primitivas para ambos (2)

/* Quando usada com um socket TCP, estabelece uma ligação com o servidor (abertura activa da ligação).Quando usada com um socket UDP, cria uma associação entre o socket e o endereço e porto destino. Desta forma dados enviados futuramente vão sempre para este destino.

*/int connect(int sockfd, struct sockaddr *servaddr, int addrlen);

sockfd - Descritor do socketmy_addr - Estrutura com endereço e porto do servidor.addrlen - Dimensão da estrutura servaddr

Page 23: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 23

Primitivas do serviço TCP (1)// Disponibilidade para receber ligações.int listen(int sockfd, int backlog);

sockfd - Descritor do socketbacklog - Numero máximo de ligações pendentes

// Primitiva bloqueante que espera pelo estabelecimento da ligações dos clientes (abertura passiva da ligação)

int accept(int sockfd, struct sockaddr *peer, int *addrlen);sockfd - Descritor do socketpeer - Estrutura retornada com endereço e porto do servidor.addrlen - Parâmetro de passagem e retorno da dimensão da estrutura peer.

Page 24: ARPANET : O surgir do TCP/IP

EST 1998 - Nuno Valero RibeiroDSI - LEI - Lic. Engª Informática - Computação em Redes de Computadores 1 - 24

Primitivas do serviço TCP (2)// Primitiva pare envio de dadosint send(int sockfd, char *data, int nbytes, int flags);

sockfd - Descritor do socketdata - Apontador para os dados a enviar.nbytes - Dimensão dos dados a enviar.flags - (ver adiante…)

// Primitiva pare recepção de dadosint recv(int sockfd, char *data, int nbytes, int flags);

sockfd - Descritor do socketdata - Apontador para a zona de dados reservada para colocação dos dados.nbytes - Dimensão da zona reservada para recepção dos dados.flags - (ver adiante…)