Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Netværk og datakommunikation.

Lignende præsentationer


Præsentationer af emnet: "Netværk og datakommunikation."— Præsentationens transcript:

1 Netværk og datakommunikation.
Internetworking Koncept arkitektur og protokoller. Internet IP adresser. ARP protokollen. Netwærk og datakom. Per P. Madsen

2 LAN netværk. Host Host Host Router LAN net LAN net Host Host
Forskellig: fysiske adresser. Topologi. Pakke format. MAC metode LAN net Host Host Netwærk og datakom. Per P. Madsen

3 OSI modellen Applikation Presentation Session WAN håndtering
fx IP-protokollen Adressering Routing Multicasting Fragmentering Session Transport Network Data link Fysisk Netwærk og datakom. Per P. Madsen

4 WAN netværk. Router Host Subnet Host Netværkslagets opgave:
At danne et virtuelt datanet mellem to host på et WAN. Dvs. en netværksservice, uafhængig af hvilken LAN-net, WAN nettet er opbygget af. Netwærk og datakom. Per P. Madsen

5 WAN netværk. Subnet Host Netwærk og datakom. Per P. Madsen

6 Netværkslaget Host Host Host Host App. App. En virtuel forbindelse.
Present. Present. Session Session Router Router Trans. Trans. Netværk Netværk Netværk Netværk Netværk Netværk Datalink Datalink Datalink Datalink Datalink Datalink fysisk fysisk fysisk fysisk fysisk fysisk Netwærk og datakom. Per P. Madsen

7 Service typer. Host Host Service typer:
Connectionless. Også kaldt Datagram net eller Packet switching. Man afleverer sin pakke på posthuset (Routeren) med en adresse og går hjem uden at få at vide, hvad der sker med pakken. Connection-Oriented. Man ringer modtageren op og får derved oprettet en fuld duplex forbindelse. Når man har forbindelse kan man sende sin strøm af data samt løbende få svar tilbage fra modtageren. Netwærk og datakom. Per P. Madsen

8 Connectionless eller datagram service
Virkemåde: Data sendes i pakker med en given max størrelse. Pakkerne routes uafhængigt af hinanden. Netwærk og datakom. Per P. Madsen

9 Connection-Oriented: ATM’s måde
Virkemåde: Der oprettes en forbindelse. Pakker/data sendes gennem denne forbindelse. Netwærk og datakom. Per P. Madsen

10 Sammenligning Emne Connectionless Connection-Oriented Pre Setup Nej
Nødvendig Adressering Hver pakke indeholder en fuld modtager og afsender adr. Hver pakke indeholder et forbindelsesnummer. Tilstandsinformation Ingen om forbindelser Hver forbindelse kræver tabel plads i routeren. Routing Hver pakke, sin routing. Alle paker følger samme routing. Netfejltolerance Fejltolerant, dog kan enkelt pakker forsvinde. Fejl følsom. Hele forbindelsen forsvinder ved fejl. Quality of Service QoS Dårlig. God, da allocering af båndbredde kan ske i opsætning. Netwærk og datakom. Per P. Madsen

11 Connectionless: Internettets måde
Historie: Midt i 60’erne: DoD (Det Amerikanske forsvarsministerium) ønskede et robust net, der kunne overleve en atomkrig. DoD gik til ARPA (Advanced Research Projekt Agency) ARPA fandt frem til, at DoD skulle bruge et Packet switching net med host computere forbundet af sub-net. Host Host IMP (Interface message processer) Netwærk og datakom. Per P. Madsen

12 Internettet Samtidig med ARPA-nettet udvikles forskellige LAN-net.
Man indså, at ARPA-nettet ikke var velegnet til integrering af forskellige LAN-net. Cerf og Kahn 1974 kom med løsningen TCP/IP Berkeley University integrerede TCP/IP i UNIX 4.2BSD og udviklede API’en Socket. TCP/IP blev den officelle standard d. 1/ Netwærk og datakom. Per P. Madsen

13 Internettets lag model
Aplikation WWW, FTP, MAIL, Fx HTTP-protokollen Transport laget TCP/UDP-protokollen: TCP laget Internet laget IP-protokollen: IP laget Data link Forskelligt LAN-net Fysisk Netwærk og datakom. Per P. Madsen

14 Internettets lag model
Internettet: Virtuelt net oven på LAN-net. Virtuel net: Uniform adrssering: IP-adresser. Uniform pakkeformat: IP-datagram. Netwærk og datakom. Per P. Madsen

15 Internet protokollen IPv4
Adresser: IP-adresser 32 bit. Pakkeformat: IP-datagram. IP-header TP-Data Unit 20-60 byte Max 64 Kbyte Sevice type: Connectionless. Unreliable Best-Effort delivery. Datagram loss Fejl i data. Forsinket/ude af orden. Duplikering af datagrammer Netwærk og datakom. Per P. Madsen

16 IPv4 header Version: 4, IHL (Internet Header Length) 5-15,
Type of service: Delay, Throughput, Reliability Total length: Total længde, dvs header + data. Identification: Id-nummer for samlet datastrøm. DF: Don’t fragment, MF: More fragment, Fragment offset: Fragmentadr. * 8 Netwærk og datakom. Per P. Madsen

17 IPv4 header Time to live: Antal hop eller routere, pakken må gennemløbe. Protokol: Hvilken protokol, der er indkapslet i IP-pakken. TCP: 6, UDP: 17 Header checksum: Checksum af headeren. Source add: Senderens IP adresse. Destination add: Modtagerens IP adresse. Netwærk og datakom. Per P. Madsen

18 Dotted decimal notation: 130.225.50.124
IP-adresser: IPv4-32 bit Uniform adressering uafhængigt af underliggende LAN-net Dotted decimal notation: Hver Host/computer til net forbindelse får en unik IP-adresse. under ICANN Styrer tildelingen af netværksadresser. IANA Netwærk og datakom. Per P. Madsen

19 IP-adresser: IPv4-32 bit Prefix: Netsværk id. Suffix: Host id.
Klasse A prefix suffix Klasse B 1 prefix suffix Klasse C 1 1 prefix suffix Klasse D 1 1 1 Multicast adresser Prefix: Netsværk id. Suffix: Host id. A: net og 16 mil. host B: net og 64 K host C: 2 mil. net og 256 host Netwærk og datakom. Per P. Madsen

20 IP-adresser: IPv4-32 bit Problem: Klassesystemet passer til alm virksomheder. Klasse C for få hosts. Klasse B for mange hosts. Løsning: Classless Inter Domain Routing CIDR /21 prefix suffix 21 bit 11 bit Routertabel Prefix1. Maske1 Next hop. Prefix2. Maske2 Next hop. Prefix3. Maske3 Next hop. Prefix4. Maske4 Next hop. Netwærk og datakom. Per P. Madsen

21 IP-adresser. Specielle adresser: 127.x.x.x fx: 127.0.0.1: Loopback
: Denne computer. : Broadcast på lokalnet. Net : Broadcast på netværk: ”Net”. Net.0.0: Adressen på netværk: ”Net”. Netwærk og datakom. Per P. Madsen

22 IP-adresser: IPv4-32 bit Problem: Det globale adresserum er stadig for lille. Løsning: Private netværk med en forbindelse til det globale net. IP-adresser til private net: Netwærk og datakom. Per P. Madsen

23 IP-adresser: IPv4-32 bit Nat eller proxy kommunikation.
Netwærk og datakom. Per P. Madsen

24 Fysiske adr. eller MAC adr.
Fysiske net. 8 6 2 4 Ethernet Frame Preamble Dest. add. Src. add. Length Header Payload CRC Fysiske adr. eller MAC adr. Netwærk og datakom. Per P. Madsen

25 Fysiske net. IP-laget IP-header: IP adr. Data Net interface MAC-adr
fysisk-laget Next hop Netwærk og datakom. Per P. Madsen

26 IP til MAC adresse 1: Tabel lookup. IP-adr. MAC-adr. xxx xxx xxx xxx
2: Closed- Form computation: MAC-adr. = f(IP-adr.) Fx: ARC-net MAC-adr. = IP-adr & 0xFF; Netwærk og datakom. Per P. Madsen

27 ARP- Address resolution Protokol
Problem: Skal være nem at vedligeholde. Hardware uafhængig. Løsning: ARP- Address Resolution Protokol. ... ... Host Host Host Host Host Ethernet Router Netwærk og datakom. Per P. Madsen

28 ARP- Address resolution Protokol
Netwærk og datakom. Per P. Madsen

29 MM2 Netwærk og datakom. Per P. Madsen

30 Netværk og datakommunikation.
Internetworking Koncept arkitektur og protokoller. Routing. IP headeren Fragmentering IPv6. Name server (DNS) Netwærk og datakom. Per P. Madsen

31 Routing Router Routing tabel Dst:Out Dst:Out Dst:Out Dst:Out Pakke ind
Ud-forbindelse Dst:Out Dst:Out Dst:Out Dst:Out Forwarding af pakker: Kik i routingtabellen for at finde Ud-forbindelsen og send videre. Routing: Bestem indholdet af routingtabellen. Netwærk og datakom. Per P. Madsen

32 Routing Statisk routing: Routingtabellen bliver sat, en gang for alle.
Fx Shortest Path Routing. Dynamisk routing: Routingtabellen opdateres dynamisk. Fx Distance Vector Routing. Link State Routing. Netwærk og datakom. Per P. Madsen

33 The Optimality Principle
(a) A subnet. (b) A sink tree for router B. Netwærk og datakom. Per P. Madsen

34 Shortest Path Routing Hver forbindelse giver en vægt:
Denne vægt kan være en funktion af: Båndbredde. Typisk delay. Typisk belastning. Pris. Afstand. ... Netwærk og datakom. Per P. Madsen

35 Shortest Path Routing De første 5 step for af beregne ‘’The shortest path’’ fra A til D. Pilen angiver den aktive enhed. Netwærk og datakom. Per P. Madsen

36 Distance Vector Routing
A subnet. (b) Input fra A, I, H, K, og den nye routing tabel for J. Netwærk og datakom. Per P. Madsen

37 Link State Routing Hver router gør følgende:
Find naboer og deres adresse.. Mål ‘’Cost-funktionen’’ for nadoerne. Lav en datapakke med disse informationer. Send datapakken til alle andre routere. Beregn den korteste path til alle andre routere. Netwærk og datakom. Per P. Madsen

38 Byg datapakke Et subnet. (b) Datapakken for hvert subnet.
Netwærk og datakom. Per P. Madsen

39 IPv4 header Version: 4, IHL (Internet Header Length) 5-15,
Type of service: Delay, Throughput, Reliability Total length: Total længde, dvs header + data. Identification: Id-nummer for samlet datastrøm. DF: Don’t fragment, MF: More fragment, Fragment offset: Fragmentadr. * 8 Netwærk og datakom. Per P. Madsen

40 IPv4 header Time to live: Antal hop eller routere, pakken må gennemløbe. Protokol: Hvilken protokol, der er indkapslet i IP-pakken. TCP: 6, UDP: 17 Header checksum: Checksum af headeren. Source add: Senderens IP adresse. Destination add: Modtagerens IP adresse. Netwærk og datakom. Per P. Madsen

41 Fragmentering host Ethernet MTU= 1500 byte ARCnet MTU= 512 byte
Id=x, MF=0 Offset= 0 Total L.= 1500 Data: 1480 byte host Ethernet MTU= 1500 byte Id=x, MF=1 Offset= 0 Total L.= 508 Data: 488 byte ARCnet Id=x, MF=1 Offset= 61 Total L.= 508 Data: 488 byte MTU= 512 byte Id=x, MF=1 Offset= 122 Total L.= 508 Data: 488 byte Ethernet Id=x, MF=0 Offset= 183 Total L.= 56 Data: 36 byte MTU= 1500 byte host Netwærk og datakom. Per P. Madsen

42 IP-adresser. Problem: Det globale adresserum er for lille.
Endelig øsning: IPv bit adresser. Så er der plads nok!!! Netwærk og datakom. Per P. Madsen

43 IPv6 Begrundelse: Større adresserum. Simplere routing.
Bedre sikkerhed. Bedre QoS, specielt RealTime Mulighed for Multicast og Anycast. Give mulighed for fremtidig udvikling. Sikre Coeksistens af IPv4 og IPv6. Netwærk og datakom. Per P. Madsen

44 IPv6 Netwærk og datakom. Per P. Madsen

45 IPv6 adresser Hexadecimalnotation:
8000:0000:0000:0000:1234:5678:9ABC:DEF0 8000::1234:5678:9ABC:DEF0 Eller IPv4: :: Netwærk og datakom. Per P. Madsen

46 IPv6 Extension header Extension header typer: Fragmentering
Cryptering. Authentication. Routing. Modtager information. m.fl. Netwærk og datakom. Per P. Madsen

47 DNS – The Domain Name System
.int: International org. .org: Non-profit org. .edu: Undervisning. .com: Kommercielle org. .mil: U.S. Militær. .net: Netværksudbydere .gov: U.S. regering. Netwærk og datakom. Per P. Madsen

48 DNS – The Domain Name System
.dk ansvarlig: root dk aau dtu ku ... Navne zone med egen Name server. control kom rip rap rup www Netwærk og datakom. Per P. Madsen

49 MM8 Netwærk og datakom. Per P. Madsen

50 Netværk og datakommunikation.
Transportprotokollen og API. UDP. TCP. RTP. Client/server paradigme. Sockets.   Netwærk og datakom. Per P. Madsen

51 OSI modellen Skabe forbindelse mellem to programmer/processer.
Håndtering af integritet fx TCP og UDP protokollerne Applikation Presentation Session Connection Reliabel Sekvens Flow Control Buffering Stream Congestion control Transport Network Data link Fysisk Netwærk og datakom. Per P. Madsen

52 Transportlag Problem:
Hvordan skabes der kontakt mellem to programmer, når der kan køre mange programmer på både sender maskinen og modtager maskinen. Løsning: Portnumre. Programmer Portmap 1 1 2 2 . . . 21 80 . . . . . Netwærk og datakom. Per P. Madsen

53 Transportlag Administration af portnumre:
IANA standard porte: 0 – 1023 Fx: 7 – echo 11 – systat 21 – ftp 80 – WWW IANA registrering: 1024 – Fx 26000 – Quake For dynamisk og privat brug: til 65535 Netwærk og datakom. Per P. Madsen

54 Transportlag: Portnumre.
ftp 21/tcp File Transfer [Control] ftp 21/udp File Transfer [Control] ssh 22/tcp SSH Remote Login Protocol ssh 22/udp SSH Remote Login Protocol telnet 23/tcp Telnet telnet 23/udp Telnet http 80/tcp World Wide Web HTTP http 80/udp World Wide Web HTTP Netwærk og datakom. Per P. Madsen

55 Transportlag: UDP User Datagram Protokol: Kun håndtering af porte.
Dvs: Connectionless. Unreliabel. Ingen sekvens håndtering. Ingen Flow Control. Ingen Congestion Control. Men effektiv. Netwærk og datakom. Per P. Madsen

56 Transportlag: UDP Samlet dataframe med UDP transportprotokol. Datalink
Netværk UDP-header Data Anvendelse: Voice over IP, Proceskontrol, semi-RealTime, Eksperimental protokol. Netwærk og datakom. Per P. Madsen

57 Transportlag: TCP Transport Control Protokol:
Etablering af en sikker kanal mellem to programmer. Dvs: Connection-oriented. Reliabel. Sekvens håndtering. Flow Control. Congestion control. Fuld duplex. Streaming. Buffering. Kræver to-vejs kommunikation med acknowledged og handshake. Netwærk og datakom. Per P. Madsen

58 Transportlag: TCP Connection-oriented. Dvs: Punkt til punkt forbindelse med: Reliable connection startup. Graceful connection shutdown. Metode: The 3-way handshake Host 1 Host 2 Hej! Jeg vil snakke med dig Hej! Jeg har forstået og er klar. Jeg er også klar. Netwærk og datakom. Per P. Madsen

59 Transportlag: TCP Reliabel? Metode:
Positive Acknowledgement with Retransmission (PAR) Sender Modtager Sender data og starter timer Timer Sender positiv Ack. Sender positiv Ack. Sender data og starter timer Timer Netwærk og datakom. Per P. Madsen

60 Transportlag: TCP Fejl: Datagram loss, fejl i data, forsinkelser.
Sender Modtager Sender data og starter timer Timer Sender positiv Ack. Timer Netwærk og datakom. Per P. Madsen

61 Transportlag: TCP Timer: Kort tid => bedre efektivitet.
For kort tid => for mange retransmissioner, dermed dårligere effektivitet. Timer estimering: RTT: Middel Round-trip time. M: Målt Round-trip time. RTT= a*RTT+(1-a)*M. Timer fx: Time = 1,5 * RTT Netwærk og datakom. Per P. Madsen

62 Transportlag: TCP D= D*b+(1-b)*|RTT-M|
Dvs D er et estimat af spredningen. Time = RTT + 4 * D Netwærk og datakom. Per P. Madsen

63 Transportlag: TCP Sekvens håndtering. Flow Control. Streaming.
Buffering. Løsning: Brug af Window management. Netwærk og datakom. Per P. Madsen

64 Transportlag: TCP Window management. Netwærk og datakom. Per P. Madsen

65 Transportlag: TCP Congestion control.
Problem: Der kan være flaskehalse i et WAN net. Timeout skyldes oftest for megen trafik og ikke fejl. Retransmission forøger trafikken. Løsning: Der retransmiteres ved timeout, dog med mindre datamængder. Netwærk og datakom. Per P. Madsen

66 Transportlag: TCP Congestion control. Init: Threshold= 32 Kbyte
CW= 1500 byte (Ethernet) If Not timeout If CW < Threshold. CW= 2 * CW Else CW= CW + 1K If timeout Threshold = ½* CW CW= 1500 byte Netwærk og datakom. Per P. Madsen

67 Transportlag: TCP Header.
Source port og Dest. Port: Portnumre på hhv. sender og modtager siden. Sequence number: Adressen på den første byte i data. Ack. number: Piggybacket Ack. adressen på korrekt modtaget datamængde. TCP header length: Headerlængde. Netwærk og datakom. Per P. Madsen

68 Transportlag: TCP Header.
URG bit samt Urgent pointer: Special besked, der sendes direkte igennem. ACK bit: Ack. nummeret er validt. PSH bit: Spring input buffer over. RET bit: Resetter forbindelse ved fejl. SYN og FIN: Bruges til oprettelse og nedlæggelse af en connection. Netwærk og datakom. Per P. Madsen

69 Transportlag: TCP Header.
Window size: Buffer plads i senderens input buffer. Checksum: 1. kompliment af header + pseudoheader + data. Netwærk og datakom. Per P. Madsen

70 API – Application Program Interface
RPC, RMI og CORBA Presentation Session Socket Transport Network Data Link Fysisk Netwærk og datakom. Per P. Madsen

71 Socket int sock; sock=socket(<adress family>,<socket type>,<protocol>); bind(sock,<server adress>,<adress length>); listen(sock,<queue size>); newsock=accept(sock,<peer adress>,<adress length>) sock=socket(<adress family>,<socket type>,<protocol>); bind(sock,<server adress>,<adress length>); connect(sock,<server adress>,<adress length>) Netwærk og datakom. Per P. Madsen

72 Clinet-Server Client Server 1 1 2 2 . . . . . . . . . .
Socket Bind Listen Wait for Req. Read req. Serve req. Send Reply. Socket Bind Send Req. Recive Reply. 2 2 . . . . . . . . . . En fuld forbindelse: (Client adr, Client port, Server adr, Server port, Protokol) Netwærk og datakom. Per P. Madsen

73 TCP-server if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
{printf("server: can't open strem socket"); exit(0);} serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); serv_addr.sin_port = htons(50000); if (bind(sockfd, (struct sockaddr *) & serv_addr, sizeof(serv_addr)) < 0) {printf("server: can't bind local add"); exit(0);} listen(sockfd, 5); while (1) {newsockfd = accept(sockfd, (struct sockaddr *) & cli_addr, &cli_size); if (!(childpid = fork())) {close(sockfd); n = read(newsockfd, request_string, MAX_LENGTH); //do service write(newsockfd, reply_string, n); exit(0);} close(newsockfd); } Netwærk og datakom. Per P. Madsen

74 TCP-client serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = inet_addr(" "); serv_addr.sin_port = htons(50000); If ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {printf("client: can't open stream socket\n"); exit(0);} if (connect(sockfd,(struct sockaddr *)&serv_addr,sizeof(serv_addr)) < 0) {printf("client: can't connect to server\n"); exit(0);} write(sockfd, request_string, strlen(request_string)); n = read(sockfd, reply_string, MAX_LENGTH); //Server reply. close(sockfd); Netwærk og datakom. Per P. Madsen

75 UDP-server if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
{printf("server: can't open datagram socket"); exit(0);} serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); serv_addr.sin_port = htons(50000); if (bind(sockfd, (struct sockaddr *) & serv_addr, sizeof(serv_addr)) < 0) {printf("server: can't bind local add"); exit(0);} while (1) {n = recvfrom(sockfd, request_string, MAX_LENGTH, 0, (struct sockaddr *) & cli_addr, &str_s); //serve request_string. sendto(sockfd, reply_string, strlen(reply_string), 0, (struct sockaddr *) & cli_addr, str_s); } Netwærk og datakom. Per P. Madsen

76 UDP-client if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
{ printf("client: can't open datagram socket\n"); exit(0);} if ((hostptr = gethostbyname("server")) == NULL) { Printf("gethostdyname error.\n"); exit();} serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = ((struct in_addr *)(hostptr->h_addr))->s_addr; serv_addr.sin_port = htons(50000); cli_addr.sin_family = AF_INET; cli_addr.sin_addr.s_addr = htonl(INADDR_ANY); cli_addr.sin_port = htons(0); if (bind(sockfd, (struct sockaddr *) & cli_addr, sizeof(cli_addr)) < 0) {printf("client: can't bind local add\n"); exit(0);} sendto(sockfd, request_string, strlen(request_string), 0, (struct sockaddr *) & serv_addr, str_s); //Server reply. n = recvfrom(sockfd, reply_string, MAX_LENGTH, 0, (struct sockaddr *) & rec_addr, &str_s); close(sockfd);

77 import java.io.*; import java.net.*; public class Server extends Thread { public final static int DEFAULT_PORT = 50000; protected int port; protected ServerSocket listen_socket; public static void fail(Exception e, String msg) { System.err.println(msg + ": " + e); System.exit(1); } public Server(int port) { if (port == 0) port = DEFAULT_PORT; this.port = port; try { listen_socket = new ServerSocket(port); } catch (IOException e) { fail(e, "Exception creating server socket"); } System.out.println("Server: listening on port " + port); this.start(); } public void run() { try { while(true) { Socket client_socket = listen_socket.accept(); Connection c = new Connection(client_socket); } } catch (IOException e){fail(e,"Exception while listening for connections");} public static void main(String[] args) { int port = 0; if (args.length == 1) { try { port = Integer.parseInt(args[0]); } catch (NumberFormatException e) { port = 0; } } new Server(port);

78 class Connection extends Thread {
protected Socket client; protected DataInputStream in; protected PrintStream out; public Connection(Socket client_socket) { client = client_socket; try { in = new DataInputStream(client.getInputStream()); out = new PrintStream(client.getOutputStream()); } catch (IOException e) { try { client.close(); } catch (IOException e2) { ; } System.err.println("Exception while getting socket streams: " + e); return; } this.start(); } public void run() { String line; StringBuffer revline; int len; try { for(;;) { line = in.readLine(); if (line == null) break; len = line.length(); revline = new StringBuffer(len); for(int i= len-1; i>=0; i--) revline.insert(len-1-i, line.charAt(i)); out.println(revline); } catch (IOException e) { ; } finally { try {client.close();} catch (IOException e2) {;} }

79 import java.io.*; import java.net.*; public class Client { public static final int DEFAULT_PORT = 50000; public static void main(String[] args) { int port = DEFAULT_PORT; Socket s = null; if (args.length == 1) port = DEFAULT_PORT; else { try { port = Integer.parseInt(args[1]); } catch (NumberFormatException e) { usage(); } } try { s = new Socket(args[0], port); DataInputStream sin=new DataInputStream(s.getInputStream()); PrintStream sout = new PrintStream(s.getOutputStream()); DataInputStream in = new DataInputStream(System.in); System.out.println("Connected to "+s.getInetAddress()+":"+s.getPort()); String line; while(true) { System.out.print("> "); System.out.flush(); line = in.readLine(); if (line == null) break; sout.println(line); line = sin.readLine(); System.out.println(line); catch (IOException e) { System.err.println(e); } finally { try { if (s != null) s.close(); } catch (IOException e2) { ; } }

80 UDP-server import java.io.*; import java.net.*;
public class UDPReceive { static final int port = 50001; public static void main(String args[]) throws Exception { byte[] buffer = new byte[1024]; String s; DatagramSocket socket = new DatagramSocket(port); for(;;) { DatagramPacket packet = new DatagramPacket(buffer, buffer.length); socket.receive(packet); s = new String(buffer, 0, packet.getLength()); System.out.println("UDPReceive: received from " + packet.getAddress().getHostName() + ":" + packet.getPort() + ": " + s); }

81 UDP-client import java.io.*; import java.net.*; public class UDPSend {
static final int port = 50001; public static void main(String args[]) throws Exception { if (args.length != 2) { System.out.println("Usage: java UDPSend <hostname> <message>"); System.exit(0); } InetAddress address = InetAddress.getByName(args[0]); int msglen = args[1].length(); byte[] message = new byte[msglen]; message=args[1].getBytes(); // Initilize the packet with data and address DatagramPacket packet = new DatagramPacket(message, msglen, address, port); // Create a socket, and send the packet through it. DatagramSocket socket = new DatagramSocket(); socket.send(packet); }

82 Real-Time Transport Protokol: RTP
Netwærk og datakom. Per P. Madsen

83 Real-Time Transport Protokol: RTP
Header. Netwærk og datakom. Per P. Madsen


Download ppt "Netværk og datakommunikation."

Lignende præsentationer


Annoncer fra Google