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 |