컴퓨터네트워크 03주차 Application Layer_02
2022. 12. 26. 14:42ㆍCS/컴퓨터네트워크
주 교재 : Computer Networking : A Top-Down Approach
3주차 Application Layer_2
- Web and HTTP
- E-mail, SMTP, IMAP
- The Domain Name System DNS
1. Web and HTTP
- 웹 페이지는 objects로 구성되어 있다.
- object : HTML file, JPEG image, audio file, etc...
- object는 위치 주소를 가지고 있으며, 각각 URL로 주소를 지정할 수 있다.
#HTTP Overview
- HTTP : HyperText Transfer Protocol
- Web의 application layer protocol
- client/server model
HTTP는 TCP를 (기본적으로) 사용한다.
- client가 TCP Connection을 port 80번으로 연다.
- server가 TCP Connection을 승낙한다.
- HTTP message를 서로 교환한다.
- TCP Connection을 닫는다.
HTTP는 Stateless.
- 모든 connection에 대한 state를 서버가 관리하면 서버에 부하가 심해진다.
#HTTP Connections: two types
Non-persistent HTTP(1.0)
- TCP 연결을 연다.
- object 하나를 TCP 연결로 전송한다.
- TCP 연결을 닫는다.
여러 object를 받으려면 여러 개의 연결이 필요하다.
RTT : request - response에 걸리는 시간
- RTT 하나는 TCP 연결을 시작하는 것
- 나머지 RTT는 request와 response를 주고 받는 것
- Non-persistent HTTP에서 응답 시간을 줄이기 위해서 Persistent HTTP 연구?개발?
Persistent HTTP(1.1)
- TCP 연결을 연다.
- 여러 object를 single TCP 연결로 전송한다.
- TCP 연결을 닫는다.
- server는 응답을 보낸 후에 연결을 열어 놓는다.
- 뒤따라 오는 HTTP message는 열려있는 연결로 전송된다.
TCP 연결을 끊는 방법이 5가지가 있다. (나중에 배움)
HTTP request message: general format
- POST
- user input을 전송하는 데 쓰임 - GET
- 데이터를 읽어오는 데 쓰임 - HEAD
- 요청 헤더를 반환하는 데 쓰임 - PUT
- 이미 존재하는 파일을 완전히 대체하는 데 쓰임
RFC는 가이드 라인임.
1:1 관계에서는 취사선택해서 사용해도 괜찮음.
1:N 관계에서는 RFC를 따르는 것이 좋음.
(여기서 1:1, 1:N 은 서비스 제공자와 서비스를 이용하는 사람 간의 관계임)
#HTTP Response Message
#Maintaining user/server state: cookies
HTTP는 stateless이다.
state를 관리하려면 데이터를 lock-unlock 하는 일이 필요하다. => 복잡함
Web site와 client browser는 cookies를 이용해서 상태를 유지함.
- Session = Server
- Cookies = Client
#Web caches (proxy servers)
- request-response 속도를 높이기 위해 고안
- 일반적으로 cache는 ISP에 설치된다.
- client request의 response 시간을 줄여준다. (cache는 client에 가깝다.)
- Traffic을 줄여준다.
- 시간(data)으로 cache data를 관리
Web caching의 효과
- for client, 응답 시간을 줄여줌
- for server, 더 많은 유저를 지원함
- for local ISP, traffic을 줄임으로써 access link 대역폭을 효과적인 관리함
#HTTP 1.1 / HTTP 2
- HTTP 1.1 : FCFS(FIFO) 구조라서 큰 파일이 먼저 가면 나머지 파일이 기다려야한다. (Head-Of-Line Blocking(HOLB))
- 은행창구 기다리는 것 생각하면 됨. - HTTP 2.0 : server에서 client로 object 전송하는 것의 유연함을 증가시킴.
- object를 frame 단위로 쪼개서 스케쥴링함으로써 HOL을 피함.
2. E-mail, SMTP, IMAP
- user agents
- mail servers
- simple mail transfer protocol: SMTP
- TCP 통신을 이용함
- header와 body를 가지고 있음
#User Agent
- aka mail reader
- 메일을 읽고, 쓰고, 수정하는 행위
- ex : Outlook, iPhone mail client
#mail servers
- mailbox : 사용자에게 들어오는 메일
- message queue : 보내지는 메일
- SMTP : 메일 서버 간의 protocol
- client : 메일 전송 서버
- server : 메일 수신 서버
#Mail access protocols
- SMTP : 수신자의 서버로 이메일을 전달/저장
- IMAP(Internet Mail Access Protocol) : 서버에 저장된 message을, 수정, 삭제, 폴더에 저장하는 것을 제공
- HTTP : gmail, Hotmail, etc. 웹에 기반한 STMP, IMAP(또는 POP) interface를 제공한다.
3. DNS : Domain Name System
#Domain Name System
- 많은 name server 계층으로 구현된 분산된 DB
- application-layer protocol : host와 name server는 이름을 확인하기 위해 소통(communication)한다.
#DNS: Services, Structure
- DNS services
- IP 주소를 translation함
- host aliasing
- load distribution : 많은 IP가 하나의 이름에 할당됨
- DNS 본분을 하면서 다른 일도 가능함(load balancing)
- Root : ICANN에서 root DNS domain을 관리함
- Top Level Domain : 목적에 맞게 이름이 할당되어 있음
- Authoritative Server : 우리가 실제로 쓰는 domain들. ex) google.com, naver.com, kookmin.ac.kr, etc.
#Local DNS Name Server
- 계층 구조에 속하지 않음
- 각각의 ISP는 하나를 가지고 있음
- host가 DNS query를 만들면, querys는 local DNS server로 보내짐.
#DNS name resolution: iterated query & recursive query
#Caching DNS Information
cache에 mapping한 데이터를 저장하고, 요청이 오면 즉시 mapping된 데이터를 query에 대한 응답으로 제공
- caching은 응답 시간을 빠르게 해준다.
- cache에 저장된 값은 시간이 지나면 사라진다.
- TLD(Top Level Domain)은 일반적으로 local name server에 캐싱한다.
#DNS Records
- DNS : 분산 DB는 resource records(RR)를 저장한다.
- RR format : (name, value, type, ttl)
#DNS Protocol and Messages
- DNS query와 reply message는 같은 format를 가진다.
'CS > 컴퓨터네트워크' 카테고리의 다른 글
컴퓨터네트워크 06주차 Network Layer 01 (0) | 2022.12.29 |
---|---|
컴퓨터네트워크 05주차 Transport Layer 02 (0) | 2022.12.28 |
컴퓨터네트워크 04주차 Application Layer_03/Transport Layer_01 (0) | 2022.12.27 |
컴퓨터 네트워크 02주차 Introduction/Application layer (0) | 2022.12.23 |
컴퓨터 네트워크 01주차 Introduction (1) | 2022.12.22 |