본문 바로가기
Computer Science/network

2. Application layer 5계층

by yongmin.Lee 2020. 7. 18.

1. 네트워크 어플리케이션 원리

네트워크 어플리케이션
: , 전자메일, ...

 

네트워크 어플리케이션 구조
1. client-server 구조 -> web, 파일전송, 전자메일
2. peer-to-peer 구조

 

client-server구조의 server
- 항상 켜져 있는 호스트
- 영구적인 ip주소를 갖는다
- 클라이언트 호스트들의 요청을 받는다
- 많은 요청에 응답하기 위해 수 많은 호스트로 구성된 데이터센터가 서버로 사용

 

client-server구조의 client
- 서버에게 연결요청을 하는 호스트
- 서버와 간헐적으로 연결된다
- 동적 ip를 갖는다
- 클라이언트간에 직접통신은 하지 않는다

 

p2p 구조
- 항상 켜져있는 특정서버는 존재하지 않는다
- 임의의 호스트(peer)는 서로 직접 통신한다
- peer들은 서로 서비스를 요청하고 제공도 한다
- self-scalability : 새로운 peer는 새로운 서비스 요청임과 동시에 새로운 서비스 제공
- 피어들은 간헐적으로 연결되며 ip주소가 변화한다
- p2p구조의 분산구조특성으로 복잡성관리, 성능, 신뢰성등 control 필요

 

flow : 다른 두 프로세스가 통신할 때의 data흐름
- 5요소 : src ip, src port, dest ip, dest port, protocol

 

application layer protocol
: 호스트에서 실행되는 어플리케이션의 프로세스가 다른 호스트의 프로세스와 서로 메시지를 보내는 방법을 정의 => 1교환메세지타입, 2메시지타입문법, 3message semantic, 4언제 어떻게 메시지를 전송하고 응답하는지 결정하는 규칙

네트워크 어플리케이션과 application layer protocol => application layer protocol은 네트워크 어플리케이션의 한 요소

 

2. Web  HTTP 

 : 사용자가 필요에 따라 문서를 얻는 네트워크어플리케이션

 

웹 구성요소
1. 웹 페이지 : 웹서버에서 얻는 문서,객체로 구성
2. URL : 객체의 주소
3. 웹 브라우저 : 요청한 웹페이지를 보여준다
4. 웹서버 : 클라이언트의 요청에 대한 응답으로 객체를 보낸다
5. HTTP : 어플리케이션 계층 프로토콜 -> 어떻게 웹페이지를 요청하고 전송하는지 정의 -> TCP이용

 

HTTP connection
- non-persistent http : 서버가 클라이언트에게 객체를 전송할 때마다 연결을 생성 및 종료
- persistent http : 하나의 connection을 만들고 여러 객체를 보낸다

 

non persistent http 연결과정

http client tcp 연결시도. req 메시지 전송

http server는 연결수락, res 메시지 전송

client는 원하는 객체를 req메세지로 요구

server req를 받고 client가 원하는 객체를 res 메시지에 담아서 전송

server tcp 연결 끊는다

client는 원하는 res 메시지로 원하는 객체를 받음. 다른 객체를 원할 때마다 새로 tcp 연결요청

=> non persistent http response time
= 2RTT + file transmission
= 1RTT(1~2) + 1RTT(3~4) + file전송
* RTT= 패킷이 서버에 갔다가 돌아오는데 걸리는시간
=> 한계
1. 요청 객체마다 새로운 연결 설정

2. 객체 요청마다 2RTT 소요 -> 비용 크다

 

persistent http 과정

1. http client tcp 연결시도. req 메시지 전송

2. http server는 연결수락, res 메시지 전송

3. client는 원하는 객체를 req메세지로 요구

4. server req를 받고 client가 원하는 객체를 res 메시지에 담아서 전송

5. 이후 객체 요청과 응답을 같은 연결을 통해 보냄

=> 각 객체는 1RTT 소요

 

cookie

: 서버가 history정보를 기록하여 사용자를 추적할 수 있도록 함으로써 사용자의 다음 웹브라우징시 다양한 편의제공

쿠기 4가지 요소

http response message

http request message

user host에서 쿠키파일 유지

back-end database

 

쿠키를 이용한 상태유지
: cookie를 사용시 protocol endpoint에서 state을 유지하며 http message state을 운반함으로써 stateless http stateful한 서비스 제공
ex) authorization, shopping cart, 추천

 

쿠키장점 : 사용자정보를 저장하여 다양한 기능 제공

쿠키단점 : 보안

 

web cache = proxy server

-정의 : 웹서버를 대신하여 http request를 충족시키는 네트워크 개체

-작동방식

브라우저는 웹캐시와 먼저 tcp 연결하고 웹 캐시에 http request를 보낸다

웹 캐시는 요구된 객체의 copy가 자신에게 있는지 확인하고 저장되어 있으면 해당 객체를 http response 메시지로 클라이언트에게 전송

저장되어 있지 않으면 웹 캐시는 웹 서버와 tcp 연결하고 클라이언트가 요청했었던 객체를 웹 서버에 http request메세지로 요청

웹 캐시가 웹 서버로부터 http response 수신시 객체를 local storage에 저장하고 객체의 copy tcp연결한 클라이언트에게 전송

=> 웹캐시는 클라이언트이자 서버

-효과

클라이언트의 request에 대한 응답시간 감소

서버로 접속하는 링크상의 트래픽감소

인터넷 전체 웹 트래픽 감소

속도비교 => 강의정리 ch2 6페이지

 

3. FTP

ftp 정의

: file을 주고 받을 때 사용하는 프로토콜 -> 21번포트

 

FTP connection

ftp 서버의 21번포트로 tcp control connection

클라이언트는 connection을 통해 file transfer command전송

서버가 file transfer command 수신시, 2nd tcp data connection open

파일전송이후, server data connection을 닫는다

=> ftp 2채널 이용 : “out-of-bound” : control connection data connection이 다른 밴드에서 이루어짐

 

4. 전자메일

전자메일 구성요소

user agent

mail server

SMTP

mail access protocol : POP3, IMAP

 

user agent : 사용자가 메일을 읽고 작성하게 해주는 프로그램 -> 메일 서버로부터 메시지를 가져오거나 보낸다

 

mail server : 메시지를 유지관리하는 프로그램

구성요소

메일박스 : 메시지 수신시, 수신한 메시지를 유지관리

메시지 큐 : 메시지 송신시, 메시지는 큐에 보관되어 차례대로 송신됨

 

SMTP

인터넷 전자메일을 위한 application layer protocol

역할 : 클라이언트(송신자)메일서버에서 서버(수신자)의 메일서버로 tcp를 이용하여 메시지전송

transfer 과정 : handshaking->transfer->closure

 

SMTP 특징

SMTP 25번 포트 사용

direct transfer : 중간 메일서버를 사용하지 않음

command/response interaction

메시지는 7비트 ASCII

SMTP persistent connection 이용

 

SMTP 메일전송 시나리오

A user agent를 이용하여 메시지를 작성하고 B의 전자메일 주소로 전송하라고 명령

A user agnet는 메시지를 mail server에 보내고 메시지는 message queue에 놓인다

A mail server SMTP 클라이언트는 B mail server SMTP server tcp cconnection open

SMTP 클라이언트는 메시지 전송 : push protocol

B mail server mail box에 메시지가 놓인다

B user agent mail box의 메시지를 가져온다
=> how? message access protocol : POP3, IMAP

 

mail accesss protocol

mail 수신자가 자신의 메일서버에 있는 메시지를 얻기위해 사용하는 프로토콜

종류

POP3 : 간단한 mail access protocol로 사용자인증, 메시지다운로드 기능만 수행

IMAP : 좀더 다양한 조작 기능 제공

 

POP3

pop3 3단계

authorization : 사용자인증위해 이름, pw 입력

transaction : 메일다운로드, 삭제표시, 삭제표시취소

update : quit 명령시 삭제표시된 메시지 삭제

 

pop3 특징

“download and delete” 모드에서 user agent가 메일 읽으면 mail server에서 해당 메일 삭제

“download and keep”모드에서 user agent가 메일 읽어도 해당 메시지의 복사본이 mail server에 남겨짐

pop3서버는 pop3의 상태정보 전달x -> stateless

 

IMAP

pop3보다 더 다양한 기능을 지닌 mail access protocol

특징

imap server(mail server)는 메시지를 폴더에서 관리하는 방식 사용, 처음 메시지가 서버에 도착하면 하나의 폴더에 모든 메시지 저장

imap protocol은 사용자로 하여금 메시지를 폴더별로 관리할 수 있게함

imap 세션을 통해 user state 정보 유지 -> stateful

 

HTTP vs SMTP

http : pull protocol : 사용자가 서버로부터 정보를 가져온다
SMTP : push protocol : smtp client smtp server에게 메시지 전송

http smtp 둘다 ASCII command/response interaction 사용

http non-persistent connectoin 또는 persistent connection으로 연결
smtp persistent connection으로 연결

 

5. DNS 

dns 정의

distributed database로써의 dns
: 많은 name server들의 계층구조로 구현

application layer protocol로써의 dns
: 호스트가 distributed database name server와 질의를 하여 hostname Ip address로 변환할 수 있도록함

 

DNS 기능

hostname to ip address translation

host aliasing

mail server aliasing : 기업의 메일서버와 웹서가 같은 hostname으 갖도록 함

load distribution

 

centrailize DNS 단점

singli point of failure : name server고장시 전체 서비스 다운

traffic volume

distant centrailize database

maintenance

확장성이 없다

 

DNS동작원리->hostname to ip address translation

1. 클라이언트가 www.amazon.com 접속 시도

2. 클라이언트가 local dns server에 접속하여 www.amazon.com ip주소 질의

3. local dns server가 해당 주소 있으면 ip주소 보내고 없으면 root dns server com dns server ip주소 질의

4. root dns server com dns serv를 갖는 TLD server ip주소를 local dns server에 보낸다

5. local dns server TLD server에 접속하여 amazon.com dns serv ip주소질의

6. TLD 서버가 amazon.com dns server를 가진 authoritative server ip주소 보낸다

7. local dns serv는 해당 authoritative server에 접속하여 www.amazon.com ip주소 질의

8. authoritative 서버는 www.amazon.com ip주소 전송.

9. local dns server name-to-address translation 쌍을 캐시에 보관하고 클라이언트에게 ip 주소 전송

 

DNS 계층

- root dns server
: 최상위 서버, local name server hostname을 풀지 못하면 다음으로 접속되어 hostname에 해당하는 TLD server ip주소를 보낸다

- TLD server (top level domain server)
: com, org, kr와 같은 상위도메인이나 국가 도메인을 담당하는 서버. authoritative dns server들에 대한 ip주소 제공

- authoritative dns server
: hostname ip주소로 매핑하는 dns레코드를 제공

- local dns server

dns 계층구조에는 속하지 않지만, dns 구조 중심에서 호스트가 송신한 dns query local dns serverd에 제일 먼저 전송. local dns servers name-to-address translation 쌍을 캐시에 보관하고 있으며 proxy와 같은 역할 한다.

 

dns name resolution 방식

- iterated query
: local dns server root dns server부터 차례대로 박복적으로 질문하고 응답 받으며 hostname에 해당 하는 ip주소 찾아간다

- reculive query
: query를 받은 서버가 다음 server에게 질의를 하며 hostname ip주소를 찾아간다 -> local dns server load를 줄임

 

dns caching
: 응답을 맏은 모든 server(local, roo, tld, authoritative)는 해당 정보를 로컬메모리에 저장. 캐시엔트리는 TTL지나면 사라진다

 

6. p2p 

p2p 특징

no always-on server

임의의 호스트들이 직접 통신

peer들은 간헐적으로 연결되며 ip가 바뀌기도 한다

peer는 서버이면서 클ㄹ라이언트이다

self-scalability를 가진다



'Computer Science > network' 카테고리의 다른 글

6. Web request senario  (0) 2020.07.26
5. link layer 2계층  (0) 2020.07.18
4. Network layer 3계층  (0) 2020.07.18
3. Transport layer 4계층  (0) 2020.07.18
1. 컴퓨터 네트워크와 인터넷  (0) 2020.07.18