[네트워크] 애플리케이션 계층 - 프로토콜

장현수·2023년 5월 30일
0

네트워크

목록 보기
1/11

네트워크 어플리케이션의 원리

  • 가장 대표적인 네트워크 애플리케이션 : HTTP기반의 웹 브라우저

  • 네트워크 : 운영체제 위에서 실행되는 프로세스가 다른 운영체제 위의 프로세스와 메시지를 주고 받는 것

  • os가 제공하는 인터페이스(socket = 네트워크 기능을 제공하는 API)를 통해 네트워크가 이루어짐

  • 클라이언트 : 뭔가 필요할 때만 메시지 요청 → 고정된 주소일 필요 없음

  • 서버 : 같은 장소에서 24시간 내내 돌아가는 것 → 고정된 주소를 갖는다

  • 프로세스의 주소 = 그 프로세스가 돌아가고 있는 운영체제의 소켓 주소 = IP주소

  • 서버의 주소는 IP주소가 고정되어 있음

  • 포트번호는 각 프로토콜마다 정해져 있음

[정리]

네트워크 = 프로세스와 프로세스간의 통신

그 통신을 위해 주소가 있어야 함. 프로세스를 특정하기 위해

그 주소는 소켓을 통해 특정됨.

소켓은 IP주소와 포트번호의 결합으로 지칭됨.


프로토콜

TCP/UDP

TCP

  • reliable한 transport : 신뢰성 O. 유실 없이 전송

HTTP

  • 웹 = http의 별칭

  • hyprered text transport protocol

  • 하이퍼텍스트 = 텍스트 중간에 링크 있음

  • 이러한 하이퍼텍스트를 전송하는 프로토콜

  • request와 response로 이루어진다

  • TCP 서비스를 사용함, 프로세스 사이에 TCP 연결이 있어야 함

  • HTTP = stateless

    • 상태가 없다 : request-response 이후에 그 어떠한 것도 없음, 끝. 기록이고 뭐고 안남음
    • 수많은 클라이언트를 기억할 필요 없이 단순히 요청한 파일에 대해 응답만 하면 끝

HTTP connections

non persistent HTTP

  • 매 번 새롭게 TCP connection 생성

persistent HTTP

  • 한 번 생성한 TCP connection을 계속 사용하여 req-res

HTTP 메세지

stateless를 보완하기 위해 나옴 : cookie

웹 캐시(프록시 서버)

  • 클라이언트와 서버 사이에는 웹 캐시라는 엔티티가 있음
  • 클라이언트가 req를 보낼 때 웹 캐시를 거치게 됨
  • 캐시에 요청한 파일이 있으면 보내주고, 없으면 서버에 가서 가져옴 → 운영체제 캐시메모리와 같은 역할
  • 트래픽이 줄어서 비용 감소
  • 원본이 바뀌었을 때 일관성 문제가 발생할 수 있음
  • 딜레이를 줄이는 직관적 방법 : 케이블 확장 → 많은 비용 발생
  • 웹 프록시 설치가 더 효율적인 해결방법

Conditional GET

  • 웹 프록시의 일관성 문제를 해결하기 위한 방안
  • HTTP request message의 필드의 if-modified-since :
  • 해당 파일이 date이후로 수정이 되었는지 확인
  • 수정되었으면 파일을 응답, 아니라면 not modified 메세지 응답
profile
개같이 발전하자 개발

0개의 댓글