DA HT2011: F13 Nätverk: Definition, begrepp och historik. AnnSofi Åhn <ahn@dsv.su.se>
Vad är ett nätverk? Två eller flera nätverksenheter som skickar data till varandra över ett kommunikationsmedium 101001010011001001111 101010101010100101010 001001001100110010101 101000100101001010101 2
Vad är en nätverksenhet? Enhet med förmåga att skicka data över ett kommunikationsnätverk 3
Vad är ett kommunikationsmedium? Kabel Av metall, leder elektricitet Av glas, leder ljus Radiovågor 4
Skala Personal Area Network Local Area Network Metropolitan Area Network Campus Area Network Wide Area Network WAN LAN MAN 5
Varför? Allmänbildning Förståelse för hur datorsystem kommunicerar Nyttigt om man utnyttjar nätverkskommunikation 6
Hur kommunicerade man förr? Optisk telegrafi Elektrisk telegrafi Radiotelegrafi Fjärrskriftsmaskiner (teletypes) Telefon 7
Telefoni Skickar ljud som elektriska signaler Modem omvandlar mellan analoga och digitala signaler Kretskopplade nätverk 20120311 / AnnSofi Åhn, Institutionen för Data och Systemvetenskap 8
Kretskopplade nätverk B E A D G C F 9
Paket Data från applikationslagret delas upp i mindre delar: paket Hello Bob, this is Alice! He ll o Bo b, th is is Al ic e! 10
Paketväxlade nätverk B E A D G C F 11
Internets tidiga historia ARPANET Start med 4 noder Nod i Norge NCP Telenet Epost TCP FTP TCP börjar användas BBS TCP/IP USENET SUNET TCP blir standard Minitel BITNET ARPANET/ MILNET DNS NSFNET startar 10 000 hosts Nod i Sverige APANET avslutas WWW 100k hosts Mosaic NSFNET åter för forskning 1965 1970 1975 1980 1985 1990 1995 12
Internets nutida utveckling Webbläsarkrig IPv6 BitTorrent YouTube YouTube vs Pakistan Amazon ebay Google Lunarstorm Blog Napster Wikipedia Skype Facebook Estland eröstar Twitter Spotify IPv4 slut 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 13
Protokoll En uppsättning regler för kommunikation Diplomatiska protokoll Militära protokoll Etikett 14
Standardorganisationer Request For Comments Huvudman: Internet Engineering Task Force http://www.ietf.org/rfc.html IEEE arbetsgrupper Huvudman: Institute of Electrical and Electronics Engineers http://www.ieee.org/publications_standards/index.html 15
Lager Applikationer Separerar olika nivåer av funktionalitet Grupperar protokoll i olika lager TCP/IPmodellen Fyra (ibland fem) lager Kallas också TCP/IPstacken Transport Nätverk Länk Fysiskt/Hårdvara 16
Applikationer Transport Nätverk Länk Fysiskt/Hårdvara 17
Applikationslagret Applikationer Innehåller protokoll för att hantera applikationsdata Hanterar inte själva transporten av data Transport Nätverk Länk Fysiskt/Hårdvara 18
HyperText Transfer Protocol Skickar hypertext och hypermedia över nätverk RFC 2616 Klientserver Textbaserat Connectionless Grunden för många av dagens webbtjänster 19
GET / HTTP/1.1 Host: www.smhi.se UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/ 534.52.7 Version/5.1.2 Safari/534.52.7 Accept: text/html,application/xhtmlxml,application/xml;q=0.9,*/*;q=0.8 AcceptLanguage: svse AcceptEncoding: gzip, deflate Cookie: VISITED_2515=Viewed; userid=6307152e15d7460a4a1250acb42c409a; Connection: keepalive HTTP/1.1 200 OK Date: Fri, 09 Mar 2012 08:00:28 GMT Server: ApacheCoyote/1.1 ContentType: text/html;charset=utf8 ContentLanguage: sv SetCookie: lastclient=31125133281506220695; Path=/ SetCookie: JSESSIONID=17C7C82F8E95843B19C74EEE7C4DB5AD; Path=/ KeepAlive: timeout=1, max=20 Connection: KeepAlive TransferEncoding: chunked 1e18 <?xml version="1.0" encoding="utf8"?> <!DOCTYPE html PUBLIC "//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1transitional.dtd"> Request Header }Response Data 20
Connectionless och connectionoriented Vissa protokoll måste komma ihåg sitt tillstånd Connectionoriented och stateful SMTP, TCP Andra har inget tillstånd att komma ihåg Connectionless och stateless HTTP, UDP 21
Designval Apache... Ready Asterisk... Ready Postfix... Ready orp DCL LCDPro DR RED AC AER CARDER READ OID UA O ENOHP PHONE CIM MIC NIENIL LINEIN AUDI ATA S SATA USB CT EJE W DVDR POWER orp DCL SELECT NumLock UA NIENIL CIM F11 F12 F9 F10 ENOHP Esc BSU JE WRDVD F7 F8 F6 _ ScrollLock PrintScrn SysRq Pause \ Home * 8 ( 9 ) 0 } NumLock PageUp Delete ScrollLock CapsLock Break Insert = End PageDown 7 Shift 9 8 Home 4 PgUp 1 6 5 End 3 2 0 PgDn. Enter Del Ins TCEL E S. ndgp sni 3 2 0 pugp 6 dne 5 1 9 * 8 4 emoh 7 kcolspac /k colmun nwodegap dne kcolmun puegap emoh eteled e kaerb suap kcolllorcs t qrsysnrcs nirp tresni ] tfihs rg tla } [ ' " ; : /?. >, < \ TCEL ES = 21F 1 1F 01 F 9F _ UNEM 8F 7F { 6F 5 P O 0 )9 ( * F 4F 3 I U 8 7 & ^ L K F 2F Y T 6 5 % $ 1F M N J H G R E 4 3 # @ F B V W Q 2 1! ~ ` C X D S A bat Z kcolspac tla cse tfihs lrtc Ctrl retne led lrtc Ctrl Alt Gr Alt Shift REW OP kcolllorcs * / ] { [ " ' O P & 7 L : ;? F3 F4 ^ 6 U I % 5 J K M <, >. / F1 F2 $ 4 T Y # 3 G H @ 2 N E R! 1 D F C V B ~ ` Q W A S Tab CapsLock Z X F5 ATA S REW OP OID TC E JE MENU DR RED AC AER LCDPro BSU TC E WRDVD UNEM orpdcl LCDPro CARDER READ kcolllorcs PHONE retne led. ndgp sni 3 2 0 pugp 6 dne 5 1 9 * 8 4 emoh kcolspac /k colmun nwodegap kcolmun puegap dne eteled tfihs rg tla T EJEC kcolllorcs t qrsysnrcs nirp 21F 1 1F 01 F tresni } [ ' " ; : /?. >, < \ = 9F 8F 7F 6 { F 5F P O 0 )9 ( * 4F 3 I U 8 7 & ^ L K F 2F Y T 6 5 % $ 1F M N J H G R E 4 3 # @ F B V W Q 2 1! ~ ` C X D S A bat Z kcolspac _ DR RED AC AER CARDER READ cse OID UA O AUDI tfihs lrtc AUDIO LINEIN SELECT ENOHP PHONE CARDER READ CIM tla POWER NIENIL W DVDR e kaerb suap emoh ] lrtc USB 7 LINEIN MIC LCDPro SATA MIC LINEIN AUDIO MENU ATA S PHONE MIC SATA SATA USB JE WRDVD REW OP POWER T BSU TC E CT EJE W DVDR USB EJEC W DVDR NumLock F3 F1 F2 Esc ~ `! 1 @ Tab F11 F12 F9 F10 F7 F8 F6 _ ScrollLock PrintScrn SysRq Pause F5 ^ & 7 * 8 ( 9 ) \ Home NumLock PageUp Delete } ScrollLock CapsLock Break Insert = End PageDown Shift * / 7 POWER 9 8 Home ] 0 P { [: " ' ; I O L? 6 % 5 Y U J K M <, >. / $ 4 # R T G H N 2 3 W E D F C V B Q A S CapsLock Z X F4 4 PgUp 6 5 1 End SELECT TCEL ES MENU 3 2 0 PgDn. Enter Del SELECT Ins UNEM MENU Ctrl Alt Gr Alt Shift Ctrl NumLock F3 F1 F2 Esc ~ `! 1 @ Tab F11 F12 F9 F10 F7 F8 F6 ) _ ScrollLock PrintScrn SysRq Pause Home } F5 % ^ 6 & 7 * 8 ( End PageDown ScrollLock 7 Shift NumLock * / 9 8 Home ] 0 P " ' 9 I O L : ;? Y U 5 J K M <, >. / $ 4 # R T G H N 2 3 W E D F C V B Q A S CapsLock Z X F4 [ NumLock PageUp Delete \ { CapsLock Break Insert = 4 PgUp 6 5 1 End 3 2 0 PgDn. Enter Del Ins Ctrl F1 F2 Alt Gr Alt Shift Ctrl F3 Esc ~ `! 1 @ Tab F11 F12 F9 F10 F7 F8 F6 ) 0 _ ScrollLock PrintScrn SysRq Pause Home } F5 ^ 6 & 7 * 8 ( Alt Shift Ctrl End PageDown ScrollLock Shift Alt Gr * / 7 9 8 Home ] P " ' 9 I O L : ;? % 5 Y U J K M <, >. / $ 4 # R T G H N 2 3 W E D F C V B Q A S CapsLock Z X F4 [ NumLock PageUp Delete \ { CapsLock Break Insert = Ctrl 4 PgUp 6 5 1 End 3 2 0 PgDn Ins. Enter Del Peertopeer kcolllorcs retne led. ndgp sni 3 2 0 pugp 6 dne 5 1 9 * 8 4 emoh 7 kcolspac /k colmun nwodegap dne kcolmun puegap emoh eteled e kaerb suap kcolllorcs t qrsysnrcs nirp tresni ] lrtc tfihs rg tla } [ ' " ; : /?. >, < \ = 21F 1 1F 01 F 9F 8F 7F 6 { F 5F P O 0 )9 ( * 4F 3 I U 8 7 & ^ L K F 2F Y T 6 5 % $ 1F M N J H G R E 4 3 # @ F B V W Q 2 1! ~ ` C X D S A bat Z kcolspac _ tla cse tfihs lrtc KlientServer 20120311 / AnnSofi Åhn, Institutionen för Data och Systemvetenskap 22
Praktiskt exempel or PDCL LCDPro DR RED AC AER CARDER READ OID UA O ENOHP PHONE CIM MIC NIENIL LINEIN AUDI Apache... Ready Asterisk... Ready Postfix... Ready ATA S SATA USB T EJEC W DVDR POWER SELECT BSU TC E JE WRDVD REW OP TCEL MENU NumLock F7 F8 F6 F11 F12 F9 F10 _ ScrollLock PrintScrn SysRq Pause Esc ) ( Alt Shift Ctrl 0 \ Home NumLock PageUp Delete } ScrollLock CapsLock Break Insert = End PageDown 7 Shift Alt Gr 9 8 Home Ctrl kcolllorcs * / ] { [ " ' 9 * 8 O P & 7 L : ;? F3 F4 ^ 6 U I % 5 J K M <, >. / F1 F2 $ 4 T Y # 3 G H @ 2 N E R! 1 D F C V B ~ ` Q W A S Tab CapsLock Z X F5 4 PgUp 1 6 5 End 3 2 0 PgDn Ins. Enter Del retne led. ndgp sni 3 2 0 pugp 6 dne 5 1 9 * 8 4 emoh 7 kcolspac /k colmun nwodegap kcolmun puegap dne eteled e kaerb suap emoh kcolllorcs t qrsysnrcs nirp tfihs rg tla 21F 1 1F 01 F tresni ] lrtc } [ ' " ; : /?. >, < \ = 9F ES UNEM 8F 7F 6 { F 5F P O 0 )9 ( * 4F 3 I U 8 7 & ^ L K F 2F Y T 6 5 % $ 1F M N J H G R E 4 3 # @ F B V W Q 2 1! ~ ` C X D S A bat Z kcolspac _ tla cse tfihs lrtc orpdcl LCDPro DR RED AC AER CARDER READ OID UA O ENOHP PHONE CIM MIC NIENIL LINEIN AUDI ATA S SATA USB T EJEC W DVDR POWER SELECT BSU TC E JE WRDVD REW OP TCEL MENU NumLock F6 F5 * & Ctrl / AnnSofi Åhn, Institutionen för Data och Systemvetenskap 8 ( 9 Alt Shift 20120311 _ ScrollLock PrintScrn SysRq Pause \ Home ) NumLock PageUp Delete } ScrollLock CapsLock Break Insert = End PageDown 7 Shift Alt Gr 9 8 Home Ctrl kcolllorcs * / ] { [ 0 " ' O P 7 L : ;? F3 ^ 6 U I % 5 J K M <, >. / F1 F2 $ 4 T Y # 3 G H @ 2 N E R! 1 D F C V B ~ ` Q W A S Tab CapsLock Z X F4 Esc F11 F12 F9 F10 F7 F8 4 PgUp 1 6 5 End 3 2 0 PgDn Ins. Enter Del retne led. ndgp sni 3 2 0 pugp 6 dne 5 1 9 * 8 4 emoh 7 kcolspac /k colmun nwodegap kcolmun puegap dne eteled e kaerb suap emoh kcolllorcs t qrsysnrcs nirp tfihs rg tla 21F 1 1F 01 F tresni ] lrtc } [ ' " ; : /?. >, < \ = 9F ES UNEM 8F 7F 6 { F 5F P O 0 )9 ( * 4F 3 I U 8 7 & ^ L K F 2F Y T 6 5 % $ 1F M N J H G R E 4 3 # @ F B V W Q 2 1! ~ ` C X D S A bat Z kcolspac _ tla cse tfihs lrtc 23
Simple Mail Transfer Protocol Sänder epost Kan inte användas för att läsa epost Klientserver Textbaserat Connectionoriented 24
S: 220 smtp.example.com ESMTP Postfix C: HELO relay.example.org S: 250 Hello relay.example.org, I am glad to meet you C: MAIL FROM:<bob@example.org> S: 250 Ok C: RCPT TO:<alice@example.com> S: 250 Ok C: RCPT TO:<theboss@example.com> S: 250 Ok C: DATA S: 354 End data with <CR><LF>.<CR><LF> C: From: "Bob Example" <bob@example.org> C: To: "Alice Example" <alice@example.com> C: Cc: theboss@example.com C: Date: Tue, 15 Jan 2008 16:02:43 0500 C: Subject: Test message C: C: Hello Alice. Header SMTPkommandon C: This is a test message with 5 header fields and 4 lines in the message body. C: Your friend, C: Bob C:. S: 250 Ok: queued as 12345 C: QUIT S: 221 Bye {The server closes the connection} Body 20120311 / AnnSofi Åhn, Institutionen för Data och Systemvetenskap 25
Tillstånd för HTTP och SMTP HTTP Hanterar varje request utan kunskap om tidigare kontakt Cookies används för att skapa tillstånd SMTP Måste skapa en anslutning och komma ihåg den För att skicka epost behövs mer än ett meddelande till servern 26
Verktyg För testning/felsökning Telnet/PuTTY Wireshark 27
Telnet Används för kommunikation med andra datorsystem RFC15, RFC854 Kan användas för testa andra protokoll HTTP SMTP 28
HTTP med hjälp av Telnet l940:~ anzo$ telnet www.smhi.se 80 Trying 91.192.30.117... Connected to www.smhi.se. Escape character is '^]'. GET / HTTP/1.1 Host: www.smhi.se Kopplar upp med Telnet mot www.smhi.se på port 80 HTTP/1.1 200 OK Date: Fri, 09 Mar 2012 08:42:14 GMT Server: ApacheCoyote/1.1 ContentType: text/html;charset=utf8 ContentLanguage: sv SetCookie: JSESSIONID=C9C06409B017E22201D8371F21FE700C; Path=/ TransferEncoding: chunked HTTPkommunikation 1e4d <?xml version="1.0" encoding="utf8"?> 20120311 / AnnSofi Åhn, Institutionen för Data och Systemvetenskap 29
30
Transportlagret Applikationer Paketerar om data från en applikation så att det kan skickas över nätverket Två protokoll Transmission Control Protocol User Datagram Protocol Portar Transport Nätverk Länk Fysiskt/Hårdvara 31
Portar Applikation Port Identifierar en specifik process på en host FTPserver 21 SSHserver 22 Webbserver 80 NTPserver 123 Subversion 3690 BitTorrent 68816968 32
User Datagram Protocol Snabbt Enkelt Få garantier utöver att data som kommer fram är intakt I princip nätverkslagret plus portar 33
Header offset (bits) 015 1631 0 Source port Destination port 32 Length Checksum 64... Data 34
Transmission Control Protocol Garanterar att alla delar av meddelandet kommer fram Garanterar att alla delar kan sättas ihop i rätt ordning Garanterar att meddelandet är intakt Garanterar att nätverket och mottagaren inte översvämmas 35
Header Offset Octet 0 1 2 3 Octet Bit 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 0 Source port Destination port 4 32 Sequence number 8 64 Acknowledgment number (if ACK set) 12 96 Data offset Reserved N S C W R E C E U R G A C K P S H R S T S Y N F I N Window Size 16 128 Checksum Urgent pointer (if URG set) 20... 160... Options (if Data Offset > 5, padded at end with "0" bytes if necessary)... 36
TCP är komplext! Bild hämtad från Wikipeda Skapad av Sergiodc2, Marty Pauley, Scil100 37
Sliding windows Fönster används för att hantera hur mycket data som ska skickas Storleken är skiftande beroende på kapacitet Visualisering kan ses på http://histrory.visualland.net/tcp_swnd.html 38
Sliding windows Nästa användbara sekvensnummer Redan ACKade Skickade, inte ACKade Inte skickade Inte användbara Paket Fönster av storlek N 39
Sliding windows Nästa användbara sekvensnummer Redan ACKade Skickade, inte ACKade Inte skickade Inte användbara Paket Fönster av storlek N 40
Sliding windows Nästa användbara sekvensnummer Redan ACKade Skickade, inte ACKade Inte skickade Inte användbara Paket Fönster av storlek N 41
TCP vs UDP TCP UDP Storlek på header: Minst 20 bytes 8 bytes Stateless Nej Ja Data i ordning: Ja Nej Data kommer fram: Ja Nej Anpassar hastigheten: Ja Nej Bevarar integriteten: Ja Ja Overhead: Handskakning, ACK, avsked, header Header 42
En praktiskt jämförelse SYN ACK1 2 3 FIN ACK TCP TCP SYNACK ACK ACK ACK ACK FIN Avsändare Mottagare UDP 1 2 3 UDP 43
TCP och UDP i användning TCP är det vanligare protokollet UDP används för flera små protokoll och strömmande media UDP används ofta för multiplayer Doom, Civilization IV, Halo, ARMA: Armed Assault, WoW, Unreal Tournament Steam 44