Min tid som student på LTU


Välkommen till min blogg!

Jag studerar till Högskoleingejör inom data/elektronik på Luleå tekniska universitet.

Min förhoppning är att kunna förbättra mitt studieresultat med hjälp av denna blogg och er som läser mina inlägg. Jag hoppas därför på att ni kommenterar mina inlägg, speciellt om ni är studenter själva!

lördag 10 maj 2014

Datakommunikation uppgift 3

Wireshark är ett program som filtrerar datapaket i nätverkstrafik. I denna uppgiften ska jag använda programmet för att bersvara skillnaden mellan Capture filter och Display filter?

Dessutom ska jag förklara hur filtrerar
- endast ICMP-paket (Internet Controll Message Protocol),
- endast ARP-paket,
- ICMP och ARP-paket
- alla paket till din dators IP
- alla paket till din dators MAC-adress
- alla paket.

1) Hur används filter?
Genom att ange en ”sting” med information i fältet för filter kan man filtrera de datapaket
som finns på nätet dit datorn är kopplad. En syntax (kod) kontroll utförs samtidigt som man skriver
in önskad filtrering och vid fel inmatning blir bakgrunden röd och vid korrekt inmatning blir
bakgrunden grön.
Capture filter = Används när man vill fånga in datapaket som finns på nätet eller paket som
skickas mellan två specifika punkter tex din egen dator och din router.
Display filter = Används för att filtrera exakt de paket du är intresserad utav bland många
”infångade” paket.

2) ICMP - Paket
ARP - Paket = Skrivs endast ”arp”.
ICMP & ARP – Paket = Skrivs endast ”icmp or arp”.
Alla paket till min IP – adress = Skrivs ” host 192.168.0.114”.
Alla paket till min MAC-adress = Skrivs ”ether host 00-26-5A-E5-7F-A0”.
Alla paket = Skriver ingenting.

Wireshark är ett mycket användbart program, speciellt när man vill spåra datatrafiken i ett nätverk till expempel vid felsökning. Programmet är mycket avändbart för att visa hur osäkra internet anslutningar kan avslöja känslig data och hur enkel det är att missbruka detta.

Datakommunikation uppgift 2

I uppgift 2 ska jag räkna ut en signals räckvidd beroende på signalhastigheten. 

Frekvensområdet för downstream(nedladdning) signal delas in i flera delkanaler om 4 kHz där varje delkanal kan överföra 4000 symboler/sekund innehållande 8 bitar/symbol. Sändningseffekten i varje delkanal är 0,1 mW och mottaget brus kan uppskattas till –100 dBm (decibel-milliwatt) i varje delkanal. Man behöver också ett viss givet ett signal/brus-förhållande (SNR eller Signal Noise Ratio) beroende på
vald modulationsmetod. Kopparkabelns (som singalen överförs med) dämpning är frekvensberoende tecknas:

Dämpning/km L=10+8,0*f [dB/km] f= frekvensen i MHz

Jag ska beräkna räckvidden för en signal med hastigheten 256 kbit/s med SNR på 30 dB.

Överföring av 4000 symboler/s
Datahastighet/delkanal=4000*10=40 kbit/s
S = 0,1 mW = -10 dBm
N = -100 dBm
Total signalstyrka i dBm = -10-(-100) = 90 dBm
Total signalstyrka efter modulation = 90-30 = 60 dBm

Räckvidd för 256kb
Antal kanaler för överföring= 256/40 = 6,4 st    
Max frekvens = 200 + 6,4 * 4 = 225,6 kHz = 0,2256 MHz
L = 10 + 8 * 0,2256 = 11,80 dB
Avstånd = 60/11,80 = 5,08 km

Denna uppgiften har varit mycket lärorik. En intressant sak är att ju högre signalhastigheten är desto lägre blir räckvidden. Detta måste bero på att ju högre hastigheten blir desto större blir dämpningen från kabeln. Detta betyder att vill man nå högre hastigheter och samtidigt få en större räckvidd måste dämpningen i kabeln bli mycket mindre, vilket leder till dyrare kablar.

Datakommunikation uppgift 1

Det finns två principer för att överföra digital information över en kanal, beroende på kanalens
egenskaper: antingen skickar man datasignalen ”direkt” ut på kanalen (basbandsöverföring) eller
så använder man bärvågsmodulering.

I uppgift 1 ska jag:
1. Beskriva de båda principerna och redogöra för när det är lämpligt att använda respektive
princip samt för vilka olika typer av medier som de olika principerna passar.
2. Beskriva skillnaden på informationshastighet (=överföringshastighet) och symbolhastighet.
3. Beskriva vilka två faktorer som direkt är avgörande för en kanals överföringshastighet?
4. Redogöra för hur man kan öka informationshastigheten på en kanal utan att behöva öka
symbolhastigheten samt beskriva någon lämplig modulationsmetod smat vilka begränsningar som
finns?

1a. Basbandsöverföring:  Överföring i denna kanal sker mellan olika medier direkt utan behov av modulering. Detta betyder att man ständigt kan skicka eller ha tillgång till information/meddelande i kanalen. Telefonnätet är en basbandskanal där överföringen sker genom tvinnad parkabel. Genom att koppla telefonen till uttaget kan man få tillgång till nätet nästan omedelbart. Ethernet är också ett annat alternativ där man vid ett hemma-nätverk kan ansluta flera datorer och därmed få tillgång till nätverket samt internet.


1b.Passbandsöverföring (bärvågsmodulering): Innebär att informationen eller meddelandet måste moduleras för att skickas ut på kanalen. Detta alternativ är lämpligt att änvända tex i radio, där man kan sända olika typer av information genom att modulera frekvens, amplitud och fas.


2a. Informationshastighet (överföringshastighet): Är hur fort data överförs från en punkt till en annan tex. när man laddar ner. Informationshastigheten anges i bitar/sekund (bits/s) och kan även erhållas genom att multiplicera antal symboler/sekund med antal bitar/symbol. 


2b. Symbolhastighet:
Är antal skickade symbol/sekund där en symbol är en del av datan. Symbolhastigheten är alltid densamma oavsett antalsymboler  eller bithastigheten.


c. Avgörande faktorer för överföringshastighet:  Bandbredden är en faktor påverkar överförings-hastigheten på så vis att ju högre bandbredden är desto högre överföringshastighet kan man uppnå. BER (bitfel) är en annan faktor som påverkar överföringen. Skickade paket som rapporteras som felaktiga måste skickas om igen vilket resulterar i att det tar längre tid att skicka data.

d. Hur ska man öka informationshastighet samt bibehålla symbolhastighet:
Genom att öka antal symboler/s kan man därmed öka bithastigheten. Att öka antal symboler innebär att öka antal nivåer vilket därmed kräver att man genomför amplitud modulering. Nackdelen med amplitudmodulering är att amplitudskillnaden mellan symbolerna minskar vilket gör att överföringen blir med störningskänslig.

Uppgiften var mycket lärorikt men inte vidare svårt att slutföra. 

Scriptspråk uppgift 4

Uppgift 4 kombinerar Javascript, PHP samt MYSQL (databas). Uppgiften går ut på att skapa webbtjänsten MINILIBRIS. Användare skall kunna registrera sig som medlem direkt från webbplatsen och kan då sedan beställa böcker on-line. För varje medlem registreras dennes unika användarnamn, namn, efternamn, adress och telefonnummer. Anger man ett användarnamn som redan är upptagen, uppmanas man att välja ett annat. Medlemmar loggar in med sitt användarnamn och kommer då till beställningssidan.

För att lösa uppgiften skrev jag kod som hanterar olika bitar av webbtjänsten.

Första delen var att hantera registreringen av nya medlemmar och för detta skrev jag kod som hanterar anslutningen till databasen via MYSQL.

Därefter skrev jag koden som kontrollerar om användaren existerar i databasen vid försök till inloggning. Här använder jag mig av "Cookies" samt "Session". Kakor är små filer som lagrar information om en specifik användare. En session används vid inloggning där en session skapas för varje användare och är oberoende från varandra. När användaren loggar ut stängs sessionen ner utan att andra användare påverkas.

Sedan kommer koden som hanterar sökning efter böcker i databasen. Sökningen sker genom "Queries" till databasen via MYSQL. En viktig punkt med använding av MYSQL via PHP är att se till att internetanslutningen är säker för att undvika SQL-injektion (SQL-attack) från hackare.

Sist skrev jag koden som hanterar beställning av böcker. Slutligen skrev jag även "index" sidan, alltså den webbsida som användaren ser när denne använder sig av webbtjänsten

Den här uppgiften har varit mycket lärorik och rolig. Jag har fått lära mig hur man använder PHP språket för att kunna ansluta till en databas och både kunna lagra och hämta data.

Scriptspråk uppgift 3

Uppgift 3 går ut på att skriva en PHP-fil som definierar följande:

1. En funktion green($s) som gör att $s skrivs i grön färg alltså om funktionen skulle användas tex. green("Detta skrivs i grön färg") skall jag få utskriften "Detta skrivs ut i grön färg" i grön färg :).

2. En funktion write_array($arr) som tar emot arrayen $arr som parameter och visar alla array-element i en tabell.

Nu har jag gått igenom fler anteckningar och föreläsningar och är rätt så insatt i PHP språket. Jag har två deluppgifter att lösa och eftersom jag sedan tidigare har studerat språket C++ är jag van vid funktioner och arrayer. Nu är det bara att implementerar samma grundprincip i PHP språket vilket visade sig inte vara så svårt.

För att lösa uppgiften skrev jag följande kod.

<HTML>
<HEAD>
<TITLE>Labb3 - Uppg1A</TITLE>
</HEAD>
<BODY>
<?php
function green($texttoprint){
echo "<font color='green'>$texttoprint:<br><br></font>";
}

function write_array($arr){
$arraylength = count($arr);
$n=0;

echo
"<table border='1' width='200'>
<tr>
<th>Key</th>
<th>Element</th>
</tr>";

for($i=0;$i<$arraylength;$i++){
echo "<tr>
<td>$n</td>
<td>$arr[$i]</td>
</tr>";
$n++;
}

echo "</table>";
}

function my_max($arr){
echo "<br>Max value is " . max($arr) . ".";
}
?>
</BODY>
</HTML>

Vill du prova? Kopiera koden ovan och klistra in det i ett nytt textdokument och spara filen med filändelsen ".PHP".

Deluppgift 1 var inte så svår, använde mig av tidigare kunskap i uppgift 2.

Deluppgift 2 var däremot lite svårare eftersom jag inte hade skrivit ut en array som en tabell. Jag fick lära mig tabellen börjar med <table> och slutar med </table>. Sedan börjar varje rad i tabellen med <tr> och slutar då med </tr>. Innuti varje rad kan man sedan ange önskat antal kolumner via <td> och </td>. Nyttig kunskap:)!

Scriptspråk uppgift 2

Uppgift 2 gick ut på att skapa en PHP (Hypertext Preprocessor file) fil som skriver ut "Hello world" 10 gånger, varje gång i en ny rad där varannan rad ska ha texten utskriven i blå färg.

PHP är ett nytt språk för mig och det är väldigt intressant. PHP är inte likt Javascript eller HTML eftersom scriptet körs på serversidan vilket betyder att sidorna kan laddas fortare och säkrare.

För att lösa uppgiften läste jag först alla föreläsningsanteckningar och skrev följande kod:

<HTML>
<HEAD>
<TITLE>Hello World</TITLE>
</HEAD>
<BODY>
<H1>
<?php
for($i=0;$i<5;$i++){
echo "<font color='blue'>HELLO WORLD <br></font>";
echo "<font color='red'>HELLO WORLD <br></font>";
}
?>
</H1>
</BODY>
</HTML>

Vill du prova? Kopiera koden ovan, klistra in det i ett nytt textdokument och spara sedan dokumentet med filändelsen ".php".

Koden är ganska kort och enkel. Till min förvåning var det inte så svårt att skriva i PHP-språket. Det räcker nämligen att börja med "<?php" och avsluta med "?>". Dessa är markörer för start av PHP respektive slut för PHP och skrivs innanför BODY sektionen i HTML scriptet. Lite krånligt eller?

Vi får se vad nästa uppgift kommer att innehålla, hoppas att jag kan börja skriva lite mer avancerat snart.

Scriptspråk uppgift 1

Uppgift 1 gåt ut på att skapa ett HTML-dokument som innehåller ett formulär med tre textrutor (type = text) och en Räkna-knapp (type = button).

Till detta ska jag även skriva en JavaScript-funktion "Power(X,N)" som skall räkna ut "X upphöjt till N", alltså användaren skall kunna mata in "talet X" i textruta 1 och "talet N" i textruta 2. När man klickar på knappen skall resultatet av funktionen "Power(X, N)" visas i ruta 3.

Uppgiften var väldigt enkel eftersom jag sedan tidigare har lite erfarenhet av HTML kodning. För att lösa uppgiften skrev jag följande kod:

<HTML>
<HEAD>
<TITLE>Uppgift1</TITLE>

<script language="javascript" type="text/javascript">

function Power(X,N){
<!--
return document.form1.result.value=Math.pow(X,N)
-->
}
function printResult(){
<!--
var x = parseInt(document.form1.X.value)
var n = parseInt(document.form1.N.value)
if(x > 0 && n > 0)
Power(x,n)
else
alert("Kontrollera inmatningsfälten!")
-->
}
</script>
<noscript>
"Din webbläsare kan inte visa javascript"
</noscript>
</HEAD>
<BODY>
<form name="form1" action="" method="get">
Ange X här: <input type="text" name="X"><BR></BR>
Ange N här: <input type="text" name="N"><BR></BR>
Ditt resultat: <input type="text" name="result"><BR></BR>
<input type="button" name="berakna" value="Beräkna" onClick=printResult()>
</form>
</BODY>
</HTML>

Vill du prova? Kopiera koden ovan, öppna upp ett nytt textdokument och spara filen i HMTL format genom att ange .html som filändelse när du sparar filen.

I denna uppgiften lärde jag mig att skriva javascript kod, vilket jag inte hade gjort tidigare. Det visade sig dock att javascript kodning inte var speciellt svårt när man väl har lärt sig formatet.

Jag hoppas att uppgift 2 är lite svårare och att jag kan lära mig något nytt.