Skip to content

Latest commit

 

History

History
92 lines (70 loc) · 2.63 KB

05.l7_application_layer.adoc

File metadata and controls

92 lines (70 loc) · 2.63 KB

L7 Application Layer

  • 데이터를 사용자에게 전달하는 계층

  • 하위 세 개의 계층(Host-to-Network, Internet, Transport)은 모두 데이터가 한 컴퓨터에서 다른 컴퓨터로 어떻게 전송되는지를 정의하는 데 협력한다.

  • Application layer은 데이터가 전송된 후에 어떻게 처리할지를 결정한다.

    • 예를 들어, HTTP와 같은 protocol은 웹 브라우저가 그래픽 이미지를 숫자의 긴 스트림이 아닌 그림으로 표시하도록 보장한다.

  • Application layer은 여러분의 프로그램의 네트워크 부분 대부분이 시간을 보내는 곳이다.

  • 다양한 application layer protocol이 있다

    • 웹을 위한 HTTP,

    • 이메일을 위한 SMTP, POP, IMAP

    • 파일 전송을 위한 FTP, FSP, TFTP

    • 파일 접근을 위한 NFS

    • 파일 공유를 위한 Gnutella와 BitTorrent

    • 음성 통신을 위한 Session Initiation Protocol (SIP) 및 Skype 등이 있다.

  • 필요한 경우 고유한 application layer protocol을 정의할 수 있다.

    • Skype protocol은 기본적으로 P2P architecture를 기반으로 하며, 사용자 간의 음성 통화, 비디오 통화, 메시지 전송 등을 가능하게 한다.

    • Skype의 특성 및 보안 요구 사항을 충족하기 위해 개발되었다.

    • Skype만의 위한 비공개 protocol

HTTP(Hyper Text Transfer Protocol)

> GET /index.html HTTP/1.1
> Host: servername

< HTTP/1.1 200 OK
< ....

Exam-01. chrome 에서 확인하기

  • 개발자 도구를 띄웁니다.

  • Windows: ctrl + shift + i

  • MacOS: cmd + option + i

  • 개발자 도구를 아래쪽으로 붙입니다.

  • 네트워크 탭을 확인합니다.

  • 브라우저 주소창에 https://httpbin.org/get?msg=hello을 입력해봅니다.

Exam-02. curl 프로그램으로 확인하기

$ curl http://httpbin.org/get?msg=hello
$ curl -v http://httpbin.org/get?msg=hello

Exam-03. nc 프로그램으로 확인하기

$ nc httpbin.org 80
GET /get?msg=hello HTTP/1.1
Host: httpbin.org

Exam-04. tcpdump 로 확인하기 1

Terminal 1

sudo /usr/sbin/tcpdump -nnn -i eth0 -X tcp port 80

Terminal 2

$ curl http://httpbin.org/get?msg=hello

DNS Domain Name Service

  • 인터넷의 일종의 호스트 주소록 서비스

  • 도메인 주소를 IP 로 변환해 주는 서비스 (A 레코드)

Exam-05. nslookup

$ nslookup httpbin.org
$ nslookup nhnacademy.com

DNS

  1. DNS 에 먼저 가서, IP 를 알아온 다음

  2. IP 로 웹 서버에 접속