1 / 52

Datanet 2.

Datanet 2. DDel 2 : Netværkslaget, Transportlaget og Socket-API’en. Protokoller Routing Quality of service IPv4 og IPv6 Protokoller. UDP. TCP. WAN håndtering fx IP-protokollen. Adressering Routing Multicasting Fragmentering. Grundlæggende Datanet. OSI modellen. Applikation.

trey
Download Presentation

Datanet 2.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

  4. 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 Per P Madsen AAU

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

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

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

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

  9. 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) Per P Madsen AAU

  10. 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. Per P Madsen AAU

  11. 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 Per P Madsen AAU

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

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

  14. 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 Fragmentering host Ethernet MTU= 1500 byte ARCnet MTU= 512 byte Ethernet MTU= 1500 byte host Per P Madsen AAU

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

  16. IP-addresser: IPv4-32 bit 8 bit 8 bit 8 bit 8 bit Klasse A prefix suffix 0 Klasse B 0 1 prefix suffix prefix suffix Klasse C 1 1 0 1 1 1 0 Multicastadresser Klasse D 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 Per P Madsen AAU

  17. IP-addresser: 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 • 194.211.0.16/21 prefix suffix 21 bit 11 bit Routertabel Prefix1. Maske1 Next hop. Prefix2. Maske2 Next hop. Prefix3. Maske3 Next hop. Prefix4. Maske4 Next hop. Per P Madsen AAU

  18. 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: 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 Per P Madsen AAU

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

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

  21. 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 Host Host Host Host Ethernet Router Per P Madsen AAU

  22. ARP- Address resolution Protokol Per P Madsen AAU

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

  24. IPv6 Per P Madsen AAU

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

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

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

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

  29. 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: 49152til 65535 Per P Madsen AAU

  30. 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. Per P Madsen AAU

  31. Grundlæggende Datanet Transportlag: UDP Samlet dataframe med UDP transportprotokol. Datalink Netværk UDP-header Data • Anvendelse: • Voice over IP, Proceskontrol, semi-RealTime, • Eksperimental protokol. Per P Madsen AAU

  32. 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. Per P Madsen AAU

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

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

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

  36. 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 Per P Madsen AAU

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

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

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

  40. 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. Per P Madsen AAU

  41. Grundlæggende Datanet Congestion control. Transportlag: TCP • 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 Per P Madsen AAU

  42. Grundlæggende Datanet Header. Transportlag: TCP 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. Per P Madsen AAU

  43. Grundlæggende Datanet Header. Transportlag: TCP 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. Per P Madsen AAU

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

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

  46. Clinet-Server Client Server 1 1 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) Per P Madsen AAU

  47. TCPserver 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(); TCP-Socket TCPclient 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(); Per P Madsen AAU

  48. 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(); } Per P Madsen AAU

  49. 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(); Per P Madsen AAU

  50. UDP-Socket UDPserver 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(); UDPclient Socket s = new Socket(ipe.AddressFamily, SocketType.Dgram, ProtocolType.Udp); s.Bind(endPoint); s.SendTo(msg, 0, msg.Length, SocketFlags.None, endPoint); .... s.Close(); Per P Madsen AAU

More Related