Microsoft PowerPoint - 2-Network-Application

Similar documents
/ (application layer protocols) http ftp smtp pop dns 2

Microsoft PowerPoint Network-Application

0. 들어가기 전

Windows 8에서 BioStar 1 설치하기

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

제20회_해킹방지워크샵_(이재석)

6강.hwp

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

Secure Programming Lecture1 : Introduction

The Pocket Guide to TCP/IP Sockets: C Version

Network seminar.key

<4D F736F F F696E74202D E20C0CEC5CDB3DD20C0C0BFEB20B9D720BCADBAF1BDBA20B1E2BCFA E >

1217 WebTrafMon II

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

KISA-GD

Microsoft Word - NAT_1_.doc

Microsoft PowerPoint - net2.

Microsoft PowerPoint PythonGUI-socket

chapter4

전송계층프로토콜 TCP(Transmission Control Protocol) 전송계층에서동작하는연결지향형 (connectionoriented) 프로토콜 데이터의흐름을관리하고, 데이터가정확한지검증하며통신 쓰리웨이핸드셰이킹 (three-way handshaking) 을통

SMB_ICMP_UDP(huichang).PDF

Microsoft PowerPoint - ch02_인터넷 이해와 활용.ppt

소프트웨어 융합 개론

2009년 상반기 사업계획

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C


Microsoft PowerPoint _TCP_IP

Microsoft PowerPoint - L4-7Switch기본교육자료.ppt

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

TCP.IP.ppt

2009년 상반기 사업계획

[Brochure] KOR_TunA

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

The Pocket Guide to TCP/IP Sockets: C Version

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

Analyst Briefing

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

Subnet Address Internet Network G Network Network class B networ

Microsoft Word - src.doc

슬라이드 제목 없음

메일서버등록제(SPF) 인증기능적용안내서 (AIX - sendmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 AIX 5.3 sendmail spf-filter 년 6 월

게시판 스팸 실시간 차단 시스템

TTA Journal No.157_서체변경.indd

Microsoft PowerPoint - 10Àå.ppt

[ 네트워크 1] 3 주차 1 차시. IPv4 주소클래스 3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트

Microsoft Word doc

Assign an IP Address and Access the Video Stream - Installation Guide

TTA Verified : HomeGateway :, : (NEtwork Testing Team)

제1장 Unix란 무엇인가?

금오공대 컴퓨터공학전공 강의자료

본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta

. PC PC 3 [ ] [ ], [ ] [ ] [ ] 3 [ ] [ ], 4 [ ] [ ], 4 [Internet Protocol Version 4 (TCP/IPv4)] 5 [ ] 6 [ IP (O)], [ DNS (B)] 7 [ ] 한국어 -

The Pocket Guide to TCP/IP Sockets: C Version

2009년 상반기 사업계획

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

개요 Windows 클라이언트와서버를위한이름풀이 (Name Resolution) DNS 서버설치와관리 DNS 영역 (Zones) 관리

운영체제실습_명령어

OSI 참조 모델과 TCP/IP

VZ94-한글매뉴얼

FMX M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2

2. 인터네트워킹 서로떨어져있는각각의수많은네트워크들을연결하여하나의네트워크처럼연결하여사용할수있도록해주는것 3. 인터네트워킹에필요한장비 1 리피터 (Repeater) - 데이터가전송되는동안케이블에서신호의손실인감쇄 (Attenuation) 현상이발생하는데, 리피터는감쇄되는신

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

자바-11장N'1-502

Remote UI Guide


HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

Voice Portal using Oracle 9i AS Wireless

Microsoft PowerPoint - 06-IPAddress [호환 모드]

cam_IG.book

제10장 트래핀스포트 및 응용 계층

UDP Flooding Attack 공격과 방어

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Sena Device Server Serial/IP TM Version

6주차.key

Interstage5 SOAP서비스 설정 가이드

시스템, 네트워크모니터링을통한보안강화 네트워크의미래를제시하는세미나 세미나 NetFocus 2003 : IT 관리자를위한네트워크보안방법론 피지피넷 /

Web Scraper in 30 Minutes 강철

untitled

Microsoft PowerPoint - 4. 스캐닝-2.ppt [호환 모드]

thesis-shk

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

Cache_cny.ppt [읽기 전용]

The Pocket Guide to TCP/IP Sockets: C Version

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

PowerPoint 프레젠테이션

PowerPoint Template

Microsoft PowerPoint 웹 연동 기술.pptx

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 03-TCP Programming.ppt

NTD36HD Manual

BEA_WebLogic.hwp

PCServerMgmt7

Portal_9iAS.ppt [읽기 전용]

Microsoft PowerPoint - 4.스캐닝-1(11.08) [호환 모드]


< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

Switching

Transcription:

2장. 애플리케이션계층 (Application Layer) 순천향대학교컴퓨터공학과이상정 순천향대학교컴퓨터공학과 1 2 장. 애플리케이션계층 2.1 네트워크애플리케이션의원리 2.2 웹과 HTTP 23 2.3 파일전송 :FTP 2.4 인터넷전자메일 SMTP, POP3, IMAP 2.5 DNS-인터넷디렉터리서비스 26 2.6 P2P 애플리케이션 2.7 TCP 소켓프로그래밍 2.8 UDP 소켓프로그래밍 순천향대학교컴퓨터공학과 2

강의목표 네트워크애플리케이션의개념과구현측면학습 애플리케이션계층프로토콜 클라이언트와서버, P2P 트랜스포트계층인터페이스 주요애플리케이션프로토콜계층학습 HTTP FTP SMTP / POP3 / IMAP DNS 네트워크애플리케이션프로그래밍 소켓 API 순천향대학교컴퓨터공학과 3 네트워크애플리케이션예 e- 메일 (e-mail) 웹 (web) 인턴스트메시징 (instant messaging) 원격로그인 (remote login) P2P 파일공유 (P2P file sharing) 다중사용자네트워크게임 (multi-user network games) 스트리밍저장비디오클립 (streaming stored video clips) VoIP (Voice over IP) 실시간화상회의 (real-time video conferencing) 그리드컴퓨팅 (grid computing) 순천향대학교컴퓨터공학과 4

네트워크애플리케이션개발 애플리케이션프로그램 서로다른종단시스템 (end system) 에서동작 네트워크상에서통신 예 : 웹서버프로그램과통신하는웹브라우저프로그램 네트워크코어장비에서실행되는소프트웨어를개발할필요없음 네트워크코어장비는사용자애플리케이션실행하지않음 따라서종단시스템의애플리케이션을빠르게개발하고전파가가능 순천향대학교컴퓨터공학과 5 2 장. 애플리케이션계층 2.1 네트워크애플리케이션의원리 2.22 웹과 HTTP 2.3 파일전송 : FTP 2.4 인터넷전자메일 SMTP, POP3, IMAP 2.5 DNS- 인터넷디렉터리서비스 2.6 P2P 애플리케이션 2.7 TCP 소켓프로그래밍 2.8 UDP 소켓프로그래밍 순천향대학교컴퓨터공학과 6

네트워크애플리케이션구조 애플리케이션구조 (application architecture) 개발자가설계하는애플리케이션이다양한종단시스템에서어떻게조직되어야하는지를지시 클라이언트 / 서버구조 (client-server architecture) P2P 구조 (Peer-to-Peer architecture) 클라이언트 / 서버와 P2P 의혼합 (hybrid) 순천향대학교컴퓨터공학과 7 클라이언트 / 서버구조 서버 (server) 항상켜져있는호스트 서비스제공 고정 IP 주소 서버팜 (server farm) 으로확장 호스트들의클러스터 클라이언트 (client) 서버와통신 서비스요청 클라이언트들간직접통신하지않음 유동 IP 가질수있음 항상연결되어있지않고간헐적으로통신할수있음 순천향대학교컴퓨터공학과 8

P2P 구조 항상켜져있는서버없음 임의의종단시스템과직접통신 피어 (peer) 는간헐적으로연결되고 IP 주소를변경 높은자기확장성 (self-scalability) 관리가어려움 순천향대학교컴퓨터공학과 9 클라이언트 / 서버와 P2P 의혼합 (Hybrid) Skype P2P VoIP 애플리케이션 중앙서버는원격통화대상자를검색 클라이언트간에는서버연결없이직접통신 인스턴트메시징 (instant messaging) 사용자간채팅은 P2P 중앙서버는클라이언트의존재여부및위치서비스 사용자는온라인시중앙서버에 IP 주소등록 사용자는버디의 IP 주소를찾기위해중앙서버접촉 순천향대학교컴퓨터공학과 10

프로세스간통신 (Processes Communicating) 프로세스 (process) 는호스트에서실행중인프로그램 호스트내에서두프로세스는 OS에서정의한 IPC(inter-process communication) 로통신 다른호스트간의프로세스들은메시지 (message) 를교환하여통신 클라이언트 (client) 와서버 (server) 프로세스 클라이언트는두프로세스간의통신세션을초기화 ( 접속을초기화 ) 하는프로세스 서버는세션을시작하기위해접속을기다리는프로세스 웹예 브라우저는웹서버프로세스와접속을초기화 브라우저는클라이언트프로세스, 웹서버는서버프로세스 P2P 구조의애플리케이션들은클라이언트프로세스와서버프로세스를가짐 순천향대학교컴퓨터공학과 11 소켓 (Socket) 프로세스는소켓 (socket) 을통해네트워크로메시지를송수신 소켓은호스트의애플리케이션계층과트랜스포트계층간의인터페이스 소켓은애플리케이션과네트워크사이의 API(Application Programming Interface) 트랜스포트프로토콜선택 (TCP, UDP) 버퍼와세그먼트의최대크기와같은일부매개변수설정 순천향대학교컴퓨터공학과 12

프로세스의주소 호스트상의프로세스는 IP 주소와포트번호로구분 포트번호예 HTTP 서버 : 80 메일서버: 25 인터넷표준프로토콜에대한알려진 (well-known) 포트번호리스트는 www.iana.org 참조 HTTP 메시지를 gaia.cs.umass.edu 웹서버에전송 IP 주소 : 128.119.245.12 119 245 포트번호 : 80 순천향대학교컴퓨터공학과 13 애플리케이션계층프로토콜 애플리케이션계층프로토콜은다음과같은내용을정의 교환되는메시지의타입 예 : 요청메시지, 응답메시지 여러메시지타입의문법 (syntax) 예 : 메시지내부의필드 (field) 와필드간의구별방법 메시지의미 (message sematics) 필드에있는정보의의미 언제, 어떻게프로세스가메시지를전송하고메시지에응답하는지를결정하는규칙 공중도메인프로토콜 (public domain protocol) RFC(Request For Comments) 로정의 상호작용 (interoperability) 허용 예 : HTTP, SMTP 독점적인프로토콜 (proprietary protocol): Skype 순천향대학교컴퓨터공학과 14

애플리케이션이이용가능한트랜스포트서비스 (1) 트랜스포트계층이애플리케이션에게제공하는서비스 신뢰적데이터전송 (reliable data transfer) 프로토콜이데이터손실 (data loss) 없이보장된데이터전송서비스를제공하면신뢰적데이터전송 신뢰적데이터전송을제공하지않는손실허용애플리케이션 (loss-tolerant application) 오디오 / 비디오를전송하는멀티미디어애플리케이션 처리율 (throughput) 처리율은두프로세스간의통신세션에서비트를전달할수있는비율 대역폭민감애플리케이션 (bandwidth-sensitive application) 은보장된처리율서비스를요구 멀티미디어응용은효과적인서비스를위해요구되는최소의처리율보장» 예 : 인터넷전화는 32kbps로음성을인코드 / 디코드 융통성있는애플리케이션 (elastic application) 은처리율에덜민감 전자메일, 파일전송, 웹전송 순천향대학교컴퓨터공학과 15 애플리케이션이이용가능한트랜스포트서비스 (2) 시간 (time) 시간보장 (timing guarantee) 를제공 특정시간내의모든비트의전송을보장 상호작용실시간애플리케이션들은효율적인서비스를위해엄격한시간제한조건을요구 인터넷전화, 원격회의, 다자간게임 보안 (security) 애플리케이션에게하나이상의보안서비스를제공 송신프로세스의데이터를암호화하고, 데이터를해독하여수신프로세스에게전달 순천향대학교컴퓨터공학과 16

애플리케이션들의트랜스포트서비스요구사항 애플리케이션 데이터손실 대역폭 시간민감성 파일전송 비손실 가변적 아니요 전자메일 비손실 가변적 아니요 웹문서 비손실 가변적 ( 수 kbps) 아니요 실시간오디오 / 비디오 손실허용 오디오 : 수 kbps~1mbps 비디오 : 10kbps~5Mbps 네 : 100msec 저장오디오 / 비디오 손실허용 오디오 : 수 kbps~1mbps 네 : 수초 비디오 : 10kbps~5Mbps 상호작용게임 손실허용 수 kbps ~ 10kbps 네 : 100msec 인스턴트메시징 비손실 가변적 네그리고아니오 순천향대학교컴퓨터공학과 17 인터넷트랜스포트계층이제공하는서비스 (1) TCP (Transmission Control Protocol) 서비스 연결지향형서비스 (connection-oriented service) 클라이언트와서버프로세스들간에연결설정 서로간전송제어정보교환 (handshaking) 하고송수신준비 신뢰적인데이터전송 송수신프로세스간에데이터의손실없이올바른순서로전달 흐름제어 (flow control) 송신프로세스가수신프로세스의데이터수신속도에맞추어송신 혼잡제어 (congestion control) 네트워크가혼잡상태에이르면프로세스의전송속도를낮춤 제공하지않는서비스 시간보장, 최소처리율보장, 보안 순천향대학교컴퓨터공학과 18

인터넷트랜스포트계층이제공하는서비스 (2) UDP (User Datagram Protocol) 서비스 비연결형으로두프로세스가통신전에정보교환 (handshaking) 을하지않음 비신뢰적인데이터전송서비스를제공 흐름제어, 혼잡제어, 시간보장, 처리율보장, 보안등의서비스도제공하지않음 실시간애플리케이션들이전송속도를위해 UDP 사용 TCP 혼잡제어와패킷오버헤드문제회피 많은방화벽들이 UDP 트래픽을차단하도록설정되어점차적으로 TCP 상에서멀티미디어와실시간애플리케이션을수행하도록선택 순천향대학교컴퓨터공학과 19 인터넷애플리케이션의트랜스포트프로토콜 애플리케이션 애플리케이션프로토콜 트랜스포트프로토콜 전자메일 SMTP [RFC 2821] TCP 원격터미널접속 Telnet [RFC 854] TCP 웹 HTTP [RFC 2616] TCP 파일전송 FTP [RFC 959] TCP 스트리밍멀티미디어 HTTP( 예 : YouTube), RTP UDP 혹은 TCP 인터넷전화 SIP, RTP, 독점적인 ( 예 : Skype) 일반적으로 UDP 순천향대학교컴퓨터공학과 20

2 장. 애플리케이션계층 2.1 네트워크애플리케이션의원리 2.2 웹과 HTTP 2.3 파일전송 : FTP 2.4 인터넷전자메일 SMTP, POP3, IMAP 2.5 DNS- 인터넷디렉터리서비스 2.6 P2P 애플리케이션 2.7 TCP 소켓프로그래밍 2.8 UDP 소켓프로그래밍 순천향대학교컴퓨터공학과 21 웹과 HTTP 웹페이지 (web page) 는객체 (object) 들로구성 객체는하나의파일 HTML 파일, JPEG 이미지, 자바애플릿, 오디오파일 웹페이지는기본 HTML 파일과여러참조객체들로구성 각객체는 URL (Uniform Resource Locator) 로지정 URL 은객체를가지고있는서버의호스트이름과객체의경로이름으로구성 순천향대학교컴퓨터공학과 22

HTTP 개요 (1) HTTP (HyperText Transfer Protocol) 는웹의애플리케이션계층프로토콜 클라이언트 / 서버모델 클라이언트는웹객체들을요청하고받아서디스플레이하는브라우저 (browser) 서버는요청에응답하여객체들을보내는웹서버 순천향대학교컴퓨터공학과 23 HTTP 개요 (2) HTTP 는 TCP 트랜스포트프로토콜을사용 클라이언트는 80번포트로서버에게 TCP 연결 ( 소켓을생성 ) 을시작 서버는클라이언트의 TCP 연결요청을수락 브라우저 (HTTP 클라이언트 ) 와웹서버 (HTTP 서버 ) 사이에 HTTP 메시지 ( 애플리케이션계층프로토콜메시지 ) 를교환 TCP 연결종료 HTTP는비상태프로토콜 (stateless protocol) 서버는클라이언트의과거요청들에대한정보를유지하지않음 참고 ) 상태를유지하는프로토콜은복잡 과거의기록들 ( 상태 ) 를유지관리해야함 서버나클라이언트중하나가깨진경우각각의상태는불일치하게되어조정이필요 순천향대학교컴퓨터공학과 24

HTTP 연결 (HTTP Connections) HTTP 연결은비지속연결과지속연결 2 가지방식이있음 비지속연결 (nonpersistent connection) 요구 / 응답쌍이분리된 TCP 연결을통해송수신 하나의 TCP 연결로하나의객체만전송 지속연결 (persistent connection) 모든요구 / 응답쌍이같은 TCP 연결상에서송수신 다수의객체들이하나의 TCP 연결로전송 순천향대학교컴퓨터공학과 25 비지속연결 HTTP (1) 다음 URL를접속하는예 www.someschool.edu/somedepartment/home.index 웹페이지는한개의기본 HTML 파일과 10개 JPEG 이미지로구성 1a. HTTP 클라이언트는 www.someschool.edu 서버의 80 번포트로TCP 연결을시도 1b. 80번포트로 TCP 연결을기다리는 www.someschool.edu 호스트의 HTTP 서버는연결을수락 2. HTTP 클라이언트는 TCP 연결소켓을통해 HTTP 요청메시지 (request message) 를보냄. 요청메시지에는다음경로이름이 3. HTTP 서버는요청메시지를받고, 포함. 요청된객체들이포함된응답메 somedepartment/home.index 시지 (response message) 를생시간하고, 소켓을통해송신 순천향대학교컴퓨터공학과 26

비지속연결 HTTP (2) 시간 5. HTTP 클라이언트는 HTML 파일이포함된응답메시지를받아서 HTML을디스플레이. HTML 파일을파싱하여 10개의 JPEG 객체에대한참조를획득. 4. HTTP 서버는 TCP 연결을종료 6. 10개의 JPEG 객체에대해1-5 단계를반복 순천향대학교컴퓨터공학과 27 비지속연결 : 응답시간 (Response Time) RTT (Round-Trip Time) 클라이언트에서송신된작은패킷이서버까지간후 ( 그응답이 ) 다시클라이언트로되돌아오는데걸리는시간 HTML 파일요청응답시간 (response time) TCP 연결을초기화하는 1 RTT HTTP 요청을하고 HTTP 응답으로처음몇바이트를받는데필요한 1 RTT 파일전송시간 2 RTT + 파일전송시간 순천향대학교컴퓨터공학과 28

지속연결 HTTP 비지속연결의단점 각객체당2 RTT 필요 각 TCP 연결에대한 OS 오버헤드 브라우저는참조객체들을가져오기위해종종병렬 TCP 연결을시도 지속연결 HTTP (persistent connection HTTP) 서버는응답을보낸후에 TCP 연결을그대로유지 클라이언트 / 서버간의이후 HTTP 메시지들은같은연결을통해송수신 클라이언트는객체를참조하자마자요청을송신 모든참조객체들에대해 1 RTT 만필요 순천향대학교컴퓨터공학과 29 HTTP 요청메시지 (HTTP Request Message) 두유형의 HTTP 메시지 : 요청 (request), 응답 (response) HTTP 요청메시지 ASCII 텍스트 요청라인 (request line) (GET, POST, HEAD commands) 헤더라인 (header lines) CR(Carriage Return), LF(Line Feed ) 메시지의끝을표시 GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language:fr ( 추가 CR, LF) 순천향대학교컴퓨터공학과 30

HTTP 요청메시지 : 일반포맷 순천향대학교컴퓨터공학과 31 폼입력 (Form Input) 웹페이지는폼입력을포함 사용자가브라우저의폼필드 (form field) 에입력히여서버에전달 POST 방식 (POST method) 입력은개체몸체 (entity body) 로서버에업로드 URL 방식 GET 방식 (method) 사용 입력은요청라인의 URL 필드로서버에업로드 www.somesite.com/animalsearch?monkeys&banana 순천향대학교컴퓨터공학과 32

방식유형 (Method Type) HTTP/1.0 GET POST HEAD GET 방식과유사하나서버가응답시요청된객체는보내지않음 HTTP/1.1 GET, POST, HEAD PUT URL 필드에명시된경로로개체몸체안의파일을업로드 DELETE URL 필드에명시된파일을삭제 순천향대학교컴퓨터공학과 33 HTTP 응답메시지 (HTTP Response Message) 상태라인 (status line) 프로토콜 (protocol) 상태코드 (status code) 상태문장 (status phrase) 헤더라인 (header lines) 데이타, e.g., 요청된 HTML file HTTP/1.1 200 OK Connection: close 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... 순천향대학교컴퓨터공학과 34

HTTP 응답상태코드 (HTTP Response Status t Code) 응답메시지의상태라인에서표시 일반적인상태코드 200 OK 요청이성공되었고, 요청된객체가이메시지로보내짐 301 Moved Permanently 요청된객체가이동되었고, 새로운위치는메시지의 Location: 헤더로표시 400 Bad Request 서버가요청을이해할수없다는일반오류코드 404 Not Found 요청된문서가서버에존재하지않음 505 HTTP Version Not Supported 요청된 HTTP 프로토콜버전을서버가지원하지않음 순천향대학교컴퓨터공학과 35 HTTP 응답메시지확인 1. 웹서버에텔넷으로접속: telnet cis.poly.edu 80 cis.poly.edu 호스트의 80번포트로 TCP 연결설정 ( 이후입력된문자는 cis.poly.edu 호스트의 80번포트로전송 ) 2. GET HTTP 요청입력 : GET /~ross// HTTP/1.1 1 마지막줄입력후엔터를두번입력 Host: cis.poly.edu ( HTTP 서버에 GET 요청을전송 ) 3. HTTP 서버에서보낸응답메시지를확인 순천향대학교컴퓨터공학과 36

사용자와서버간의상호작용 : 쿠기 (Cookie) (1) 대부분의상용웹사이트들이쿠키 (cookie) 를사용하여사용자상태를추적하고유지 쿠키는 4가지요소로구성 HTTP 응답메시지의쿠키헤더라인 HTTP 요청메시지의쿠키헤더라인 사용자호스트에저장되어브라우저에의해관리되는쿠키파일 웹사이트의백엔드 (back-end) 데이터베이스 예 수전은항상 PC로인터넷을접속 처음특정전자상거래사이트방문 사이트에첫 HTTP 요청이들어올때서버는다음을생성 유일한식별번호 (unique ID) 식별번호로인덱스되는백엔드데이터베이스안의엔트리 순천향대학교컴퓨터공학과 37 사용자와서버간의상호작용 : 쿠기 (Cookie) (2) 순천향대학교컴퓨터공학과 38

쿠키 (Cookie) 쿠키의활용 사용자식별확인 쇼핑카트 제품추천 사용자세션상태 ( 웹전자메일 ) 쿠키와사용자사생활침해 쿠키와사용자계정정보 ( 이름, 메일주소등 ) 와결합 사용자의많은정보가노출 순천향대학교컴퓨터공학과 39 웹캐시 (Web Cache) (1) 웹캐시 (web cache) 는원래웹서버를대신하여 HTTP 요구를충족시켜주는네트워크개체 프록시서버 (proxy server) 라고도함 브라우저는웹캐시와 TCP 연결을설정하고웹캐시에 HTTP 요청전송 웹캐시에객체가있으면객체를전송 없으면웹캐시가기점서버에객체를요청하여가져와서클라이언트에전송 순천향대학교컴퓨터공학과 40

웹캐시 (Web Cache) (2) 웹캐시는서버와클라이언트로동작 일반적으로웹캐시는 ISP ( 대학, 회사, 인터넷업체 ) 에의해설치 웹캐싱 (web caching) 이점 클라이언트의요청에대한응답시간을줄일수있음 인터넷으로의기관접속회선상의웹트래픽 (web traffic) 을줄일수있음 웹캐시를갖는고밀도인터넷 ( 기관, 지역, 국가 ) 콘텐츠가제공자가저속도의접속회선을가진느린서버에서사이트를운영하더라도빠른콘텐츠분배를위한기반구조제공 순천향대학교컴퓨터공학과 41 웹캐시예 (1) 가정 평균객체크기 0.1 M 비트 브라우저에서서버로평균요청비율 15 요청 / 초 기관라우터에서서버까지요청을전달하고응답을받는평균소요시간 ( 인터넷지연 ) 2초 순천향대학교컴퓨터공학과 42

웹캐시예 (2) 이용율 (utilization) 과지연 LAN 이용율 (15 요청 / 초 x 0.1 M 비트 ) / 10 Mbps = 0.15, 15% 접속회선 (access link) 이용율 (15 요청 / 초 x 0.1 M 비트 ) / 1.5 Mbps = 1, 100% 전체지연인터넷지연 + 접속회선지연 + LAN 지연 = 2초 + 수분 (minutes) + 밀리초 (milliseconds) 순천향대학교컴퓨터공학과 43 웹캐시예 (3) 회선속도개선 접속회선의속도를 10 Mbps로개선 많은비용소요 이용율 (utilization) 과지연 LAN 이용율 (15 요청 / 초 x 0.1 M 비트 ) / 10 Mbps = 0.15, 15% 접속회선 (access link) 이용율 (15 요청 / 초 x 0.1 M 비트 ) / 10 Mbps = 1, 15% 전체지연인터넷지연 + 접속회선지연 + LAN 지연 = 2초 + 밀리초 (milliseconds) + 밀리초 (milliseconds) 순천향대학교컴퓨터공학과 44

웹캐시예 (4) 기관웹캐시설치 요청의 40% 는히트라고가정 이용율 (utilization) 과지연 요청의 60% 만접속회선을이용하므로회선이용율도 60% 80% 미만의이용율의경우접속회선지연은수십밀리초소요 (10ms 라가정 ) 전체지연인터넷지연 + 접속회선지연 + LAN 지연 = 0.6 x (2초 +0.01초 ) + 0.4 x 밀리초 (milliseconds) <14 1.4 초 순천향대학교컴퓨터공학과 45 조건부 GET (Conditional GET) 조건부 GET은웹캐시의객체들인최신버전이면서버가객체를보내지않음 캐시는 HTTP 요청에캐시된복사본의시간을명시 If-modified-since: <date> 서버는캐시된복사본이최신의것이면객체가생략된응답을전송 HTTP/1.0 304 Not Modified 순천향대학교컴퓨터공학과 46

2 장. 애플리케이션계층 2.1 네트워크애플리케이션의원리 2.2 웹과 HTTP 23 2.3 파일전송 :FTP 2.4 인터넷전자메일 SMTP, POP3, IMAP 2.5 DNS- 인터넷디렉터리서비스 2.6 P2P 애플리케이션 2.7 TCP 소켓프로그래밍 2.8 UDP 소켓프로그래밍 순천향대학교컴퓨터공학과 47 FTP (File Transfer Protocol) FTP 는원격호스트와파일을송수신하는프로토콜 RFC 959 클라이언트 / 서버모델 클라이언트는전송을시작하는측 서버는원격호스트 (remote host) 21 번포트 순천향대학교컴퓨터공학과 48

FTP: 제어연결, 데이터연결 FTP는제어연결과데이터연결두개의 TCP 연결을사용 제어연결 (control connection) 클라이언트는 FTP 서버포트 21로제어연결설정 클라이언트는제어연결을통해사용자계정과비밀번호전송 클라이언트는제어연결을통해원격디렉토리검색, 변경 별도의제어연결을아웃밴드 (out-of-band, 대역외 ) 라고도함 제어연결은사용자세션동안사용자의상태 ( 사용자계정, 현재디렉토리등 ) 를유지 데이터연결 (data connection) 서버는클라이언트의파일전송명령을받으면 TCP 데이터연결을개통 한파일전송후서버는데이터연결을닫음 서버는다른파일전송시또다른 TCP 연결을개통 순천향대학교컴퓨터공학과 49 FTP 명령과응답 FTP 명령 (FTP command) 제어연결을통해 ASCII 텍스트로전송 USER username 서버에게사용자계정전송 PASS pasword 서버에게비밀번호전송 LIST 서버에게현재디렉토리의파일리스트를요청 RETR filename 서버의파일을추출 (retrieve, get) STOR filename 서버에파일을저장 (store, put) 응답코드 (response code) HTTP와유사하게상태코드와문장으로구성 331 Username OK, password required 125 data connection already open; transfer starting 425 Can t open data connection 452 Error writing file 순천향대학교컴퓨터공학과 50

2 장. 애플리케이션계층 2.1 네트워크애플리케이션의원리 2.2 웹과 HTTP 23 2.3 파일전송 :FTP 2.4 인터넷전자메일 SMTP, POP3, IMAP 2.5 DNS- 인터넷디렉터리서비스 2.6 P2P 애플리케이션 2.7 TCP 소켓프로그래밍 2.8 UDP 소켓프로그래밍 순천향대학교컴퓨터공학과 51 전자메일 (Electronic Mail) 3 개주요요소 사용자에이전트 (user agents) 메일서버 (mail server) SMTP (Simple Mail Transfer Protocol) 사용자에이전트 메일리더 (mail reader) 라고도함 메시지를읽고, 작성하고, 보내고, 전달 MS Outlook, Mozilla Thunderbird 등 송수신메시지는서버에저장 순천향대학교컴퓨터공학과 52

전자메일 : 메일서버 메일서버 (mail server) 받은메시지를유지하고관리하는메일박스 (mail box) 보내는메시지의메시지큐 (message queue) 메일서버들간의 SMTP 프로토콜 클라이언트 : 보내는메일서버 서버 : 받는메일서버 순천향대학교컴퓨터공학과 53 전자메일 : SMTP [RFC 2821] 클라이언트의메일메시지를 25 번포트의 TCP 연결 보내는서버에서받는서버로직접전송 3 단계전송과정 핸드세이킹 메시지전송 종료 명령 / 응답상호작용 명령 :ASCII 문자 응답 : 상태코드와문장 메시지는 7- 비트 ASCII 이어야함 순천향대학교컴퓨터공학과 54

시나리오 : 앨리스가밥에게메시지전송 1. 앨리스는사용자에이전트 (UA) 를사용하여밥에게보낼메시지를작성 2. 앨리스의 UA 는메시지를메일서버에보냄. 메시지는서버의메시지큐에놓임 3. SMTP 의클라이언트는밥의메일서버로 TCP 연결설정 4. SMTP 의클라이언트는 TCP 연결로앨리스의메시지를보냄 5. 밥의메일서버는메시지를메일박스에놓음 6. 밥의 UA 는메시지를읽음 순천향대학교컴퓨터공학과 55 SMTP 상호동작예 S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <alice@crepes.fr> S: 250 alice@crepes.fr... Sender ok C: RCPT TO: <bob@hamburger.edu> S: 250 bob@hamburger.edu b@h b... Recipient i 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 순천향대학교컴퓨터공학과 56

SMTP 상호동작실습 텔넷을사용하여 SMTP 서버와직접대화 사용자에이전트를사용하지않고메일을전송 telnet servername 25 서버로부터 220 응답을확인 SMTP 명령 HELO, MAIL FROM, RCPT TO, DATA, QUIT 을사용하여입력 위과정을프로그래밍하면메일클라이언트의사용자에이 전트 p.221 프로그래밍문제 2 순천향대학교컴퓨터공학과 57 SMTP 특징 SMTP 는지속연결을사용 SMTP 메시지 ( 헤더 & 몸체 ) 는 7-비트 ASCII로표시 SMTP 서버는메시지의끝을 CRLF.CRLF 로표시 HTTP 와비교 HTTP: 풀 (pull) 프로토콜 SMTP: 푸시 (push) 프로토콜 모두 ASCII 명령 / 응답상호작용을하고응답코드를가짐 HTTP: 각객체는응답메시지에캡슐화 SMTP: 모든메시지의객체를한메시지로만듬 순천향대학교컴퓨터공학과 58

메일메시지포맷 (Mail Message Format) SMTP: 전자메일메시지를주고받는프로토콜 RFC 822: 텍스트메시지포맷의표준 header blank line 헤더라인, e.g., To: From: Subject: SMTP 명령과는다름! body 몸체 ASCII 문자의메시지 순천향대학교컴퓨터공학과 59 MIME (Multipurpose Internet t Mail Extensions) ASCII 가아닌데이터를메일로전송시사용되는 RFC 822 의확장 비 ASCII 텍스트메시지 ( 이미지, 오디오, 비디오, 다국적언어등 ) 는 SMTP가이해하는 ASCII 포맷으로인코딩 RFC 2045, 2046에추가헤더정의 Content-Transfer-Encoding: 인코딩된코드타입기술 Content-Type: 메시지몸체의타입을기술 NVT(Network Virtual terminal) 순천향대학교컴퓨터공학과 60

MIME 메시지예 앨리스가밥에게 JPEG 이미지를전송하는예 From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: t image/jpeg (base64 인코딩데이터 base64 인코딩데이터 ) 순천향대학교컴퓨터공학과 61 Base64 인코딩 RFC 1421 인코딩절차 8 비트 3 개를 6 비트 4 개로변형 각 6 비트가 64 개의출력가능문자를인덱스 순천향대학교컴퓨터공학과 62

Base64 인코딩예 순천향대학교컴퓨터공학과 63 메일접속프로토콜 (Mail Access Protocol) SMTP 는수신자의서버에메시지를전송하고저장 메일접속프로토콜이서버로부터메시지를추출 POP: Post Office Protocol [RFC 1939] 인증 ( 에이전트 <--> 서버 ) 과다운로드 IMAP: Internet Mail Access Protocol [RFC 1730] POP 보다다양한특성을갖고복잡함 서버에저장된메시지를관리 HTTP gmail, Hotmail, Yahoo! Mail, etc. 순천향대학교컴퓨터공학과 64

POP3 프로토콜 인증 (authorization ) 클라이언트명령 : user: 사용자이름 pass: 비밀번호 서버응답 +OK -ERR 트랜잭션 (transaction), client: list: 메시지번호를나열 retr: 지정된번호의메시지를추출 dele: 삭제 quit 순천향대학교컴퓨터공학과 65 S: +OK POP3 server ready C: user bob S: +OK C: pass hungry S: +OK user successfully logged on 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 POP3 와 IMAP POP3 앞의예는다운로드와삭제 (download-delete) 모드를사용 밥은클라이언트가바뀌면 (PC 에서스마트폰 ) 다시메일을읽을수없음 다운로드및유지 (download-keep) d 모드를사용하여여러클라이언트에메시지의복사해야함 POP3는세션간상태를유지하지않음 (stateless) IMAP 모든메시지를서버한장소에보관 사용자가메시지를 ( 원격 ) 폴더로저장하고구성가능 세션간에사용자상태정보를유지 폴더의이름과어떤메시지가어떤폴더와연결되어있는가를유지 순천향대학교컴퓨터공학과 66

2 장. 애플리케이션계층 2.1 네트워크애플리케이션의원리 2.2 웹과 HTTP 23 2.3 파일전송 :FTP 2.4 인터넷전자메일 SMTP, POP3, IMAP 2.5 DNS- 인터넷디렉터리서비스 2.6 P2P 애플리케이션 2.7 TCP 소켓프로그래밍 2.8 UDP 소켓프로그래밍 순천향대학교컴퓨터공학과 67 DNS (Domain Name System) 사람은여러방식을자신을식별 이름, 주민등록번호, 운전면허번호, 여권번호 인터넷호스트, 라우터 IP 주소 (32비트주소, IPv4) 호스트네임 (hostname), www.sch.ac.kr DNS (Domain Name System) 호스트네임을 IP 주소변환하는디렉터리서비스 DNS 서버들이계층구조로구현된분산데이터베이스 (distributed database) 호스트가분산데이터베이스로질의하여호스트네임에서 IP 주소를획득하는애플리케이션계층프로토콜 순천향대학교컴퓨터공학과 68

DNS 서비스 호스트네임을 IP 주소로변환 호스트에일리어싱 (host aliasing) 간단한별칭호스트네임 (enterprise.com) 을복잡한정식호스트네임 (canonical host name, relay1.west-coast.enetrprise.com) ) 으로변환 메일서버에일리어싱 (mail server aliasing) 부하분산 (load distribution) 여러 IP 주소들이하나의정식호스트네임과연관되는중복웹서버 (replicated Web server) 중복웹서버에서는서버들이부하분산 단일중앙집중방식 DNS를사용하지않는이유 서버고장시전체작동하지않음 트래픽양 먼거리의중앙집중데이터베이스 유지관리 순천향대학교컴퓨터공학과 69 분산계층데이터베이스 (Distributed, ib t Hierarchical Database DNS 클라이언트가 www.amazon.com 호스트네임의 IP 주소를질의과정 1. com의 DNS 서버를찾기위해루트 (root) 서버에질의 2. amazon.com의 DNS 서버주소를위해 com의 DNS 서버 (TLD 서버, top-level domain server) 에질의 3. www.amazon.com 의 IP 주소를얻기위해 amazon.com 의 DNS 서버 ( 책임서버, authoritative server) 에질의 순천향대학교컴퓨터공학과 70

루트 DNS 서버 질의된호스트네임을해결하지못한 (IP 주소를알지못하는 ) 로컬 DNS 서버가접촉 인터넷에서는전세계에 13 개의루트 DNS 서버 순천향대학교컴퓨터공학과 71 TLD 와책임 DNS 서버 TLD (Top-Level Domain) 서버 com, org, net, edu 같은상위레벨도메인과 kr, uk, fr, jp 등과같은국가의상위레벨도메인에대해책임 Network Solutions 사가 com의 TLD 서버를관리 Educause가 edu의 TLD 서버관리 책임 DNS 서버 기관 ( 회사, 대학등 ) 의서버 ( 웹서버, 메일서버등 ) 의호스트네임을 IP 주소매핑 기관이나서비스제공자등이서버를관리 순천향대학교컴퓨터공학과 72

로컬 DNS 서버 (Local DNS Server) 로컬네임서버는 DNS 계층에속하지않음 각 ISP( 가정 ISP, 회사, 대학 ) 는로컬 DNS 서버를가짐 디폴트네임서버 (default name server) 라고도함 호스트가 DNS 질의를하면로컬 DNS 서버로질의가전송 프록시와같은역할을하며질의를계층으로전달 순천향대학교컴퓨터공학과 73 DNS 동작예 (1) 호스트 cis.poly.edu 는 gaia.cs.umass.edu의 IP 주소를질의 반복적질의 (iterative query) 접촉한서버가접촉할서버의주소로응답 " 이이름의 IP 주소는모르지만이서버에질의해보아라 " 순천향대학교컴퓨터공학과 74

DNS 동작예 (2) 재귀적질의 (recursive query) 이름에대한해결 (name resolution) 을접촉한서버에부담 순천향대학교컴퓨터공학과 75 DNS 캐싱 (DNS Caching) DNS 서버가어떤이름에대한받은응답정보를저장 (caching) 캐싱된정보는일정시간이지나면소멸 일반적으로로컬 DNS 서버에 TLD 서버들이캐싱 따라서루트 DNS 서버는자주방문하지않음 IETF 의갱신 / 알림 (update/modify) 메커니즘 RFC 2136 http://www.ietf.org/html.charters/dnsind-charter.html 순천향대학교컴퓨터공학과 76

DNS 레코드 (DNS Record) DNS 는자원레코드 (resource record, RR) 를저장하는분산데이터베이스 Type=A name 은호스트네임 value 는 IP 주소 Type=NS name은도메인 (e.g. foo.com) value는이도메인에대한책임 DNS 서버의호스트네임 순천향대학교컴퓨터공학과 77 Type=CNAME name 은별칭 (alias) 호스트네임, www.ibm.com value는정식호스트네임, servereast.backup2.ibm. com Type=MX value 는별칭호스트네임 name 을갖는메일서버의정식호스트네임 DNS 프로토콜, 메시지 (1) DNS 프로토콜은같은메시지포맷을갖는질의 (query), 응답 (response) 메시지로구성 메시지헤더 식별자 (identification) 질의를식별하는 16 비트식별자 응답메시지도질의와같은식별자를가짐 플래그 (flags) 질의 / 응답구분 재귀적질의요청 재귀적질의가능 책임서버응답 순천향대학교컴퓨터공학과 78

DNS 프로토콜, 메시지 (2) 질의되는이름과타입 질의대한응답으로 RR 책임서버에대한레코드 추가도움정보 순천향대학교컴퓨터공학과 79 DNS 데이터베이스에레코드삽입 Network Unitopia 새로설립된회사예 DNS 등록기관 (registrar, e.g., Network Solutions) 에도메인네임 networkuptopia.com을등록 주책임서버와부책임서버의이름과 IP 주소를등록기관에제공 (dns1.networkutopia.com, 212.212.212.1) (dns2.networkutopia.com, 212.212.212.2) 등록기관은두개의자원레코드를 com TLD 서버에등록 (networkutopia.com, dns1.networkutopia.com, NS) (dns1.networkutopia.com, 212.212.212.1, A) 책임 DNS 서버에두개의레코드등록 www.networkuptopia.com p 을위한 Type A 레코드 mail.networkuptopia.com을위한 Type MX 레코드 순천향대학교컴퓨터공학과 80

2 장. 애플리케이션계층 2.1 네트워크애플리케이션의원리 2.2 웹과 HTTP 23 2.3 파일전송 :FTP 2.4 인터넷전자메일 SMTP, POP3, IMAP 2.5 DNS- 인터넷디렉터리서비스 26 2.6 P2P 애플리케이션 2.7 TCP 소켓프로그래밍 2.8 UDP 소켓프로그래밍 순천향대학교컴퓨터공학과 81 순수한 P2P 구조 (Pure P2P Architecture) 항상켜져있는서버없음 임의의종단시스템들이직접통신 피어 (peer) 들은간헐적으로연결되며 IP 주소를변경 세가지토픽 파일분배 (file distribution) 정보검색 Skype 사례 순천향대학교컴퓨터공학과 82

파일분배 : 클라이언트- 서버 vs. P2P 한서버에서 N 개의피어들에파일분배시간은? 순천향대학교컴퓨터공학과 83 파일분배시간 : 클라이언트- 서버 서버는파일복사본 N개를피어들에게순차적으로전송 : NF/u s 시간 클라이언트 i 다운로드 : F/d i 시간 클라이언트-서버방식으로파일 F를 N 클라이언트에분배하는시간 d cs = max { NF/u s,f/min(d i ) } i 피어수 N 에따라선형적으로증가 순천향대학교컴퓨터공학과 84

파일분배시간 : P2P 서버는하나의복사본만전송 : F/u s 시간 클라이언트 i 다운로드 : F/d i 시간 NF 비트가전송 (N개의피어들이각각 F 비트다운로드 ) 업로드속도 : u s + u i 최소분배시간 NF/ (u s + u i ) d P2P = max { F/u s, F/min(d i ), NF/(u s + u i ) } i 순천향대학교컴퓨터공학과 85 클라이언트- 서버 vs. P2P: 비교사례 클라이언트업로드속도 = u, F/u = 1hour, u s = 10u, d min u s tion Time Minimum m Distribut 3.5 3 2.5 2 1.5 1 0.5 0 P2P Client-Server 0 5 10 15 20 25 30 35 N 순천향대학교컴퓨터공학과 86

파일분배 : 비트토렌트 (BitTorrent) 파일분배 P2P 프로토콜 트랙커 (tracker): 토렌트에참여하는피어들을추적 토렌트 (torrent): 파일의청크 (chunk) 를교환하는피어들의그룹 피어들의리스트를얻음 청크교환 peer 순천향대학교컴퓨터공학과 87 비트토렌트 (BitTorrent) (1) 파일은 256KB 청크 (chunk) 로분할 토렌트에가입 (joining) 하는피어 : 처음에는청크가없지만시간이지남에따라청크들이누적됨 트랙커로부터피어들의리스트를얻어서, 이들중일부와연결 ( 이웃피어 ) 청크를다운로드하는동안에다른피어들에게업로드 전체파일을얻은후토렌트를 ( 이기적으로 ) 떠나거나또는 ( 이타적으로 ) 남을수있음 순천향대학교컴퓨터공학과 88

비트토렌트 (BitTorrent) (2) 청크가져오기 (Pulling Chunks) 청크보내기 : 되갚음 임의의주어진시간에서로다른 (tit-for-tat) 피어들이파일의서로다른청크들을가지고있음 주기적으로한피어 ( 앨리스 ) 는이웃피어들에게각자가지고있는청크의리스트를요청 앨리스는본인이가지고있지않은청크를요청 청크를요청하는순서 이웃들이가지고있는복사본중가장드문것을먼저 (rarest first) 요청 현재가장속도가빠른 4개의이웃들에게청크들을보냄 매 10초마다가장빠른 4 개의피어다시선택 매 30초마다임의로하나의피어를추가선택하여청크를보냄 새로운선택된피어가가장빠른 4 개의피어일수있음 모든이웃이소외되지않고낙관적으로중단없는전송 (optimistically i unchoke) 순천향대학교컴퓨터공학과 89 비트토렌트 : 되갚음 (Tit-for-Tat) Tat) 1. 앨리는밥이소외되지않도록선택 (optimistically unchoke) 2. 앨리스는밥의가장빠른 4개의제공자가됨 ; 밥이보답을함 3. 밥이앨리스의가장빠른 4개의제공자가됨 더빠른업로드속도로더나은파트너를찾고, 파일을더빨리얻을수있음 9 순천향대학교컴퓨터공학과 90 0

P2P 정보검색 P2P 애플리케이션의중요한요소중하나는정보색인 (index, 간단한데이터베이스 ) 동적으로색인을검색 (search) 하고갱신 (update) 정보를호스트위치로매핑 파일공유시스템에서는파일의정보 ( 노래제목, 가수, 영화제목등 ) 로부터파일의복사본을가진피어의 IP 주소로매핑 인스턴트메시징에서는사용자의이름으로부터위치 (IP 주소 ) 를매핑 분산해시테이블 (DHT, distributed hash table) 방식소개 5 판내용 순천향대학교컴퓨터공학과 91 분산해시테이블 (DHT, Distributed ib t Hash Table) DHT 는분산 P2P 데이터베이스 데이터베이스에저장되는정보는 (key, value) 쌍으로구성 key: 주민등록번호, value: 이름 key: 컨텐츠이름, value: IP 주소 예, (Led Zeppelin IV, 203.17.123.38) 클라이언트-서버구조에서는 (key, value) 가하나의중앙서버에저장되지만, P2P 시스템에서는 (key, value) 쌍이모든피어들에분산저장 피어는키값을가지고데이터베이스에질의 (query) 데이터베이스는키값과일치하는 value 값을리턴 피어는데이터베이스에 (key, value) 쌍을삽입 (insert) 할수도있음 순천향대학교컴퓨터공학과 92

DHT 식별자 (DHT Identifier) 각피어들에게 [0,2 n -1] 범위안의정수식별자를지정 각식별자는 n 비트로구성 각키값도같은범위의정수식별자로표시 원래의키를해싱 (hashing) 하여정수키를획득 해시함수 (hash function) 적용 예, key = h( Led Zeppelin IV ) 이방식이 분산해시테이블 이라불리는이유 순천향대학교컴퓨터공학과 93 피어에키할당 DHT 의주요이슈 (key, value) 쌍을피어에지정하는규칙 가장가까운 ID(closest ID) 를갖는피어에키를할당 교재에서는키의인접후속피어 (immediate successor) 를가장가까운것으로간주 예 : n=4, [0, 15]; 피어 : 1,3,4,5,8,10,12,14; (11, Jonny Wu) 쌍을 8 개피어중어느피어에저장? 후속피어는 12에므로피어 12에저장 만약키값과일치하는피어11이있다면피어11에저장 key=15이면후속피어는 1 순천향대학교컴퓨터공학과 94

원형 DHT (Circular DHT) (1) 각피어는인접후속피어만감지 예, 피어 5는피어 8의 IP 주소와식별자만감지 오버레이네트워크 (overlay network) 실제물리적인링크, 라우터, 호스트로 구성된하부네트워크상위의추상적논리네트워크 (abstract logical network) 을형성 순천향대학교컴퓨터공학과 95 원형 DHT (Circular DHT) (2) N 개피어가있는경우질의해결을위해 O(N) 메시지필요 1111 나요 0001 누가키 1110 을책임지나? 0011 1110 인접후속피어를장가까운것으로정의 1100 1110 0100 1110 1110 0101 1110 1010 1110 1000 순천향대학교컴퓨터공학과 96

최단경로 (shortcut) 을갖는 DHT 각피어는전, 후, 최단경로의 IP 주소를추적 6 개의메시지에서 2 개의메시지로줄임 O(log N) 이웃들의최단경로설계가능하여, 질의에대해 O(log N) 메시지 1 15 3 누가키1110 을책임지나? 4 12 5 순천향대학교컴퓨터공학과 97 10 8 피어변동 (Peer Churn) 피어들은임의로탈퇴하거나가입할수있음 이를다루기위해각피어는두개의후속피어들의 IP 주소를알고있어야함 각피어는두후속피어들이살아있는지확인을위해주기적으로 ping 예 : 피어 5 가임의로탈퇴 피어 4가감지 ; 피어 8을인접후속자로하고, 8 의인접후속자 10을두번째후속자로함 피어 13 이새로가입하면? 순천향대학교컴퓨터공학과 98

사례연구 : 스카이프 (Skype) P2P 인터넷전화 인터넷전화는두사용자쌍이통신하는P2P 스카이프는독점적응용계층프로토콜을갖고, 모든패킷전송이암호화 슈퍼노드 (SN) 를갖는계층적오버레이네트워크 (hierarchical overlay network) 스카이프사용자이름을 IP 주소로색인하고, 이는 SN 을통해분배 순천향대학교컴퓨터공학과 99 릴레이피어 (Peers as Relays) 사용자 ( 앨리스, 밥 ) 모두 NAT 상에있으면문제발생 NAT(network address translator) 는외부의호스트가네트워크안의피어로연결을차단 릴레이사용하여해결 앨리스와밥의 SN을사용하여릴레이될피어선택 각피어는릴레이 ( 비-NAT 슈퍼피어 ) 를통해세션을시작 앨리스, 밥이로그인하면슈퍼피어로세션을초기화 피어들은릴레이를경유하여 NAT 상에서통신 순천향대학교컴퓨터공학과 100

2 장. 애플리케이션계층 2.1 네트워크애플리케이션의원리 2.2 웹과 HTTP 23 2.3 파일전송 :FTP 2.4 인터넷전자메일 SMTP, POP3, IMAP 2.5 DNS- 인터넷디렉터리서비스 26 2.6 P2P 애플리케이션 2.7 TCP 소켓프로그래밍 2.8 UDP 소켓프로그래밍 순천향대학교컴퓨터공학과 101 소켓프로그래밍 (Socket Programming) 본절에서는소켓 (socket) 을사용하여클라이언트 / 서버응용을구축하는방법소개 소켓 API 1981년 BSD 4.1 UNIX에서도입 애플리케이션에의해명시적으로생성, 사용, 해제 클라이언트 / 서버패러다임 두가지형태의트랜스포트서비스 TCP UDP 소켓 한애플리케이션의프로세스가다른애플리케이션의프로세스와메시지를주고받을수있는한호스트에속하고, 애플리케이션- 생성, OS-제어인터페이스 ( 문,door) 순천향대학교컴퓨터공학과 102

TCP 를이용한소켓프로그래밍 소켓 (socket) 애플리케이션프로세스와트랜스포트프로토콜 (TCP,UDP) 사이의문 TCP 서비스 한프로세스에서다른프로세스로바이트들의신뢰적인전송 (reliable transfer) 순천향대학교컴퓨터공학과 103 TCP 소켓프로그래밍 클라이언트는서버에초기접속 서버프로세스가먼저수행중에있어야함 서버는클라이언트의초기접속을처리하는소켓을생성해야함 클라이언트는 TCP 소켓을생성하고, 서버프로세스의 IP 주소와포트번호를명시하여서버에접속 클라이언트가소켓을생성할때클라이언트 TCP는서버 TCP와연결설정 클라이언트에의해초기접속시서버 TCP 는클라이언트와통신하는서버프로세스를위한새로운소켓 ( 연결소켓 ) 을생성 서버가다수의클라이언트와통신가능 소스포트번호가클라이언트들을구분 (3장) 애플리케이션관점 TCP 는클라이언트와서버사이에바이트들의신뢰적인전송 ( 파이프 ) 을제공 순천향대학교컴퓨터공학과 104

클라이언트 / 서버소켓상호동작 : TCP 순천향대학교컴퓨터공학과 105 스트림 (Stream) 개념 스트림 (stream) 프로세스로들어오고, 나가는문자들의열 (sequence) 입력스트림 (input stream) 프로세스의입력소스 (input source) 에부착 키보드, 소켓 출력스트림 (output stream) 프로세스의출력소스 (output source) 에부착 모니터, 소켓 순천향대학교컴퓨터공학과 106

클라이언트 / 서버프로그램예제 1. 클라이언트는표준입력 ( 키보드, infromuser 스트림 ) 으로부터한줄을읽고소켓을통해서버로보냄 (outtoserver 스트림 ) 2. 서버는연결소켓을통해한줄을읽음 3. 서버는읽은줄을대문자로변환하고, 다시클라이언트에보냄 4. 클라이언트는소켓으로부터변환된줄을읽고 (infromserver 스트림 ) 모니터로출력 순천향대학교컴퓨터공학과 107 TCP 클라이언트프로그램예 (1) 순천향대학교컴퓨터공학과 108

TCP 클라이언트프로그램예 (2) 순천향대학교컴퓨터공학과 109 TCP 서버프로그램예 (1) 순천향대학교컴퓨터공학과 110

TCP 서버프로그램예 (2) 순천향대학교컴퓨터공학과 111 2 장. 애플리케이션계층 2.1 네트워크애플리케이션의원리 2.2 웹과 HTTP 23 2.3 파일전송 :FTP 2.4 인터넷전자메일 SMTP, POP3, IMAP 2.5 DNS- 인터넷디렉터리서비스 26 2.6 P2P 애플리케이션 2.7 TCP 소켓프로그래밍 2.8 UDP 소켓프로그래밍 순천향대학교컴퓨터공학과 112

UDP 소켓프로그래밍 UDP 는클라이언트와서버사이에비연결형 (no connection) 서비스 초기핸드셰이킹과정없음 송신프로세스는각패킷마다수신프로세스의 IP와포트번호를명시해야함 서버는수신된패킷에서 IP 주소와포트번호를추출해야함 UDP는비신뢰적인전송서비스를제공하여전송된데이터의순서가뒤바뀌거나데이터를손실할수도있음 애플리케이션관점 UDP 는클라이언트와서버사이에바이트들그룹 ( 데이터그램 ) 의비신뢰적인전송을제공 순천향대학교컴퓨터공학과 113 클라이언트 / 서버소켓상호동작 : UDP 순천향대학교컴퓨터공학과 114

UDP 자바클라이언트예 순천향대학교컴퓨터공학과 115 UDP 클라이언트프로그램예 (1) 순천향대학교컴퓨터공학과 116

UDP 클라이언트프로그램예 (2) 순천향대학교컴퓨터공학과 117 UDP 서버프로그램예 (1) 순천향대학교컴퓨터공학과 118

UDP 서버프로그램예 (2) 순천향대학교컴퓨터공학과 119 요약 (Summary) (1) 애플리케이션구조 클라이언트 / 서버 P2P 하이브리드 애플리케이션서비스요구사항 신뢰성, 처리율 ( 대역폭 ), 시간 ( 지연 ) 인터넷트랜스포트서비스모델 연결지향, 신뢰적 : TCP 비신뢰적, 데이터그램 : UDP 애플리케이션프로토콜 HTTP FTP SMTP, POP, IMAP DNS P2P: BitTorrent, Skype 소켓프로그래밍 순천향대학교컴퓨터공학과 120

요약 (Summary) (2) 네트워크의중요한개념인프로토콜학습 요청 / 응답메시지교환 클라이언트가정보또는서비스를요청 서버는데이터, 상태코드를응답 메시지포맷 헤더 : 데이터에관한정보를기술한필드 데이터 : 통신되는정보 순천향대학교컴퓨터공학과 121 실습과제 2-1: HTTP, 텔넷접속메시지확인 특정웹서버에텔넷으로접속하여 GET HTTP 요청을입력한후응답메시지를확인 방문하는웹사이트는다른사람과중복되지않도록권장 텔넷 (Telnet) 사용힌트 리눅스에서실행권장 (VMware 가상머신 ) 윈도우에서 telnet 사용 제어판, 프로그램및기능 Windows 기능사용 / 사용안함» Telnet Client 기능추가 콘솔창에서실행시메시지출력깨짐 다른통신프로그램실행대안 순천향대학교컴퓨터공학과 122

실습과제 2-2: 2 HTTP, Wireshark 실습 브라우저를통해특정웹사이트를방문한후 Wireshark 를실행하여 HTTP 패킷을캡처하고분석 방문하는웹사이트는다른사람과중복되지않도록권장 디스플레이필터 에 http 입력하여 http 메시지만디스플레이 캡처된내용을분석 방식 (method), 헤더내용등 상태코드, HTML 파일등 순천향대학교컴퓨터공학과 123 실습과제 2-3: FTP, Wireshark 실습 Wireshark 를실행하여 FTP 패킷을캡처하고적용된 FTP 명령, 응답코드를확인하고분석 순천향대학교컴퓨터공학과 124

실습과제 2-4: SMTP, 텔넷접속상호동작실습 텔넷을사용하여 SMTP 서버와직접대화 사용자에이전트를사용하지않고메일을전송 telnet servername 25 서버로부터 220 응답을확인 SMTP 명령 HELO, MAIL FROM, RCPT TO, DATA, QUIT 을사용하여입력 순천향대학교컴퓨터공학과 125 실습과제 2-5/2-6:, 6, 예제소켓프로그래밍 실습과제 2-5: TCP 클라이언트 / 서버 Java 예제프로그램을작성, 실행한후분석 실습과제 2-6: UDP 클라이언트 / 서버 Java 예제프로그램을작성, 실행한후분석 순천향대학교컴퓨터공학과 126

심화과제 2-1: 소켓프로그래밍 다음 (p.221-222) 222) 의소켓프로그래밍문제중하나를선택하여프로그램을작성, 실행한후분석 심화과제 2-1: 다중스레드웹서버 심화과제 2-2: 메일클라이언트 심화과제 2-3: UDP Ping 실험 심화과제 2-4: 웹프록시서버 힌트 : 교재 http://wps.aw.com/aw_kurose_network_5 사이트의 Programming Assignments 참조 심화과제는필수가아닌선택과제 제출시가산점부여 순천향대학교컴퓨터공학과 127