Laboration i Datakommunikation - Introduktion till Sockets och TCP/IP



Relevanta dokument
Instruktioner för Internetanslutning

3) Routern kontrollerar nu om destinationen återfinns i Routingtabellen av för att se om det finns en väg (route) till denna remote ost.

Startanvisning för Bornets Internet

Installationsanvisningar fiberstream (LAN) Version 1.0

ÅTVID.NET Startinstruktioner

5 Internet, TCP/IP och Tillämpningar

8SSJLIW.RPELQHUDEHJUHSSPHGGHILQLWLRQHUS

5 Internet, TCP/IP och Applikationer

LAN Port: 4 X RJ45 10/100BASE-TX Fast Ethernet med Auto MDI/MDIX. Resetknapp: Återställer enheten till fabriks inställningar

Installationsanvisning För dig som har valt fast IP-Adress

5. Internet, TCP/IP tillämpningar och säkerhet

TCP/IP och Internetadressering

Övningar - Datorkommunikation

1. Inkoppling till bredbandsnätet

Hjälpprotokoll till IP

GIVETVIS. SKA DU HA INTERNET I DIN LÄGENHET! En guide till hur du installerar internet i ditt nya hem.

Tentamen i Datorkommunikation den 10 mars 2014

Kihl & Andersson: Kapitel 6 (+ introduktioner från kap 7, men följ slides) Stallings: 9.5, 14.1, 14.2, Introduktion i 14.3, 16.1

1. Inkoppling till bredbandsnätet

Utförande: I exemplet så kommer vi att utgå från att man gör laborationen i en Virtuell miljö (Virtualbox).

Använda bärbar dator som operatörspanel

Passersystem VAKA 10

FIBER INSTALLATIONSHANDBOK VERSION 1.0. Felanmälan och support nås på Alla dagar 08:00-22:00

Webbteknik II. Föreläsning 4. Watching the river flow. John Häggerud, 2011

Läs detta innan du sätter igång!

Tentamen i datakommunikation EDA343/DIT420 Vt 2011

Handbok för nätverk. För säker och korrekt användning, läs igenom säkerhetsinformationen i "Handbok för kopiator" innan du använder maskinen.

VÄLKOMMEN TILL OWNIT!

Installation och setup av Net-controller AXCARD DS-202

Installationsguide / Användarmanual

GIVETVIS. SKA DU HA INTERNET I DIN LÄGENHET! En guide till hur du installerar internet i ditt nya hem.

Handbok för installation av programvara

Installationsanvisning För dig som har dynamisk IP-Adress

Användarmanual COM1025

Handbok för installation av programvara

Manuell installation av SQL Server 2008 R2 Express för SSF Timing

Prestige 660M. Snabbinstallation. Version 1.0

Riktlinjer: avveckling av AppleTalk-routing i LUNET

INSTALLATIONSANVISNING BREDBAND

Datainsamling över Internet

Snabbguide IP-kamera Kom igång med din kamera

PUNKT TILL PUNKT-ANSLUTNING. Version 10/10. Att ansluta en PC till Controller 1

INKOPPLINGSBESKRIVNING KABEL-TV-MODEM

Capitex dataservertjänst

WebOrderInstallation <====================>

Hogias Ekonomisystem. Systemkrav för enanvändarinstallation fr o m version av GENERELLA KRAV

Laboration 1. Bandbreddmätning, nätkonfigurationsundersökning och felsökning

KARLSBORGS ENERGI AB FIBER INSTALLATIONSHANDBOK REV

Datakommunika,on på Internet

Systemkrav 2014 för enanvändarinstallation fr o m version av

Konfigurera Xenta från Babs

BIPAC-711C2 / 710C2. ADSL Modem / Router. Snabbstart Guide

För att kunna kommunicera i bredbandsnätet krävs följande:

COAX INSTALLATIONSHANDBOK VERSION 1.0. Felanmälan och support nås på Alla dagar 08:00-22:00

Felsökning i TCP/IP-miljö

Anvisningar för installation och borttagning av skrivardrivrutinerna Windows PostScript och PCL utgåva 8

KARLSBORGS ENERGI AB INTERNET KABEL-TV INSTALLATIONSHANDBOK REV

Vilka är vi. Magnus Ahltorp KTHLAN Ragnar Sundblad KTHLAN & NADA

5. Internet, TCP/IP och Applikationer

Datakommunika,on på Internet

SkeKraft Bredband Installationsguide

BIPAC-7100S / 7100 ADSL Modem/Router

Topologi. Utförande: I exemplet så kommer vi att utgå från att man gör laborationen i en Virtuell miljö (Virtualbox).

Telia Connect för Windows

Tentamen i ETSF15 Kommunikationssystem och Nätverk

Olika slags datornätverk. Föreläsning 5 Internet ARPANET, Internet började med ARPANET

Ethernet kommunikation med hjälp av optionskortet OPT-CI

Passersystem VAKA 10

Konfigurering av eduroam

Installationsanvisning Bredband

Installation av StruSofts låne-licensserver (nätverkslicens)

Proxy. Krishna Tateneni Översättare: Stefan Asserhäll

P-660H Triple Play modem. Snabbinstallation. Version 2.0

Stiftelsen MHS-Bostäder Instruktioner och felsökningsguide för Internetanslutning

Compose Connect. Hosted Exchange

progecad NLM Användarhandledning

Passersystem VAKA 10

Övning 5 ETS052 Datorkommuniktion Routing och Networking

ADSL INSTALLATIONSHANDBOK VERSION 1.2. Bredbands felanmälan och support nås på Alla dagar 08:00-22:00

VAKA 10 Passersystem Driftsättning & Snabbstart

IT för personligt arbete F2

Instruktion till. PigWin PocketPigs. Del 1 - Installation

Eltako FVS. 6 steg för att aktivera fjärrstyrning med hjälp av din smartphone (Mobil klient)

Denna genomgång behandlar följande: IP (v4) Nätmasken ARP Adresstilldelning och DHCP

Karlstads universitet Institutionen för Informationsteknologi Datavetenskap

Föreläsning 5. Vägval. Vägval: önskvärda egenskaper. Mål:

Fas I: Hur man hittar en ledig IP-adress

Innehållsförteckning GavleNet Silver

BIPAC-7402 / 7402W (Trådlös) ADSL VPN Firewall Router med 3DES-accelerator Snabbstartsguide

Inlämningsuppgift 11e Nätvärksskrivare

BIPAC 5102 / 5102S / 5102G. ADSL Modem/Router. Snabbstartsguide

Detta dokument beskriver enbart konfigurering av FX3U-ENET för att programmera/monitorera via Ethernet.

Övning 5 EITF25 & EITF Routing och Networking. October 29, 2016

IPv6 Jonas Aronsson 3TEa

För att din dator ska fungera på IP-nivån så behövs tre saker konfigureras:

Din guide till. Klientinstallation MS Driftservice

KARLSBORGS ENERGI AB ADSL INSTALLATIONSHANDBOK REV

Datum Den första bilden i installationsprogrammet visar vilken version det är. Klicka på Nästa eller tryck Enter för att fortsätta.

Manuell installation av SQL Server 2008 R2 Express SP2 fo r SSF Timing

Installationsanvisning - Kopplingen mellan GK96 och golf.se -

Transkript:

Laboration i Datakommunikation - Introduktion till Sockets och TCP/IP Magnus Jonsson Högskolan i Halmstad 1. Syftet med laborationen Syftet med denna laboration är dels att få lite praktisk syn på bl.a. TCP/IP-kommunikation genom att undersöka inställningar och kommandon i Windows- och UNIX-miljö. En introduktion till sockets ingår också i laborationen. 2. Nätverksinställningar i Windows Beroende på vilken version av Windows som är installerad på datorn ni sitter vid så kan inställningarna presenteras på lite olika sätt. Detta borde dock inte vara något problem. Innebörden av vissa termer tas upp djupare på föreläsning. A. Gå in på startmenyn och välj "Inställningar" => "Kontrollpanelen". Dubbelklicka därefter på nätverk. Välj fliken "Protokoll" och markera "TCP/IP protocol". Tryck därefter på "Egenskaper...". Stäng fönstren efter att nedanstående frågor är besvarade Om ni inte är behöriga att se dessa egenskaper (se ovanstående i så fall endast som "för kännedom") så skall ni hoppa till uppgift 3 och besvara nedanstående frågor senare. B. Får datorn IP-adress mm tilldelat av en DHCP-server eller är det manuellt inmatat? Om konfigureringsinformation fås från en DHCP-server så skall ni hoppa till uppgift 3 och besvara nedanstående frågor senare. C. Vilken IP-adress är bunden till nätverkskortet? Detta skall vara en unik adress i hela Internet som normalt fås av systemansvarig. Systemansvarig har i sin tur fått ett eller flera intervall av adresser från organisation som koordinerar detta. D. Vilken Nätmask används? Till exempel så anger nätmasken 255.255.255.128 (binärt så blir det 11111111.11111111.11111111.10000000) att en host med en adress som är identisk med den egna så när som de sista sju bitarna finns i samma nätverk som vårt nätverkskort i fråga är anslutet till. Med andra ord så finns det ingen router mellan de båda noderna och eventuellt datagram kan skickas direkt över det gemensamma nätet. De första 25 bitarna anger i exemplet "netid" medan de sista sju bitarna anger "hostid" i nätet. E. Vilken router är angiven som Standardgateway? Om en destinationsadress (för ett datagram som vi skall skicka) inte finns representerad i routingtabellen som är kopplad till nätverkskortet i datorn så skickas datagrammet till den specificerade adressen för Standardgateway. F. Vilken eller vilka DNS-servrar (se "Sökordning för DNS-tjänsten") används? En DNS-server anropas för att översätta logiska namn till adresser, t.ex. från camjpcp.hh.se till 194.47.1.192.

3. Nätverksrelaterade kommandon i Windows NT A. Starta kommandotolken (den med MS-DOS symbolen). Kör kommandot: ipconfig /all more B. Gå tillbaka till uppgift 2 och besvara uppgifterna C till F. C. Vilken MAC-adress har Ethernet-nätverkskortet (hexadecimalt)? Ett Ethernet-kort får vid tillverkning en 48-bitars adress som garanteras vara unik gentemot alla andra Ethernet-kort. Med andra ord så är detta en fast adress som inte kan ändras. Eftersom IP-datagram som skickas över Ethernet packas in i Ethernet-ramar, så måste MAC-adresser också användas. För att få reda på vilken MAC-adress som en host med en viss IP-adress har (förutsatt att både källa och destination befinner sig i samma nätverk, dvs har samma netid), så skickas förfrågan enligt ARP-protokollet. D. Kör kommandot: tracert www.teknocenter.se Kommandot tracert används för att se vilken väg som IP-datagram tar från källa till destination. Datagram med olika värden på time-to-live-parametern (TTL) skickas med början på värdet 1. Varje router på vägen räknar ner TTL med 1 eller mer. När TTL i ett datagram räknats ner till noll så kastas datagrammet och ett felmeddelande (ICMPprotokollet) skickas tillbaka. Tiderna som skrivs ut är tid från sändning till svar, så kallad round-trip-delay. Det som skrivs ut på varje rad är: TTP (som sattes i datagrammet vid sändning), tre tider (för varje TTP skickas tre datagram) och namn/ip-adress för router som skickade tillbaka felmeddelanden (router där TTP nådde värdet noll). En asterix betyder att inget svar kom innan tracert tröttnade på att vänta (time-out). Observera att datagrammen kan ta olika vägar från gång till gång. E. Hur många routrar passerar ett IP-datagram på vägen mellan källa (datorn ni sitter vid) och destination (Teknocenters web-server): F. Studera namnen på routrarna för att grovt gissa vilken väg IP-datagrammen tar geografiskt: 4. Nätverksrelaterade kommandon i UNIX Motsvarigheter till ovan testade kommandon finns i UNIX, t.ex. kommandot traceroute. Använd kommandot man om ni vill få reda på mer om kommandona, t.ex. man traceroute. A. Starta telnet-klienten (om den inte finns i startmenyn så leta i C:\Winnt\system32) och logga in på någon av högskolans arbetsstationer. B. Kör kommandot: netstat -r Routingtabellen i arbetsstationen visas med detta kommando. Vilken router är angiven som "default router"? C. Kör kommandot (använd parametern -n också om adresser skall visas som "dotted-decimal"): netstat -p ARP-tabellen visas, dvs de par av MAC-adress och IP-adress (här angivet som namn) som är kända. Kommunicera med två hosts som inte finns representerade i ARP-tabellen med hjälp av ftp, rlogin eller dylikt. Den ena hosten skall vara ansluten till samma nät (ingen router mellan källa och destination) medan den andra skall ligga längre iväg, t.ex. utanför

högskolan. För vilken av de två destinationerna så sker det en förfrågan med hjälp av ARPprotokollet så att ARP-tabellen kan uppdateras? Kör netstat-kommandot igen för att kontrollera och jämföra ARP-tabellen före och efter. Eftersom den andra destinationen ligger utanför det direktanslutna nätet så skall datagrammen skickas till en router (next-hop på väg till destination), i detta fallet "default gateway" och MAC-adressen för denna lär redan finnas i ARP-tabellen (kontrollera). D. Uppgift D, E och F är i första hand till för att få lite kännedom om vad man kan få fram för övrig information, information som dock kan vara svår att tyda utan djupare granskning. Med andra ord så behöver ni inte ta uppgifterna så allvarligt. Kör nedanstående kommando för att studera statistik för TCP/IP-trafik till/från arbetsstationen, t.ex. hur många TCP-ACK som sänts: netstat -s E. Kör nedanstående kommando för att se status för UDP- och TCP-portar: netstat -a F. Kör nedanstående kommando för att se status för nätverksinterface (Ethernet) där t.ex. antal kollisioner visas. netstat -i G. Denna övning skall ge exempel på applikationsprotokoll med klartextkommandon. Kör nedanstående kommando för att få en TCP-förbindelse till högskolans www-server på port 80. telnet www.hh.se 80 Port 80 används för http-protokollet, ett enkelt filöverföringsprotokoll som används för att föra över bl.a. web-sidor. Skriv nedanstående http-kommando för att hämta en html-fil (kan egentligen vara vilken typ av fil som helst) över den skapade TCP-förbindelsen. OBS, kommandot GET skall skrivas med versaler och hela raden skall följas av TVÅ tryck på return/enter. GET /staff/magnusj/datorkom.htm HTTP/1.0 Eftersom ni kör en telnet-klient-applikation så kommer dess innehåll (samt lite annan information först, t.ex. 200 som betyder OK) att skrivas ut på skärmen som ren text. Om det hade varit en www-klient som hade hämtat filen så hade www-klienten tolkat filens innehåll enligt html-språket och skrivit ut den formatterad på skärmen. 5. Sockets och klient/server-kommunikation Ni skall nu kompilera ett färdigt program och därefter göra smärre ändringar i det. Tanken är att visa att man enkelt kan komma igång med klient/server-kommunikation över Internet med hjälp av sockets om man har ett skal att börja med (t.ex. så är funktionerna i sock.c generella rutiner). 5.1 Förberedelser A. Hämta källkodsfilerna från kursens hemsida: http://www.hh.se/staff/magnusj/datorkom.htm B. Packa upp filerna med t.ex. WinZip. C. Skapa ett projekt för 32-bit konsollprogram i Visual C++ (version 5 förutsätts i förklaringarna av menyer nedan), där de hämtade filerna ingår.

D. Se till att ".lib"-filen enligt nedan länkas (se meny projects -> settings, under fliken "link", fält "object/library modules") och att rätt ".h"-fil inkluderas. Välj något av följande alternativ beroende på aktuellt operativsystem: Kompilera med "winsock2.h" inkluderad (görs i befintlig källkod) och länka med "ws2_32.lib". Endast testat med framgång under Windows NT 4.0 och Windows 98. Programmet kräver Ws2_32.dll och Ws2help.dll för att kunna köras. Kompilera med "winsock.h" inkluderad (ändring i källkod från winsock2.h måste göras) och länka med "wsock32.lib". Testat med framgång under Windows NT 4.0, Windows 95 och Windows 98. Programmet använder äldre ".dll"-filer. E. Börja med att kompilera programmet och testa det enligt nedan 5.2 Test av befintligt program A. Välj alternativet "TCP Daytime" vilket är en klient som kopplar upp sig till valfri daytimeserver och väntar på svar. Genom att i källkoden välja portnummer "daytime" så översätts detta till portnummer 13 vilket är den så kallade "well-known port" för daytime. Välj namn eller IPadress till valfri dator med DAYTIME aktiverat (timehost.hh.se eller remote.stud.hh.se). När TCP-förbindelsen är upprättad så kommer daytime-servern att svara (utan att något egentligt kommando skickats) med att skicka aktuellt datum och tid. B. Kör igång två instanser av programmet, en server först och sedan en klient. Servern ligger och väntar på anrop från godtycklig klient på porten som ni valt. När ni startar klienten så skall ni välja samma portnummer eftersom detta tillsammans med serverns IP-adress bildar en så kallad end-point-address. Det är just denna end-point-address som det aktuella server-programmet lyssnar efter anrop på. Ni kan även testa att köra servern på en dator och klienten på en annan. 5.3 Modifiering av programmet A. Modifiera servern så att den returnerar sitt namn (enligt anrop av gethostname) till klienten. B. Ni skall nu skriva ett program som skall kunna användas för att kontrollera om klockorna i två datorer är någorlunda synkroniserade med varandra. Modifiera TCPdaytime-klienten så att man först matar in TVÅ IP-adresser eller namn. Därefter skall programmet koppla upp sig till de båda daytime-servrarna. Sist skall svar inväntas från de båda samt skrivas ut på skärmen. Använd två sockets istället för en för att lösa uppgiften. 5.4 Modifiering av programmet Ni skall nu göra en chat-applikation. Ni ska använda UDP och realisera en server och klient. Enda skillnaden mellan server och klient är att servern måste startas först. Efter start ligger servern och väntar på att en klienten startas och tar initiativ genom att skicka ett token till servern. Token kommer sedan att vandra mellan klient och server där den datorn som har token frågar användaren efter en textrad via tangentbordet. Om användaren inte har något att sända så trycker han/hon bara på <CR> vilket får till följd att token skickas tillbaka till den andra noden igen. Om användaren vill mata in text så blir den enda skillnaden den att textraden skickas med token för att sedan skrivas ut på den andra datorns skärm. Nedan ser du tillståndsgrafer för server och klient.

Server: Start; Vänta på token <CR> nedtryckt; Skicka token och eventuell text Token mottaget; Skriv ut mottagen text (om ej tom) och fråga användaren efter ny text Vänta på inmatning från användaren Klient: Start; Skicka token Vänta på token <CR> nedtryckt; Skicka token och eventuell text Token mottaget; Skriv ut mottagen text (om ej tom) och fråga användaren efter ny text Vänta på inmatning från användaren