지난 포스팅에 이어서 OSI 7계층을 살펴보겠습니다.
그 전에 앞서 이번 포스팅에서는 전송 계층(Transport) 과 응용 계층(Application)만 다루어볼 것입니다.
왜냐하면 사실 현대의 인터넷은 OSI 모델이 아닌 TCP/IP 모델이 인터넷의 근간을 이루는 기본 프로토콜 스택으로 자리잡았기 때문입니다.
특히 오늘날은 TCP/IP Updated 모델을 주로 사용합니다.
TCP/IP updated model 로 대체 되면서 OSI 의 상위 계층(application, presentaion, session)이 application 계층 하나로 통일 되었습니다.
3. TCP/IP Updated 계층 살펴보기
이전 포스팅에서, 네트워크 계층까지를 다루었습니다. 만약 A에서 K로 데이터를 전송해야한다면 IP 주소와 라우팅을 사용하는 것, 그리고 네트워크 계층은 네트워크 사이에서 원하는 목적지의 컴퓨터로 데이터를 전송하는 계층이라는 것까지 살펴보았습니다.
(4) 전송 계층 (Network Layer)
데이터를 받는 수신자는 전 세계의 컴퓨터로부터 데이터를 받게 됩니다.
그런데 컴퓨터에는 여러 개의 프로그램이 실행되고 있습니다.
받은 데이터를 어떤 프로그램에 주어야할지 컴퓨터가 알기 위해서 등장하는 것이 포트 번호입니다. 포트 번호는 하나의 컴퓨터에서 동시에 실행되고 있는 프로세스들이 서로 겹치지 않게 가져야하는 상수 값을 말합니다.
송신자는 데이터를 보낼때, 데이터를 받을 수신자 컴퓨터에 있는 프로세스의 포트 번호를 붙여서 보냅니다.
즉 전송 계층이란 포트 번호를 사용해 도착지 컴퓨터의 최종 도착지인 프로세스까지 데이터가 도달하게 하는 모듈입니다
이 기능은 운영체제의 커널에 구현이 되어있습니다.
(5) 응용 계층 (Application Layer)
응용 계층을 이해하기 이전에 TCP/IP 소켓 프로그래밍에 대해 알아보겠습니다.
TCP/IP 소켓 프로그래밍이란?
TCP/IP 소켓 프로그래밍은 운영 체제의 전송 계층에서 제공하는 API를 활용하여, 네트워크를 통해 통신 가능한 프로그램을 만드는 과정을 말합니다. 개발자는 데이터의 송수신이 필요한 애플리케이션을 개발할 수 있고, 이는 클라이언트와 서버 모델을 기반으로 합니다.
쉽게 말해 프로그래밍 소켓 프로그래밍을 통해, 클라이언트 프로그램과 서버 프로그램을 별도로 만들어서 서로 통신하게 할 수 있습니다. 클라이언트는 서비스를 요청하는 프로그램이고, 서버는 그 요청에 응답하여 서비스를 제공하는 프로그램입니다.
TCP/IP 소켓 프로그래밍의 가장 큰 장점 중 하나는 누구나 자신만의 응용 계층 프로토콜을 만들어 사용할 수 있다는 점입니다. 예를 들어, 특정 게임이나 채팅에서 요구되는 특수한 데이터 전송 규칙과 암호화 방식을 개발하여 사용할 수 있습니다. 이를 통해 특정 애플리케이션에 최적화된 통신을 구현할 수 있습니다.
HTTP
응용 계층의 대표적인 프로토콜로는 HTTP(Hypertext Transfer Protocol)가 있습니다. HTTP는 웹 페이지와 같은 리소스를 전송하기 위해 설계된 프로토콜로, 클라이언트-서버 모델을 기반으로 합니다. 클라이언트(웹 브라우저)는 HTTP 요청을 서버로 보내고, 서버는 해당 요청에 대한 응답을 클라이언트로 반환합니다.
4. 인코딩과 디코딩 과정으로 쉽게 이해하기
지금까지 살펴본 계층 구분 과정은 쉽게 말해 데이터를 네트워크 상으로 보낼 때, 보내는 데이터의 앞 뒤에 전송에 필요한 부가 정보가 붙는 과정으로 생각할 수 있습니다.
OSI 계층을 공부하다보면 이런 그림을 쉽게 보게 됩니다.
지금까지의 포스팅 내용에서 든 예시만으로 쉽게 예시를 그려보면 아래와 같습니다.
쉬운 이해를 위해 간략하게만 넘어간 것이 많습니다. 이후 각 부분들에 자세히 알아보는 포스팅을 다루겠습니다.
참고자료
[10분 테코톡] 🔮 히히의 OSI 7 Layer
https://www.youtube.com/watch?v=1pfTxp25MA8
https://velog.io/@amuse/OSI-7-Layers
[컴퓨터 네트워크 - 한양대학교 이석복 교수님]
http://www.kocw.net/home/cview.do?cid=6166c077e545b736
'CS > Network' 카테고리의 다른 글
[네트워크] 전송 계층 : TCP (0) | 2024.02.15 |
---|---|
[네트워크] Pipelined Protocol (0) | 2024.02.12 |
[네트워크] RDT(Reliable Data Transfer) (0) | 2024.02.11 |
[네트워크] 전송 계층 : 다중화(Multiplexing)와 역다중화(Demultiplexing) (0) | 2024.02.10 |
[네트워크] OSI 7계층을 쉽게 이해해보자 (1) (0) | 2024.02.08 |