1 / 50

11 주차 . 응용층 프로토콜 I

컴퓨터 네트워크. 11 주차 . 응용층 프로토콜 I. 2013 년도 2 학기 11 주차. DNS 의 필요성. 인터넷에서 사용자가 입력하는 이름을 IP 주소로 , 또는 IP 주소를 이름으로 변환시켜주는 시스템이 필요하다 . 과거의 방법 각 호스트마다 인터넷 상의 호스트 이름과 IP 주소를 기록한 호스트 파일 ( 파일명 : hosts ) 을 가지고 있었다 . 인터넷의 규모가 커짐에 따라 호스트 파일의 크기가 너무 커지고 , 갱신이 불가능해졌다 . 현재의 방법

clay
Télécharger la présentation

11 주차 . 응용층 프로토콜 I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 컴퓨터 네트워크 11주차. 응용층 프로토콜 I 2013년도 2학기 11주차

  2. DNS의 필요성 • 인터넷에서 사용자가 입력하는 이름을 IP 주소로, 또는 IP 주소를 이름으로 변환시켜주는 시스템이 필요하다. • 과거의 방법 • 각 호스트마다 인터넷 상의 호스트 이름과 IP 주소를 기록한 호스트 파일(파일명: hosts)을 가지고 있었다. • 인터넷의 규모가 커짐에 따라 호스트 파일의 크기가 너무 커지고, 갱신이 불가능해졌다. • 현재의 방법 • 전체 호스트 파일을 서로 다른 여러 서버에 나누어 저장한 후 일반 호스트는 필요한 정보를 가지고 있는 가장 가까운 서버와 통신하여 IP 주소 또는 호스트 이름을 가져온다. • 이러한 system을 도메인 이름 시스템 (DNS, Domain Name System)이라 함

  3. 이름공간(Name Space) • 각 주소가 유일한 것처럼 이름도 유일해야 한다. • 편평한 이름 공간 • 구조적인 아닌 이름 • 이름이 겹치지 않으려면 중앙에서 전체를 관리해야 할 필요가 있어서 인터넷에서 사용하기 어렵다. • 계층적 이름 공간 • 각 이름을 여러 부분으로 나누어 만든다. • 첫 번째 부분 – 조직의 성격 • 두 번째 부분 – 조직의 이름 • 세 번째 부분 – 조직 내의 부서 • 중앙에서는 이름의 전체가 아니라 일부만 관리하면 됨

  4. 도메인 이름 공간(Domain Name Space) • 도메인 이름 공간은 0에서 127까지의 최대 128 레벨을 갖는 역트리(reverse-tree) 형태로 구성됨 • 라벨 • 트리의 각 노드는 라벨을 가지며, 최대 63개의 문자로 구성될 수 있는 문자열임. • 한 노드에 연결된 자식 노드는 다른 라벨을 갖도록 하여 똑같은 이름이 만들어지지 않도록 한다.

  5. 도메인 이름(Domain Name) • 도메인이름은 노드에서 루트(root)방향으로 읽어서 만든다. • 루트의 라벨은 null임 • 완전한 도메인 이름은 점(.)으로 끝난다.

  6. FQDN과 PQDN • FQDN (Fully Qualified Domain Name) • 라벨이 널(null) 문자열로 끝나는 것 • FQDN은 호스트의 전체 이름이 들어 있는 도메인 이름 • 항상 점(.)으로 끝남 • PQDN (Partially Qualified Domain Name) • 라벨이 널 문자열로 끝나지 않는 것 • 노드로부터 시작하나 루트에 도달하지 않는 것 • 해석할 이름이 클라이언트와 동일한 사이트에 있을 경우 사용

  7. 도메인(Domain) • 도메인 이름 공간의 서브 트리(sub-tree) • 도메인 이름은 서브 트리의 최상위에 있는 노드의 도메인 이름임 • 도메인은 다시 서브 도메인으로 나누어 질 수 있음

  8. 이름공간(Name Space)의 분산 • 도메인 이름 공간을 하나의 컴퓨터에 저장하는 것은 비효율적이고 신뢰적이지 못하다. • 이름 서버의 계층화 • 도메인 이름 공간를 DNS 서버라는 많은 컴퓨터에 분산시켜 저장 • 도메인 별로 DNS 서버를 둔다.

  9. 영역(Zone) • DNS 서버가 책임이나 권한을 갖는 곳 • DNS 서버는 영역 파일(zone file)이라고 하는 데이터베이스를 가지며 그 도메인 내의 모든 노드정보를 유지 • DNS 서버가 도메인에 대한 책임을 맡고 이를 더 작은 도메인으로 나누지 않으면 도메인과 영역은 같음 • DNS 서버가 도메인을 서브 도메인으로 나누고 일부의 권한을 이양하면 도메인과 영역이 달라짐

  10. 루트 서버와 일차 및 이차 서버 • 루트 서버(root server) • 전체 트리를 구성하는 영역들의 서버 • 전 세계에 13개의 루트 서버가 있음 • 일차 서버(primary server) • 자신이 권한을 갖는 영역에 대한 파일을 저장한 서버 • 스스로 영역 파일을 생성, 관리, 갱신함 • 이차 서버(secondary server) • 다른 서버로부터 영역에 관한 완전한 정보를 받아 로컬 디스크에 파일로 저장하고 있는 서버 • 이차 서버는 일차 서버로부터 갱신된 정보를 받아옴 • 하나의 서버가 실패하면 다른 서버가 대신할 수 있도록 중복된 데이터를 유지하는 것임

  11. Internet에서의 DNS • 인터넷 도메인의 3가지 섹션 • 일반 도메인(generic domain) • 국가 도메인(country domain) • 역 도메인(inverse domain)

  12. 일반 도메인(Generic Domain) • 초기에는 3글자로 이루어진 7개의 레이블이 있었음

  13. Generic Domain Labels

  14. New Generic Domain Labels

  15. 국가 도메인(Country Domain) • 두 문자로 국가의 약자를 표시 • kr: Korea • cn: China • us: United States

  16. 역 도메인 (Inverse Domain) • 주소를 이름으로 대응시키는데 사용 • 역(inverse) 포인터(PTR) 질의라 함 • 역사적인 이유로 이해 arpa라는 첫번째 도메인 노드와 in-addr이라는 두번째 레벨의 도메인 노드가 있음 • 밑에서부터 위로 읽어가는 과정을 따르면 IP 주소가 거꾸로 읽힌다. • 예: 132.34.45.121  121.45.34.132.in-addr.arpa

  17. 변환(Resolution) • 이름-주소 변환 • 이름을 주소로 또는 주소를 이름으로 대응시키는 것 • 이름을 주소로 대응 • 대부분의 클라이언트는 도메인 이름을 서버에 주고 대응되는 주소를 요청하는데, 보통 로컬 DNS 서버에 질의를 하고, 로컬 서버가 질의를 해결하지 못하면 다른 서버를 참조하게 함 • 주소를 이름으로 대응 • 클라이언트는 IP 주소를 보내고 도메인 이름을 질의(PTR 질의) • 역 도메인사용 • 질의에는 IP 주소가 반대로 되어 있어야 하고 in-addr과 arpa가 추가되어야 함 • 예) 132.34.45.121을 질의하려면 121.45.34.132.in-addr.arpa를 질의

  18. 귀환적 변환(Recursive Resolution) • 서버가 도메인 이름에 대한 권한이 없을 시 다른 서버(주로 부모서버)에게 요청을 보냄 • 클라이언트가 귀환적 응답을 요구할 경우 이루어 짐

  19. 반복 변환(Iterative Resolution) • 클라이언트가 귀환적 응답을 요청하지 않으면 반복 변환이 이루어짐 • 서버가 질의를 해석하지 못하면 해석할 수 있을 것 같은 서버의 IP를 주소를 클라이언트에게 줌

  20. 캐싱(Cashing) • 서버가 한 클라이언트의 요청을 처리하면서 다른 서버에게 요청해서 알아낸 주소 정보는 서버의 캐시 메모리에 일정 기간 보관 • 만약 다른 클라이언트가 동일한 주소 정보를 요청할 경우 캐시 메모리를 검색해서 알려줌. 단, 응답을 인증할 수 없다는 표시(unauthoritative)를 하여 보냄 • 캐싱(cashing)의 장점 • 주소 변환 속도를 높임 • 캐싱(cashing)의 단점 • 잘못된 정보를 줄 수도 있음 • 캐싱(cashing)의 문제를 해결하기 위한 방안 • 주소 정보에 수명(TTL, time-to-live)을 추가(보통 초 단위)하여 TTL이 초과되면 삭제

  21. DDNS와 캡슐화(Encapsulation) • DDNS • 동적 도메인 이름 시스템(Dynamic Domain Name System, DDNS) • 새로운 호스트의 추가, 제거, IP 주소 변경 시 자동으로 이루어지도록 하는 것 • DHCP 서버가 IP 주소를 할당하면, 그 정보를 일차 서버에게 전송하고, 일차 서버는 그 정보를 다시 이차 서버에게 전달 • 보안을 위해서 이 과정에서 인증이 필요함 • 캡슐화(encapsulation) • DNS는 UDP 또는 TCP를 사용 • 응답메시지가 512바이트 이하이면 UDP • 응답메시지가 512바이트 보다 크면 TCP • 어느 경우든 DNS 서버의 포트 번호는 53

  22. 11.2 이메일(Electronic Mail) • 이메일 주소 • Local part: 사용자 우편함 • Domain name: 수신자 이메일 서버의 도메인 이름

  23. SMTP • SMTP(Simple Mail Transfer Protocol) • 인터넷에서 이메일을 전송하기 위한 표준 프로토콜 • SMTP 서버 포트번호: 25번 • 7비트의 아스키 형식의 메시지만 보낼 수 있음  한글처럼 7비트 아스키로 표현되지 못하는 언어나, 이진 파일, 이미지, 오디오/비디오 데이터는 보낼 수 없음

  24. MIME • MIME (Multipurpose Internet Mail Extension) • 아스키(ASCII)가 아닌 데이터를 SMTP를 이용해서 보낼 수 있게 해주는 프로토콜 • MIME은 ASCII가 아닌 데이터를 ASCII로, 또는 그 반대의 변환을 수행함

  25. Email Delivery 마이크로소프트 아웃룩과 같은 메일 클라이언트를 사용할 때

  26. Mail Access Protocol • 수신자가 메일박스로부터 메일을 가져갈 때 쓰이는 프로토콜 • POP3와 IMAP4가 있음 • POP3(Post Office Protocol, Version 3) • 클라이언트가 서버의 TCP 포트 110으로 연결 • 삭제 모드: 우편함으로부터 메일을 읽은 후 지움 • 유지 모드: 읽고 난 후에도 메일박스에 메일 유지

  27. Mail Access Protocol • POP3의 단점 • 삭제 모드가 디폴트로 메일 박스를 늘 비우므로, 늘 사용하는 컴퓨터가 아닌 다른 컴퓨터로 메일을 엑세스할 때 곤란함 • 사용자가 서버에 여러 가지 폴더를 만들 수 없음 • 다운로드 하기 전에 메일내용을 부분적으로 검사할 수 있는 기능 없음 • IMAP4(Internet Mail Access Protocol, Version 4) • POP3와 비슷하나 기능이 더 많음 • 메일 다운로드 전에 헤더 검사가능 • 메일 다운로드 전에 내용 검색가능 • 메일을 부분적으로 받을 수도 있음 • 사용자가 메일 서버의 우편함을 생성, 삭제, 이름변경할 수 있음 • 사용자가 이메일을 저장하기 위해 폴더 내에 우편함을 체계적으로 생성할 수 있음

  28. Web-based Email • 앞서 보았던 아래의 그림에서 ①번과 ③번을 HTTP로 수행 HTTP HTTP server HTTP client HTTP HTTP client HTTP server

  29. 11.3 원격 접속 • Telnet • 텍스트 모드 원격 접속 표준 프로토콜 • 텍스트 그대로 전송하므로 보안이 취약 • 서버 포트번호: 23번 • 참고) rlogin - 유닉스 호스트간의 원격접속 프로그램 • 네트워크 가상 터미널 (Network Virtual Terminal, NVT) • 서로 다른 운영체제간의 코드 불일치 문제 해결

  30. 11.3 원격 접속 • SSH (Secure SHell) • Telnet과 같이 텍스트 모드 원격 접속 표준 프로토콜이기는 하나 보안을 위해 암호화해서 전송함 • 보안을 강화한 rlogin이므로 Linux에서는 기본 지원하나 Windows 는 그렇지 아니함 • 서버 포트번호: 22번

  31. 11.4 FTP(File Transfer Protocol) • 하나의 호스트에서 다른 호스트로 파일을 전송하기 위해 TCP/IP가 제공하는 표준프로토콜 • 특징 • TCP 서비스 이용 • 두 개의 TCP 연결 필요 • 포트번호 21: 제어 연결 • 포트번호 20: 데이터 연결

  32. FTP 연결(Connection) • 제어 연결 • 접속하고 있는 동안 계속 설정 • IP의 서비스 타입(TOS field): 최소 지연 • 데이터 연결 • 데이터 전송 시에만 설정 • IP의 서비스 타입(TOS field): 최대 처리율

  33. FTP 명령어 • 유닉스 FTP 명령어 목록 • 숙제: 다음의 자주 쓰는 FTP 명령어 조사하기 • ls, cd, lcd, binary(약자로 bi), ascii, get, put, mget, mput, pwd, bye

  34. 사용자 인터페이스(User Interface) • 예제 2 $ ftp challenger.atc.fhda.edu Connected to challenger.atc.fhda.edu 220 Server ready Name: forouzan Password: xxxxxxx ftp > ls /usr/user/report 200 OK 150 Opening ASCII mode ........... ........... 226 transfer complete ftp > close 221 Goodbye ftp > quit

  35. 익명 FTP(Anonymous FTP) • FTP를 사용하려면 원격 서버에 사용자는 사용자 계정의 이름과 패스워드가 필요하다 • 익명 FTP를 허용하면 사용자 계정이 없어도 접속할 수 있음 • 사용자 이름: anonymous • 패스워드: guest 또는 email address • 단, 디렉터리나 파일접근이 제한적일 수 있음

  36. 익명 FTP(Anonymous FTP) • 예제(example) 3 $ ftp internic.net Connected to internic.net 220 Server ready Name: anonymous 331 Guest login OK, send "guest" as password Password: guest ftp > pwd 257 '/' is current directory ftp > ls 200 OK 150 Opening ASCII mode bin ... ftp > close 221 Goodbye ftp > quit

  37. 11.5 HTTP • HTTP(Hypertext Transfer Protocol) • WWW (World Wide Web)에서 데이터를 엑세스하는데 주로 사용되는 프로토콜 • 평문(Plaintext), 하이퍼텍스트(hypertext), 오디오, 비디오등 다양한 형태의 데이터 전송을 지원 • TCP 서비스이용 • 클라이언트는 서버의 포트번호 80번을 통해 웹 페이지를 요청 • 서버는 요청된 웹 페이지를 전송하여 요청에 응답

  38. 트랜잭션(Transaction) • 트랜잭션 • 비록 TCP를 이용하지만 HTTP 자체는 상태를 기억하지 않는 프로토콜임 • 클라이언트가 요청을 할 때 트랜잭션을 초기화 • 서버는 클라이언트의 요청에 대한 응답만을 함 요청메시지 응답메시지

  39. 요청 메시지(Request Message) • 요청 메시지는 요청라인(request line), 헤더(header), 본문(body)으로 구성됨

  40. 요청 라인(Request Line) • 요청 타입(Request type), URL, HTTP version 등을 정의함 • 요청 타입(Request type) • 요청 메시지를 여러 가지 메소드(method)로 분류함 • URL (Uniform Resource Locator) • 전세계에 있는 문서및 자원들에 대한 액세스를 가능하게 하기 위해 그 위치를 식별(identification)하기 위한 locator • URL에서 method, host computer, port, path의 네 가지 부분 정의 • HTTP version • HTTP version 1.1

  41. 요청 메소드(Request Method)

  42. URL • Method • 문서를 검색하는데 사용되는 프로토콜로 HTTP와 FTP가 있음 • 이 메소드는 요청 타입(request type)에 있는 메소드와는 다름 • Host • 정보가 위치하고 있는 컴퓨터의 DNS 이름이나 IP 주소 • Port • 서버의 포트 번호로 특별히 지정하지 않으면 80번이 선택됨 • Path • 정보가 위치하고 있는 파일의 경로 명

  43. 응답 메시지(Response Message) • 상태라인(Status line), 헤더(header), 그리고 때때로 본문(body)으로 구성됨

  44. 상태 라인(Status Line) • 응답 메시지의 상태를 정의 • HTTP 버전 • 요청 라인에 있는 필드와 같음 • 상태 코드(Status code) • FTP와 SMTP에 있는 것과 유사, 세 자리 숫자로 구성 • 200대: 성공, 400대: 클라이언트에서 오류, 500대: 서버에서 오류 • 상태 문구(Status phrase) • 텍스트형태로 상태 코드를 설명

  45. 헤더(Header) • 클라이언트와 서버사이에 추가적인정보를 교환할 때 사용 • 예 • 클라이언트가 특별한형식으로 문서가 전송되도록 요청할 때 • 서버가 문서에 대한 추가적인 정보를 전송할 때 • 헤더의 구성 • 헤더이름(Header name), 콜론(colon), 공백(space), 헤더값(header value)

  46. 헤더(Header) • 헤더의 종류 • 일반헤더(general header), 요청헤더(request header), 응답헤더(response header), 엔터티 헤더(entity header) • 요청 메시지는 일반, 요청, 엔터티만 포함 • 응답 메시지는 일반, 응답, 엔터티만 포함

  47. 헤더(Header) • 일반 헤더 • 메시지에 대한 일반적인 정보제공 • 요청 헤더 • 클라이언트가 받고자 하는 문서의 형식을 지정 • 응답 헤더 • 요청에 대한 서버의 특별한 정보를 지정 • 엔터티 헤더 • 문서의 본문에 대한 정보 제공

  48. 예제 11.1 • GET method를 사용하여 경로 /usr/bin/image1에 있는 이미지를 읽어올 때 method HTTP version URL request line header status code HTTP version status phrase status line header

  49. 11.5.3 HTTP Version 1.1 • Version 1.0에서는 비영속적 연결(nonpersistent connection)을 사용했지만 version 1.1에서는 영속적 연결(persistent connection)을 기본으로 사용 • 비영속적 연결 • 과정 • 클라이언트가 TCP 연결을 열고 요청을 보낸다. • 서버가 응답을 보내고 연결을 닫는다. • 클라이언트는 end-of-file이 나타날 때까지 데이터를 읽고, 그 후 연결을 닫는다. • 단점 • N 개의 그림에 N개의 연결을 열어야 하므로 오버헤드가 크다. • 영속적 연결 • 서버가 응답을 한 후에도 연결을 계속 열어 놓는 것 • 서버는 클라이언트의 요청이 있을 때나 타임아웃이 될 때 연결을 닫음 • 클라이언트에게 문서의 끝을 알릴 수 없을 때에도 연결을 닫음

  50. HTTP Version 1.1의 특성(feature) • 프록시 서버(proxy server) 지원 • 최신 요청에 대한 응답의 복사본을 가지고 있는 컴퓨터 • Proxy server가 설정되어 있는 경우 클라이언트는 proxy server에게 요청을 보냄 • Proxy server는 cash를 검사하여 응답이 저장되어 있지 않을 때 서버로 요청을 보냄 • 수신된 응답은 다음의 다른 요청에 대비해 proxy server에 저장됨 • Proxy server는 서버의 부하, 트래픽, 지연을 줄이기 위함이 목적이나 클라이언트에 서버 대신 proxy를 액세스하도록 설정되어 있어야 함

More Related