+ All Categories
Home > Documents > Základy TCP/IP

Základy TCP/IP

Date post: 06-Jan-2016
Category:
Upload: soo
View: 48 times
Download: 3 times
Share this document with a friend
Description:
Základy TCP/IP. Motivace, historie, model Principy adresování, DNS Tok dat, topologie, routing Základní protokoly, aplikace E-mail, FTP, BSD příkazy. Libor Forst. Literatura. D. E. Comer, D. L. Stevens: Internetworking With TCP/IP; Prentice Hall International 1991 - PowerPoint PPT Presentation
82
SISAL Základy TCP/IP 1 Základy TCP/IP Motivace, historie, model Principy adresování, DNS Tok dat, topologie, routing Základní protokoly, aplikace E-mail, FTP, BSD příkazy Libor Forst Libor Forst
Transcript
Page 1: Základy TCP/IP

SISALZáklady TCP/IP 1

Základy TCP/IP

• Motivace, historie, model

• Principy adresování, DNS

• Tok dat, topologie, routing

• Základní protokoly, aplikace

• E-mail, FTP, BSD příkazy

Libor ForstLibor Forst

Page 2: Základy TCP/IP

SISALZáklady TCP/IP 2

Literatura

• D. E. Comer, D. L. Stevens: Internetworking With TCP/IP; Prentice Hall International 1991

• C. Hunt: TCP/IP Network Administration; O'Reilly & Associates 1992

• P. Šmrha, V. Rudolf: Internetworking pomocí TCP/IP;Kopp 1994

• P. Satrapa, J. A. Randus: LINUX - Internet server; Neokortex 1996; ISBN 80-902230-0-1

• L. Dostálek, A. Kabelová: Velký průvodce protokoly TCP/IP a systémem DNS; Computer Press 2002

• Request For Comment (RFC)

Page 3: Základy TCP/IP

SISALZáklady TCP/IP 3

Vznik počítačových sítí

terminály point-to-point propojení

emulace terminálu+

klient-server aplikacerozlehlá síťlokální síť

izolované výpočetní systémy

robustní kompaktní aplikace

Page 4: Základy TCP/IP

SISALZáklady TCP/IP 4

Počítačové sítě

• Lokální sítě (Local Area Network)Lokální sítě (Local Area Network)– zvyšování produktivity díky sdílení prostředků

– menší vzdálenost, vyšší rychlost

– příklady: Novell, napojení bezdiskových stanic, databázové n. tiskové servery

• Rozlehlé sítě (Wide Area Network)Rozlehlé sítě (Wide Area Network)– konektivita, komunikace

– velké vzdálenosti, nižší výkon

– příklady: Internet, Bitnet

Page 5: Základy TCP/IP

SISALZáklady TCP/IP 5

Historie Internetu

• 1969 - Defense Advanced Research Project Agency zřizuje projekt "packet switching network"

• pol. 70. let - ARPANET, point-to-point, pevné linky

• 1980 - Internet, propojení sítí, ARPANET páteří

• 1983 - zavedení TCP/IP v ARPANETu

• pol. 80. - TCP/IP součástí BSD UNIXu

• současnost - boom Internetu

Page 6: Základy TCP/IP

SISALZáklady TCP/IP 6

Vývoj Internetu v číslech

20012001

Zdroj: MIDS, Austin TX, based on historical data

Počet Počet obyvatel obyvatel ZeměZemě

Počet Počet uživatelů uživatelů InternetuInternetu

Počet Počet počítačůpočítačův Internetuv Internetu

82 84 86 88 90 92 94 96 98

5 000 000 000

500 000 000

50 000 000

5 000 000

500 000

50 000

5 000

500

Page 7: Základy TCP/IP

SISALZáklady TCP/IP 7

Typy síťových propojení

Sběrnice (např. 10base2)

Hvězda (např. 10baseT, ATM)

Kruh (např. FDDI, Token-ring)

Point-to-point přímé

Point-to-point přes modemy

Point-to-point bezdrátové (např. laser, radioreléové, WiFi)

Page 8: Základy TCP/IP

SISALZáklady TCP/IP 8

Typy síťových rozhraní

Loopback - „tento počítač“, žádné fyzické zařízení

PPP - sériové propojení point-to-point

Ethernet - společná sběrnice: současný přístup, řešení kolizí (CSMA/CD)

Token ring - předávání volného-obsazeného tokenu po kruhu

FDDI - jednoduchý nebo dvojitý kruh (překlene přerušení vlákna)

ATM - systém přepínačů a virtuálních cest pro tok dat, hlasu,...

Výpis nakonfigurovaných rozhraní: netstat -i

Page 9: Základy TCP/IP

SISALZáklady TCP/IP 9

OSI model

Pořadí Vrstva Úkol

7 aplikační komunikace mezi programy

6 prezentační datové konverze

5 relační navázání relace mezi počítači

4 transportní korektnost přenosu informace

3 síťová dosažení cílového počítače

2 linková přenos dat po navázaném spojení

1 fyzická interpretace elektrického signálu

protokol rozhraní

Page 10: Základy TCP/IP

SISALZáklady TCP/IP 10

-

ARP

TCP

hardware

network interface

internet

transportní

aplikační6

5

4

3

2

1

TCP/IP model

7

OSI Vrstva Protokoly v TCP/IP (příklady)

UDP

Ethernet, FDDI, ATM, SLIP, X.25

IPICMP

FTP

RPC

XDR

NFS

Page 11: Základy TCP/IP

SISALZáklady TCP/IP 11

Spojované/nespojované služby

• spojované (connection-oriented) službyspojované (connection-oriented) služby – obdoba telefonního spojení

– zaručeno doručení datagramů ve správném pořadí (stream)

– aplikace je jednodušší, ale nemůže řídit komunikaci

– TCP je komplikované

• nespojované (connectionless) službynespojované (connectionless) služby– obdoba poštovního spojení

– není zaručeno pořadí ani doručení datagramů

– kontrolu musí provádět aplikace

– aplikace může lépe řídit komunikaci

– UDP je jednodušší

Page 12: Základy TCP/IP

SISALZáklady TCP/IP 12

TCP okna

00

00

00

00

10

10

10

10

10

20

20

20

20

30

30

30

40

40

50

00

10

20

30

40

ACK 10

Page 13: Základy TCP/IP

SISALZáklady TCP/IP 13

Zahájení a ukončení spojení

•Navázání TCP spojení

•Jednostranné uzavření spojení

SYN Seq# c Ack# 0

SYN, ACK Seq# s Ack# c+1

ACK Seq# c+1 Ack# s+1

FIN, ACK Seq# x Ack# y

ACK Seq# y Ack# x+1

Page 14: Základy TCP/IP

SISALZáklady TCP/IP 14

Typy adresování

• HW (linková vrstva)

• SW(síťová vrstva)

• Lidé (aplikační vrstva)

• MAC (ethernetová) adresa (např.: 8:0:20:ae:6:1f)

– dána výrobcem

– nerespektuje topologii

• IP adresa (např.: 194.50.16.71)

– přidělována podle topologie

– určuje jednoznačně síť a v jejím rámci počítač

• Doménová adresa (např.: whois.cuni.cz)

– přidělována podle organizační struktury

– snazší zapamatování

Page 15: Základy TCP/IP

SISALZáklady TCP/IP 15

Konverze adres

• name resolver– řízení statické (/etc/hosts) nebo

dynamické (DNS, NIS)

– konfigurační soubor /etc/resolv.conf

• ARP/RARP– ARP tabulka (cache)

– broadcastová výzva/odpověď

• doménové adresy

• IP adresy

• MAC adresy

Page 16: Základy TCP/IP

SISALZáklady TCP/IP 16

Třídy IP adres

A

B

C

D

E

126~16 k~2 M

~16 M~64 k

254

10

110

1110

1111

net

net

net

net

host

host

host

TřídaTvar adresy

1.bytePočet

sítí strojů

multicast

experimental

1-126

128-191

192-223

224-239

240-255

Začátek

adresy

0

2.byte 3.byte 4.byte

Page 17: Základy TCP/IP

SISALZáklady TCP/IP 17

Speciální adresy

• loopbackloopback– 127.0.0.1– adresa loopback rozhraní

• privátní adresyprivátní adresy– 10.0.0.0, 172.16.0.0-31, 192.168.*.0– nepřidělované, k použití pro lokální sítě– nesmí opustit síť

• network broadcastnetwork broadcast– <adresa sítě>.<samé jedničky>– „všem v dané síti“– normálně se doručí do cílové sítě

• limited broadcastlimited broadcast– 255.255.255.255– „všem v této síti“– nesmí opustit síť

Page 18: Základy TCP/IP

SISALZáklady TCP/IP 18

• Subnetting dovoluje rozšířit síťovou část adresy:

pomocí specifikace tzv síťové masky (netmask),v tomto případě 255.255.255.192:

• Nedoporučuje se používat subnet "all-zeros" a "all-ones", takže v tomto případě máme pouze 1022 x 62 adres.

• V definici je přípustná nespojitá maska, ale většinou se neimplementuje.

• V současnosti se často ignorují třídy (classless) a místo masky uvádí jen počet bitů (např. 193.84.56.71/26).

Subnetting

net hostsubnet

11111111 1111111111111111 00000011

Page 19: Základy TCP/IP

SISALZáklady TCP/IP 19

Supernetting

192.168.4 192.168.5

• router agreguje směrovací informace (192.168.4.0/23)

• dual homed neroutující server– je zapotřebí různé DNS pro

sítě ...4.0 a ...5.0

• single homed server– veškerý provoz ze

sítě ...4.0 jde přes router

Page 20: Základy TCP/IP

SISALZáklady TCP/IP 20

IPv6

• IPv6 adresy jsou dlouhé 128 bitů (16 bytů). Zápis: fec0::1:800:5a12:3456

• Rozeznáváme adresy

– unicastové - slouží k adresaci jediného rozhraní, kromě globálních adres existují ještě site-local adresy (jsou platné pouze v rámci organizace) a link-local adresy (platné v rámci lokálního propojení – sítě)

– multicastové - slouží k adresaci skupiny rozhraní (IPv6 převzal a mírně modifikoval IGMP)

– anycastové - formálně se jedná o unicastové adresy, které jsou přiděleny více rozhraním (strojům)

• Další vlastnosti:

– autokonfigurace, Duplicate Address Detection, Router Discovery, Neighbor Discovery Protocol (místo ARP), Path MTU Discovery, tunelování IPv4

Page 21: Základy TCP/IP

SISALZáklady TCP/IP 21

Doménový systém

cz

server pro root doménu

ns cesnet

server pro doménu cz

vutbr

cuni

mff

dec59

ruk

server pro domény cuni.cz a ruk.cuni.cz

skedu

nic netnordu

fixlink

defzi

whois

Page 22: Základy TCP/IP

SISALZáklady TCP/IP 22

Vyřizování DNS dotazu

ns.cesnet.czcz

ns.cesnet.czcz

fixlink.fzi.de

IP=193...www.mff.cuni.cz

www.mff.cuni.cz

cz: NS=192...

www.mff.cuni.cz

IP=193...

nerekurzivní

rekurzivní

a.root-servers.net.

a.root-servers.net.

ns.fzi.defzi.de

ns.fzi.defzi.de www.mff.cuni.cz

ns.cuni.czcuni.cz,

mff.cuni.cz

ns.cuni.czcuni.cz,

mff.cuni.cz

cuni.cz: NS=195...

Page 23: Základy TCP/IP

SISALZáklady TCP/IP 23

datagram

Tok dat v TCP/IP

DataAplikace streammessage

TCP/UDP header DataTransport packet

IP header packetIP datagram

Interface headerInterface frameCRC

...

Page 24: Základy TCP/IP

SISALZáklady TCP/IP 24

Multiplexing, demultiplexing

Ethernet

ARP IP IPX

rozhodování podle typu (délky)Ethernet rámce

ICMP UDP TCP

rozhodování podle IP protokolu

rozhodování podle čísla portu

Aplikace Aplikace

Page 25: Základy TCP/IP

SISALZáklady TCP/IP 25

Socket, port• Port

... 16bitové číslo identifikující jeden konec spojení - aplikaci, proces, který má zpracovávat příchozí pakety

– destination-port musí být znám, typicky je to některý z tzv. well-known services (viz /etc/services)

– source-port navazovatele (>1024) spojení přiděluje lokální systém

• Socket... jeden konec komunikačního kanálu mezi klientem

a servrem… označení (adresa) jednoho konce kanálu

<IPadresa, port>– Výpis otevřených socketů: netstat [-an]

Page 26: Základy TCP/IP

SISALZáklady TCP/IP 26

Aplikační protokoly TCP/IP• 21/TCP: FTP - File Transfer Protocol

(přenos souborů)

• 22/TCP: SSH - Secure Shell(přenos souborů)

• 23/TCP: telnet - Telecommunication network(interaktivní přístup ke vzdáleným počítačům)

• 25/TCP: SMTP - Simple Mail Transfer Protocol(přenos elektronické pošty)

• 53/TCP,UDP: DNS – Domain Name System(překlad jmen na IP adresy a naopak)

• 67,68/UDP: DHCP - Dynamic Host Configuration Protocol(vzdálená konfigurace)

• 80,443/TCP: HTTP - HyperText Transfer Protocol(přenos stránek informačního systému W W W)

• 119/TCP: NNTP - Network News Transfer Protocol(přenos zpráv v systému UseNet, NetNews)

Page 27: Základy TCP/IP

SISALZáklady TCP/IP 27

Struktura ethernetového rámce

DestinationMAC address

SourceMAC address Type Data CRC

Ethernet v2:Ethernet v2:

DestinationMAC address

SourceMAC address Len Data CRC

IEEE 802.3IEEE 802.3

IP 0x0800ARP 0x0806RARP 0x8035IPX 0x8137

<= 1500

Page 28: Základy TCP/IP

SISALZáklady TCP/IP 28

Identification(pořadové číslo)

Protocol(/etc/protocols)

Struktura IP datagramu

Version HeaderLength

Service Type(priorita)

Flags Fragment Offset

Header ChecksumTime-to-live

Source IP Address

Destination IP Address

Options

Data

Padding

Total Length

Page 29: Základy TCP/IP

SISALZáklady TCP/IP 29

Source Port

Struktura TCP paketu

Options

Data

Padding

Destination Port

Urgent PointerChecksum

Sequence Number

Acknowledgement Number

DataOffset

(rsvd)Flags

(SYN,URG,ACK,...)Window

Page 30: Základy TCP/IP

SISALZáklady TCP/IP 30

Spojování segmentů sítě

aplikační

transportní

síťová

linková

fyzická

Vrstva

aplikační

transportní

síťová

linková

fyzická

Vrstva

gateway (brána)

router (směrovač)

bridge, switch

repeater, HUB

Síťové zařízení

Page 31: Základy TCP/IP

SISALZáklady TCP/IP 31

Porovnání HUB vs. switchS

S

S S S

• HUB 10 Mbit/s

• Switch 10 Mbit/s

S• Switch s uplinkem up to 100 Mbit/s

• Switch, více serverů > 10 Mbit/s

Page 32: Základy TCP/IP

SISALZáklady TCP/IP 32

Příklad topologie sítě

Lokální síťLokální síť

Lokální síťLokální síťWANWAN

Klient 8

Router

Klient 9

Klient 5Klient 4

Klient 7

Klient 3Klient 2Klient 1

Klient 6

Repeater

Server 2

Server 1

Bridge ProvozProvoz

EthernetEthernet

segmentsegment

Page 33: Základy TCP/IP

SISALZáklady TCP/IP 33

Principy firewallu

Proxy-server

IP filtr

klient - server klient - server

vnitřní adresy vnější adresy

NAT

Page 34: Základy TCP/IP

SISALZáklady TCP/IP 34

Address Resolution Protocol

• konverze MAC (Ethernetových) a síťových (IP) adres

• ARP tabulka (cache) je v paměti na každé stanici

• neznámé adresy se zjišťují broadcastovou výzvou:

• unicastová odpověď (odpovídající si nejprve musí sám upravit svoji ARP tabulku)

• výpis ARP tabulky: arp -a

• ARP je omezeno na lokální síť, mezi sítěmi je v činnosti OSI 3

Ethernet=1 IP=0x0800 ARPreq=1

FF:FF:FF:FF:FF:FF Target IP

Sender MAC Sender IP

Page 35: Základy TCP/IP

SISALZáklady TCP/IP 35

Proxy ARP

klient posílá ARP request s IP adresou host

klient

proxy ARP router host

‚ router pozná, že ARP nebude zodpovězen, proto posílá ARP reply s MAC adresou routeru

ƒ MAC routeru přiřazena k IP hosta v ARP na klientovi

„ klient posílá data na hosta s MAC adresou routeru

Page 36: Základy TCP/IP

SISALZáklady TCP/IP 36

Protokol ICMP

• Internet Control Message Protocol, slouží pro řídící informace nad IP protokolem– Echo Request, Reply ... testování dosažitelnosti počítače

příkazem ping– Source Quench ... žádost o snížení rychlosti toku datagramů– Destination Unreachable ... počítač (služba) nedostupný– Redirect ... výzva ke změně cesty– Time Exceeded ... vypršel Time-to-live (chyba v routování)– Parameter Problem ... chyba v záhlaví datagramu– Timestamp Request, Reply ... odhad doby přenosu– Information Request, Reply ... žádost o adresu sítě– Address Mask Request, Reply ... žádost o síťovou masku

Page 37: Základy TCP/IP

SISALZáklady TCP/IP 37

Směrování

výchozí poč.IP: n1.h1

router 1IP: n1.h2

router 2IP: n2.h1

cílový poč. IP: n2.h2

OSI 7-4 OSI 3 OSI 2 OSI 1

n2.h2n2.h2n2.h2

n2.h2

n2.h2

n2.h2

n2.h2n2.h2

n2.h2

MAC12

n2.h2n2.h2MAC12

n2.h2n2.h2MAC21

n2.h2n2.h2MAC21

n2.h2n2.h2MAC22

MAC22

Page 38: Základy TCP/IP

SISALZáklady TCP/IP 38

Směrovací algoritmus

můjstroj?

mojesíť?

ponechat

poslat (podle ARP)

poslat směrovači

direct route

indirect nebo default route

No route to hostexistuje? není cestane

ano

ano

ne

zvol nejspeciálnější záznam (host, net, default)

Page 39: Základy TCP/IP

SISALZáklady TCP/IP 39

Příklad směrovací tabulky

Destination Gateway Mask

193.84.48.50 193.84.48.49 255.255.255.255 direct, host

194.50.16.64 194.50.16.71 255.255.255.224 direct, subnet

194.50.17.0 194.50.16.77 255.255.255.0 indirect, net

default 193.84.48.50 0.0.0.0 default

194.50.16.64

194.50.17.0 193.84.48.48

49 50

7177

Page 40: Základy TCP/IP

SISALZáklady TCP/IP 40

Principy směrování

• směrování by měla umět každá stanice, v UNIXu je přímo součástí jádra

• směrovací tabulky obsahují záznamy: cíl, maska, gateway(dřívější členění cílů: host, net, default)

• cíle jsou řazeny od speciálních k obecnějším• typy záznamů:

– direct (přímo připojená síť, “gateway” je vlastní adresa)– indirect, default

• vznik záznamu:– implicitní (automaticky po zadání příkazu ifconfig)– explicitní (zadán příkazem route)– dynamický (v průběhu práce od partnerů v síti)

Page 41: Základy TCP/IP

SISALZáklady TCP/IP 41

Statické řízení směrovacích tabulekCesty se nastavují při startu pomocí příkazů route

- nesnadné zálohování spojení (cykly)

- problémy se subnettingem

- nutná inicializace, nepružné při změnách

+ méně citlivé na problémy v síti

+ dostupné i ve zcela heterogenním prostředí

vhodné pro jednodušší, stabilní sítě

adddeleteflush | -f

[[-]host] host [[-]net] net [[-netmask] mask]default | 0 routerinterface [-interface]

{ }{ }route

{[gw] [metric]}

Page 42: Základy TCP/IP

SISALZáklady TCP/IP 42

Redirekce

síť

6.0.0.0síť

8.0.0.0

default 5.0.0.8 UGdefault 5.0.0.8 UG

novýnový obsah tabulky:

8 6

síť5.0.0.0

původnípůvodní obsah tabulky:

1. první datagram pro6.0.0.1

default 5.0.0.8 UG

6.0.0.0 5.0.0.6 UGD

default 5.0.0.8 UG

6.0.0.0 5.0.0.6 UGD

3. ICMP redirect

4. další datagramy pro 6.0.0.1

2. redirekcedatagramu

Page 43: Základy TCP/IP

SISALZáklady TCP/IP 43

Dynamické řízení směrovacích tabulek

Uzly sítě si navzájem vyměňují informace směrovacími protokoly

+ jednoduché změny konfigurace

+ směrovací tabulky se udržují automaticky

- na jednoduchých sítích občas zdrojem zbytečných problémů

• starší varianta:– daemon routed {-g | -q }

– používá protokol RIP

• modernější řešení:– daemon gated, konfigurační soubor /etc/gated.conf

– používá protokol RIP nebo OSPF

• pro externí routery (propojují autonomní systémy) se užívají protokoly EGP a BGP

Page 44: Základy TCP/IP

SISALZáklady TCP/IP 44

Diagnostika směrování

• Výpis směrovacích tabulek: netstat -r[n]

Destination Gateway Flags Ipkts ... Colls Interface

194.50.16.0 this U 15943 ... 0 tu0

127.0.0.1 loopback UH lo0

default gw UG tu0

193.84.57.0 gate UGD tu0

• Kontrola cesty: traceroute

1 gw.thisdomain (194.50.16.222) 2 ms 1 ms 1 ms

2 gw.otherdomain (193.84.48.49) 12 ms 15 ms 15 ms

Page 45: Základy TCP/IP

SISALZáklady TCP/IP 45

Konfigurace TCP/IP

UNIXUNIX– IP adresa: ifconfig interface IP_adr [ netmask maska ]

– defaultní router: route add default router

– doména a nameserver: /etc/resolv.conf

Windows 95Windows 95– start dialogu: Control Panel Network TCP/IP

domain jméno_domény nameserver IP_adresa_nameserveru

Page 46: Základy TCP/IP

SISALZáklady TCP/IP 46

Protokol BOOTP/DHCP

FF.FF... MAC 255... BOOTPS

• BOOTP server přiděluje IP podle MAC adresy v tabulce (/etc/bootptab) a odpovídá broadcastem nebo unicastem (musí si doplnit arp tabulku)

• podle RFC 1084 odpověď obsahuje IP adresu, síťovou masku, jméno, gateway, nameserver...

• routery standardně BOOTP nepropouštějí (limited broadcast), spojení se servrem zajišťuje BOOTP forwardování

• postupné rozšiřování vedlo ke vzniku nového protokolu DHCP: dynamické přidělování adres (šetří IP, ale je méně bezpečné), časové omezení pronájmu, interakce mezi klientem a servery,...

0.0.0.0

BOOTPS request MAC

Page 47: Základy TCP/IP

SISALZáklady TCP/IP 47

Automatická konfigurace

BOOTPS request: Ethernetová adresa klienta

klient

router s BOOTP forwardingem

BOOTPC reply: IP adresa, maska, router...

server

limited broadcastunicast

broadcast, unicast

Page 48: Základy TCP/IP

SISALZáklady TCP/IP 48

Model TCP aplikace

socketsocket

Server

bindbind

listenlisten

acceptaccept

readread

writewrite

closeclose

socketsocket

Klient

connectconnect

writewrite

readread

closeclose

bindbind

Page 49: Základy TCP/IP

SISALZáklady TCP/IP 49

Model UDP aplikace

socketsocket

Server

bindbind

closeclose

socketsocket

Klient

bindbind

writesendtosendmsg

writesendtosendmsg

readreadfromreadmsg

readreadfromreadmsg

closeclose

writesendtosendmsg

writesendtosendmsg

readreadfromreadmsg

readreadfromreadmsg

connectconnect connectconnect

Page 50: Základy TCP/IP

SISALZáklady TCP/IP 50

Start síťových daemonů

• přímý startpřímý start– ve startovacích scriptech– intenzivně využívané, speciální služby, se složitou inicializací

• nepřímý start nepřímý start (on demand)– provádí daemon inetd – konfigurace v /etc/inetd.conf:

– překonfigurování: kill -HUP PID– server komunikuje přes filedeskriptory 0/1

bootps dgram udp wait root /etc/bootpd bootpdtftp dgram udp wait nobody /etc/tftpd tftpd /tftpbootwhois stream tcp nowait nobody /etc/whoisd whoisd

Page 51: Základy TCP/IP

SISALZáklady TCP/IP 51

Systém DNS

• Klient-sever aplikace, binární protokol nad UDP i TCP

• Typy serverů:– primární: udržuje data o doméně

– sekundární: udržuje kopii dat

– caching-only: udržuje pouze vyřešené odkazy

• Reverzní dotazy (IP adresa jméno) se řeší pomocí reverzních domén: IP adrese 194.50.16.71 odpovídá záznam 71 v doméně 16.50.194.in-addr.arpa

• Diagnostika DNS: nslookup

podpříkazy: set type, server, name, IPadr, ls, exit

dig [@server] jméno [typ_dotazu]

Page 52: Základy TCP/IP

SISALZáklady TCP/IP 52

DNS dotaz a odpověď

• Dotaz:– QUERY: alias.tns.cz IN CNAME

• Odpověď:– FLAGS: Authoritative, Recursive– QUERY: alias.tns.cz IN CNAME– ANSWER: alias.tns.cz IN CNAME ns– AUTHORITY: tns.cz IN NS ns.tns.cz– ADDITIONAL: ns.tns.cz IN A 1.1.1.1

• Problém: Příznak Authoritative se nevztahuje na sekci ADDITIONAL, legální server pro nějakou doménu tam může legálně umístit falešné údaje.

Page 53: Základy TCP/IP

SISALZáklady TCP/IP 53

Uživatelské příkazy TCP/IP

ARPA BSD(Internet) (UNIX)

kopírování souborů ftp rcp

vzdálené logování telnet rlogin

vzdálené provádění příkazů rexec rsh

informace o uživatelích finger rwho

on-line komunikace talk rwall

Page 54: Základy TCP/IP

SISALZáklady TCP/IP 54

Příkaz ftp

• File Transfer Protocol– řídící relace: port 21

– datový přenos (aktivní FTP): obrácený směr, port 20

• Interaktivní příkaz: – vlastní prompt

– visuální interface

• Logování na vlastní účet nebo anonymně:

login: anonymouspassword: elektronická_adresa

• Seznam uživatelů se zakázaným FTP: /etc/ftpusers

• Uživatel FTP musí mít platný login shell (/etc/shells)

Page 55: Základy TCP/IP

SISALZáklady TCP/IP 55

• navazování relace: open, user

• ukončování relace: close, quit, bye

• lokální příkazy: lcd, !command

• vzdálené příkazy: cd, pwd, ls, dir

• přenos souborů: get, put, mget, mput

• typ přenosu souborů: ascii, binary

• práce se soubory: delete, rename, mkdir, rmdir

• pomocné příkazy: prompt, hash, status, help, verbose, ...

Podpříkazy ftp

Page 56: Základy TCP/IP

SISALZáklady TCP/IP 56

Aktivní/pasivní datové spojení

•Aktivní spojení

1.1.1.1:1234 2.2.2.2:21PORT 1,1,1,1,8,0

200 PORT command OK.

LIST

1.1.1.1:2048 2.2.2.2:20

•Pasivní spojení

1.1.1.1:1234 2.2.2.2:21PASV

227 OK (2,2,2,2,8,1)

LIST

1.1.1.1:1235 2.2.2.2:2049

Page 57: Základy TCP/IP

SISALZáklady TCP/IP 57

Inicializační soubor ~/.netrc

machine host login name password passwd

macdef macro

příkazy...

macdef init

inicializační příkazy...

• parametry makra: $1..., volání makra: $jméno

• hesla jen pro anonymní a speciální uživatele!

• mód souboru s hesly musí být rw-------

• vyvolání ftp bez inicializace: ftp -n

Page 58: Základy TCP/IP

SISALZáklady TCP/IP 58

BSD příkazy

• rcp -pr [[user@]host:]file ...sémantika stejná jako u příkazu cp:

kopíruje soubory (adresáře) pod cílovým jménem (do cílového adresáře)

ke stroji host přistupuje jako uživatel user

• rsh host [-l user ] cmdprovedení příkazu cmd na stroji host pod uživatelem user

• rlogin host [-l user ]přihlášení uživatele user na stroji host

Page 59: Základy TCP/IP

SISALZáklady TCP/IP 59

Autorizace BSD příkazů

uživatelroot?

stejnýuživatel?

kontrola hesla

ne

ano

ano

ne

ne

ano

/etc/hosts.equiv

client [user]

ok?ano

OK

ne

ano

~/.rhosts

client [user]

ok?ne

fail

příkazrlogin?

Page 60: Základy TCP/IP

SISALZáklady TCP/IP 60

OTP, Secure shell

Konvenční příkazy posílají uživatelská hesla otevřeně po síti.

Řešení:

• Systém OneTimePasswordserver vyšle jedinečný náhodný kód, uživatel na klientovi zadá do speciální kalkulačky kód a svoje heslo a dostane odpověď, kterou klient pošle servru

• Systém SecureShellprogramový balík nahrazující BSD příkazy

• šifruje veškerou komunikaci• umožňuje zadávat heslo i u příkazu scp

Page 61: Základy TCP/IP

SISALZáklady TCP/IP 61

Elektronická pošta

– off-line předávání zpráv příp. souborů

– off-line použití informačních služeb

– diskusní kluby (mailing-listy, konference)

– komunikace mimo Internet

E-mailová adresa (typicky):

alias@doména nebo login@počítač

např.:

[email protected] nebo [email protected]

Page 62: Základy TCP/IP

SISALZáklady TCP/IP 62

Elektronický dopisReceived: from alfik.ms.mff.cuni.cz

by betynka.ms.mff.cuni.cz...Date: Thu, 16 Nov 1995 00:54:31 +0100To: [email protected]: Libor Forst <[email protected]>Subject: Test postyCc: [email protected]: 1.0Content-Type: multipart/mixed; boundary="=_XXX"

--=_XXXContent-Type: text/plain; charset=Windows-1250Content-Transfer-Encoding: 8bit

Ahoj Petře!

Page 63: Základy TCP/IP

SISALZáklady TCP/IP 63

Ukázka SMTP protokolu

220 alfik.ms.mff.cuni.cz ESMTP Sendmail ...HELO betynka250 alfik Hello betynka, pleased to meet youMAIL FROM: <[email protected]>250 2.1.0 <[email protected]>... Sender okRCPT TO: <[email protected]>250 2.1.5 <[email protected]>... Recipient okDATA354 Enter mail, end with "." on a line by itselfdopis....250 2.0.0 h98G9FxT Message accepted for deliveryQUIT221 2.0.0 alfik closing connection

Page 64: Základy TCP/IP

SISALZáklady TCP/IP 64

Mail Transfer Agent

Přístup k poště z pohledu uživatele

POP

server

a) přímé připojení na SMTP server

b) připojení přes POP nebo IMAP server

MailUserAgent

SMTP

server WANWAN

Page 65: Základy TCP/IP

SISALZáklady TCP/IP 65

Příjem a odeslání pošty v SMTP

WANWAN

mail-forwarder

mail-relaya) přímé doručení

b) doručenípřes forwarder

mbox IN MX 0 mbox IN MX 20 relay

1

2

3

Page 66: Základy TCP/IP

SISALZáklady TCP/IP 66

Příjem pošty na UNIXu

• Příjem pošty– daemon sendmail, konfigurace sendmail.cf

– aliasy (/etc/aliases): alias: adresa, adresa...aktivace: příkaz newaliases

• Čtení pošty: mail– není user-friendly

– osobní autoforward: ~/.forward

– adresa může mít tvar: "|cmd"

– pozor na cykly

Page 67: Základy TCP/IP

SISALZáklady TCP/IP 67

Odesílání pošty na UNIXu

• Psaní pošty: mail [-v] [-s subject ] adresa ...– vhodné pro dávkové zpracování

– příkazy ~v, ~s subj, ~q

• Vlastní nastavení: $HOME/.mailrc– možnost potlačení některých dotazů při odesílání

– možnost potlačení výpisu některých informací při čtení

– vlastní aliasy pro odesílání pošty, např.:

alias project petr pavel [email protected]

Page 68: Základy TCP/IP

SISALZáklady TCP/IP 68

Diskusní listy

• adresa: mail_list@mailserver

• (list)server: mail_list-request@mailserverlistserv@mailserver – udržuje seznam abonentů

– rozesílá dopisy nebo oznámení

– udržuje archiv

• listy:– otevřené vs. uzavřené

– moderované n. nemoderované

• příkazy: help, information, lists, review,

[un]subscribe, index, search

Page 69: Základy TCP/IP

SISALZáklady TCP/IP 69

Etika poštovního styku

• jazyk, výrazové prostředky

• používání subjectu

• míra zachování původního textu v odpovědi

• účelné posílání souborů, češtiny

• obtěžování uživatelů a sítě, řetězové dopisy

Page 70: Základy TCP/IP

SISALZáklady TCP/IP 70

Bezpečnost pošty

• Dopis je vždy otevřená listovní zásilka otevřená listovní zásilka (z různých příčin se může dostat do ruky mnoha lidem)

Řešení: kryptovat obsah dopisu (crypt, PGP - Pretty Good Privacy)

• Nikdy není jistý odesilatelodesilatel(málokterý server kontroluje správnost odesilatele)

Řešení: elektronické podpisy, systém výzva/odpověď

Page 71: Základy TCP/IP

SISALZáklady TCP/IP 71

Šifrování• Symetrické šifrování

– pro šifrování a dešifrování se používá stejný klíč

– výhoda: rychlé

– nevýhoda: partneři si musí klíč předat bezpečnou cestou

• Asymetrické šifrování– pro šifrování a dešifrování se používá dvojice klíčů

– nevýhoda: pomalé

– výhoda: jeden klíč je veřejný, druhý tajný

• Hash– vytvoření „kódu“ z daného textu

– změny textu a hashe jsou navzájem neodvoditelné

Page 72: Základy TCP/IP

SISALZáklady TCP/IP 72

Šifrování dopisu

volný text

veřejný klíč příjemce

náhodný symetrický klíč

symetricky zašifrovaný text asymetricky zašifrovaný klíč

tajný klíč příjemce

náhodný symetrický klíč

volný text

symetricky zašifrovaný text asymetricky zašifrovaný klíč

Page 73: Základy TCP/IP

SISALZáklady TCP/IP 73

Elektronický podpis

tajný klíč odesilatele

hash textu

zašifrovaný hashvolný text

veřejný klíč odesilatele

hash textu

zašifrovaný hash

hash textu=?

volný text

Page 74: Základy TCP/IP

SISALZáklady TCP/IP 74

Uniform Resource Identifier

• jednotný systém odkazů

• jediný klient pro více služeb

• nepostradatelná pro WWW

• historické členění: URL, URN, ...

protokolprotokol:// [jméno[:heslo]@]adresaadresa[:port][cestacesta]

př.:

ftp://sunsite.mff.cuni.cz/OS/FreeBSD

http://www.cesnet.cz:8080

mailto: [email protected]

Page 75: Základy TCP/IP

SISALZáklady TCP/IP 75

Princip ditribuované databáze

Gopher at Charles University

1. About this Gopher ... 4. Czech Educational and Scientific Network ... 9. User Directory Service for Czech Republic ...

Czech Root Gopher Server

1. About this Gopher ... 5. User Directory Service for Czech Republic ...

User Directory Service

Enter search key _

gopher.cesnet.cz

whois.cuni.cz

gopher.cuni.cz

Page 76: Základy TCP/IP

SISALZáklady TCP/IP 76

Hypertext

• Původní význam: text doplněný vazbami (podobně jako např. v Helpu ve Windows). Zvolením vyznačených slov lze získat podrobnější informaci nebo přejít na příbuzné téma.

• Dnešní chápání: blíže pojmu hypermediální text, neboli text doplněný nejen odkazy, ale i netextovými prvky (obrázky, zvuk, video...)

Page 77: Základy TCP/IP

SISALZáklady TCP/IP 77

World Wide Web

• WWW je distribuovaná hypertextová databáze

• Základní jednotkou je stránka (dokument)

• Dokumenty jsou psány v textovém jazyce HTML– popisuje obsah i formu (styly - CSS)

– existují staticky nebo se vytvářejí dynamicky

• Odkazy:– mohou vést na příbuzné dokumenty nebo programy

– jsou zapisovány ve tvaru URL

– jsou součástí textu příp. i obrázků

Page 78: Základy TCP/IP

SISALZáklady TCP/IP 78

Protokol HTTP

GET /index.html

klientserverHTTP/1.0 200 OKContent-type: text/html

<HTML><HEAD><TITLE>Stranka ...</TITLE></HEAD><BODY><H1>Nadpis stránky</H1><HR>...

URL: http://www.../index.html

HTMLstránka

Page 79: Základy TCP/IP

SISALZáklady TCP/IP 79

Příkazy HTTP

GET požadovaná stránka

HEAD

POST požadovaná stránkaparametry stránky

PUT ---soubor

CONNECT ..................... tunel .....................

Metoda Odpověď Požadavek

---

---

---

Page 80: Základy TCP/IP

SISALZáklady TCP/IP 80

Dynamické stránky

• Dynamika řízená na serveru:– Formuláře + cgi-skripty, server-side include

– HTML preprocesor (PHP)

• Přenesení výpočetního výkonu na klienta:– Java - jazyk myšlenkově vycházející z C++, s vyššími

nároky na bezpečnost, s knihovnami pro jednoduchou tvorbu uživatelského rozhraní

Java programy (applety), se na klienta přenášejí jako přeložený kód a on ho interpretuje a provádí (víceméně) nezávisle na platformě za pomoci lokálních knihoven

– Javascript - analogický princip, na klienta se ale přenáší zdrojový kód a on ho interpretuje

Page 81: Základy TCP/IP

SISALZáklady TCP/IP 81

Bezpečnost na WWW

• Bezpečnost uživatele– komunikace mezi klientem a serverem probíhá otevřeně

– přenos citlivých informací (hesla, údaje ve formulářích) představuje riziko

– zabezpečená forma komunikace přes Transport Layer Security (TLS), dříve Secure Sockets Layer (SSL)

– dnes podporují všichni běžní klienti/servry

• Bezpečnost serveru– přes WWW server vede většina útoků

– pečlivě udržovaný systém

– minimální práva

Page 82: Základy TCP/IP

SISALZáklady TCP/IP 82

The End


Recommended