네트워크 애플리케이션 계층 원리
- 종단 시스템(endsystem)에서만 애플리케이션 소프트웨어가 존재한다는 기본 설계원칙을 가진다.
- 즉, 네트워크 코어(network core) 장치가 필요 없다.
- 종단시스템(endsystem)에서만 존재한다.
- 신속한 앱 개발, 전파(propagation)를 가능하게 한다.
구조
- Client-Server
- Peer-Peer
프로세스(Process communicating)
- 종단시스템(endsystem)에서 실행되는 프로그램을 말한다.
- 소켓(socket)을 통해 메시지를 주고받는다.
어플리케이션 계층 프로토콜
- 메시지 타입(request, response)
- 메시지 문법(field)
- 메시지 의미
- 메시지 처리 규칙
- 개방(open) 프로토콜(HTTP, SMTP)
- 독점(proprietary) 프로토콜(skype)
전송 계층 서비스
- TCP
- reliable transport
- flow control
- congestion control
- connection-oriented
- not provide: timing, minimum throughput guarantee, security
- 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)
- 메일 접속 프로토콜
Domain Name System(DNS)
- 네임 서버(name server)들의 계층 구조로 구현된
분산 데이터베이스(distributed database)
이다.
애플리케이션 계층 프토토콜
이다.
DNS가 제공하는 서비스
- 호스트이름(hostname)을 IP 주소(ip address)로 변환시킨다.
- 정식 호스트 네임(canocical)말고도 별칭(alias name)을 가질 수 있게 한다.
- 메일 서버도 별칭(mail server aliasing)을 가질 수 있게 한다.
- 중복 서버를 만들어 부하를 분산시킨다.
왜 분산시스템을 적용하는가?
- 중앙화되어 있다면, 한번에 시스템이 다운될 수 있다.
- 트래픽량을 감소시킬 수 있다.
- 지역 차이에 따른 거리를 좁힐 수 있다.
- 유지 보수 중에도 사용할 수 있다.
DNS 계층 구조

루트 DNS 서버
최상위 레벨 도메인(TLD) 서버
- .com, .rog, .net 등 기업, 기관, 나라를 대표하는 도메인 서버를 말한다.
책임 DNS 서버
- 기관이 실질적으로 DNS서버를 가진 곳이다.
- IP주소가 매핑된 곳이다. 그 주소로 접근 권한을 갖기에 책임(권한) 서버라고도 한다.
어떻게 IP주소를 찾아올까?
- 클라이언트는 루트 서버에서 .com에 해당하는 서버를 찾는다.
- 클라이언트는 .com DNS서버에서 naver.com에 해당하는 DNS서버를 찾는다.
- 클라이언트는 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

UDP

참고 자료
- 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