datanet 2
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 PresentationTRANSCRIPT
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
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
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
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.
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
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
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å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)
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, 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
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.
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
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.
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
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
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
Per P Madsen AAU 19
IP-addresser: IPv4-32 bitNat eller proxy kommunikation.
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.
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
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
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
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
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
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
Datalink Netværk UDP-header Data
Samlet dataframe med UDP transportprotokol.
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 acknowledgedog handshake.
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.
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
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
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
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
Transportlag: TCPWindow management.
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
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
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.
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.
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.
Per P Madsen AAU 45
API – Application Program Interface
FysiskData LinkNetworkTransportSession
PresentationApplication
Socket
RPC, RMI og CORBA
Grundlæggende Datanet
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)
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
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();}
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
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
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();
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();