Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Per P Madsen AAU1 Datanet 2. DDel 2: Netværkslaget, Transportlaget og Socket-API’en. Protokoller Routing Quality of service IPv4 og IPv6 Protokoller. UDP.

Lignende præsentationer


Præsentationer af emnet: "Per P Madsen AAU1 Datanet 2. DDel 2: Netværkslaget, Transportlaget og Socket-API’en. Protokoller Routing Quality of service IPv4 og IPv6 Protokoller. UDP."— Præsentationens transcript:

1 Per P Madsen AAU1 Datanet 2. DDel 2: Netværkslaget, Transportlaget og Socket-API’en. Protokoller Routing Quality of service IPv4 og IPv6 Protokoller. UDP. TCP

2 Per P Madsen AAU2 Grundlæggende Datanet OSI modellen Network Fysisk Data link Transport Session Presentation Applikation WAN håndtering fx IP-protokollen Adressering Routing Multicasting Fragmentering

3 Per P Madsen AAU3 Grundlæggende Datanet WAN netværk. 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. Router

4 Per P Madsen AAU4 Netværkslaget fysisk Datalink Netværk Trans. Session Present. App. fysisk Datalink Netværk fysisk Datalink Netværk fysisk Datalink Netværk fysisk Datalink Netværk fysisk Datalink Netværk Trans. Session Present. App. Router Host En virtuel forbindelse.

5 Per P Madsen AAU5 Grundlæggende Datanet Service typer. 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.

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

7 Per P Madsen AAU7 Routing In:out RouterRouting tabel Forwarding af pakker: Kik i routingtabellen for at finde Ud-forbindelsen og send videre. Routing: Bestem indholdet af routingtabellen. Pakke indUd-forbindelse

8 Per P Madsen AAU8 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.

9 Per P Madsen AAU9 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 IMP (Interface message processer)

10 Per P Madsen AAU10 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/1 1983.

11 Per P Madsen AAU11 Internet protokollen IPv4 Adresser: IP-adresser 32 bit. Pakkeformat: IP-datagram. IP-headerTP-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

12 Per P Madsen AAU12 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

13 Per P Madsen AAU13 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.

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

15 Per P Madsen AAU15 IP-addresser: IPv4-32 bit Traditionel notation: 130.225.50.124 Uniform adressering uafhængigt af underliggende LAN-net Hver Host/computer til net forbindelse får en unik IP-adresse. IANA http://www.iana.org/ Styrer tildelingen af netværksadresser.

16 Per P Madsen AAU16 IP-addresser: IPv4-32 bit suffixprefix 0 suffixprefix1 suffixprefix 1 Multicast adresser 1 1 11 0 0 0 Klasse A Klasse B Klasse C Klasse D 8 bit Prefix: Netsværk id. Suffix: Host id. A: 128 net og 16 mil. host B: 16384 net og 64 K host C: 2 mil. net og 256 host

17 Per P Madsen AAU17 IP-addresser: IPv4-32 bit Løsning: Classless Inter Domain Routing CIDR 194.211.0.16/21 Problem: Klassesystemet passer til alm virksomheder. Klasse C for få hosts. Klasse B for mange hosts. suffixprefix 21 bit11 bit Prefix1. Prefix2. Prefix3. Prefix4. Maske1 Maske2 Maske3 Maske4 Next hop. Routertabel

18 Per P Madsen AAU18 IP-adresser: IPv4-32 bit Løsning: Private netværk med en forbindelse til det globale net. Problem: Det globale adresserum er stadig for lille. IP-adresser til private net: 10.0.0.0.0 – 10.255.255.255 172.16.0.0 – 172.31.255.255 192.168.0.0 – 192.168.255.255

19 Per P Madsen AAU19 IP-addresser: IPv4-32 bit Nat eller proxy kommunikation.

20 Per P Madsen AAU20 IP-adresser. Endelig øsning: IPv6 128 bit adresser. Så er der plads nok!!! Problem: Det globale adresserum er stadig for lille.

21 Per P Madsen AAU21 ARP- Address resolution Protokol Problem: IP-adressen er et virtuelt nummer. Dvs kan ikke bruges på et LAN. Løsning: ARP- Address Resolution Protokol. Dvs. omsætning fra IP-adr. Til MAC-adr. Host... Router Ethernet

22 Per P Madsen AAU22 ARP- Address resolution Protokol

23 Per P Madsen AAU23 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.

24 Per P Madsen AAU24 IPv6

25 Per P Madsen AAU25 IPv6 adresser Hexadecimalnotation: 8000:0000:0000:0000:1234:5678:9ABC:DEF0 8000::1234:5678:9ABC:DEF0 Eller IPv4: ::124.225.51.17

26 Per P Madsen AAU26 IPv6 Extension header Extension header typer: Fragmentering Cryptering. Authentication. Routing. Modtager information. m.fl.

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

28 Per P Madsen AAU28 Grundlæggende Datanet 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. 1 2.. 80.. http://www.iana.org/assignments/port-numbers 1 2. 21... PortmapProgrammer

29 Per P Madsen AAU29 Grundlæggende Datanet Transportlag Administration af portnumre: http://www.iana.org/assignments/port-numbers IANA standard porte: 0 – 1023 Fx: 7 – echo 11 – systat 21 – ftp 80 – WWW IANA registrering: 1024 – 49151 Fx 26000 – Quake For dynamisk og privat brug: 49152 til 65535

30 Per P Madsen AAU30 Grundlæggende Datanet 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.

31 Per P Madsen AAU31 Grundlæggende Datanet Transportlag: UDP DatalinkNetværkUDP-headerData Samlet dataframe med UDP transportprotokol. Anvendelse: Voice over IP, Proceskontrol, semi-RealTime, Eksperimental protokol.

32 Per P Madsen AAU32 Grundlæggende Datanet 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.

33 Per P Madsen AAU33 Grundlæggende Datanet 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.

34 Per P Madsen AAU34 Grundlæggende Datanet Transportlag: TCP Reliabel? Metode: Positive Acknowledgement with Retransmission (PAR) Modtager Sender positiv Ack. Sender Timer Sender data og starter timer Sender positiv Ack. Sender data og starter timer Timer

35 Per P Madsen AAU35 Grundlæggende Datanet Transportlag: TCP Fejl: Datagram loss, fejl i data, forsinkelser. Modtager Sender data og starter timer Sender Timer Sender positiv Ack. Timer

36 Per P Madsen AAU36 Grundlæggende Datanet 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

37 Per P Madsen AAU37 Grundlæggende Datanet Transportlag: TCP D= D*b+(1-b)*|RTT-M| Dvs D er et estimat af spredningen. Time = RTT + 4 * D

38 Per P Madsen AAU38 Grundlæggende Datanet Transportlag: TCP Sekvens håndtering. Flow Control. Streaming. Buffering. Løsning: Brug af Window management.

39 Per P Madsen AAU39 Grundlæggende Datanet Transportlag: TCP Window management.

40 Per P Madsen AAU40 Grundlæggende Datanet 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.

41 Per P Madsen AAU41 Grundlæggende Datanet 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 = ½* Threshold CW= 1500 byte

42 Per P Madsen AAU42 Grundlæggende Datanet 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.

43 Per P Madsen AAU43 Grundlæggende Datanet 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.

44 Per P Madsen AAU44 Grundlæggende Datanet Transportlag: TCP Header. Window size: Buffer plads i senderens input buffer. Checksum: 1. kompliment af header + pseudoheader + data.

45 Per P Madsen AAU45 API – Application Program Interface Fysisk Data Link Network Transport Session Presentation Application Socket RPC, RMI og CORBA Grundlæggende Datanet

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

47 Per P Madsen AAU47 TCP-Socket Socket ls = new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp); ls.Bind(endPoint); ls.Listen(5); Socket cs = ls.Accept(); int n = cs.Receive(msg); cs.Send(msg); cs.Close(); Socket s = new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp); s.Bind(senderRemote); s.Connect(sername, 11000); s.Send(Encoding.ASCII.GetBytes("This is a tcp test")); s.Receive(rmsg); s.Close(); TCPserver TCPclient

48 Per P Madsen AAU48 TCP-server IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, 11000); Socket ls = new Socket(endPoint.Address.AddressFamily, SocketType.Stream, ProtocolType.Tcp); byte[] msg = new Byte[256]; ls.Bind(endPoint); ls.Listen(5); while (true) { Socket cs = ls.Accept(); int n = cs.Receive(msg); cs.Send(msg); cs.Close(); }

49 Per P Madsen AAU49 TCP-client IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0); EndPoint senderRemote = (EndPoint)sender; byte[] rmsg = new Byte[256]; Socket s = new Socket(sender.Address.AddressFamily, SocketType.Stream, ProtocolType.Tcp); s.Bind(senderRemote); s.Connect(sername, 11000); s.Send(Encoding.ASCII.GetBytes("This is a tcp test")); s.Receive(rmsg); s.Close();

50 Per P Madsen AAU50 UDP-Socket Socket s = new Socket(ipe.AddressFamily, SocketType.Dgram, ProtocolType.Udp); s.Bind(endPoint); s.ReceiveFrom(msg, 0, msg.Length, SocketFlags.None, ref rendPoint);.... s.Close(); Socket s = new Socket(ipe.AddressFamily, SocketType.Dgram, ProtocolType.Udp); s.Bind(endPoint); s.SendTo(msg, 0, msg.Length, SocketFlags.None, endPoint);.... s.Close(); UDPserver UDPclient

51 Per P Madsen AAU51 UDP-server IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, 11000); Socket s = new Socket(endPoint.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp); IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0); EndPoint senderRemote = (EndPoint)sender; s.Bind(endPoint); byte[] msg = new Byte[256]; s.ReceiveFrom(msg, 0, msg.Length, SocketFlags.None, ref senderRemote); Console.WriteLine("\nClient info:" + senderRemote.ToString()); Console.WriteLine("Client Add Family:" + senderRemote.AddressFamily); s.SendTo(msg, 0, msg.Length, SocketFlags.None, senderRemote); s.Close();

52 Per P Madsen AAU52 UDP-client IPHostEntry hostEntry = Dns.GetHostEntry(sername); IPEndPoint endPoint = new IPEndPoint(hostEntry.AddressList[0], 11000); IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0); EndPoint sRemote = (EndPoint)sender; byte[] rmsg = new Byte[256]; Socket s = new Socket(endPoint.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp); byte[] msg = Encoding.ASCII.GetBytes("This is a test"); s.SendTo(msg, 0, msg.Length, SocketFlags.None, endPoint); s.ReceiveFrom(rmsg, 0, rmsg.Length, SocketFlags.None, ref sRemote); Console.WriteLine(”Fra server: " + Encoding.ASCII.GetString(msg)); s.Close();


Download ppt "Per P Madsen AAU1 Datanet 2. DDel 2: Netværkslaget, Transportlaget og Socket-API’en. Protokoller Routing Quality of service IPv4 og IPv6 Protokoller. UDP."

Lignende præsentationer


Annoncer fra Google