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

Slides:



Advertisements
Lignende præsentationer
Hvorfor skal man skifte nu? af Torben Rune
Advertisements

Master i Informationsteknologi Simulering af radionetværk Kasper og Claus.
Access Point Y + router/gateway
Informationer om trådløs netværk På trådløs netværk bruges CSMA/CA sammen med ”Request to Send (RTS)” og “Clear to Send (CTS)” for at undgå kollisioner.
Kapitel 3 Transportlaget
Firewalls & netsikkerhed Henrik Størner,
Netværk.
TCP/IP netværk Henrik Størner SSLUG.
Aalborg Universitet Esbjerg
OPFINDELSEN AF WEBBEN JOEK © TEC 2011 WWW blev opfundet i 1990 af Tim Berners-Lee. Berners- Lee var en fysiker ved CERN, det europæiske laboratorium for.
Distribueret programmering, specielt.NET Remoting Rasmus D. Lehrmann DM
Computer netværk og TCP/IP protokoller Kort resume – uge 6
Per P Madsen AAU1 Del 3 : Transportlaget - Protokoller. UDP. TCP - Pålidelig kommunikation og PAR-princippet - Wireless TCP - Socket-API’en.
Velkommen til kurset ”IP Grundkursus”
IT og økonomi Lektion: N: Netværk.
DS-kursusgang nr. 5: Sockets Intro Java-klasser til at arbejde med sockets. Forskellen på sockets i C og i Java. TCP/IP protokol familjen. Afslutning:
Grundforløbsprojekt Strøm, Styring & IT.
Sockets Logiske endepunkter mellem server og klient På applikationsniveauet betragtes Sockets som pålidelige Sockets optræder parvis Til en Socket er der.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Adresserum Adresserum: Det interval af adresser, der kan arbejdes med i den samme proces (fra 0 til største adresse) Lippiatt++: adresser fylder 8 bit.
QoS Introduktion til Quality of Service. IP standard service IP er designet til best-effort services –Best-effort: Transport af data efter bedste-evne.
FEN IntroJava AAU1 Opsamling: afvikling af Java-programmer Input fra keyboard og fil Fra en prompt Fra BlueJ Fra NetBeans.
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
C# programmering Per P. Madsen Afd. for Proceskontrol
Grøn Plan fra Novo Kilde Børsen 27 feb Novos Klimastrategi.
Datanet. Per P. Madsen Afd. for Proceskontrol
Netværk og interprocess- kommunikation. Disposition Softwarelag Protokollag ◦UDP ◦TCP.
DComNet1 Computer netværk og TCP/IP protokoller. dComNet2 Maskinarkitektur.. fokus på intern organisation af en enkelt computer:
IT Arkitektur og Sikkerhed
Lektion 7 Læsestof: Kopier fra Caranno
Fundamentale datastrukturer
IT Arkitektur og Sikkerhed
Per P Madsen Afdeling for Proceskontrol Aalborg Universitet.
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.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Procestræ under afvikling af cp init login shell cp cp src dest.
Per P Madsen AAU1 Del 2 : Netværkslaget - Protokoller - Routing - Quality of service - IPv4 og IPv6.
Per P. MadsenStyresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder og InterProcesCommunikation.
DComNet1 Computer netværk og TCP/IP protokoller. dComNet2 Maskinarkitektur.. fokus på intern organisation af en enkelt computer:
Netværk og interprocess- kommunikation - Et eksamensoplæg!
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
ADO.NET Databaser SQL Client (SQL server 7 og senere) OleDb (en række incl. jet) ODBC MySql (ekstra driver skal instaleres) Oracle (XML dataset) Samme.
Digital videoformidling Netværksdistribution For indholdsproducenter.
Fremstilling af Simple WEB steder [ITPL] Foråret 2004
Per P. MadsenStyresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder og InterProcesCommunikation.
Netværk og datakommunikation.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
C#: Udtryk og metoder Kilde: Joe Hummel. 2 Nordjyllands Erhvervakademi – 2008 Indhold “With regards to programming statements and methods, C# offers what.
Hvad består en distribueret applikation af ? Processer der kører på hver deres maskine Tråde - 1 eller flere "letvægtsprocesser" per proces Objekter i.
Netwærk og datakommunikation. Per P. Madsen AAU1 Per P. Madsen Afd. for Proceskontrol Institut for elektroniske systemer Aalborg Universitet.
Per P Madsen AAU1 Del 4 : Sessions-, presentations- og applikationslaget - Applikationsprotokoller. - RPC og RMI. - Digital audio og Voice over IP. - RTP.
Distridueret system Et distridueret system er en samling af uafhængige computere som fremstår overfor brugeren som et enkelt samordnet system Dvs: Et antal.
 Kommunikation mellem computere  NAT – Network Adress Translation  IP Routing af pakker  Transport af beskeder ◦ TCP ◦ UDP.
ASP.NET – web site publish. ASP.NET – site-version.
Per P. Madsen AAU1 Grundlæggende Datanet Datanet. Per P. Madsen Afd. for Proceskontrol Institut for elektroniske systemer Aalborg Universitet.
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
Tekst filer Tekstfiler opbygges normalt af linier, hvor disse ikke behøver at være samme længde. Når man skal arbejde med tekstfiler, ønsker man metoder.
Datalink laget Datalink Datalink Fysisk lag Fysisk lag Fysisk net
Netwærk og datakommunikation. Per P. Madsen AAU1 Per P. Madsen Sektion for automation og kontrol Institut for elektroniske systemer Aalborg Universitet.
Real-Time trafik på Ethernet MM4 Distribuerede systemer.
Web Services. OO (C++/ C#/Java) COM DCOM Web Services.
P-net, bluetooth, ZigBee, ARCnet og TTP
NAT Implementation. Setup Grafik fra teori-afsnit, med ip’er og andet info på.
Forbedringer af implementationen. Få TCP til at virke Blokere pakke med RST bit sat Blokere indkommende pakker inden de når Windows protokolstakken Begge.
Netteknik 1 (AMU 44947) Netteknik 1
Access Control List CCNA 2 v3.1 Modul 11 Claes Larsen, CCAI.
Cisco ASA 5505 Opsætning af DMZ-zone Vejledning. Hvad er en DMZ-zone???  En ‘demilitariseret zone’ eller ‘ingen mands land’! 
. Installationer i hjemmet v/ Kent Vig, Marts 2015.
TECH III ISIS.
Præsentationens transcript:

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

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

WAN netværk. Router Host Subnet Host Netværkslagets opgave: Grundlæggende Datanet WAN netværk. Host Router 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

Grundlæggende Datanet WAN netværk. Subnet Host Per P Madsen AAU

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

Service typer. Host Host Service typer: 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

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

Routing Router Routing tabel In:out In:out In:out In:out 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

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

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

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

Connection-Oriented: ATM’s måde Virkemåde: Der oprettes en forbindelse. Pakker/data sendes gennem denne forbindelse. Per P Madsen AAU

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

QoS – Quality of Service Network layer: Reliability Delay Jitter Bandwidth Per P Madsen AAU

QoS – Quality of Service Løsning: Kapacitet nok. Båndbrede og CPU kraft. Fx. telefonsystemet. Receiver buffer. Øger delay og minimerer jitter. Begrænsning af senderes bithastighed. Mindre delay, mindre jitter og mindre båndbreddebehov. Per P Madsen AAU

Bucket algoritmen En sender buffer. En cyklisk task, der er aktiv, hvis der er data i bufferen og sender disse data med en passende lav bithastighed. Per P Madsen AAU

Token Bucket algoritmen En sender buffer, der fyldes med x [token/sek]. Senderen sender sine data vha tokens dvs. Nbit pr token fra bufferen. Per P Madsen AAU

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

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

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

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

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

IP-addresser: IPv4-32 bit 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: 128 net og 16 mil. host B: 16384 net og 64 K host C: 2 mil. net og 256 host Per P Madsen AAU

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

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

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

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

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

ARP- Address resolution Protokol Per P Madsen AAU

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

IPv6 Per P Madsen AAU

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

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

OSI modellen Skabe forbindelse mellem to programmer/processer. Grundlæggende Datanet 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 Per P Madsen AAU

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

Transportlag Administration af portnumre: 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 Per P Madsen AAU

Transportlag: UDP User Datagram Protokol: Kun håndtering af porte. 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

Transportlag: UDP Samlet dataframe med UDP transportprotokol. Datalink 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

Transportlag: TCP Transport Control Protokol: 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

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

Transportlag: TCP Reliabel? Metode: Grundlæggende Datanet 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 Per P Madsen AAU

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

Transportlag: TCP Timer: Kort tid => bedre efektivitet. 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

Transportlag: TCP D= D*b+(1-b)*|RTT-M| 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

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

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

Transportlag: TCP Congestion control. 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

Transportlag: TCP Congestion control. Init: Threshold= 32 Kbyte 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 Per P Madsen AAU

Transportlag: TCP Header. 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. Per P Madsen AAU

Transportlag: TCP Header. 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. Per P Madsen AAU

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

WireLess TCP Fastnet: Manglende Ack. skyldes congestion og ikke fejl. Grundlæggende Datanet WireLess TCP Fastnet: Manglende Ack. skyldes congestion og ikke fejl. WireLess: Manglende Ack. skyldes som regel fejl i data eller pakke tab. Så hvis manglende Ack. Så send pakken igen. En løsning: fysisk Datalink Netværk Base station Transp. Per P Madsen AAU

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

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

TCP-Socket TCPserver TCPclient 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

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

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

UDP-Socket UDPserver UDPclient 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

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

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