1 minute read

네트워크 애플리케이션 계층 원리

  • 종단 시스템(endsystem)에서만 애플리케이션 소프트웨어가 존재한다는 기본 설계원칙을 가진다.
    • 즉, 네트워크 코어(network core) 장치가 필요 없다.
    • 종단시스템(endsystem)에서만 존재한다.
    • 신속한 앱 개발, 전파(propagation)를 가능하게 한다.

구조

  1. Client-Server
  2. Peer-Peer

프로세스(Process communicating)

  • 종단시스템(endsystem)에서 실행되는 프로그램을 말한다.
  • 소켓(socket)을 통해 메시지를 주고받는다.

어플리케이션 계층 프로토콜

  • 메시지 타입(request, response)
  • 메시지 문법(field)
  • 메시지 의미
  • 메시지 처리 규칙
  • 개방(open) 프로토콜(HTTP, SMTP)
  • 독점(proprietary) 프로토콜(skype)

전송 계층 서비스

  1. TCP
    • reliable transport
    • flow control
    • congestion control
    • connection-oriented
    • not provide: timing, minimum throughput guarantee, security
  2. UDP
    • unreliable data transfer 사진

웹(Web)과 HTTP

  • HTTP: hypertext transfer protocol, HTML문서를 주고받는 규약
    • application layer protocol
    • client/server model
    • TCP
    • stateless
    • Persistent HTTP
  • HTTP cookies
  • Web cache(proxy server)
    • reduce response time for client request

E-mail, SMTP, IMAP

  • E-mail
    • user agents
    • mail servers
    • SMTP(simple mail transfer protocol)
  • 메일 접속 프로토콜
    • IAMP, POP3, HTTP

Domain Name System(DNS)

  • 네임 서버(name server)들의 계층 구조로 구현된 분산 데이터베이스(distributed database)이다.
  • 애플리케이션 계층 프토토콜이다.

DNS가 제공하는 서비스

  1. 호스트이름(hostname)을 IP 주소(ip address)로 변환시킨다.
  2. 정식 호스트 네임(canocical)말고도 별칭(alias name)을 가질 수 있게 한다.
  3. 메일 서버도 별칭(mail server aliasing)을 가질 수 있게 한다.
  4. 중복 서버를 만들어 부하를 분산시킨다.

왜 분산시스템을 적용하는가?

  1. 중앙화되어 있다면, 한번에 시스템이 다운될 수 있다.
  2. 트래픽량을 감소시킬 수 있다.
  3. 지역 차이에 따른 거리를 좁힐 수 있다.
  4. 유지 보수 중에도 사용할 수 있다.

DNS 계층 구조

Screen Shot 2022-12-11 at 8 28 06 PM

루트 DNS 서버

  • 13개의 루트 서버가 있다.

최상위 레벨 도메인(TLD) 서버

  • .com, .rog, .net 등 기업, 기관, 나라를 대표하는 도메인 서버를 말한다.

책임 DNS 서버

  • 기관이 실질적으로 DNS서버를 가진 곳이다.
  • IP주소가 매핑된 곳이다. 그 주소로 접근 권한을 갖기에 책임(권한) 서버라고도 한다.

어떻게 IP주소를 찾아올까?

  1. 클라이언트는 루트 서버에서 .com에 해당하는 서버를 찾는다.
  2. 클라이언트는 .com DNS서버에서 naver.com에 해당하는 DNS서버를 찾는다.
  3. 클라이언트는 naver.com에서 www.naver.com에 해당하는IP주소를 얻어온다.

로컬 DNS 서버

  • DNS계층 구조에서 제외되었고, 이는 사용자 PC와 계층 DNS 사이에 존재한다.
  • ISP는 하나의 기본 네임 서버(default name server)라고도 함.
  • 사용자는 먼저 로컬 DNS 서버에 질의를 던지면, 그 로컬 DNS서버가 이 질의를 DNS 계층 으로 전달한다(프록시 역할).

캐싱과 DNS 기록 갱신

  • 네임서버가 매핑을 하면, 이를 캐시한다.
    • 캐시 엔트리가 일정 시간 후에 타임 아웃된다(TTL).
    • TLD서버는 일반적으로 local name server에 캐시된다. (그러므로 루트 네임 서버를 자주 방문하지 않음)
  • 캐시된 항목이 오래된 걸 수 있다(최선의 노력으로 이름을 주소로 변환!).
    • host가 IP 주소를 변경하면 모든 TTL이 만료될 때까지 네트워크가 모를 수 있다.

DNS기록과 프로토콜 메시지

소켓 프로그래밍

TCP

Screen Shot 2022-12-11 at 8 49 52 PM

UDP

Screen Shot 2022-12-11 at 8 52 25 PM

참고 자료

  • computer networking a top down approach
  • kocw 이석복, 컴퓨터네트워크
  • https://velog.io/@jeanbaek/%EC%BB%B4%ED%93%A8%ED%84%B0-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%82%B9-2-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EA%B3%84%EC%B8%B5-1-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98%EC%9D%98-%EC%9B%90%EB%A6%AC
  • https://suhwanc.tistory.com/102?category=781986