datanet 2

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

Upload: trey

Post on 15-Jan-2016

54 views

Category:

Documents


0 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Datanet 2

Per P Madsen AAU 1

Datanet 2.

DDel 2: Netværkslaget, Transportlaget og Socket-API’en.

•Protokoller•Routing•Quality of service•IPv4 og IPv6•Protokoller. UDP. TCP

Page 2: Datanet 2

Per P Madsen AAU 2

Grundlæggende Datanet

OSI modellen

Network

Fysisk

Data link

Transport

Session

Presentation

Applikation

WAN håndtering fx IP-protokollen

•Adressering•Routing•Multicasting•Fragmentering

Page 3: Datanet 2

Per P Madsen AAU 3

Grundlæggende Datanet

WAN netværk.SubnetHost 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

Page 4: Datanet 2

Per P Madsen AAU 4

Netværkslaget

fysiskDatalink

Netværk

Trans.

Session

Present.

App.

fysiskDatalink

Netværk

fysiskDatalink

Netværk

fysiskDatalink

Netværk

fysiskDatalink

Netværk

fysiskDatalink

Netværk

Trans.

Session

Present.

App.

Router Router

Host

Host Host

Host

En virtuel forbindelse.

Page 5: Datanet 2

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.

Page 6: Datanet 2

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.

Page 7: Datanet 2

Per P Madsen AAU 7

Routing

In:outIn:outIn:outIn:out

Router Routing tabel

Forwarding af pakker: Kik i routingtabellen for at finde Ud-forbindelsen og send videre.

Routing:Bestem indholdet af routingtabellen.

Pakke ind Ud-forbindelse

Page 8: Datanet 2

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.

Page 9: Datanet 2

Per P Madsen AAU 9

Connectionless: Internettets mådeHistorie:• 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.

HostHost

IMP (Interface message processer)

Page 10: Datanet 2

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.

Page 11: Datanet 2

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

Page 12: Datanet 2

Per P Madsen AAU 12

IPv4 header

Version: 4, IHL (Internet Header Length) 5-15,Type of service: Delay, Throughput, ReliabilityTotal 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

Page 13: Datanet 2

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: 17Header checksum: Checksum af headeren.Source add: Senderens IP adresse.Destination add: Modtagerens IP adresse.

Page 14: Datanet 2

Per P Madsen AAU 14

Fragmenteringhost

host

Ethernet

ARCnet

Ethernet

MTU= 1500 byte

MTU= 512 byte

MTU= 1500 byte

Id=x, MF=0Offset= 0

Total L.= 1500Data: 1480 byte

Id=x, MF=1Offset= 0

Total L.= 508Data: 488 byte

Id=x, MF=1Offset= 61

Total L.= 508Data: 488 byte

Id=x, MF=1Offset= 122

Total L.= 508Data: 488 byte

Id=x, MF=0Offset= 183Total L.= 56

Data: 36 byte

Page 15: Datanet 2

Per P Madsen AAU 15

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.

Page 16: Datanet 2

Per P Madsen AAU 16

IP-addresser: IPv4-32 bit

suffixprefix0

suffixprefix1

suffixprefix1

Multicast adresser1

1

1 1

0

0

0

Klasse A

Klasse B

Klasse C

Klasse D

8 bit 8 bit 8 bit 8 bit

Prefix: Netsværk id.Suffix: Host id.

A: 128 net og 16 mil. hostB: 16384 net og 64 K hostC: 2 mil. net og 256 host

Page 17: Datanet 2

Per P Madsen AAU 17

IP-addresser: IPv4-32 bit

Løsning: Classless Inter Domain Routing CIDR194.211.0.16/21

Problem: Klassesystemet passer til alm virksomheder.Klasse C for få hosts.Klasse B for mange hosts.

suffixprefix

21 bit 11 bit

Prefix1.Prefix2.Prefix3.Prefix4.

Maske1Maske2Maske3Maske4

Next hop.Next hop.Next hop.Next hop.

Routertabel

Page 18: Datanet 2

Per P Madsen AAU 18

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.255172.16.0.0 – 172.31.255.255192.168.0.0 – 192.168.255.255

Page 19: Datanet 2

Per P Madsen AAU 19

IP-addresser: IPv4-32 bitNat eller proxy kommunikation.

Page 20: Datanet 2

Per P Madsen AAU 20

IP-adresser.

Endelig øsning: IPv6 128 bit adresser. Så er der plads nok!!!Problem: Det globale adresserum er stadig for lille.

Page 21: Datanet 2

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... ...

RouterEthernet

Page 22: Datanet 2

Per P Madsen AAU 22

ARP- Address resolution Protokol

Page 23: Datanet 2

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.

Page 24: Datanet 2

Per P Madsen AAU 24

IPv6

Page 25: Datanet 2

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

Page 26: Datanet 2

Per P Madsen AAU 26

IPv6 Extension header

Extension header typer:• Fragmentering• Cryptering.• Authentication.• Routing.• Modtager information.• m.fl.

Page 27: Datanet 2

Per P Madsen AAU 27

Grundlæggende Datanet

OSI modellen

Network

Fysisk

Data link

Transport

Session

Presentation

ApplikationSkabe forbindelse mellem to programmer/processer.Håndtering af integritet fx TCP og UDP protokollerne

•Connection•Reliabel•Sekvens•Flow Control•Buffering•Stream•Congestion control

Page 28: Datanet 2

Per P Madsen AAU 28

Grundlæggende Datanet

TransportlagProblem: 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.

12..

80..

http://www.iana.org/assignments/port-numbers

12.

21...

PortmapProgrammer

Page 29: Datanet 2

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 – echo11 – systat21 – ftp80 – WWW

IANA registrering: 1024 – 49151 Fx26000 – Quake

For dynamisk og privat brug: 49152 til 65535

Page 30: Datanet 2

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.

Page 31: Datanet 2

Per P Madsen AAU 31

Grundlæggende Datanet

Transportlag: UDP

Datalink Netværk UDP-header Data

Samlet dataframe med UDP transportprotokol.

Anvendelse:Voice over IP, Proceskontrol, semi-RealTime, Eksperimental protokol.

Page 32: Datanet 2

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 acknowledgedog handshake.

Page 33: Datanet 2

Per P Madsen AAU 33

Grundlæggende Datanet

Transportlag: TCPConnection-oriented. Dvs: Punkt til punkt forbindelse med:

Reliable connection startup.Graceful connection shutdown.

Metode: The 3-way handshake

Host 1 Host 2Hej! Jeg vil snakke med dig

Hej! Jeg har forstået og er klar.

Jeg er også klar.

Page 34: Datanet 2

Per P Madsen AAU 34

Grundlæggende Datanet

Transportlag: TCPReliabel?Metode:

Positive Acknowledgement with Retransmission (PAR) Modtager

Sender positiv Ack.

Sender

Timer

Sender data ogstarter timer

Sender positiv Ack.

Sender data ogstarter timer

Timer

Page 35: Datanet 2

Per P Madsen AAU 35

Grundlæggende Datanet

Transportlag: TCP

Fejl: Datagram loss, fejl i data, forsinkelser.

ModtagerSender data ogstarter timer

Sender

Timer

Sender positiv Ack.Timer

Page 36: Datanet 2

Per P Madsen AAU 36

Grundlæggende Datanet

Transportlag: TCPTimer: 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

Page 37: Datanet 2

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

Page 38: Datanet 2

Per P Madsen AAU 38

Grundlæggende Datanet

Transportlag: TCP

• Sekvens håndtering.• Flow Control.• Streaming.• Buffering.

Løsning: Brug af Window management.

Page 39: Datanet 2

Per P Madsen AAU 39

Grundlæggende Datanet

Transportlag: TCPWindow management.

Page 40: Datanet 2

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.

Page 41: Datanet 2

Per P Madsen AAU 41

Grundlæggende Datanet

Transportlag: TCPCongestion control.

Init:Threshold= 32 KbyteCW= 1500 byte (Ethernet)

If Not timeoutIf CW < Threshold.

CW= 2 * CWElse CW= CW + 1K

If timeoutThreshold = ½* ThresholdCW= 1500 byte

Page 42: Datanet 2

Per P Madsen AAU 42

Grundlæggende Datanet

Transportlag: TCPHeader.

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.

Page 43: Datanet 2

Per P Madsen AAU 43

Grundlæggende Datanet

Transportlag: TCPHeader.

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.

Page 44: Datanet 2

Per P Madsen AAU 44

Grundlæggende Datanet

Transportlag: TCPHeader.

Window size: Buffer plads i senderens input buffer.Checksum: 1. kompliment af header + pseudoheader + data.

Page 45: Datanet 2

Per P Madsen AAU 45

API – Application Program Interface

FysiskData LinkNetworkTransportSession

PresentationApplication

Socket

RPC, RMI og CORBA

Grundlæggende Datanet

Page 46: Datanet 2

Per P Madsen AAU 46

Clinet-Server

12.....

12.....

Client Server

SocketBindSend Req.Recive Reply.

SocketBindListen

Wait for Req.Read req.Serve req.Send Reply.

En fuld forbindelse:(Client adr, Client port, Server adr, Server port, Protokol)

Page 47: Datanet 2

Per P Madsen AAU 47

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

Page 48: Datanet 2

Per P Madsen AAU 48

TCP-serverIPEndPoint 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();}

Page 49: Datanet 2

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();

Page 50: Datanet 2

Per P Madsen AAU 50

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

Page 51: Datanet 2

Per P Madsen AAU 51

UDP-serverIPEndPoint 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();

Page 52: Datanet 2

Per P Madsen AAU 52

UDP-clientIPHostEntry 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();