You are on page 1of 142

1

CHNG 1- GII THIU V TCP/IP


1.1 Tng qut v TCP/IP.
Gii thiu Lp Network Lp Transport (TCP vUDP) Lp Appication

1.2 Cc giao thc v dch v trn Internet. 1.3 Gii thiu mt s ng dng mng

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


2

Tng qut v TCP/IP

Mt s c tnh :
- c lp v hnh thi ca mng. - c lp v phn cng ca mng. - Cc chun giao thc m. - M hnh a ch ton cu. - Nn tng client/server mnh m. - Cc chun v giao thc ng dng mnh m.

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


3

Gii thiu
OSI TCP/IP
Application Presentation Session Applications layer Telnet FTP SMTP DNS SNMP

Transport layer (host level) Transport

TCP

UDP

ICMP
Network Internet layer (gateway level) ARP IP

Data link Physical

Network interface layer

Ethernet

Token Ring

FDDI

WANs

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


4

TCP/IP and OSI model

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


5

TCP/IP Protocol Stack


Application Xc nhn quyn, nn d liu v cc dch v cho ngi dng. Transport X l d liu gia cc h thng v cung cp vic truy cp cho cc ng dng thng qua th vin BSD socket. Network Tm ng cho cc packet. Link Mc OS hoc cc thit b giao tip mng trn mt my tnh.

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


6

Nhng im khc gia OSI v TCP/IP


Lp ng dng trong TCP/IP x l cc chc nng ca cc lp 5,6, v 7 trong m hnh OSI Lp transport trong TCP/IP cung cp c ch UDP truyn d liu khng tin cy, khc vi lp transport trong m hnh OSI l lun m bo d liu truyn tin cy

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


7

TCP/IP
TCP/IP l mt tp ca cc protocols (mt b giao thc) nh ngha cch thc truyn d liu qua mi trng Internet TCP/IP l tn ca m hnh mng c ghp gia hai giao thc chnh trong mng l TCP (Transmission Control Protocol) v IP (Internet Protocol)

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


8

TCP/IP v mng Internet


Mt lin mng(internet) dng TCP/IP c xem nh l mt mng n kt ni cc my tnh vi nhiu loi Mng Internet l s kt ni gia cc mng vt l c lp thng qua cc thit b lin mng Vi m hnh TCP/IP, cc mng khc nhau kt ni vi nhau c xem nh l mt mng ln ng nht, khng quan tm n s khc nhau gia cc thit b vt l hay mi trng Mi my kt ni vo mng xem nh kt ni n mt mng lun l, khng quan tm n mng vt l
Nguyn Duy Hiu B mn: KTMT & Mng - TBU
9

An Internet according to TCP/IP

McGraw-Hill

The McGraw-Hill Companies, Inc., 2001

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


10

TCP/IP v OSI
TCP/IP c xy dng trc m hnh OSI nn cc lp trong b giao thc TCP/IP khng hon ton ging vi b giao thc trong m hnh OSI. C 4 lp trong m hnh TCP/IP lp transport, TCP/IP nh ngha hai protocol l TCP v UDP. lp network, protocol chnh l IP v c cc protocol khc h tr vic truyn d liu lp physical & data link, TCP/IP khng nh ngha protocol no, khng ph thuc vo phn cng bn di Mt mng trong mt lin mng TCP/IP c th l mng LAN, MAN hoc WAN.
Nguyn Duy Hiu B mn: KTMT & Mng - TBU
11

ng gi d liu trong TCP/IP


1. n v d liu trong lp ng dng gi l message 2. Giao thc TCP v UDP to ra mt n v d liu tng ng l segment v user datagram. 3. n v d liu trong lp IP c gi l datagram 4. Datagram phi c ng gi (encapsulate) trong mt frame truyn trn mng vt l 5. Frame s c truyn theo dng tn hiu trn ng truyn vt l
Nguyn Duy Hiu B mn: KTMT & Mng - TBU
12

ng gi d liu trong TCP/IP

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


13

Lp Network

Ni dung:
- Lp Internet - a ch IP - Cc nh a ch, phn mng con - Cc giao thc ph trong lp Network

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


14

Lp Internet
M hnh TCP/IP cung cp giao thc lin mng (internetwork protocol -IP), l mt c ch truyn d liu khng tin cy v khng kt ni (connectionless) Cc giao thc h tr cho vic truyn d liu bao gm: ARP, RARP, ICMP v IGMP.

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


15

Internetwork Protocol (IP)


Giao thc IP khng tin cy (unreliable) v khng cung cp c ch kim tra li hay tracking. IP xem nh lp bn di s thc hin vic truyn nhn mt cch tt nht, khng c s m bo Nu cc dch v cn c ch truyn tin cy th kt hp vi giao thc tin cy TCP. Tng t nh h thng bu in
Nguyn Duy Hiu B mn: KTMT & Mng - TBU
16

IP (tt)
IP ct d liu ra thnh cc gi. cc gi gi l datagrams, v mi gi c truyn c lp

Datagram c th i theo cc ng khc nhau v c th n khng ng th t hoc trng nhau. IP khng gi thng tin ng i cng nh khng sp xp li cc gi li khi chng n IP l mt dch v connectionless, n khng khi to Virtual Circuits v khng c s thng bo n phn t nhn

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


17

Datagram

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


18

IP Datagram

Version. Version number of IP current version is 4 (0100 in binary). HLEN. Header length. The HLEN field defines the length of the header in multiple of 4 bytes ( 0 - 15 # maximum 60 bytes) Service type. The service type field defines how the datagram should be handled. It includes bits that define the priority of the datagram. Total length. The total length field defines the total length of the IP datagram. It is a two-byte field (16 bits) and can define up to 65,535 bytes Identification. The identification field is used in fragmentation. A datagram, when passing through different networks, may be divided fragments to match the network frame size. When this happens, each fragment is identified with a sequence number in this field.
Nguyn Duy Hiu B mn: KTMT & Mng - TBU
19

IP Datagram (cont.)
Flags. The bits in this field deal with fragmentation Fragmentation offset. A pointer that shows the offset of the data in original datagram Time to live. The time to live field defines the number of hops a datagram can travel before it is discarded. Protocol. Defined which upper-layer protocol (TCP, UDP, ICMP) Header checksum. Check the integrity of the header Option. Give more functionality to the IP datagram, can control routing, timing, management and alignment

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


20

IP Fragmentation and Reassembly


length ID fragflag offset =4000 =x =0 =0
One large datagram becomes several smaller datagrams length ID fragflag offset =1500 =x =1 =0 length ID fragflag offset =1500 =x =1 =1480 length ID fragflag offset =1040 =x =0 =2960

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


21

a ch IP
L a ch lun l trong mng xc nh a ch ca cc my trong mng (ngoi a ch vt l) cho vic truyn nhn d liu a ch IP c 32 bit nh phn chia ba phn: class type, netid, hostid

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


22

Phn lp a ch

xc nh netid (Network Identifier) v hostid (Host Identifier)


Nguyn Duy Hiu B mn: KTMT & Mng - TBU
23

Addressing-Dotted-decimal notation
biu din dng ngn hn v d c, a ch IP c chia thnh dng 4 phn x 8 bit, cch nhau bng du chm, mt phn c biu din theo gi tr thp phn

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


24

Class Ranges of Internet Addresses

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


25

Examples
What is the class of each of the following addresses?
A. 10011101 10001111 11111110 11001111 B. 01111011 11110000 10101010 11110000 C. 11110101 10001111 11111110 11001111

Write each of following in dotted-decimal notation:


A. 10011101 10001111 11111100 11001111 B. 11011101 10001111 11111101 00001111

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


26

Solutions

Classes identify
A. Class B B. Class A C. Class E

Dotted-decimal notation
A. 157.143.252.207 B. 221.143.253.15

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


27

Mt s a ch IP c bit

Maximum number of unique addresses in each class


Class A Class B Class C 2^7 - 2 = 126 2^14 - 2 = 16,382 2^21 - 2 = 2,097,150
28

Nguyn Duy Hiu B mn: KTMT & Mng - TBU

Mt my vi nhiu a ch
a ch IP nh ngha cho mi kt ni n mt mng Mt phn t mng c nhiu kt ni n cc mng khc nhau ( v d nh router) phi c cc a ch IP tng ng vi mng Mt my c mt giao tip mng cng c th nh ngha nhiu a ch IP, tu theo nhu cu

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


29

A Sample Internetnetwork

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


30

Subneting
Hnh minh ho mt mng c hai lp phn cp

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


31

Subneting
Khng c subnetting, a ch c 2 lp (bao gm netid v hostid) khng hiu qu, khng th c nhiu mng vt l Vi m hnh ny, cc my khng th t chc thnh cc nhm v cng mt mc. iu ny rt kh cho vic qun l i vi cc mng c nhiu my Phn mng con (subnetting) l gii php cho vn ny, l s chia mt mng ln thnh cc mng nh hn gi l mng con (subnetworks)

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


32

Subneting
Hnh v minh ha mng c chia thnh 3 cp

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


33

Addresses with and without Subnetting

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


34

Masking
Masking l cch tnh a ch vt l ca mng t a ch IP, c th tnh k c mng c phn mng con hoc khng Nu c phn mng con, masking s ly c a ch mng t a ch IP Nu mng c chia mng con th masking s ly c thng tin a ch ca mng con (subnetwork address) t a ch IP

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


35

Masking example

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


36

Masks without Subneting


Depending on class Following table show mask for unsubneted networks

class A B C D E

mask 255.0.0.0 255.255.0.0

Address (e.g.)

Network address (e.g.)

15.32.56.7 135.67.13.9

15.0.0.0 135.67.0.0 201.34.12.0 N/A N/A

255.255.255.0 201.34.12.72 N/A N/A N/A N/A

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


37

Masks with Subneting


Khi c chia mng con th mi mng con s c mt n mng (mask) khc nhau Examples:

class A B C

mask 255.255.0.0 255.255.255.0

Address (e.g.)

Network address (e.g.)

15.32.56.7 135.67.13.9

15.32.0.0 135.67.13.0 201.34.12.64

255.255.255.192 201.34.12.72

D
E

N/A
N/A

N/A
N/A

N/A
N/A

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


38

Finding the Subnetwork Address


Apply the mask to the IP address Boundary-Level Masking

- If the masking is at the boundary level (the mask numbers are either 255 or 0), finding the subnetwork address is very easy. Follow these two rules:
1.The bytes in the IP address that correspond to 255 in the mask will be repeated in the subnetwork address 2.The bytes in the IP address that correspond to 0 in the mask will change to 0 in the subnetwork address.

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


39

Finding the Subnetwork Address


Boundary-Level Masking example
IP address 45 . 23 . 21 . 8 Mask 255 . 255 . 0 . 0 --------------------------------------------------------Subnetwork address 45 . 23 . 0 . 0

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


40

Finding the Subnetwork Address

Nonboundary-level Masking
- If the masking is not at the boundary level (the mask numbers are not just 255 or 0), finding the subnetwork address involves using the bit-wise operator. Follow these three rules:
1. The bytes in the IP address that correspond to 255 in the mask will be repeated in the subnetwork address 2. The bytes in the IP address that correspond to 0 in the mask will change to 0 in the subnetwork address. 3. For other bytes, use the bit-wise AND operator.

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


41

Finding the Subnetwork Address

Nonboundary-level masking example

IP address 45 . 123 . 21 . 8 Mask 255 . 192 . 0 . 0 -------------------------------------------------------Subnetwork 45 . ? . 0 . 0 Address ? use bit-wise AND operator 123 01111011 192 11000000 ----------------------------------0 1 0 0 0 0 0 0 = 64

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


42

Finding the Subnetwork Address


Another nonboundary-level masking example

IP address 213 . 23 . 47 . 37 Mask 255 . 255 . 255 . 240 -------------------------------------------------------Subnetwork 213 . 23 . 47 . ? Address ? use bit-wise AND operator 37 00100101 240 11110000 ----------------------------------0 0 1 0 0 0 0 0 = 32
Nguyn Duy Hiu B mn: KTMT & Mng - TBU
43

IP addressing: CIDR

Classful addressing:
- inefficient use of address space, address space exhaustion - e.g., class B net allocated enough addresses for 65K hosts, even if only 2K hosts in that network

CIDR: Classless InterDomain Routing


- network portion of address of arbitrary length - address format: a.b.c.d/x, where x is # bits in network portion of address
network part host part

11001000 00010111 00010000 00000000 200.23.16.0/23


Nguyn Duy Hiu B mn: KTMT & Mng - TBU
44

IP addresses: how to get one?


Network (network portion): get allocated portion of ISPs address space:
ISP's block Organization 0 11001000 00010111 00010000 00000000 11001000 00010111 00010000 00000000 200.23.16.0/20 200.23.16.0/23

Organization 1
Organization 2

11001000 00010111 00010010 00000000


11001000 00010111 00010100 00000000 .. . 11001000 00010111 00011110 00000000

200.23.18.0/23
200.23.20.0/23 . 200.23.30.0/23

Organization 7

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


45

Cc giao thc khc trong lp network


ARP (Address Resolution Protocol) RARP (Reverse Address Resolution Protocol) ICMP (Internet Control Message Protocol) IGMP (Internet Group Message Protocol) More references:

TCP/IP Protocol Suite, 2/e, Behrouz A. Forouzan, DeAnza College

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


46

ARP v RARP
Vn phn gii a ch
Hai giao thc dng phn gii a ch l ARP (Address Resolution Protocol) v RARP (Reverse ARP)

- ARP dng phn gii a ch IP 32 bits sang a ch Ethernet 48 bits - RARP dng phn gii a ch Ethernet 48 bits sang a ch IP 32 bits

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


47

ARP v RARP
a ch mng (lp Internet) v a ch MAC (lp Network Interface) cn c s chuyn i qua li:

- Lp Internet gi d liu cho lp Network Interface, ch cung cp a ch IP ca my nhn - Lp Network Interface cn a ch MAC ca my nhn truyn thng tin

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


48

ARP v RARP

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


49

Position of ARP and RARP in TCP/IP protocol suite

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


50

ARP

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


51

ARP
L giao thc c dng hi a ch vt l mt my khi bit a ch IP Cn cho lp Network Interface ng gi mt Ethernet Frame Khi cn a ch vt l, my s broadcast trn mng hi a ch vt l tng ng vi a ch IP, my c a ch IP tng ng s reply thng tin

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


52

Cc thnh phn chnh trong ARP


ARP table: bng thng tin c lu tr trong b nh, nu khng tm c thng tin trong bng ny th phn t gi s broadcast ARP request hi thng tin ARP request: gi broadcast hi a ch vt l ARP reply: gi li my hi thng tin a ch IP ca my mnh ARP reply caching: lu thng tin vo ARP table trong mt khong thi gian (5 pht)
Nguyn Duy Hiu B mn: KTMT & Mng - TBU
53

Phn gii ngc a ch RARP


Dng cho vic lin kt gia lp Network Interface v lp Internet S dng khi my bit a ch Ethernet nhng khng bit a ch IP. Thng dng trong cc trng hp:

- Cc h thng diskless - Cc h thng JumpStartTM

Km vi cc giao thc DHCP, BOOTP

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


54

RARP operation

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


55

RARP packet

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


56

Lp transport

C hai dng dch v:


- TCP (Transmission Control Protocol) - UDP (User Datagram Protocol)
application transport network data link physical network data link physical network data link physical

network data link physical

network data link physical

network data link physical application transport network data link physical

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


57

Lp transport
Cung cp s truyn nhn lun l gia cc process ng dng gia cc my trong mng Cc giao thc lp transport hot ng cc h thng u cui. Lp transport so vi lp network:

- network layer: d liu truyn nhn gia cc h thng - transport layer: d liu c truyn nhn gia cc processes, da trn cc dch v ca lp network v m rng mt s chc nng
Nguyn Duy Hiu B mn: KTMT & Mng - TBU
58

Lp Transport
Lp TCP/IP transport cung cp c ch cho source process gi d liu destination process qua mng nh ngha mt tp cc kt ni mc khi nim cho cc processes gi l protocol ports. Mt protocol port l mt im ch (buffer) dng lu d liu cho mt process c th

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


59

Transport layer
Vic qun l giao tip gia cc processes v cc ports tng ng c h iu hnh cung cp Cc protocol lp transport l port-to-port protocols, truyn d liu gia process gi n process nhn Mi port c xc nh bng mt s nguyn dng 16 bits nh phn

- 65,536 (0 to 65535) ports - Port 0?

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


60

Lp Transport

M rng cch nh a ch cho process.


- a ch port : xc nh ng dng mng trn mi my. - a ch ca mt ng dng mng (IP,port)
Nguyn Duy Hiu B mn: KTMT & Mng - TBU
61

Port Addresses

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


62

Transport-layer protocols
Internet transport services: reliable, in-order unicast delivery (TCP)
- congestion - flow control - connection setup

unreliable (best-effort), unordered unicast or multicast delivery: UDP services not available:

- real-time - bandwidth guarantees - reliable multicast

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


63

User Datagram Protocol (UDP)


User datagram protocol (UDP) l protocol n gin trong hai protocol lp transport

Ch thm thng tin v cc a ch port, iu khin li checksum v di thng tin length information

UDP ch cung cp cc chc nng c bn cho c ch truyn end-to-end, khng cung cp cc chc nng x l li v truyn li d liu b hng hoc mt.

C c ch bo li nu km vi giao thc ICMP

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


64

UDP Datagram Format

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


65

Transmission Control Protocol (TCP)


Cung cp cc dch v y cho cc ng dng L giao thc port-to-port tin cy, connectionoriented: kt ni phi c thit lp trc khi d liu c truyn Khi thit lp kt ni, TCP to mt mch o (virtual circuit ) gia bn gi v bn nhn trong sut qu trnh truyn nhn C s thng bo khi truyn d liu n phn t nhn. Sau khi kt thc vic truyn nhn th ng kt ni

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


66

TCP
IP v UDP xem cc datagrams trong mt single transmission l cc n v hon ton c lp, khng lin quan vi nhau. Mi datagram n phn t nhn cng l cc n v phn bit, v khng c s thng bo cho phn t nhn Khc vi IP v UDP, TCP l dch v connectionoriented, cung cp c ch truyn tin cy cho ton b stream cha trong message m ng dng gi i C ch truyn tin cy m bo bng vic cung cp vic pht hin li v truyn li nhng d liu hng
Nguyn Duy Hiu B mn: KTMT & Mng - TBU
67

TCP
Khi truyn d liu, TCP chia d liu thnh cc n v nh hn gi l segment. Tt cc cc segment phi c nhn v phn hi (acknowledge) trc khi s truyn nhn hon thnh v mch o c hy Mi segment c mt s tun t (sequencing number) sp xp li sau khi nhn kt hp vi ACK ID number v field window-size cho ca s dch (sliding window) Cc segments TCP truyn trn mng c cha trong cc IP datagrams. phn t nhn, TCP nhn mi datagram theo th t n v da vo s tun t sp xp li
Nguyn Duy Hiu B mn: KTMT & Mng - TBU
68

TCP segment format

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


69

TCP segment format (cont.)


Sequence number. Shows the position of the data in the original data stream (application data) Acknowledgment number. Used to acknowledge the receipt of data Control. 6 bits of control define the use of segment or server validity check for others fields

- URG: urgent, - ACK: acknowledgment - PSH: need higher throughput,

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


70

TCP segment format (cont.)

Control (cont.)
- RST: reset, - SYN: used for sequence number synchronization (connection request, connection confirmation-with ACK set, confirmation acknowledgement-with ACK set) - FIN: used in termination confirmation

Window size. Defines the sliding window Checksum. Used for error detection Urgent Pointer. Valid if URG is set. Define the end of urgent data and the start of normal data

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


71

Lp ng dng

Comparison between OSI and TCP/IP


Nguyn Duy Hiu B mn: KTMT & Mng - TBU
72

Lp ng dng
nh ngha cc giao thc cho cc ng dng mng Nhn gc h iu hnh, ng dng c hiu nh l cc processes. Cc giao thc lp ng dng phi nh ngha cch thc giao tip gia cc processes qua cc vn :

- nh dng ca message - Th t ca cc message trao i - Cc cng vic phi thc thi khi mt process nhn hay truyn d liu
Nguyn Duy Hiu B mn: KTMT & Mng - TBU
73

Lp ng dng
Cc ng dng mng hot ng theo m hnh client/server

- Server : l phn t th ng

Ch yu cu t client, x l v tr kt qu cho client

- Client : l phn t ch ng
Kt ni n server gi yu cu. Ch nhn kt qu tr v v x l kt qu.

Vn quan trng khi lp trnh cc ng dng mng l nh ngha giao thc gia client v server
Nguyn Duy Hiu B mn: KTMT & Mng - TBU
74

Lp ng dng
User agent l giao tip gia ngi s dng v ng dng mng.Mi ng dng mng client phi c hin thc vic giao tip gia user v chng trnh mng:

- Web:browser - E-mail: mail reader - streaming audio/video: media player

Khi nim stateful v stateless


- Stateful : lu gi trng thi gia cc ln kt ni (request/response). - Stateless : Mi ln request/response th cu ni hy b. Khng gi trng tri trc .

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


75

M hnh client-server

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


76

Quan h gia client v server

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


77

Cc loi server
Concurrent: x l ng thi, c ch x l nhiu processes trn mt h thng ch c mt CPU

Parallel

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


78

Connectionless iterative server

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


79

Connection-oriented concurrent server

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


80

Programs v Processes

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


81

Server vi c ch multi-process

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


82

Khi nim Socket

Socket: ca nm gia process ng dng v end-endtransport protocol (UDP hoc TCP)

TCP service: dch v truyn tin cy chui bytes gia hai


process

controlled by application developer controlled by operating system

process

process socket TCP with buffers, variables

socket TCP with buffers, variables

controlled by application developer controlled by operating system

internet

host or server
Nguyn Duy Hiu B mn: KTMT & Mng - TBU

host or server

83

Khi nim Socket

Socket :
- L mi trng cc process ng dng giao tip vi nhau, process ng dng c th chy trn cng mt my hoc trn hai my khc nhau. - c ng dng to ra v s dng tuy nhin c h thng (h iu hnh) kim sot.

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


84

Khi nim Socket

Socket API
- c gii thiu BSD4.1 UNIX, 1981 - c ng dng khi to, s dng hay hy b - Dng c ch client/server - Cung cp hai dch v chuyn d liu thng qua socket API:
unreliable datagram reliable, byte stream-oriented

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


85

Cc loi socket

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


86

Lp trnh socket vi TCP

Client phi kt ni n server


- server process phi chy trc (phn t th ng) - server phi to mt socket lng nghe v chp nhn cc kt ni t client

Client kt ni n server bng cch:


- Khi to TCP socket local - Xc nh IP address, port number ca server process v kt ni n

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


87

Lp trnh socket vi TCP


Sau khi client khi to socket, n s thit lp kt ni n server Khi server nhn yu cu kt ni, n s chp nhn yu cu v khi to socket mi giao tip vi client.

- Cho php server chp nhn nhiu client ti mt thi im.

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


88

Lp trnh socket vi TCP


Server
(running on hostid)

Client

create socket, port=x, for incoming request: welcomeSocket = ServerSocket() wait for incoming connection request connection connectionSocket = welcomeSocket.accept()

TCP

setup

create socket, connect to hostid, port=x clientSocket = Socket() send request using clientSocket

read request from connectionSocket write reply to connectionSocket close connectionSocket

read reply from clientSocket close clientSocket

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


89

Example: Java client (TCP)


import java.io.*; import java.net.*; class TCPClient { public static void main(String argv[]) throws Exception { String sentence; String modifiedSentence; Create input stream Create client socket, connect to server Create output stream attached to socket BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); Socket clientSocket = new Socket("hostname", 6789); DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


90

Example: Java client (TCP), cont.


Create input stream attached to socket Send line to server Read line from server BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); sentence = inFromUser.readLine(); outToServer.writeBytes(sentence + '\n'); modifiedSentence = inFromServer.readLine(); System.out.println("FROM SERVER: " + modifiedSentence); clientSocket.close(); } }

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


91

Example: Java server (TCP)


import java.io.*; import java.net.*;

class TCPServer { public static void main(String argv[]) throws Exception { String clientSentence; String capitalizedSentence;
ServerSocket welcomeSocket = new ServerSocket(6789);

Create welcoming socket at port 6789 Wait, on welcoming socket for contact by client Create input stream, attached to socket

while(true) {
Socket connectionSocket = welcomeSocket.accept();

BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


92

Example: Java server (TCP), cont


Create output stream, attached to socket Read in line from socket Write out line to socket } }

DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream()); clientSentence = inFromClient.readLine();


capitalizedSentence = clientSentence.toUpperCase() + '\n'; outToClient.writeBytes(capitalizedSentence);

} End of while loop, loop back and wait for another client connection

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


93

Lp trnh socket vi UDP


Cung cp c ch truyn khng tin cy cc nhm cc byte (datagrams) gia client v server. Khng cn thit lp kt ni gia client vi server. Sender phi gi km a ch IP v port ch Server khi nhn d liu s phn tch a ch ca sender truyn li.

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


94

Lp trnh socket vi UTP


Server
(running on hostid)

Client
create socket, clientSocket = DatagramSocket()

create socket, port=x, for incoming request: serverSocket = DatagramSocket()

read request from serverSocket write reply to serverSocket specifying client host address, port number

Create, address (hostid, port=x, send datagram request using clientSocket

read reply from clientSocket close clientSocket

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


95

Example: Java client (UDP)


import java.io.*; import java.net.*; class UDPClient { public static void main(String args[]) throws Exception { BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); DatagramSocket clientSocket = new DatagramSocket();

Create input stream Create client socket Translate hostname to IP address using DNS

InetAddress IPAddress = InetAddress.getByName("hostname"); byte[] sendData = new byte[1024]; byte[] receiveData = new byte[1024];
String sentence = inFromUser.readLine(); sendData = sentence.getBytes();

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


96

Example: Java client (UDP), cont.


Create datagram with data-to-send, length, IP addr, port Send datagram to server Read datagram from server
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876);
clientSocket.send(sendPacket); DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); clientSocket.receive(receivePacket); String modifiedSentence = new String(receivePacket.getData()); System.out.println("FROM SERVER:" + modifiedSentence); clientSocket.close(); } }

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


97

Example: Java server (UDP)


import java.io.*; import java.net.*; class UDPServer { public static void main(String args[]) throws Exception

Create datagram socket at port 9876

{ DatagramSocket serverSocket = new DatagramSocket(9876); byte[] receiveData = new byte[1024]; byte[] sendData = new byte[1024]; while(true) { DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); serverSocket.receive(receivePacket);

Create space for received datagram Receive datagram

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


98

Example: Java server (UDP), cont


String sentence = new String(receivePacket.getData());

Get IP addr port #, of sender

InetAddress IPAddress = receivePacket.getAddress();

int port = receivePacket.getPort();


String capitalizedSentence = sentence.toUpperCase();

Create datagram to send to client

sendData = capitalizedSentence.getBytes(); DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);

Write out datagram to socket


} }

serverSocket.send(sendPacket);
}

End of while loop, loop back and wait for another datagram

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


99

Cc giao thc v dch v


H thng tn min DNS H thng World Wide Web ( WWW)

- giao thc HTTP

H thng file FTP


- giao thc FTP

H thng e-mail
- giao thc SMTP - giao thc POP3

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


100

H thng tn min DNS


DNS l vit tt ca Domain Name System Dng chui k t nh a ch, khng phn bit ch hoa, thng, mi thnh phn c th 63 k t v tn y khng di qu 255, di y gi l tn. Tn c t theo cy phn cp a ch ti nguyn biu din dng tn c hnh thnh t n cho n root

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


101

H thng tn min DNS

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


102

Domain names v labels

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


103

Zone v domain

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


104

nh x a ch trong DNS
Network ch hiu a ch IP (binary) => nh x gia a ch IP v tn. Mi ng dng mng phi chuyn a ch t dng tn sang a ch IP H thng tn min c hin thc theo distributed database, qun l theo dng phn cp vi nhiu name servers

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


105

S phn cp ca cc name server

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


106

Root name servers

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


107

Root name servers


Khi local name server khng th phn gii a ch, n kt ni n root name server hi thng tin root name server:

- Kt ni n name server tng ng vi tng domain (trong trng hp root name khng bit thng tin) - Ly thng tin nh x a ch - tr thng tin v cho local name server

C rt nhiu root name server trong mng Internet trn ton th gii

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


108

DNS trong Internet

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


109

Generic v country domains

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


110

Inverse domain

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


111

nh x a ch trong DNS
ng dng giao tip vi local name 2 3 server hi a ch nh x. Local name server local name server dns.eurecom.fr s tr li hoc 1 8 request tip

surf.eurecom.fr

root name server

iterated query
4 7
intermediate name server dns.umass.edu

requesting host

authoritative name server dns.cs.umass.edu

gaia.cs.umass.edu

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


112

H thng World Wide Web

World Wide Web (W W W)


- Dng giao thc http: hypertext transfer protocol - Webs application layer protocol - M hnh client/server client: browser gi yu cu, nhn v hin th kt qu. server: Web server gi kt qu cho client i vi mi request. - http1.0: RFC 1945 - http1.1: RFC 2068
PC running Explorer

Server running NCSA Web server Mac running Navigator

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


113

H thng World Wide Web

http: TCP transport service:


- client khi to TCP connection (to socket) n server, port 80 (default) - server chp nhn kt ni t client - http messages (application-layer protocol messages) c trao i gia browser (http client) v Web server (http server) - ng TCP connection

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


114

H thng World Wide Web

V d
- User nh a ch URL sau ln browser

http://www.dit.hcmut.edu.vn/~phu/courses/net-programming/index.html 1a. http client to TCP connection (to socket) n http server www.dit.hcmut.edu.vn Port 80

time
2. http client gi http request message (cha ng dn) thng qua TCP connection socket

1b. http server a ch www.dit.hcmut.edu.vn ang ch i kt ni port 80, chp nhn kt ni v notifying n client

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


115

H thng World Wide Web

V d (tt)
3. http server nhn yu cu, to response message (/~phu/courses/netprogramming/index.html) tr kt qu, gi message qua socket

5. http client nhn response time message cha file html v hin th. Phn tch file html tm cc lin kt

4. http server ng cu ni TCP

6. Lp li cc bc 1-5 cho mi lin kt n objects


Nguyn Duy Hiu B mn: KTMT & Mng - TBU
116

H thng World Wide Web

W W W (tt)
- C hai dng message trong http : request, response - http request message:
ASCII

(human-readable format)

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


117

H thng World Wide Web

http request message:


GET /~phu/index.html HTTP/1.0 User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg header Accept-language:vn lines
(extra carriage return, line feed)

request line (GET, POST, HEAD commands)

Carriage return, line feed indicates end of message

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


118

H thng World Wide Web

http response message:


status line (protocol status code status phrase) header lines HTTP/1.0 200 OK Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 ... Content-Length: 6821 Content-Type: text/html data data data data data ...

data, e.g., requested html file

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


119

H thng World Wide Web


Authentication goal: control access to client server server documents usual http request msg stateless: client must present authorization in each request 401: authorization req. WWW authenticate: authorization: typically name, password - authorization: header line in usual http request msg request + Authorization:line - if no authorization presented, usual http response msg server refuses access, sends
WWW authenticate:

header line in response

usual http request msg + Authorization:line

Browser caches name & password so usual http response msg that user does not have to repeatedly enter it.
Nguyn Duy Hiu B mn: KTMT & Mng - TBU

time

120

H thng World Wide Web


Cookies

server sends cookie to client in response message


Set-cookie: 1678453

client
usual http request msg

server

usual http response +

Set-cookie: #
usual http request msg

client presents cookie in later requests


cookie: 1678453

cookie: #

server matches presented-cookie with server-stored info


- authentication - remembering user preferences, previous choices

usual http response msg usual http request msg

cookiespectific action cookiespectific action

cookie: #

usual http response msg

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


121

H thng World Wide Web


Conditional GET

client Goal: dont send object if http request msg client has up-to-date If-modified-since: stored (cached) version <date> client: specify date of http response HTTP/1.0 cached copy in http 304 Not Modified request
If-modified-since: <date>

server
object not modified

server: response contains no object if cached copy up-to-date:


HTTP/1.0 304 Not Modified

If-modified-since: <date>
HTTP/1.1 200 OK

http request msg http response

object modified

<data>

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


122

H thng FTP

File Transfer Protocol (ftp)


FTP FTP user client interface file transfer FTP server remote file system

user at host

local file system

- Chuyn file t local n server hoc ly file t server v local. - Hot ng theo c ch client/server - FTP server chy port 21. - Tham kho : RFC 959
Nguyn Duy Hiu B mn: KTMT & Mng - TBU
123

H thng FTP
ftp client giao tip n ftp server qua TCP port 21 Hai cu ni TCP c thit lp: - control: exchange commands, responses between client, server. out of band control - data: file data to/from server ftp server hin thc c ch state: current directory, earlier authentication

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


124

Control connection

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


125

Data connection

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


126

H thng FTP
Mt s nh dng mesage trong giao thc FTP: D liu c gi qua control channel theo dng m ASCII
- USER username - PASS password - LIST tr v list cc file v th mc trong th mc hin hnh - RETR filename retrieves (gets) file - STOR filename stores (puts) file onto remote host
Nguyn Duy Hiu B mn: KTMT & Mng - TBU
127

H thng FTP
Sample return codes
status code and phrase (as in http) 331 Username OK, password required 125 data connection already open; transfer starting 425 Cant open data connection 452 Error writing file

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


128

V d mt giao dch trong FTP

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


129

S dng trnh FTP

Mt s lnh ftp c bn
#ftp [host] #open host #close #help #reset #ls #pwd #cd #lcd #mkdir, rmdir #get, mget #put, mput #delete, mdelete #bye

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


130

H thng E-mail

H thng E-mail
- RFC 821, 822 - SMTP: port 25 - POP3: port 110 - IMAP: port 143 - MTA: Mail Transfer Agent - UA: User Agent
mail server

user agent user agent mail server user agent

SMTP SMTP
mail server

SMTP
user agent

user agent

outgoing message queue user mailbox

user agent

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


131

M hnh h thng e-mail

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


132

Qu trnh truyn nhn mail

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


133

Mail message format

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


134

MIME- Multipurpose Internet Mail Extensions

RFC 2045, 2046


Nguyn Duy Hiu B mn: KTMT & Mng - TBU
135

MIME header

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


136

Base64 Encoding

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


137

Quoted-printable encoding

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


138

Giao thc SMTP

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


139

Giao thc SMTP


V d v SMTP
>Telnet mail.hamburger.edu 25 S: 220 hamburger.edu >HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you >MAIL FROM: <alice@crepes.fr> S: 250 alice@crepes.fr... Sender ok >RCPT TO: <bob@hamburger.edu> S: 250 bob@hamburger.edu ... Recipient ok >DATA S: 354 Enter mail, end with "." on a line by itself >Do you like ketchup? >How about pickles? >. S: 250 Message accepted for delivery >QUIT S: 221 hamburger.edu closing connection

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


140

Cc giao thc truy cp e-mail

IMAP
- Internet Mail Access Protocol - RFC 1730 - Cc lnh phc tp, cho php c ch lu tr v qun l e-mail trn mail server

POP3
- Post Office Protocol, version 3 - RFC 1939 - ng nhp n mail server v download email c trong mail box ca user v my client

HTTP
- Web-based mail client program - Dng ng dng web hin thc giao thc IMAP hoc POP3
Nguyn Duy Hiu B mn: KTMT & Mng - TBU
141

V d v POP3
authorization phase

client commands:
- user: declare username - pass: password

S: C: S: C: S: C: S: S: S: C: S: S: C: C: S: S: C: C: S:

+OK POP3 server ready user alice +OK pass hungry +OK user successfully logged list 1 498 2 912 . retr 1 <message 1 . dele 1 retr 2 <message 1 . dele 2 quit +OK POP3 server

on

server responses
- +OK - -ERR

contents>

transaction phase, client:


list: list message numbers retr: retrieve message by number dele: delete quit

contents>

signing off

Nguyn Duy Hiu B mn: KTMT & Mng - TBU


142

You might also like