Modelløsninger til øvelser fra Netværk og Operativsystemer

Øvelserne fra Kapitel 30

Modelløsninger til øvelser

Øvelse 1.0

I [Bro12] på side 28-29 (bogens, ikke pdf'ens) er der Q&E, Questions and Exercises. Besvar alle tre. Nummerer svarene 1.01, 1.02, og 1.03.

Løsningsforslag NOS - Øvelse 1.0
Løsning øvelse 1.01
  • Celle 5 har værdien 8. Celle 6 får værdien 5.
  • Celle 6 får værdien 8, celle 5 beholder værdien 8.
Løsning øvelse 1.02
  • Start betingelse: Celle 2 har værdien x. Celle 3 værdien y.
  • Efter skridt 1: Celle 2 har værdien x. Celle 3 får værdien x.
  • Efter skridt 2: Celle 2 får værdien x. Celle 3 har værdien x.

En ombytning af de to værdier kunne foregå således:

  • Skridt 1: Skriv værdi af celle 2 ind i celle 4. Celle 4 har nu værdien x.
  • Skridt 2: Skriv værdi af celle 3 ind i celle 2. Celle 2 har nu værdien y.
  • Skridt 3: Skriv værdi af celle 4 ind i celle 3. Celle 3 har nu værdien x.

Banalt ikke? Men se herunder, ref: https://en.wikipedia.org/wiki/XOR_swap_algorithm

nmlmbp php-sources  $ php swapvalues2vars.php
i = 42
j = 13
i = 13
j = 42



     i =       00101010 = 42

     j =       00001101 = 13

               --------

     i = i^j = 00100111

               --------

     j = j^i = 00101010 = 42

               --------

     i = i^j = 00001101 = 13
Løsning øvelse 1.03

En hukommelse på 4 KB = 4 * 210 = 4 * 1024 B = 4096 Bytes. 4096 * 8 = 32768 bits aka 32 Kb.

Øvelse 1.1

I [Bro12] på side 41-42 (bogens, ikke pdf'ens) er der Q&E, Questions and Exercises. Besvar nr. 1-8. Nummerer svarene 1.11, 1.12, … 1.18.

Løsningsforslag NOS - Øvelse 1.1
Løsning øvelse 1.11
01000011 01101111 01101101 01110000 
01110101 01110100 01100101 01110010 
00100000 01010011 01100011 01101001
01100101 01101110 01100011 01100101

Kan praktisk skrives om til:

436F6D70 75746572 20536369 656E6365

Der m ASCII tabellen bliver til

Computer Science
Løsning øvelse 1.12

Store bogstaver har koder, hex, 4x og 5x. Små bogstaver har tilsvarende 6x og 7x. Det svarer til:

0100nnnn - 0101nnnn // store bogstaver
0110nnnn - 0111nnnn // små bogstaver, dvs forskellen er
--x----- - --x----- // på x-bitten
Løsning øvelse 1.13
"Stop!" Cheryl shouted.
2253746F 70212220 43686572 796c2073 686F7574 6564

00100010 01010011 01110100 01101111
01110000 00100001 00100010 00100000
01000011 01101000 01100101 01110010
01111001 01101100 00100000 01110011
01101000 01101111 01110101 01110100
01100101 01100100


Does 2 + 3 = 5?
446F6573 2032202B 2033203D 20353F

01000100 01101111 01100101 01110011
00100000 00110010 00100000 00101011
00100000 00110011 00100000 00111101
00100000 00110101 00111111
Løsning øvelse 1.14

Konventionelt er et b kodet som 01100010. Vi tildeler nu 1 værdien og 0 værdien .

Et b ser i denne binære kode således ud: ∅∃∃∅∅∅∃∅

Løsning øvelse 1.15
  1. b2d.html

    Figur B.3.

  2. Figur B.4.

  3. Figur B.5.

  4. Figur B.6.

  5. Figur B.7.

  6. Figur B.8.

Løsning øvelse 1.16

d2b.html

  1. 6 = 1102
  2. 13 = 11012
  3. 11 = 10112
  4. 18 = 100102
  5. 27 = 110112
  6. 4 = 1002
Løsning øvelse 1.17

Tre bytes med ASCII er max 999.

Tre byte med binære er max 11111111 11111111 11111111. Det er omregnet 1677721510, aka 16M.

Løsning øvelse 1.18
a. 0000111100001111
   0F0F = 15.15

b. 001100110000000010000000
   330080 = 51.0.128

c. 0000101010100000
   0AA0 = 10.160
Øvelse 1.2

Find og læs de følgende RFC'er, giv et ultrakort resume over budskabet i hver af dem. Nummerer svarene 1.2.1, 1.2.2, etc.

Bemærk at de hver især er i et af flere mulige formater: txt, html, pdf. HTML5-udgaven har links til de andre formater. I kommer til at læse en del af disse. Find ud af hvilket format I foretrækker.

Løsningsforslag NOS - Øvelse 1.2
Løsning øvelse 1.21

Fragment af RFC 1462 (Ed Krol)

This FYI RFC answers the question, "What is the Internet?" and is produced by the User Services Working Group of the Internet Engineering Task Force (IETF). Containing a modified chapter from Ed Krol’s 1992 book, "The Whole Internet User’s Guide and Catalog," the paper covers the Internet’s definition, history, administration, protocols, financing, and current issues such as growth, commercialization, and privatizat
Løsning øvelse 1.22

Fragment af RFC 1122, section 1.1.3

To communicate using the Internet system, a host must implement the layered set of protocols comprising the Internet protocol suite. A host typically must implement at least one protocol from each layer. The protocol layers used in the Internet architecture are as follows [INTRO:4]:

Fortsætter med at beskrive lagene som vi gjorde i introen.

Løsning øvelse 1.23

Fragment af RFC 5000 (obsoleted by RFC 7100)

Status of This Memo

   This memo provides information for the Internet community.  It does
   not specify an Internet standard of any kind.  Distribution of this
   memo is unlimited.

IESG Note

   This document obsoletes RFC 3700.  It also reclassifies RFCs that
   were previously published as STD 1 as Historic.  More specifically,
   this RFC moves RFCs 3000, 3300, 3600, and 3700 to Historic status.

Abstract

   This document is published by the RFC Editor to provide a summary of
   the current standards protocols (as of 18 February 2008).  It lists
   those official protocol standards, Best Current Practice, and
   Experimental RFCs that have not been obsoleted; it is not a complete
   index to the RFC series.  Newly published RFCs and RFCs whose status
   has changed are starred.

   For an up-to-date list, see http://www.rfc-editor.org/rfcxx00.html,
   which is updated daily.
Løsning øvelse 1.24

Fragment af the RFC 968. Et digt skrevet af V. Cerf en af internettets fædre, i forbindelse med de første forsøg på at teste et pakkekoblet net.

DISCUSSION

   Twas the night before start-up and all through the net,
     not a packet was moving; no bit nor octet.
   The engineers rattled their cards in despair,
     hoping a bad chip would blow with a flare.
   The salesmen were nestled all snug in their beds,
     while visions of data nets danced in their heads.
   And I with my datascope tracings and dumps
     prepared for some pretty bad bruises and lumps.
   When out in the hall there arose such a clatter,
     I sprang from my desk to see what was the matter.

Øvelserne fra Kapitel 31

Modelløsninger til øvelser

Øvelse 2.1

Hvordan ser et legalt hostnavn ud? Kort beskrivelse med den rette terminologi fra lektion og RFC'er.

Øvelse 2.2

Brug nettet til at finde hvad ud af hvilke services en navneserver udbyder. Hvordan får man information. (Hints: DuckDuckGo er din ven. nslookup kunne være et nøgleord.)

Øvelse 2.3

I Danmark findes der, ligesom i andre lande en whois service. Find ud af hvem som udbyder den, og se hvad den tilbyder. DuckDuckGo er din ven.

Øvelse 2.4

Udfør telnet freechess.org fra en terminal. Check trafikken med wireshark. Se om du kan finde fx brugerid, eller password.

Øvelse 2.5

Log ind på iab.blackboard.com. Lad det overvåge af wireshark, og vis de frames, det medfører. Det kan gøres ved at kopiere teksten fra de frames, der kommer, ind et tekstdokument.

Øvelse 2.6

Send en email til dig selv. Brug din MUA til at checke headerinformation til den modtagne mail.

Løsningsforslag NOS - Øvelse 2.n
2.1
Et legalt hostnavn kunne være fx www.x15.dk, hvor www er en host på domænet x15 på top level domænet dk. Et alternativ kunne være fractions.x15.dk, hvor fractions er hostnavn, og resten som ovenfor. Taget med for at vise, at hostnavne kan være meningsfyldte, de behøver ikke være generiske. RFC952, siger:
ASSUMPTIONS

   1. A "name" (Net, Host, Gateway, or Domain name) is a text string up
   to 24 characters drawn from the alphabet (A-Z), digits (0-9), minus
   sign (-), and period (.).  Note that periods are only allowed when
   they serve to delimit components of "domain style names". (See
   RFC-921, "Domain Name System Implementation Schedule", for
   background).  No blank or space characters are permitted as part of a
   name. No distinction is made between upper and lower case.  The first
   character must be an alpha character.  The last character must not be
   a minus sign or period.  A host which serves as a GATEWAY should have
   "-GATEWAY" or "-GW" as part of its name.  Hosts which do not serve as
   Internet gateways should not use "-GATEWAY" and "-GW" as part of
   their names. A host which is a TAC should have "-TAC" as the last
   part of its host name, if it is a DoD host.  Single character names
   or nicknames are not allowed.
2.2
https://en.wikipedia.org/wiki/Nslookup fortæller en del om den basale opgave, at give et IPnummer tilbage, når du præsenterer et DNSnavn.
2.3
Whois er beskrevet i https://en.wikipedia.org/wiki/WHOIS , og er baseret på https://tools.ietf.org/rfc/rfc3912 . I Danmark står https://who.is/whois/dk-hostmaster.net/ formelt for denne service. Den er dog uddelegeret, så mange byder ind.
2.4
Figur B.9. Be careful out there!
Be careful out there!

2.5
Tænkt som praktisk øvelse i brug af WireShark. Ikke nogen specifik løsning.
2.6
Return-path: <hjeronimus@icloud.com>
Received: from st11p00im-asmtp001.me.com ([17.172.80.95])
 by ms16563.mac.com (Oracle Communications Messaging Server 7.0.5.36.0 64bit
 (built Sep  8 2015)) with ESMTP id <0O7S00AIA1G7XPC0@ms16563.mac.com> for
 hjeronimus@icloud.com; Thu, 26 May 2016 09:09:43 +0000 (GMT)
Original-recipient: rfc822;hjeronimus@icloud.com
Received: from [192.168.1.233] (unknown [85.191.7.38])
 by st11p00im-asmtp001.me.com
 (Oracle Communications Messaging Server 7.0.5.36.0 64bit (built Sep  8 2015))
 with ESMTPSA id <0O7S0010R1G5ZK00@st11p00im-asmtp001.me.com> for
 hjeronimus@icloud.com (ORCPT hjeronimus@icloud.com); Thu,
 26 May 2016 09:09:42 +0000 (GMT)
X-MANTSH: 1TEIXWV4bG1oaGkdHB0tNT0ReRV9eGBgaEhEKTEMXGx0EGx0YBBkfBBgSEBseGh8
 aEQpMWRcbGhocEQpZTRdkRV5gX0RBEQpZSRcRClleF2hueREKQ04XfhtlZmxQa05MSGd+GVxDR
 WMYa1xcTHsZXUtyQwFofF8RClhcFxkEGgQYEgdNThIcTBNOTwUbHQQbHRgEEhkEGx0QGx4aHxo
 RCl5ZF2VMbWJSEQpDWhcSHwQbExsEHQQZEhEKXk4XGxEKQkUXYRlQH3NhGElOWmERCkJOF2tFG
 lJQHkNcWVxoEQpCTBdnUxtoWkdFGhJfEhEKQmwXaGFbEgVhEkt8YFARCkJAF2tcW0QeR25PYWA
 eEQpCWBdnUxtoWkdFGhJfEhEKcGgXbEdufUBPG3t7eHMQGhEKcGgXaEsSX3B/X3BMX18QGhEKc
 GwXZxlfG1pZRl9/YGIQGRoRCm1+FxoRClhNF0sR
X-CLX-Shades: NotJunk
X-CLX-Score: 1006
X-CLX-UnSpecialScore: 1006
X-CLX-Spam: false
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,,
 definitions=2016-05-26_04:,, signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0
 clxscore=1006 suspectscore=1 malwarescore=0 phishscore=0 adultscore=0
 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.0.1-1510270003 definitions=main-1605260106
To: hjeronimus@icloud.com
From: Niels Muller Larsen <hjeronimus@icloud.com>
Subject: test af email to self
Message-id: <d30aea21-916f-c9d8-355c-b688bdc852f3@icloud.com>
Date: Thu, 26 May 2016 11:09:40 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.1.0
MIME-version: 1.0
Content-type: text/plain; charset=utf-8; format=flowed
Content-transfer-encoding: 7bit

Hello world :)

-- 
Niels Muller Larsen, MSc
Programmer, Assoc Professor

You can tune a piano, but you can't tuna fish.

You can tune a filesystem, but you can't tuna fish.
        -- from the tunefs(8) man page

Øvelserne fra ???

Modelløsninger til øvelser

Øvelse 3.0

Find nogle eksempler på applikationer, der bruger UDP og ikke TCP. Find argumenter for denne beslutning.

Øvelse 3.1

Hvor mange servere kan køre på en internethost? Hvad er den teoretiske overgrænse og hvorfor?

Øvelse 3.2

Kan flere servere køre samme applikationsprotokol på en og samme host? Hvis ja, hvordan? Hvis nej, hvorfor?

Øvelse 3.3

Hvordan kan segmenter komme ud af sekvens ved ankomst til destinationen?

Øvelse 3.4

Hvad er en upålidelig protokol?

Øvelse 3.5

Hvordan finder modtagers IP ud af, til hvilken transport protokol den skal adressere sine data modtaget fra datalink laget?

Øvelse 3.6

Hvorfor skal IP adresser være hierarkiske?

Øvelse 3.7

[Tan96-26] Antag at vi i stedet for 16 bits til netværksdelen af en klasse B adresse bruger 20 bits. Hvor mange klasse B net ville dette tillade.

Øvelse 3.8

[Tan96-27] Konverter ip-adressen hvis hexadecimal repræsentation er C22F1582 til dotted decimal notation?

Øvelse 3.9

[Tan96-28] Et klasse B net har en subnet maske på 255.255.240.0. Hvad er dets højeste antal hosts per subnet?

Løsningsforslag NOS - Øvelse 3.n
3.0
Stackoverflow er fundet:
In situations where you really want to get a simple answer to another server quickly, UDP works best. In general, you want the answer to be in one response packet, and you are prepared to implement your own protocol for reliability or to resend. DNS is the perfect description of this use case. The costs of connection setups are way too high (yet, DNS does support a TCP mode as well). Another case is when you are delivering data that can be lost because newer data coming in will replace that previous data/state. Weather data, video streaming, a stock quotation service (not used for actual trading), or gaming data comes to mind. Another case is when you are managing a tremendous amount of state and you want to avoid using TCP because the OS cannot handle that many sessions. This is a rare case today. In fact, there are now user-land TCP stacks that can be used so that the application writer may have finer grained control over the resources needed for that TCP state. Prior to 2003, UDP was really the only game in town. One other case is for multicast traffic. UDP can be multicasted to multiple hosts whereas TCP cannot do this at all.
3.1
216-1 = 65.535
3.2
Ja, hvis de konfigureres til at lytte på forskellige portnumre
3.3
De kører forskellige veje gennem nettet og kan derfor være udsat for forskellig 'latency'.
3.4
UDP er et eksempel. IP et andet. Upålidelighed er alene et udtryk for, at vi ikke ved, hvorvidt pakken når frem.
3.5
Feltet Protocol lige efter TTL fortæller dette. RFC790, Assigned Numbers, siger TCP: 0000 01102 og UDP: 0001 00012
3.6
http://www.freesoft.org/CIE/Course/Subnet/3.htm har en fin forklaring på dette. Illustreret. Se også https://en.wikipedia.org/wiki/Hierarchical_routing.
3.7
218 = 262.144. Hvorfor ikke 220? Fordi de to forreste bits er reserverede til klasse B prefixet 10. https://en.wikipedia.org/wiki/Classful_network har en fornuftig oversigt.
3.8
C22F1582 = 194.47.21.130
3.9
255.255.240.0 = 11111111 11111111 11110000 00000000 => 212 - 2 = 4094

And what is a byte? Well from 1 - 48 bits ;). Se, igen, Wikipedia: https://en.wikipedia.org/wiki/Byte.

Øvelserne fra ???

Modelløsninger til øvelser

Øvelse 4.0

Få en af dine klassekammeraters IP-adresse. Send en ping til denne adresse, fx ping 111.222.111.222. Substituer med den faktiske IP adresse.

Brug wireshark til at finde klassekammeratens netværkskorts MAC address. Aflever et screendump.

Øvelse 4.1

Samme øvelse som ovenfor, men med ping til www.cnn.org. Had er MAC- and IP-adresserne på det nedværkskort, der videreformidler ping'en.