OSI 7계층 시리즈 #5 세션, 표현, 응용 계층

Jake Seo·2021년 6월 18일
0

네트워크

목록 보기
15/16
post-thumbnail

OSI 5(세션), 6(표현), 7(응용) 계층이 하나로 뭉친 이유

사실 OSI 7계층 모델은 이미 시장에서 도태된 네트워크 시스템이다. 현대에는 OSI 7계층 모델의 일부를 계승한 TCP/IP 모델을 대부분 사용한다. 또, TCP/IP 모델에서도 한번 업데이트가 이루어져 사실상 Updated TCP/IP Model 이라 불리는 모델을 사용한다.

위와 같이 3개의 모델 변천사가 있었는데, 최종 모델인 TCP/IP updated 모델을 보면, 4계층 밑으로는 OSI 7계층과 동일하며, 5, 6, 7 계층만 응용 계층(Application Layer)이라는 이름으로 통합되었다.

이러한 모델로 변경된 이유는 이 모델이 시장에서 이겼기 때문이다. 비록 나는 그 시대에 개발자로 일하지 않았고 일했어도 저런 일에 관여하지 못했을 것이지만, 과거의 개발자들이 최대한 합리적인 모델을 선택했을 것이다.

응용 계층의 역할

주로 클라이언트 서버로 이루어진 애플리케이션에서 통신하기 위해 사용된다. 대표적으로 알려진 몇가지의 응용 계층 프로토콜이 존재하지만 사용자가 애플리케이션을 제작하고 자신만의 응용 계층 프로토콜을 만들 수도 있다.

대표적인 응용 계층 프로토콜

  • HTTP(80): 웹 사이트를 접속하는데 이용된다.
  • DNS(53): 도메인 이름을 해석하는데 이용된다.
  • FTP(21): 파일을 전송하는데 이용된다.
  • SMTP(25): 메일을 보내는데 이용된다.
  • POP3(110): 메일을 받는데 이용된다.

1~7계층 훑어보기

HTTP 통신

HTTP 통신은 응용계층에 구현된 대표적인 통신 프로토콜 중 하나이다. HTTP/1.0, HTTP/1.1, HTTP/2는 TCP 통신을 이용하지만, HTTP/3부터는 QUIC을 이용한 UDP 통신을 이용한다.

HTTP 통신 예시

  • 클라이언트에서 보내고 싶은 데이터에 HTTP 헤더를 씌운다
  • 80 포트를 이용하여 HTTP 헤더가 씌워진 데이터를 보낸다.
  • 서버는 데이터를 받고 응답 데이터를 HTTP 헤더를 씌워 보낸다.
  • 클라이언트는 받은 HTTP 헤더와 데이터를 확인한다.

HTTP 통신은 주로 80포트를 사용하지만, 반드시 80포트를 사용해야 하는 것은 아니다.

HTTP/1.1 - keepalive

HTTP/1.1 이전의 HTTP 통신에서는 매번 HTTP 요청을 보낼 때마다 일일이 TCP 연결을 맺고 끊고 했다.

그러나 HTTP/1.1부터는 keepalive라는 기능이 추가되어, TCP 연결을 한 번 맺었다면, 필요한 데이터를 모두 교환한 이후에 연결이 끊어진다.

HTTP/2 - 빠른 것부터 응답

HTTP/2 이전에는 각 요청에 대한 응답이 얼마나 걸리든 상관없이 요청이 들어온 순서대로 응답을 했다.

그러나 HTTP/2부터는 요청에 대한 응답이 빠른 것부터 응답하여 순서대로 응답하지 않아도 되어 조금 더 속도의 향상을 이뤘다.

응용 계층 정리

헤더의 내용은 애플리케이션 구현에 따라 다르며, 우리도 TCP/IP 소켓 프로그래밍이란 것을 통해 우리만의 애플리케이션 헤더를 구현하여 통신할 수 있다.

레퍼런스

[10분 테코톡] 히히의 OSI 7 Layer
모두의 네트워크

profile
풀스택 웹개발자로 일하고 있는 Jake Seo입니다. 주로 Jake Seo라는 닉네임을 많이 씁니다. 프론트엔드: Javascript, React 백엔드: Spring Framework에 관심이 있습니다.

0개의 댓글