บทที่ 2: application layer - burapha universitynutthanon/887230/... · 2013. 11. 11. ·...

111
Application Layer 2-1 บทที2: Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 การใช้สไลด์ : เนื้อหาในสไลด์เหล่านี้ถูกแปลมาจากสไลด์ต้นฉบับประกอบหนังสือของผู้แต่งชื่อ Kurose และ Ross ผู้แปลอนุญาตให้ทุกท่านสามารถใช้สไลด์ทั้งหมดไดดังนั้นท่านสามารถดูภาพเคลื่อนไหว สามารถเพิ่ม ,แก้ไข และ ลบสไลด์ (นับรวมข้อความนี) และเนื้อหาของสไลด์เพื่อให้เหมาะกับความต้องการของท่าน สาหรับการแลกเปลี่ยน เราต้องการสิ่งต่อไปนี้เท่านั้น : ถ้าท่านใช้สไลด์เหล่านี(เป็นตัวอย่าง, ในห้องเรียน) อย่าลืมกล่าวถึงที่มาของสไลด์ (หลังจากนีเราต้องการให้ทุกคนอุดหนุนและใช้หนังสือของผู้แต่งด้านข้าง) ถ้าคุณโพสต์สไลด์ใด ในเวป, อย่าลืมกล่าวถึงว่า คุณแก้ไขจากสไลด์ต้นฉบับของเรา และ ระบุ ถึงลิขสิทธิ์ของเราด้วย ขอขอบคุณและขอให้สนุก! ณัฐนนท์ ลีลาตระกูล ผู้เรียบเรียง สงวนลิขสิทธิ2013 เนื้อหาทั้งหมดเป็นลิขสิทธิ์ของคณะวิทยาการสารสนเทศ

Upload: others

Post on 05-Sep-2021

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-1

บทท 2: Application Layer

Computer Networking: A Top Down Approach 6th edition Jim Kurose, Keith Ross Addison-Wesley March 2012

การใชสไลด :

เนอหาในสไลดเหลานถกแปลมาจากสไลดตนฉบบประกอบหนงสอของผแตงชอ Kurose และ Ross

ผแปลอนญาตใหทกทานสามารถใชสไลดทงหมดได ดงนนทานสามารถดภาพเคลอนไหว สามารถเพม

,แกไข และ ลบสไลด (นบรวมขอความน) และเนอหาของสไลดเพอใหเหมาะกบความตองการของทาน

ส าหรบการแลกเปลยน เราตองการสงตอไปนเทานน :

• ถาทานใชสไลดเหลาน (เปนตวอยาง, ในหองเรยน) อยาลมกลาวถงทมาของสไลด (หลงจากน

เราตองการใหทกคนอดหนนและใชหนงสอของผแตงดานขาง)

• ถาคณโพสตสไลดใด ๆ ในเวป, อยาลมกลาวถงวา คณแกไขจากสไลดตนฉบบของเรา และ ระบ

ถงลขสทธของเราดวย

ขอขอบคณและขอใหสนก!

ณฐนนท ลลาตระกล ผเรยบเรยง สงวนลขสทธ 2013 เนอหาทงหมดเปนลขสทธของคณะวทยาการสารสนเทศ

Page 2: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-2

บทท 2: Outline 2.1 หลกการของแอพพลเคชนดาน

ระบบเครอขาย 2.2 Web และ HTTP 2.3 FTP 2.4 อเมล

SMTP, POP3, IMAP

2.5 DNS

2.6 แอพพลเคชน P2P 2.7 socket programming กบ UDP

และ TCP

Page 3: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-3

Chapter 2: application layer

เปาหมาย: แนวคด, การ implement โปรโตคอล

แอพพลเคชนดานเครอขาย model การบรการชน

transport ชดแนวคด (หรอ paradigm)

client-server ชดแนวคด peer-to-peer

เรยนรเกยวกบโพรโตคอลโดยการศกษาแอพพลเคชนโพรโตคอลทเปนทนยม HTTP FTP SMTP / POP3 / IMAP DNS

สรางแอพพลเคชนดานระบบเครอขาย socket API

Page 4: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-4

ตวอยางของแอพพลเคชนระบบเครอขาย

e-mail web สงขอความ (text messaging) login ทางไกล แชรไฟลผาน P2P multi-user network games สง video ทเกบไวอยางตอเนอง

(streaming stored video) เชนYouTube, Hulu, Netflix

voice over IP (e.g., Skype) สง video การประชมแบบ real-time social networking บรการคนหาขอมล … …

Page 5: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-5

การสรางแอพพลเคชนระบบเครอขาย

เขยนโปรแกรมท: ท างานอยบนเครองปลายทางทตางๆกน (ไมใช

ทแกนของเครอขาย) สอสารกนผานเครอขาย เชน ซอฟแวรของ web server จะสอสารกบ

ตว web browser

ไมจ าเปนตองเขยนซอฟทแวรทท างานทแกนของระบบเครอขาย

อปกรณทแกนระบบเครอขายไมตองท างานแอพพลเคชนของผใช

แอพพลเคชนจะอยบนเครองปลายทางเทานนท าใหการพฒนาแอพพลเคชนเปนไปอยางรวดเรว

application

transport

network

data link

physical

application

transport

network

data link

physical

application

transport

network

data link

physical

Page 6: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-6

สถาปตยกรรมของแอพพลเคชน

โครงสรางทเปนไปไดของแอพพลเคชน: client-server (ลกขาย – แมขาย) peer-to-peer (P2P, เพอน ถง เพอน)

Page 7: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-7

โครงสรางของระบบ Client-Server

server: เปนเครองทท างานตลอดเวลา มไอพแอดเดรสคอนขางถาวร อยใน Data Center เพอรองรบการบรการ

ผใชทเพมมากขน

clients: มการตดตอสอสารกบผใหบรการ มการเชอมตอกบผใหบรการเปนระยะ ๆ ไม

สม าเสมอ อาจจะมไอพแอดเดรสทไมแนนอน ไมไดตดตอกบผรบคนอนโดยตรง

client/server

Page 8: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-8

โครงสรางของระบบ P2P

ไมมเครองแมขายทใหบรการตลอดเวลา สามารถเชอมตอกบลกขายกนเองได peer A (ซงสงค าขอไปยง peer B) อาจเปน

ผใหบรการกบ peer C เองกได Self-scalability: มความสามารถ

รองรบจ านวนผใชทเพมมากขนไดโดยตวโครงสรางเอง เพราะ peer ตวใหมทเขามาในระบบ จะท าใหความสามารถในการบรการเพมมากขน เชนเดยวกบความตองการในการใชบรการทเพมขน

การเชอมตอระหวาง peers ไมสม าเสมอและไอพแอดเดรสจะเปลยนไปเรอยๆ ท าใหการจดการซ าซอนยงยาก

peer-peer

Page 9: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-9

Process ทตดตอสอสารกน

process: โปรแกรมทก าลงท างานอยบนเครอง

ภายใตเครองเดยวกน process สอง process สามารถสอสารกนไดดวยชองทางสอสารระหวาง process หรอ inter-process communication (ระบบปฎบตการจดเตรยมให)

processes ทอยคนละเครองสามารถตดตอกนไดโดยการแลกเปลยนขอความกนผานเครอขาย

client process: ตวโปรแกรมลกขายทเรมตดตอสอสารขอรบบรการ

server process: โปรแกรมทเครองแมขายรอรบการขอบรการจากลกขาย

ถาเปนแอพพลเคชนในสถาปตยกรรมแบบ P2P กจะมทง client processes และ server processes

clients, servers

Page 10: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-10

Sockets

process จะสง/รบขอมลผานทาง socket socket เปรยบเสมอนประต

process ตวสงจะสงขอความผานทางประต process ตวสงตองพงพาระบบการขนสงไปยงอกดานของประต โดยการสงขอความผานทาง

socket ไปยง process ทก าลงรอรบอย

Internet

ควบคมโดย นกพฒนา app

transport

application

physical

link

network

process

transport

application

physical

link

network

process socket

ควบคมโดย OS

Page 11: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-11

การก าหนดทอยใหกบ processes process จะรบขอความไดจะตองมเลขระบ

process แตละเครองจะมเลขไอพแอดเดรส (แบบ 32

บต) ไมซ าใคร (ใชระบเครองได แต ยงระบ process ไมได)

Q: จ านวนไอพแอดเดรสทงหมดเพยงพอตอ process ในแตละเครองไหม ?

เลขระบ process ใชทงไอพแอดเดรสและ port numbers ทเกยวของกบ process นน ๆ บนเครอง

ตวอยาง port numbers: HTTP server: 80 mail server: 25

สงขอความ HTTP ไปยง gaia.cs.umass.edu web server ท: IP address: 128.119.245.12 port number: 80

รายละเอยดจะตามมา…

A: ไม, ม process จ านวนมากท างานอยบนเครองเดยวกน

Page 12: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-12

protocol ในชน App จะนยาม

ชนดของขอความทแลกเปลยนกน เชน ขอความทสงไปรองขอ, ขอความท

ตอบรบ รปแบบของขอความ:

จะบอกถงสงทอยในขอความ และบอกวาสงนนอยสวนไหนของขอความทสงมา

ความหมายของขอความ ความหมายของขอมลในขอความทสง

มาในแตละสวน (field) กฏทก าหนดวาเมอไรจะสงขอความหรอ

เมอไรจะตอบรบขอความ

โพรโตคอลส าหรบสาธารณะ (โพรโตคอล เปด):

ถกนยามใน RFCs ท าใหเครอง (จากตางผผลต) ท างาน

รวมกนได เชน HTTP, SMTP โพรโตคอลทมลขสทธ: เชน Skype

Page 13: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-13

แอพพลเคชนตองการบรการอะไรจากชน Transport

ความสมบรณของขอมล บางแอพพลเคชนตองการรบสงขอมลท

นาเชอถอ 100% เชน การสงไฟล การตดตอกบเวบ

มบางแอพพลเคชนทสามารถรบสงขอมลผดพลาดไดบาง เชน สงขอความเสยง

เวลาในการสง บางแอพพลเคชนตองการความเรวในการ

รบสงขอมล เชน คยโทรศพทผานอนเตอรเนท เกมทผใชมปฏสมพนธกบเครองแมขายหรอผเลนเกมรายอนผานเครอขาย

throughput บางแอพพลเคชนตองการ throughput ขน

ต าเชน สง multi-media ทงภาพและเสยง ในบางแอพพลเคชนกท างานในแบบ

ตองการ throughput เทาไรกได เรยกวาelastic apps

ความปลอดภย

เขารหส, ความสมบรณ ความเปนปกตของขอมล, …

Page 14: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-14

บรการในชน Transport ท apps ทวไปตองการ

application

การรบสง file

e-mail

เอกสาร Web

real-time audio/video

audio/video ทเกบไวกอนได interactive games

text messaging

data loss

no loss

no loss

no loss

ทนตอ loss

ทนตอ loss

ทนตอ loss

no loss

throughput

ขนต ำ

elastic

elastic

elastic

audio: 5kbps-1Mbps

video:10kbps-5Mbps

same as above

2-3 kbps ขนไป elastic

sensitive ตอควำมลำชำ

no

no

no

yes, 100’s msec

yes, 2-3 secs

yes, 100’s msec

yes and no

Page 15: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-15

บรการของ protocol ชน transport ใน Internet

บรการของ TCP: การสงขอมลทนาเชอได ระหวาง

process ผสงและ process ผรบ การควบคมการไหลของขอมล: ผสงไม

สงขอความไปทวนผรบ ควบคมความคบคง: มการควบคมการ

สงขอมลในขณะทระบบเครอขายคบคง สงไมไดให: ไมรบประกนเรองเวลา

แบนดวดทขนต า ความปลอดภยของขอมล

connection-oriented: ตอง setup การเชอมตอกอนการใหบรการ

บรการของ UDP: ขอมลทถกสงเปนการสงแบบไม

นาเชอถอระหวาง process ผสงและ process ผรบ

สงทไมไดใหบรการ: ความนาเชอถอ,การควบคมการไหลของขอมล, การควบคมความคบคง, เวลาทใชในการสง, การรบประกนปรมาณขอมลmทสงได, ความปลอดภย, หรอ การ setup การเเชอมตอ

Q: ท าไมถงยงตองมบรการ UDP อยอก?

Page 16: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-16

ตวอยาง app ทใชใน Internet และ protocol ในชน transport ของมน

application

e-mail

remote terminal access

Web

file transfer

streaming multimedia

Internet telephony

application

layer protocol

SMTP [RFC 2821]

Telnet [RFC 854]

HTTP [RFC 2616]

FTP [RFC 959]

HTTP (e.g., YouTube),

RTP [RFC 1889]

SIP, RTP, proprietary

(e.g., Skype)

underlying

transport protocol

TCP

TCP

TCP

TCP

TCP or UDP

TCP or UDP

Page 17: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

ความปลอดภย TCP

TCP & UDP ไมมการเขารหส ขอมลพาสเวรดทถกสงผาน

เครอขายสามารถถกดไดเลย SSL ใหบรการการเชอมตอ TCP

แบบเขารหส มความสมบรณของขอมล มการระบตวตนทปลายทาง

SSL อยในชน App แอพพลเคชนใช SSL libraries

ซงตดตอกบ TCP SSL socket API ขอมลพาสเวรดทสงออกไปจะ

ถกเขารหสไว ดตอบทท 7

Application Layer 2-17

Page 18: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-18

บทท 2: Outline 2.1 หลกการของแอพพลเคชนดาน

ระบบเครอขาย 2.2 Web และ HTTP 2.3 FTP 2.4 อเมล

SMTP, POP3, IMAP

2.5 DNS

2.6 แอพพลเคชน P2P 2.7 socket programming กบ UDP

และ TCP

Page 19: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-19

Web and HTTP

กอนอนเลย, มาทบทวนกน… web page ประกอบไปดวย file HTML หลก ซงรวมหลายๆออบเจค ออบเจคอาจจะเปน HTML file, JPEG image, Java applet, audio file,… ทอยของแตละออบเจคถกก าหนดโดย URL เชน

www.someschool.edu/someDept/pic.gif

host name path name

Page 20: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-20

ภาพรวมของ HTTP

HTTP: hypertext transfer protocol เปนโพรโตคอลในชนแอพพลเคชนทใชกบ

เวบ client/server model

client: จะมบราวเซอร ท าหนาทรองขอและรบขอมล (โดยใช HTTP Protocol) จากเซฟเวอรมาแสดงผล

server: รอรบการรองขอแลวสงขอมล (โดยใช HTTP Protocol) ทถกรองขอกลบไป

PC running

Firefox browser

server

running

Apache Web

server

iphone running

Safari browser

Page 21: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-21

ภาพรวมของ HTTP (ตอ)

การใช TCP: client (เครองลกขาย) เรมการตดตอ (สราง

socket) ไปยงพอรท 80 ของเซฟเวอร server (เครองแมขาย) รบการเชอมตอ

TCP จากเครองลกขาย ขอความ HTTP (application-layer

protocol messages) จะถกแลกเปลยนกนระหวางตวบราวเซอรกบตวเวบเซฟเวอร

ปดการเชอมตอ TCP

HTTP ไมมการเกบสถานะของผใช

เซฟเวอรไมมการเกบขอมลการขอใชบรการของลกขายทผานมา

โปรโตคอลแบบทตองเกบสถานะจะซบซอน สถานะเกาๆของผใชจะตองถกเกบไว ถาเซฟเวอรหรอเครองผใชบรการเกดดบไป

กระทนหน, พอเปดเครองขนใหม สถานะของเครองผใชกบเซฟเวอรกจะมสถานะไมเหมอนกนและ การท าใหเหมอนกนใหมเปนเรองยาก

เกรดความร

Page 22: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-22

การเชอมตอของ HTTP

non-persistent HTTP (การเชอมตอหลายครง)

รบ/สงหนง object ตอหนงการเชอมตอ พบรบ/สงเสรจ การเชอมตอจะถก

ปด

ดาวโหลดหลายๆออบเจคกตองใชการเชอมตอหลายครง

persistent HTTP (การเชอมแบบคงอย)

สามารถดาวโหลดหลายๆออบเจคดวยการเชอมตอ 1 ครง

Page 23: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-23

Non-persistent HTTP สมมตวาใส URL น ซงอางองไปยงรปภาพ 10 รป :

1a. HTTP client เรมการเชอมตอไปยง HTTP server (process) www.someSchool.edu ทพอรท 80

2. HTTP client สงการรองขอ HTTP (ระบ URL ขางตน) ไปทางการเชอมตอ TCP เพอทจะบอกวาตองการออบเจค someDepartment/home.index

1b. HTTP server ของเวบwww.someSchool.edu ทก าลงรอการเชอมตอทพอรท 80 “รบ” การเชอมตอ แลวแจงกลบไปยงเครองทเชอมตอมา

3. HTTP server รบการรองขอ สรางขอความตอบกลว แลวจงสงขอความนนไปพรอมกบออบเจคทถกรองขอมา

เวลา

www.someSchool.edu/someDepartment/home.index

Page 24: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-24

Non-persistent HTTP (cont.)

5. HTTP client รบขอความตอบกลบทม file html แลวกน ามาแสดงผลหนาเวบ (สกดขอมลทอยของภาพอก 10 ภาพ)

6. ยอนท าตงแตขนตอนท 1ใหมส าหรบรป 1จนถง10

4. HTTP server ปดการเชอมตอ

เวลา

Page 25: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-25

Non-persistent HTTP: เวลาตอบกลบ

RTT (Round Trip Time): เวลาใชในการเดนทางของแพคเกจเลก ๆ จากลกขายไปยงเซฟเวอรแลวกลบมา

ระยะเวลาตอบกลบ ของ HTTP: 1 RTT เพอเปดการเชอมตอ TCP 1 RTT ส าหรบ request และ ส าหรบ

response ขนาด 2-3 bytes เวลาในการถายโอนขอมล ระยะเวลาตอบกลบ ของ non-persistent

HTTP = 2RTT+ เวลาในการโอนถายขอมล

ระยะเวลาในถายโอน ไฟล

เปดการเชอมตอ TCP

RTT

สงค าขอไฟล

RTT

รบไฟลเรยบรอย

time time

Page 26: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-26

Persistent HTTP

ประเดนของ non-persistent HTTP: ตองใช 2 RTTs ตอ1 ออบเจค เสยเวลาทตว OS เพอสรางการเชอมตอทก

ครง สวนใหญบราวเซอรจะเปดหลายๆการ

เชอมตอเพอดงหลาย ๆ object ในหนาเวบในเวลาเดยวกน

persistent HTTP: เซฟเวอรจะเปดการเชอมตอคางไว

หลงจากสง response การสงขอมลตอไประหวาง client /

server กจะใชการเชอมตอทเปดไวน client สง request ไดทนทเมออยากจะ

ถง object ในหนาเวบ ใชเพยง 1 RTT ส าหรบการดงขอมล

object ทงหมด

Page 27: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-27

HTTP request message

ขอความ HTTP มสองชนด: request (ขอความขอบรการ), response (ขอความตอบกลบ) HTTP request message:

ASCII (ขอความทมนษยอานได)

บรรทดการ request (ค าสง GET, POST, HEAD)

สวนหวของขอความ

carriage return ทจดเรมบรรทด ระบสวนสนสดของบรรทด header (สวนหวของขอความ)

GET /index.html HTTP/1.1\r\n

Host: www-net.cs.umass.edu\r\n

User-Agent: Firefox/3.6.10\r\n

Accept: text/html,application/xhtml+xml\r\n

Accept-Language: en-us,en;q=0.5\r\n

Accept-Encoding: gzip,deflate\r\n

Accept-Charset: ISO-8859-1,utf-8;q=0.7\r\n

Keep-Alive: 115\r\n

Connection: keep-alive\r\n

\r\n

carriage return character

line-feed character

Page 28: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-28

HTTP request message: format ทวไป

บรรทด request

บรรทดสวนหว header

body

method sp sp cr lf version URL

cr lf value header field name

cr lf value header field name

~ ~ ~ ~

cr lf

entity body ~ ~ ~ ~

Page 29: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-29

การสงขอมลไปยงเซฟเวอร

วธ POST: ตวหนาเวบเพจสวนมากจะมชองใหใสขอมล ขอมล input ทปอนจะถกใสไปในสวนของบอด

วธ URL: ใชวธ GET ขอมล input จะถกใสลงไปใน field URL ทอยใน header ของ

request www.somesite.com/animalsearch?monkeys&banana

Page 30: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-30

Method types

HTTP/1.0: GET POST HEAD

บอกเซฟเวอรวาไมตองสงขอมลทรองขอไปมาท client แลว

HTTP/1.1: GET, POST, HEAD PUT

ใชส าหรบอพโหลดไฟลไปใน body (ไปยง folder ของ server ทระบไวใน field URL ท header ของขอความ)

DELETE ใชลบไฟลทระบใน field URL

Page 31: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-31

ขอมล HTTP ทถกตอบกลบมา

บรรทดระบ status

(protocol

status code

status phrase)

header

lines

ขอมล, เชน file

HTML ทขอไป

HTTP/1.1 200 OK\r\n

Date: Sun, 26 Sep 2010 20:09:20 GMT\r\n

Server: Apache/2.0.52 (CentOS)\r\n

Last-Modified: Tue, 30 Oct 2007 17:00:02

GMT\r\n

ETag: "17dc6-a5c-bf716880"\r\n

Accept-Ranges: bytes\r\n

Content-Length: 2652\r\n

Keep-Alive: timeout=10, max=100\r\n

Connection: Keep-Alive\r\n

Content-Type: text/html; charset=ISO-8859-

1\r\n

\r\n

data data data data data ...

Page 32: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-32

รหสสถานะทเกยวกบ HTTP ทเซฟเวอรอาจตอบกลบมา

200 OK การรองขอส าเรจ, สงทรองขออยดานทายของขอความน

301 Moved Permanently สงทรองขอถกยายไปแลว, ทอยใหมอยดานทายของขอความน (Location:)

400 Bad Request เซฟเวอรไมเขาใจขอความรองขอ

404 Not Found ไมพบไฟลทรองขอบนเซฟเวอร

505 HTTP Version Not Supported รองขอ version ของ HTTP ท server ไมได support

รหสสถานะจะปรากฎในบรรทดแรกขอขอความจากเซฟเวอรทตอบกลบ

ตวอยางรหสบางรหส

Page 33: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-33

ทดลองเชอมตอ HTTP ดวยตวเอง

1. telnet ไปยง Web server:

เปดการเชอมตอ TCP ทพอรท 80 ไปยง cis.poly.edu. อะไรทพมพลงไปจะถกสงไปยงพอรท 80 ของเซฟเวอรท cis.poly.edu

telnet cis.poly.edu 80

2. พมพการรองขอ GET HTTP request: GET /~ross/ HTTP/1.1

Host: cis.poly.edu ดวยค าสงนกจะเปนการสงค ารองขอไปยงเซฟเวอร

3. ดขอความทเซฟเวอรตอบกลบมา

(หรอใชโปรแกรม Wireshark เพอทจะด HTTP request/response)

Page 34: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-34

สถานะระหวางผใช-server: cookies

เวบไซตเปนจ านวนมากใช cookies สวนประกอบ 4 อยาง (ดรปหนา 2-35):

1) บรรทด set-cookie ในขอความตอบกลบของ HTTP

2) บรรทดยนยน cookie ในขอความรองขอหนาเวปถดไป

3) ไฟล cookie ทถกเกบทงบนเครองผใชทถกจดการโดย Web browser

4) ฐานขอมลทท างานในสวนหลงของ server

ตวอยาง: ซซานเลนอนเตอรเนตจากเครอง PC เขาไปยงเวบ e-commerce ครงแรก เมอการรองขอแรกไปถงยงเวบไซต ไซตกจะ

สราง สรางหมายเลข ID ทไมซ าใคร ขอมลหนงขอมลทฐานขอมลส าหรบ ID

นน ๆ

Page 35: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-35

Cookies: การเกบ “state” (ตอ …)

client server

usual http response msg

usual http response msg

cookie file

สปดาหตอมา

usual http request msg cookie: 1678 ตรวจสอบรายละเอยด

Cookie access

ebay 8734 usual http request msg Amazon server

สราง ID

1678 ส าหรบผใช create entry

usual http response set-cookie: 1678

ebay 8734

amazon 1678

usual http request msg cookie: 1678

access

ebay 8734

amazon 1678

backend

database

ตรวจสอบรายละเอยด Cookie

Page 36: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-36

Cookies (ตอ)

Cookies สามารถท าอะไรไดบาง: การระบตวตน รายการรถเขนสนคา การแนะน าสนคาหรอขอมล สถานะของชวงการสอสารของผใช (Web

e-mail)

cookies และความปลอดภย: cookies ท าใหเวบไซตรขอมลของ

คณเยอะทเดยว บางทอาจรวมถงอเมล ชอนามสกล

aside

เราจะเกบ“state” อยางไร: ชวงปลายของ protocol : เกบสถานะทผสงหรอ

ผรบ เมอม transaction ไปหลาย ๆ ครงแลว cookies: สง cookie (สถานะ) ไปพรอม ๆ กบ

ขอความ http

Page 37: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-37

Web caches (proxy server)

ผใชก าหนดในบราวเซอรใหเขาเวบผานแคช

บราวเซอรสงการรองขอ HTTP ทงหมดไปยงแคช ถาขอมลอยในแคช: แคชสง

ขอมลกลบ ถาขอมลไมอยในแคช: ตวแคช

จะไปโหลดขอมลจาก server จรงมาเกบไว กอนทสงตอใหผใช

วตถประสงค : ตอบสนองการรองขอจาก client โดยทไมตองไปตดตอกบเซฟเวอรจรง

client

proxy

server

client origin

server

origin

server

Page 38: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-38

เรองเพมเตมเกยวกบ Web caching

แคชท าหนาทเปนทง client และเซฟเวอร เปนเซฟเวอรเมอท าหนาทรบการรอง

ขอจาก client เปน client เมอท าหนาทตดตอ

กบเซฟเวอรจรง

โดยทวไปแลวแคชถกตดตงโดยผใหบรการ (มหาวทยาลย, บรษท, ISP ทใหบรการตามบาน)

ท าไมตองมการเกบแคช? ลดเวลาการตอบสนองจากการรองขอ

ของ client ลดปรมาณขอมลในลงค (ทจะไป

เครอขายดานนอก) ขององคกร แคชชวยให ผสรางขอมลทไมคอยมเงน

สามารถมบรการขอมลอยางมประสทธภาพมาก (เหมอนทการแชรไฟลแบบ P2P ท า)

Page 39: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-39

ตวอยางการแคช:

servers

หลก public

Internet

institutional

network 1 Gbps LAN

1.54 Mbps

access link

สมมตฐาน: ขนาดของ object โดยเฉลย: 100K bits คาเฉลยการรองขอจากบราวเซอรไปยงเซฟเวอรหลก: 15

request/วนาท อตราเฉลยของขอมลมายงบราวเซอร : 1.50 Mbps RTT จากเราเตอรไปยงเซฟเวอรหลก: 2 sec bandwidth ของ access link : 1.54 Mbps

ผลลพธ: อตราการใช LAN (LAN utilization): 15% อตราการใช access link = 99% total delay = Internet delay + access delay +

LAN delay = 2 sec + minutes + usecs

ปญหา!

Page 40: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-40

สมมตฐาน: ขนาดของ object โดยเฉลย: 100K bits คาเฉลยการรองขอจากบราวเซอรไปยงเซฟเวอรหลก: 15

request/วนาท อตราเฉลยของขอมลมายงบราวเซอร : 1.50 Mbps RTT จากเราเตอรไปยงเซฟเวอรหลก: 2 sec bandwidth ของ access link : 1.54 Mbps

ผลลพธ: อตราการใช LAN (LAN utilization): 15% อตราการใช access link = 99% total delay = Internet delay + access delay + LAN

delay = 2 sec + minutes + usecs

1.54 Mbps

access link

154 Mbps 154 Mbps

msecs

ตนทน: ตองเพมความเรวของ access link (ไมถก!)

9.9%

public

Internet

institutional

network 1 Gbps LAN

ตวอยางการแคช: access link ทใหญขน

servers

หลก

Page 41: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

institutional

network 1 Gbps LAN

Application Layer 2-41

1.54 Mbps

access link

web cache ใ ในเครอขายทองถน

สมมตฐาน: ขนาดของ object โดยเฉลย: 100K bits คาเฉลยการรองขอจากบราวเซอรไปยงเซฟเวอรหลก: 15

request/วนาท อตราเฉลยของขอมลมายงบราวเซอร : 1.50 Mbps RTT จากเราเตอรไปยงเซฟเวอรหลก: 2 sec bandwidth ของ access link : 1.54 Mbps

ผลลพธ: อตราการใช LAN (LAN utilization): 15% อตราการใช access link = total delay =

?

How to compute link utilization, delay?

ตนทน: web cache (ถก!)

public

Internet

ตวอยางการแคช: ตดตงแคชทองถน

servers

หลก

?

Page 42: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-42

ค านวณ utilization และ delay access link เมอมการตดตง cache:

สมมตวา hit rate ของ cache คอ 0.4 40% ของ requests จะมอยใน cache,

60% ของ requests อยท server หลก

1.54 Mbps

access link

utilization ของ access link: 60% ของ requests ใช access link

อตราขอมลทจะมาท browsers ผาน access link = 0.6*1.50 Mbps = .9 Mbps utilization = 0.9/1.54 = .58

total delay = 0.6 * (delay from origin servers) +0.4 * (delay when

satisfied at cache) = 0.6 (2.01) + 0.4 (~msecs) = ~ 1.2 secs delay นอยลงเมอใช 154 Mbps link กบ แคช (ถกกวาดวย!)

public

Internet

institutional

network 1 Gbps LAN

ตวอยางการแคช: ตดตงแคชทองถน

servers

หลก

web cache ใ ในเครอขายทองถน

Page 43: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-43

HTTP request msg If-modified-since: <date>

HTTP response HTTP/1.0

304 Not Modified

object

ไมถกเปลยน

กอน

<date>

HTTP request msg If-modified-since: <date>

HTTP response HTTP/1.0 200 OK

<data>

object ถกเปลยน

หลง <date>

client server

จดประสงค: server ไมสงออปเจคกลบมาหากขอมลไมเปลยนแปลง ไมมความลาชาจากการโอนถายขอมล ลดอตราการใชงานของ link ลง

cache: ระบวนทเกบแคชไวใน HTTP request If-modified-since: <date>

server: จะไมสงออบเจคกลบมาหาก แคชท client มขอมลเหมอนกบทาง server: HTTP/1.0 304 Not Modified

การ GET แบบมเงอนไข

Page 44: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-44

Chapter 2: outline

2.1 หลกการของแอพพลเคชนดานระบบเครอขาย

2.2 Web และ HTTP 2.3 FTP 2.4 อเมล

SMTP, POP3, IMAP

2.5 DNS

2.6 แอพพลเคชน P2P 2.7 socket programming กบ UDP

และ TCP

Page 45: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-45

FTP: the file transfer protocol

โอนยาย file FTP

server

สวนตอประสานกบ

ผใช FTP

FTP

client

local file

system

remote file

system

user

at host

คดลอกไฟล จาก/ไปท เครองทอยไกล รปแบบ ไคลเอนต/เซรฟเวอร

ไคลเอนต : ดานทเรมตนสงขอมล (อาจจะสงไป /รบจากเครองทอยไกล) เซรฟเวอร : เครองทอยไกล

ftp: RFC 959 ftp เซรฟเวอรใช port 21

Page 46: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-46

FTP: connection ส าหรบควบคม และส าหรบขอมล

FTP client ตดตอ FTP เซฟเวอร ทพอรท 21 ผาน TCP

ไคลเอนตจะท าการพสจนตวตนและสทธในการเขาใชงานบนเซฟเวอรผาน connection ส าหรบการควบคม

ไคลเอนตสามารถดขอมลในไดเรกทอร สงค าสง ผาน connection ส าหรบการควบคม

เมอ server ไดรบค าสงใหโอนยาย file server จะเปดคอนเนคชน TCP อกคอนเนคชนนง ส าหรบการถายโอนไฟล

หลงจากถายโอนขอมล 1 ไฟลสนสด server จะท าการปดคอนเนคชนทพอรต 20 ทนท

FTP client

FTP server

TCP control connection, server port 21

TCP data connection, server port 20

การท างานทมการแยกคอนเนคชนเปน 2 คอนเนคชนคอ คอนเนคชนควบคมและ คอนเนคชนขอมลนน เปนการท างานทเรยกวา : “out of band”

FTP เซฟเวอรจะท าการเกบ”สถานะ”การใชงานของไคลเอนต ท าใหรวาผใชก าลงด directory ใดอย และ ยงชวยการระบตวตนในตอนแรกเรม

Page 47: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-47

FTP commands, responses

ตวอยางค าสง: สงค าสงเปนอกขระ ASCII ผาน

connection ส าหรบการควบคม

USER username PASS password

LIST return list of file in current directory

RETR filename retrieves (gets) file

STOR filename stores (puts) file onto remote host

ตวอยางรหสท server ตอบ รหสสถานะและค าอธบาย (เหมอน

ของ HTTP) 331 Username OK, password

required 125 data connection already

open; transfer starting 425 Can’t open data

connection 452 Error writing file

Page 48: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-48

บทท 2: Outline 2.1 หลกการของแอพพลเคชนดาน

ระบบเครอขาย 2.2 Web และ HTTP 2.3 FTP 2.4 อเมล

SMTP, POP3, IMAP

2.5 DNS

2.6 แอพพลเคชน P2P 2.7 socket programming กบ UDP

และ TCP

Page 49: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-49

Electronic mail

3 สวนประกอบหลก: user agents mail servers simple mail transfer protocol: SMTP

User Agent หรอทเรยกวา “mail reader” สราง, แกไข, อานขอความ mail เชน Outlook, Thunderbird, iPhone

mail client ขอความทจะออก และ ทจะเขาม ถกเกบใน

server

Mailbox ของผใช

queue ส าหรบ ขอความออก

mail

server

mail

server

mail

server

SMTP

SMTP

SMTP

user

agent

user

agent

user

agent

user

agent

user

agent

user

agent

Page 50: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-50

Electronic mail: mail servers

mail servers: mailbox เปนสวนทจดเกบขอความทม

มาถงผใช สวนทจดเกบขอความของอเมลลงในคว

กอนทจะถกสงออกไป การสงขอความในอเมลระหวางเครองเมล

เซรฟเวอรดวย โปรโตคอล SMTP เครองผใช : สงอเมลไปยงเครองเมล

เซรฟเวอร “เครองเซรฟเวอร”: รบอเมลจาก

เครองเมลเซรฟเวอร

mail

server

mail

server

mail

server

SMTP

SMTP

SMTP

user

agent

user

agent

user

agent

user

agent

user

agent

user

agent

Page 51: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-51

Electronic Mail: SMTP [RFC 2821]

ใชโปรโตคอล TCP เพอใหแนใจวาขอความถกสงอยางถกตองจาก client ไปยงเซฟเวอรผานพอรท 25

การถายโอนโดยตรง : เปนการถายโอนจากเครองเซรฟเวอรผสงไปยงเครองเซรฟเวอรผรบ

การถายโอนสามขนตอน ขน handshaking (server ทกทายกน, ตกลงคาของการสง) ขนถายโอนขอความ ขนการปด

ค าสงและการตอบกลบ (เหมอนกบ HTTP, FTP) ค าสง: อกขระ ASCII ค าตอบ: รหสสถานะและค าอธบาย

ขอความตองอยในรปแบบ 7-bit ASCI

Page 52: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-52

user

agent

สถานการณ: Alice สงจดหมายไปหา Bob

1) Alice ใช UA เพอเขยนจดหมาย “สงถง” [email protected] 2) Alice’s UA สงจดหมายไปท mail server

ของเธอ ; จดหมายถกวางไวทmessage queue

3) SMTP ฝง client ทอยใน mail server ของ Alice เปดการเชอมตอ TCP กบ mail server ของ Bob

4) SMTP client สงจดหมายของ Alice บนการเชอมตอ TCP

5) mail server ของ Bob วางจดหมายไวใน mailbox ของ Bob

6) Bob ใช user agent อานจดหมาย

mail

server

mail

server

1

2 3 4

5

6

mail server ของ Alice mail server ของ Bob

user

agent

Page 53: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-53

ตวอยางการตดตอกนของ SMTP

S: 220 hamburger.edu

C: HELO crepes.fr

S: 250 Hello crepes.fr, pleased to meet you

C: MAIL FROM: <[email protected]>

S: 250 [email protected]... Sender ok

C: RCPT TO: <[email protected]>

S: 250 [email protected] ... Recipient ok

C: DATA

S: 354 Enter mail, end with "." on a line by itself

C: Do you like ketchup?

C: How about pickles?

C: .

S: 250 Message accepted for delivery

C: QUIT

S: 221 hamburger.edu closing connection

Page 54: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-54

telnet servername 25 see 220 reply from server ปอนค าสง HELO, MAIL FROM, RCPT TO, DATA, QUIT จากขอความดงกลาวขางตนจะชวยใหคณสงอเมลโดยไมตองใชโปรแกรมอเมล

ลองตดตอกบ mail server โดยใช SMTP

ดวยตวเอง:

Page 55: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-55

SMTP: final words

SMTP ใช connection ทคงอย (persistent connection)

SMTP ก าหนดให สวนหวอเมล กบ ตว body ถกเขยนดวยอกขระ ASCII 7-bit

SMTP serverจะใชCRLF.CRLF เพอก าหนดจดสนสดขอความ

เทยบกบ HTTP:

HTTP: ดง web page มา

SMTP: ผลกอเมลไป

ทงคตดตอกนโดยสงค าสง/ค าตอบเปนอกขระ ASCII และใชรหสสถานะ

HTTP: แตละ object อยในขอความตอบกลบเฉพาะของแตละ object เอง

SMTP: object ทงหมดถกรวมอยในเมล

Page 56: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-56

Mail message format

SMTP: protocol ส าหรบการแลกเปลยนอเมลล

RFC 822: มาตรฐานส าหรบรปแบบขอความ: บรรทดสวนหว เชน,

To: From: Subject:

ตางจากค าสง MAIL FROM, RCPT TO ของ SMTP!

Body: สวน “ขอความอเมล” เปนอกขระ ASCII เทานน

header

body

บรรทด วาง

Page 57: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-57

SMTP: จดสง/จดเกบไปยงเซรฟเวอรของผรบ protocol ส าหรบการอานเมล: ดงขอมลจากเซรฟเวอร

POP: Post Office Protocol [RFC1939]: authorization (การระบตวตน), download IMAP: Internet Mail Access Protocol [RFC 1730]: มคณสมบตมากขน เขน การ

จดการการเกบขอความบนเซรฟเวอร HTTP: gmail, Hotmail, Yahoo! Mail, ฯลฯ

mail server

ของผสง

SMTP SMTP mail access

protocol

mail server

ของผรบ

(เชน POP,

IMAP)

user

agent

user

agent

Mail access protocols (โปรโตคอลส าหรบการอานเมล)

Page 58: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-58

POP3 protocol

ขนตอน authorization client commands:

user: ระบ username pass: รหสผาน

server responses +OK -ERR

ขนตอนการตดตอท างาน (transaction phase), client:

list: แสดงรายการหมายเลขของขอความ retr: ดงขอความโดยใชหมายเลข dele: ลบ quit

C: list S: 1 498

S: 2 912

S: .

C: retr 1

S: <message 1 contents>

S: .

C: dele 1

C: retr 2

S: <message 1 contents>

S: .

C: dele 2

C: quit

S: +OK POP3 server signing off

S: +OK POP3 server ready

C: user bob

S: +OK

C: pass hungry

S: +OK user successfully logged on

Page 59: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-59

POP3 (เพมเตม) และ IMAP

เรองเพมเตมเกยวกบ POP3 ตวอยางการใชงาน POP3 ใน slide ท

แลวอยใน mode“download และ delete” Bob ไมสามารถอาน e-mail ซ าได

หากมการเปลยน client POP3 “download-and-keep”: copy

ขอความไวใน client ไดหลายเครอง POP3 ไมมการเกบ state ของ sessions

(ชวงเวลาการตดตอ)

IMAP เกบขอความ ทงหมดไวทเดยว: ท server ยนยอมให user สามารถจดการขอความ

ใน folder ได เกบสถานะของผใชแมจะตาง sessions

กน: ตงชอ folder และจดกลมขอความ

ตาม Folder ได (โดยจะจดค id ของขอความกบชอ folder)

Page 60: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-60

บทท 2: Outline 2.1 หลกการของแอพพลเคชนดาน

ระบบเครอขาย 2.2 Web และ HTTP 2.3 FTP 2.4 อเมล

SMTP, POP3, IMAP

2.5 DNS

2.6 แอพพลเคชน P2P 2.7 socket programming กบ UDP

และ TCP

Page 61: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-61

DNS: domain name system

คน: สามารถระบตวตนไดหลายวธ: เลขประชาชน, ชอ, เลข passport

Internet hosts, routers: IP address (32 bit) – ใชส าหรบ

ระบทอย “ชอ”, เชน, www.yahoo.com ซง

ชอเหลานงายทมนษยจะจดจ า ค าถาม: การจบคของ name กบ IP address

มวธการอยางไร แลวในทางกลบกนละ?

Domain Name System (ระบบชอโดเมน): ฐานขอมลแบบกระจาย ท างานโดยใชโครงสราง

แบบล าดบชนประกอบดวย name server จ านวนมาก

protocol ในขน application: hosts สอสารกบ name servers เพอ resolve ชอโดเมน (การแปลงขอมลระหวาง address และ name) ขอสงเกต: เปนการท างานสวนทเปนแกนของ

Internet ทถก implement ทชน application ดวย

ดงนน ความซบซอนอยทขอบของเครอขาย (network’ s “edge”)

Page 62: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-62

DNS: บรการ, โครงสราง

เหตผลทไมใช DNS แบบรวมศนย จดบอดจดเดยว ปรมาณของการโหลดขอมลเยอะเกนไป ฐานขอมลสวนกลางอยไกลไป ดแลรกษาไดยาก

บรการของ DNS แปล hostname ใหเปน IP address ชวยให host มชอแฝงหลายๆชอได

ชอจรงทเปนทางการ (canonical), ชอนามแฝง (alias)

mail server มชอแฝงไดหลายชอ ชวยกระจายการโหลด Load (request จาก client) จะถก

กระจายไปยง Web Server ทเกบขอมลเหมอน ๆ กนได โดยอาศย DNS: server หลายเครอง (ทอย IP ตางกน) ทใหบรการขอมลแบบเดยวกน จะถกก าหนดไวกบชอโดเมนเดยวได

ค าตอบ: ไม scale! Input มากขน ตอบสนองไดไมด

Page 63: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-63

Root DNS Servers

com DNS servers org DNS servers edu DNS servers

poly.edu

DNS servers

umass.edu

DNS servers yahoo.com

DNS servers amazon.com

DNS servers

pbs.org

DNS servers

DNS: ฐานขอมลทเปนล าดบชนและกระจาย

เมอลกขายตองการรถง IP ของ www.amazon.com การแปลชอโดเมนมขนตอนตอไปน: ลกขายสอบถามไปยง root server เพอทจะไปคนหา .com DNS server ลกขายสอบถามไปยง .com DNS server เพอทจะไปคนหา amazon.com DNS server ลกขายสอบถามไปยง amazon.com DNS server เพอขอ IP ของ www.amazon.com

… …

Page 64: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-64

DNS: root name servers

name server ทองถนตดตอ root name server เมอมนไมสามารถแปลชอโดเมนได root name server:

ถาไมสามารถแปลชอโดเมนได root กจะไปตดตอกบ authoritative name server เมอไดรบขอมลคของชอโดเมนและทอย IP แลว root สงขอมลคดงกลาวกลบไปท name server ทองถน

13 root name “servers” ทวโลก

a. Verisign, Los Angeles CA

(5 other sites)

b. USC-ISI Marina del Rey, CA

l. ICANN Los Angeles, CA

(41 other sites)

e. NASA Mt View, CA

f. Internet Software C.

Palo Alto, CA (and 48 other

sites)

i. Netnod, Stockholm (37 other sites)

k. RIPE London (17 other sites)

m. WIDE Tokyo

(5 other sites)

c. Cogent, Herndon, VA (5 other sites)

d. U Maryland College Park, MD

h. ARL Aberdeen, MD

j. Verisign, Dulles VA (69 other sites )

g. US DoD Columbus,

OH (5 other sites)

Page 65: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-65

TLD, authoritative servers

top-level domain (TLD) servers (domain name server ระดบบน): ดแลโดเมน com, org, net, edu, aero, jobs, museums, และรวมถง top-level

country domains, e.g.: uk, fr, ca, jp ทงหมด บรษท Network Solutions ดแล TLD servers ส าหรบ .com บรษท Educause ดแล TLD servers ส าหรบ .edu

authoritative DNS servers: เปน DNS server(s) ทมองคกรเปนเจาของ, ใหบรการแปลง authoritative hostname

เปนไอพของเครองขององคกร ถกดแลโดยองคกรเองหรอผใหบรการ name server โดยเฉพาะ

Page 66: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-66

DNS name server ทองถน

ไมไดอยในโครงสรางล าดบขนของ DNS ซะทเดยว แตละ ISP (ISP ตามบานเรอน, องคกร, มหาวทยาลย) ตางกม name

sever -> เรยกกนวา “default name server” เมอเครองตนทางสรางค าขอบรการ DNS, ค าขอจะถกสงตอไปท DNS

server ทองถน จ าการจบคลาสดซงจะแปลง name เปน address (แตขอมลการ

จบคกอาจหมดอายได) ท าหนาทเหมอน proxy, สงตอค าขอเขาไปในระบบ domain

name ทเปนล าดบชน

Page 67: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-67

requesting host cis.poly.edu

gaia.cs.umass.edu

root DNS server

DNS server ทองถน dns.poly.edu

1

2 3

4

5

6

authoritative DNS server

dns.cs.umass.edu

7 8

TLD DNS server

ตวอยางการแปลชอโดเมน

เครอง cis.poly.edu ตองการหมายเลขไอพแอดเดรสของเครอง gaia.cs.umass.edu

iterated query (สงแบบซ า): เซฟเวอรทถกตดตอตอบชอเซฟเวอร

ทตองไปหาตอกลบไป “ฉนไมรจกชอนลองไปถามเซฟเวอร

นซ”

Page 68: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-68

4 5

6

3

recursive query (สงแบบเวยนเกด): ผลกภาระการหาชอทอยไปยง name

server ทถกตดตออย

เซฟเวอรล าดบบนจะท างานหนก

requesting host cis.poly.edu

gaia.cs.umass.edu

root DNS server

1

2 7

authoritative DNS server

dns.cs.umass.edu

8

TLD DNS server

ตวอยางการแปลชอโดเมน

DNS server ทองถน dns.poly.edu

Page 69: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-69

DNS: การเกบและการอพเดทคชอโดแมนกบทอย IP

เมอ name server ไดรบขอมลการจบคกจะเกบใสแคชเอาไว แคชทหมดอายจะถกลบโดยอตโนมต (TTL) TLD servers โดยปกตแลวจะถกเกบใน local name servers

• ดงนน กจะไมคอยมการตดตอไปยง root name servers

หนวยขอมลการจบคทแคชเกบไวอาจจะเกาเกนไป (best effort name-to-address translation!) เพราะ เครองอาจถกเปลยนเลขไอพแตใชชอโดเมนเดมได ซง name server ทองถนจะยง

ไมรถงการเปลยนแปลงน จนกวาหนวยขอมลทแคชทเกบไวจะหมดอาย

การแจง/การ update หนวยขอมลถกเสนอใน IETF standard RFC 2136

Page 70: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-70

DNS records

DNS: distributed db storing resource records (RR)

type=NS name is โดเมน (เชน,

foo.com)

value is ชอเครองของ authoritative name server ส าหรบโดเมนน

RR format: (name, value, type, ttl)

type=A name is ชอเครอง

value is IP address

type=CNAME name is นามแฝง (alias) ทจะใชส าหรบ ชอ

ทเปนทางการ (canonical)

www.ibm.com จรง ๆ กเปนนามแฝงของ servereast.backup2.ibm.com

value is ชอเครองทเปนทางการ

type=MX value is ชอของ mailserver ทเกยวของ name

Page 71: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-71

DNS protocol, messages

query and reply messages, both with same message format

msg header

identification: 16 bit # for

query, reply to query uses

same #

flags:

query or reply

recursion desired

recursion available

reply is authoritative

identification flags

# questions

questions (variable # of questions)

# additional RRs # authority RRs

# answer RRs

answers (variable # of RRs)

authority (variable # of RRs)

additional info (variable # of RRs)

2 bytes 2 bytes

Page 72: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-72

name, type fields for a query

RRs in response to query

records for authoritative servers

additional “helpful” info that may be used

identification flags

# questions

questions (variable # of questions)

# additional RRs # authority RRs

# answer RRs

answers (variable # of RRs)

authority (variable # of RRs)

additional info (variable # of RRs)

DNS protocol, messages

2 bytes 2 bytes

Page 73: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-73

การใส records เขาไปใน DNS

ตวอยาง: บรษทเพงตงใหมชอ “Network Utopia” ลงทะเบยนชอโดเมน networkuptopia.com กบ นายทะเบยน DNS (เชน

Network Solutions) ระบชอโดเมน, ทอย IP ของ authoritative name server (ตวหลก และ ตว

ส ารอง) นายทะเบยนใส records 2 record เขาไปใน .com TLD server:

(networkutopia.com, dns1.networkutopia.com, NS) (dns1.networkutopia.com, 212.212.212.1, A)

สราง record type A ส าหรบ www.networkuptopia.com; record type MX ส าหรบ networkutopia.com

Page 74: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

การจโจม DNS DDoS attacks

Bombard root servers with traffic Not successful to date

Traffic Filtering

Local DNS servers cache IPs of TLD servers, allowing root server bypass

Bombard TLD servers Potentially more

dangerous

Redirect attacks

Man-in-middle Intercept queries

DNS poisoning Send bogus relies to

DNS server, which caches

Exploit DNS for DDoS

Send queries with spoofed source address: target IP

Requires amplification Application Layer 2-74

Page 75: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-75

บทท 2: Outline 2.1 หลกการของแอพพลเคชนดาน

ระบบเครอขาย 2.2 Web และ HTTP 2.3 FTP 2.4 อเมล

SMTP, POP3, IMAP

2.5 DNS

2.6 แอพพลเคชน P2P 2.7 socket programming กบ UDP

และ TCP

Page 76: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-76

Pure P2P architecture

no always-on server

arbitrary end systems directly communicate

peers are intermittently connected and change IP addresses

examples: file distribution

(BitTorrent)

Streaming (KanKan)

VoIP (Skype)

Page 77: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-77

File distribution: client-server vs P2P

Question: how much time to distribute file (size F) from one server to N peers? peer upload/download capacity is limited resource

us

uN

dN

server

network (with abundant

bandwidth)

file, size F

us: server upload capacity

ui: peer i upload capacity

di: peer i download capacity u2 d2

u1 d1

di

ui

Page 78: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-78

File distribution time: client-server

server transmission: must sequentially send (upload) N file copies:

time to send one copy: F/us

time to send N copies: NF/us

increases linearly in N

time to distribute F

to N clients using

client-server approach Dc-s > max{NF/us,,F/dmin}

client: each client must download file copy dmin = min client download rate

min client download time: F/dmin

us

network

di

ui

F

Page 79: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-79

File distribution time: P2P

server transmission: must upload at least one copy

time to send one copy: F/us

time to distribute F

to N clients using

P2P approach

us

network

di

ui

F

DP2P > max{F/us,,F/dmin,,NF/(us + Sui)}

client: each client must download file copy min client download time: F/dmin

clients: as aggregate must download NF bits

max upload rate (limting max download rate) is us + Sui

… but so does this, as each peer brings service capacity

increases linearly in N …

Page 80: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-80

0

0.5

1

1.5

2

2.5

3

3.5

0 5 10 15 20 25 30 35

N

Min

imum

Dis

trib

ution T

ime P2P

Client-Server

Client-server vs. P2P: example

client upload rate = u, F/u = 1 hour, us = 10u, dmin ≥ us

Page 81: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-81

P2P file distribution: BitTorrent

tracker: tracks peers participating in torrent

torrent: group of peers exchanging chunks of a file

Alice arrives …

file divided into 256Kb chunks

peers in torrent send/receive file chunks

… obtains list

of peers from tracker … and begins exchanging

file chunks with peers in torrent

Page 82: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-82

peer joining torrent:

has no chunks, but will accumulate them over time from other peers

registers with tracker to get list of peers, connects to subset of peers (“neighbors”)

P2P file distribution: BitTorrent

while downloading, peer uploads chunks to other peers

peer may change peers with whom it exchanges chunks

churn: peers may come and go

once peer has entire file, it may (selfishly) leave or (altruistically) remain in torrent

Page 83: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-83

BitTorrent: requesting, sending file chunks

requesting chunks: at any given time, different

peers have different subsets of file chunks

periodically, Alice asks each peer for list of chunks that they have

Alice requests missing chunks from peers, rarest first

sending chunks: tit-for-tat Alice sends chunks to those

four peers currently sending her chunks at highest rate other peers are choked by Alice

(do not receive chunks from her)

re-evaluate top 4 every10 secs

every 30 secs: randomly select another peer, starts sending chunks “optimistically unchoke” this peer

newly chosen peer may join top 4

Page 84: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-84

BitTorrent: tit-for-tat

(1) Alice “optimistically unchokes” Bob

(2) Alice becomes one of Bob’s top-four providers; Bob reciprocates

(3) Bob becomes one of Alice’s top-four providers

higher upload rate: find better

trading partners, get file faster !

Page 85: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Distributed Hash Table (DHT)

DHT: a distributed P2P database

database has (key, value) pairs; examples:

key: ss number; value: human name

key: movie title; value: IP address

Distribute the (key, value) pairs over the

(millions of peers)

a peer queries DHT with key

DHT returns values that match the key

peers can also insert (key, value) pairs

Application 2-85

Page 86: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Q: how to assign keys to peers?

central issue:

assigning (key, value) pairs to peers.

basic idea:

convert each key to an integer

Assign integer to each peer

put (key,value) pair in the peer that is closest

to the key

Application 2-86

Page 87: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

DHT identifiers

assign integer identifier to each peer in range

[0,2n-1] for some n.

each identifier represented by n bits.

require each key to be an integer in same range

to get integer key, hash original key

e.g., key = hash(“Led Zeppelin IV”)

this is why its is referred to as a distributed “hash” table

Application 2-87

Page 88: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Assign keys to peers

rule: assign key to the peer that has the

closest ID.

convention in lecture: closest is the

immediate successor of the key.

e.g., n=4; peers: 1,3,4,5,8,10,12,14;

key = 13, then successor peer = 14

key = 15, then successor peer = 1

Application 2-88

Page 89: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

1

3

4

5

8 10

12

15

Circular DHT (1)

each peer only aware of immediate successor and

predecessor.

“overlay network” Application 2-89

Page 90: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

0001

0011

0100

0101

1000 1010

1100

1111

Who’s responsible

for key 1110 ? I am

O(N) messages

on avgerage to resolve

query, when there

are N peers

1110

1110

1110

1110

1110

1110

Define closest

as closest

successor

Application 2-90

Circular DHT (1)

Page 91: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Circular DHT with shortcuts

each peer keeps track of IP addresses of predecessor, successor, short cuts.

reduced from 6 to 2 messages.

possible to design shortcuts so O(log N) neighbors, O(log N) messages in query

1

3

4

5

8 10

12

15

Who’s responsible

for key 1110?

Application 2-91

Page 92: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Peer churn

example: peer 5 abruptly leaves

peer 4 detects peer 5 departure; makes 8 its immediate successor; asks 8 who its immediate successor is; makes 8’s immediate successor its second successor.

what if peer 13 wants to join?

1

3

4

5

8 10

12

15

handling peer churn:

peers may come and go (churn)

each peer knows address of its two successors

each peer periodically pings its two successors to check aliveness

if immediate successor leaves, choose next successor as new immediate successor

Application 2-92

Page 93: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-93

บทท 2: Outline 2.1 หลกการของแอพพลเคชนดาน

ระบบเครอขาย 2.2 Web และ HTTP 2.3 FTP 2.4 อเมล

SMTP, POP3, IMAP

2.5 DNS

2.6 แอพพลเคชน P2P 2.7 socket programming กบ UDP

และ TCP

Page 94: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-94

Socket programming

goal: learn how to build client/server applications that communicate using sockets

socket: door between application process and end-end-transport protocol

Internet

controlled

by OS

controlled by app developer

transport

application

physical

link

network

process

transport

application

physical

link

network

process socket

Page 95: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-95

Socket programming

Two socket types for two transport services:

UDP: unreliable datagram

TCP: reliable, byte stream-oriented

Application Example:

1. Client reads a line of characters (data) from its keyboard and sends the data to the server.

2. The server receives the data and converts characters to uppercase.

3. The server sends the modified data to the client.

4. The client receives the modified data and displays the line on its screen.

Page 96: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-96

Socket programming with UDP

UDP: no “connection” between client & server no handshaking before sending data

sender explicitly attaches IP destination address and port # to each packet

rcvr extracts sender IP address and port# from received packet

UDP: transmitted data may be lost or received out-of-order

Application viewpoint: UDP provides unreliable transfer of groups of bytes

(“datagrams”) between client and server

Page 97: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Client/server socket interaction: UDP

close

clientSocket

read datagram from

clientSocket

create socket:

clientSocket =

socket(AF_INET,SOCK_DGRAM)

Create datagram with server IP and

port=x; send datagram via

clientSocket

create socket, port= x:

serverSocket =

socket(AF_INET,SOCK_DGRAM)

read datagram from

serverSocket

write reply to

serverSocket

specifying

client address,

port number

Application 2-97

server (running on serverIP) client

Page 98: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

2: Application Layer 98

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();

InetAddress IPAddress = InetAddress.getByName("hostname");

byte[] sendData = new byte[1024];

byte[] receiveData = new byte[1024];

String sentence = inFromUser.readLine();

sendData = sentence.getBytes();

Create input stream

Create client socket

Translate hostname to IP

address using DNS

Page 99: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

2: Application Layer 99

Example: Java client (UDP), cont.

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();

}

}

Create datagram with data-to-send,

length, IP addr, port

Send datagram to server

Read datagram from server

Page 100: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

2: Application Layer 100

Example: Java server (UDP)

import java.io.*;

import java.net.*;

class UDPServer {

public static void main(String args[]) throws Exception

{

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 datagram socket

at port 9876

Create space for received datagram

Receive datagram

Page 101: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

2: Application Layer 101

Example: Java server (UDP), cont

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

InetAddress IPAddress = receivePacket.getAddress();

int port = receivePacket.getPort();

String capitalizedSentence = sentence.toUpperCase();

sendData = capitalizedSentence.getBytes();

DatagramPacket sendPacket =

new DatagramPacket(sendData, sendData.length, IPAddress,

port);

serverSocket.send(sendPacket);

}

}

}

Get IP addr port #, of

sender

Write out datagram to socket

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

Create datagram to send to client

Page 102: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-102

Socket programming with TCP

client must contact server

server process must first be running

server must have created socket (door) that welcomes client’s contact

client contacts server by:

Creating TCP socket, specifying IP address, port number of server process

when client creates socket: client TCP establishes connection to server TCP

when contacted by client, server TCP creates new socket for server process to communicate with that particular client

allows server to talk with multiple clients

source port numbers used to distinguish clients (more in Chap 3)

TCP provides reliable, in-order byte-stream transfer (“pipe”) between client and server

application viewpoint:

Page 103: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-103

Client/server socket interaction: TCP

wait for incoming

connection request connectionSocket =

serverSocket.accept()

create socket, port=x, for incoming

request: serverSocket = socket()

create socket, connect to hostid, port=x

clientSocket = socket()

server (running on hostid) client

send request using

clientSocket read request from

connectionSocket

write reply to

connectionSocket

TCP connection setup

close

connectionSocket

read reply from

clientSocket

close

clientSocket

Page 104: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

2: Application Layer 104 o

utT

oS

erv

er

to network from network

inF

rom

Se

rve

r

inF

rom

Use

r

keyboard monitor

Process

clientSocket

input

stream

input

stream

output

stream

TCP

socket

Client process

client TCP socket

Stream jargon

A stream is a sequence of characters that flow into or out of a process.

An input stream is attached to some input source for the process, e.g., keyboard or socket.

An output stream is attached to an output source, e.g., monitor or socket.

Page 105: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

2: Application Layer 105

Example: Java client (TCP)

import java.io.*;

import java.net.*;

class TCPClient {

public static void main(String argv[]) throws Exception

{

String sentence;

String modifiedSentence;

BufferedReader inFromUser =

new BufferedReader(new InputStreamReader(System.in));

Socket clientSocket = new Socket("hostname", 6789);

DataOutputStream outToServer =

new DataOutputStream(clientSocket.getOutputStream());

Create input stream

Create client socket,

connect to server

Create output stream

attached to socket

Page 106: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

2: Application Layer 106

Example: Java client (TCP), cont.

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();

}

}

Create input stream

attached to socket

Send line to server

Read line from server

Page 107: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

2: Application Layer 107

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);

while(true) {

Socket connectionSocket = welcomeSocket.accept();

BufferedReader inFromClient =

new BufferedReader(new

InputStreamReader(connectionSocket.getInputStream()));

Create welcoming socket

at port 6789

Wait, on welcoming socket for contact

by client

Create input stream, attached

to socket

Page 108: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

2: Application Layer 108

Example: Java server (TCP), cont

DataOutputStream outToClient =

new DataOutputStream(connectionSocket.getOutputStream());

clientSentence = inFromClient.readLine();

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

outToClient.writeBytes(capitalizedSentence);

}

}

}

Read in line from socket

Create output stream, attached

to socket

Write out line to socket

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

Page 109: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-109

Chapter 2: summary

สถาปตยกรรมของ application client-server P2P

บรการท application ตองการ: reliability, bandwidth, delay

โมเดลการใหบรการสงขอมลของ Internet (Internet transport service model) connection-oriented, reliable: TCP unreliable, datagrams: UDP

ตอนนเรากเรยนเกยวกบ network apps สมบรณแลว!

ตวอยาง Protocols:

HTTP

FTP

SMTP, POP, IMAP

DNS

P2P: BitTorrent, DHT

socket programming: TCP, UDP sockets

Page 110: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

Application Layer 2-110

การแลกเปลยนขอความรองขอ/ตอบกลบ (request/reply) ทว ๆ ไป: client รองขอขอมลหรอบรการ server ตอบกลบดวยขอมล หรอ

รหสสถานะ (status code) formats ของขอความ:

headers (สวนหว): fields (สวนของขอมล) ใหขอมลทอธบายขอมลท app สงจรง ๆ

data: ขอมลท app จะตองการสงถงกน

หวขอทส าคญ: ขอความทใชควบคม vs ขอความทเปนขอมล

in-band (ถกสงไปดวยกน), out-of-band (ถกสงไปคนละการเชอมตอกน)

centralized (รวมศนย) vs. decentralized (กระจาย)

stateless (ไมเกบสถานะ) vs. stateful (เกบสถานะ)

reliable vs. unreliable msg transfer

ความซบซอนทขอบของเครอขาย

ส าคญ: เรยนรเกยวกบ protocols!

Chapter 2: summary

Page 111: บทที่ 2: Application Layer - Burapha Universitynutthanon/887230/... · 2013. 11. 11. · Application Layer 2-บทที่ 2: Outline 2.1 หลักการของแอพพลิเคชันด้าน

1 56910040 MS.VANNAK SOTH 2 56920001 นางสาวเจฬรย ล าเลศ 3 56920003 นายธนศกด วฒวโรภาส 4 56920004 นายนพปฎล เฉยศร 5 56920005 นายปรเมศวร รตนผล 6 56920006 พนตรพรภรมย มนฤกษ 7 56920007 นายวนปยะ รตตะมณ 8 56920336 นายฉตรชย เสกประเสรฐ 9 56920337 นายธนพนธ เดชจระกล 10 56920338 นายธนนทร เมธโยธน 11 56920340 นางสาวพรพรรณ ขวญกจบรรจง 12 56920341 นายพสกร ปญญวรากจ 13 56920343 นางโพธรตน หรญรง 14 56920344 นายรกชาต เหมะสขณฑกะ 15 56920345 นายสมบรณ เฉลมรตนาพร 16 56920347 นายเอกพล ออนปาน

Credit ผแปล

1-111 บทน ำ