[네트워크] 2. 애플리케이션 계층

서요이·2022년 11월 30일
0

네트워크

목록 보기
1/6
post-thumbnail

2. 애플리케이션 계층

Network Application

운영체제 위에서 실행되는 프로세스들이 다른 머신에 있는 프로세스와 메시지를 주고 받는 것

Client-server architecture

클라이언트: 필요할 때만 요청을 보냄

서버: 24시간 작동되며 요청을 받음, 고정된 주소 가짐

Socket

운영체제에서 제공하는 API 중 하나

프로세스들 사이의 communication에서 socket을 통해서 addressing

socket은 IP 주소와 port 번호의 결합

  • IP 주소: 인터넷 상에 존재하는 컴퓨터의 주소
  • port: 컴퓨터 안의 프로세스를 찾기 위한 것

HTTP (Hypertext Transfer Protocol)

하이퍼텍스트를 주고 받는데 사용하는 규약

web의 application layer protocol, TCP 기반, 80번 포트 사용

request와 response로 이루어짐

stateless: 클라이언트의 상태를 저장하기 않음

Non-persistent HTTP

TCP 커넥션을 HTTP 사용 후 close

매 http마다 TCP 커넥션을 새로 맺음 - 비효율적

응답 시간이 오래 걸림

RTT: Round Trip Time, 패킷을 목적지에 보내고 그 응답이 돌아오기까지 걸리는 시간

Persistent HTTP

클라이언트/서버 간 하나의 TCP 커넥션으로 여러 개의 HTTP 송수신 수행 - 효율적

한 번 연결이 되면 계속 사용 가능

HTTP Request Message

클라이언트가 HTTP request를 소켓으로 보내면 request message 생성

첫 번째 줄에 어떤 정보를 요청하는지, 나머지는 부가 정보

HTTP Response Message

서버에서 클라이언트가 요청한 파일을 보낼 때 response message 생성

헤더에 부가적인 정보 함께 담겨 있음

Cookies

HTTP의 stateless 성질 보완

사용자가 서버에 처음으로 request → 쿠키 생성

이후부터 접속할 때마다 이전에 생성된 쿠키 이용하여 사용자 인식

Web Caches

original server에 요청을 하는 대신 proxy server에 HTTP 요청

proxy server: 서버와 클라이언트 사이에서 대리로 통신을 수행하는 서버

  • 장점: 빠름, 서버 트래픽 감소(요청을 로컬에서 처리해 주기 때문)
  • 단점: 보안 이슈, 캐시가 가진 정보와 서버가 가진 정보의 차이(일관성 문제)

Conditional Get

캐시의 일관성 문제 해결하기 위해 사용

브라우저로 전달되는 객체들이 최신임을 확인

HTTP request에 If-Modified-Since 헤더 라인 함께 전송

  • 수정이 안 된 경우(최신 객체): 304 not modified 전송
  • 수정이 되어 있는 경우: 객체 담아서 보냄

DNS

Domain Name System

IP 주소와 Port 번호를 도메인 네임으로 매핑해서 접속

DNS 서버를 한 대만 사용하는 경우 트래픽이 집중되는 문제가 발생하므로 분산과 계층화 시켜야 함

TLD, Authoritative Servers

Top-Level Domain Server: .com, .org, .net과 같은 도메인 보유

Authoritative DNS Servers: 네트워크를 운영하는 기관에서 보유하는 도메인 매핑

DNS Records

type A(Address), type NS(Name Server)

두 가지 타입을 쌍으로 저장

NS를 통해 서버 이름 얻음, A를 통해 서버의 IP 얻음

DNS는 UDP 기반(크기가 작아서 유실될 확률이 낮기 때문에 빠른 UDP 사용) / HTTP는 TCP 기반

Electronic Mail

  • User agents: outlook, mail checking app…
  • Mail server: gmail, naver mail…
  • SMTP: Simple Mail Transfer Protocol

사용자가 메일 전송 → User agent →(SMTP)→ Mail server →(SMTP)→ Mail Server →(Mail Access Protocol)→ user agent → 받는 사람

0개의 댓글