컴퓨터끼리 데이터를 주고 받을 때, 컴퓨터의 하드웨어와 소프트웨어가 수행하는 기능을 7계층으로 구분한 것이 OSI 7계층이다.
📌 OSI 7계층 모델에서의 데이터흐름은 다음과 같다.
[ 데이터 송신자 ]
응용 - 표현 - 세션 - 전송 - 네트워크 - 데이터링크 - 물리
[ 데이터 수신자 ]
물리 - 데이터링크 - 네트워크 - 전송 - 세션 - 표현 - 응용
전송에 필요한 두 장치 간의 물리적인 연결과 전기 신호를 변환 및 제어하는 계층.
송신 측 장치에서 전달받은 전기 신호를 다음 계층으로 잘 전달하는 역할을 수행한다.
관련된 하드웨어로는 리피터, 허브 등이 있다.
네트워크 기기 간의 데이터 전송 및 물리주소를 결정하는 계층.
물리계층으로부터 전달받은 전기신호를 우리가 알아볼 수 있는 데이터의 형태로 처리하여 네트워크 계층으로 전달해주는 역할을 수행한다.
이때, 데이터가 최종적으로 도착하는 주소에 대한 정보를 정의한다.
관련된 장비로는 랜카드, 브리지, 스위치 등이 있다.
실제 네트워크 간의 데이터 라우팅 담당.
데이터링크 계층에서 출발지와 도착지에 대한 정보를 정의하지만, 어떻게 갈 지에 대한 정보는 없다.
각 네트워크 회선마다 트래픽이 다르기때문에, 직선거리로만 가는 것은 비효율적일 수 있다.
네트워크 계층에서는 출발지와 도착지 사이에 최적의 경로를 탐색하여 선택한다.
이 과정을 '라우팅(Routing)'이라고 한다.
신뢰성있는 데이터 전송 서비스 제공.
물리~네트워크 계층을 통해 전달할 데이터와 최적의 경로를 확보했다.
전송계층에서는 데이터가 밑의 계층에서 만들고 정의한 것을 정상적으로 전송시키기 위한 확인작업을 수행한다.
데이터가 잘 보내지고 있는지, 패킷이 유실되거나 순서가 바뀌는 경우가 있지는 않는지 등을 확인하고, 만약 이러한 문제가 발생할 경우 바로 잡는 역할을 수행한다.
세션 연결의 설정과 해제, 세션 메시지 전송 등의 기능 수행
물리~전송 계층은 데이터 전달에 초점이 맞춰져 있다.
세션계층 부터는 데이터를 주고받는 두 컴퓨터 사이의 통신 프로토콜이라고 할 수 있을 것 같다.
한 쪽에서 우편을 보낸다고 해도 받는 쪽에서 응답이 없거나, 거부하게 되면 반송되는 것처럼 송, 수신 장치 간의 데이터 전달을 위한 프로세스 즉, 세션을 연결하거나 작업이 종료되었을 때 연결을 끊는 역할을 하는 것이 세션 계층이다.
데이터의 인코딩 및 디코딩 수행
응용계층으로 전달하거나 전달받는 데이터를 인코딩 또는 디코딩하는 역할을 수행한다.
데이터가 텍스트파일인지 이미지파일인지 구분하여 우리가 볼 수 있는 형태로 표현해주는 것이 표현계층의 주요역할이다.
사용자와의 인터페이스를 제공하는 계층
실제로 사용자가 데이터를 직접 보고 조작할 수 있도록 UI를 제공하는 역할을 수행한다.
우리가 흔히 사용하는 Google Chrome, Gmail등이 응용계층에 해당한다.
TCP/IP 계층은 OSI계층 모델을 실무적으로 현실에 맞춰 단순화한 모델이다.
노드간 신뢰성있는 데이터 전송을 담당하는 계층
OSI모델에서 물리, 데이터링크 계층이 여기에 해당한다.
즉, 전기신호 전달부터 주소 정의 등의 역할을 수행한다.
통신 노드 간의 IP패킷을 전송하는 기능 및 라우팅 담당
OSI모델에서 네트워크 계층이 여기에 해당한다.
통신 노드 간 연결 제어 및 신뢰성 있는 데이터 전송 담당
OSI모델에서 전송 계층이 여기에 해당한다.
TCP/UDP 기반의 응용 프로그램을 구현할 때 사용
OSI모델에서 세션, 표현, 응용 계층이 여기에 해당한다.
서버나 클라이언트 응용 프로그램이 이 계층에서 동작한다.