OSI 7 계층
OSI 7 계층
네트워크 관련 지식을 정리하기 전에 사전에 개념 정립이 되어있어야 하는 내용이 있다. 바로, OSI 7 계층에 대한 이해이다. 먼저 OSI 7 계층에 대해 알아보자. OSI 7계층은 아래와 같다.
OSI 7계층 모델은 컴퓨터 네트워킹과 통신에서의 데이터 교환을 설명하고 조직화하기 위한 개념적인 모델로 다양한 네트워크 장치와 프로토콜(HTTP나 HTTPS처럼, 컴퓨터 네트워크에서 통신을 하기 위한 규칙의 집합으로 데이터를 주고 받는 방법과 데이터의 형식을 정의) 간의 상호 동작을 이해하고 설명하는데 사용된다. 즉, 서로 표준화되거나 호환되도록 통합되어진 하나의 규약 같은 것이라고 할 수 있다. 이 모델에서 계층 분류는 계층의 역할과 목표에 따른 것으로 데이터 플로우 계층은 용어에서 의미하는 대로 데이터를 상대방에게 잘 전달하는 역할을 가지고 있다. 이러한 점은 애플리케이션 개발자 입장에서 애플리케이션 계층 프로토콜을 개발할 때 하위 데이터 플로우 계층을 고려하지 않고 데이터를 표현하는데 초점이 맞춰져 있을 수 밖에 없는 상황을 초래하기도 한다. 그래서 반대로 애플리케이션 계층은 애플리케이션 개발자들이 고려해야 할 영역이므로 네트워크 엔지니어는 이 부분에 대해 일반적으로 고려하지 않는다. 이런 이유로 애플리케이션 개발자는 하향식으로, 네트워크는 상향식으로 네트워크를 바라보며 인식한다.
참고로 TCP/IP 모델은 아래와 같으며, OSI 7계층을 단순화해서 나타낸 모습이다.
그러면, 각각의 계층에 대해 알아보자. 그전에 각각의 계층을 하나의 구성도로 그려보았다. 예전에 공부하면서 정리하는 차원에서 만들었던건데, 다음과 같다.
그러면, 위 구성도의 흐름대로 처리되는 각 계층에 대해 알아보자. 웹 애플리케이션을 비유로 해서 각각에 대해 정리해보았다.
- 물리 계층(Physical Layer):
- 내용 : 물리 서버는 웹 애플리케이션이 떠있는 서버의 실제 하드웨어를 나타낸다. 이 계층에서는 외부에서 데이터 요청과 응답을 보내는데 필요한 전기 신호를 생성하고 전송한다.
- 예시 : 허브, 리피터, 케이블, 커넥터, 트랜시버, 탭 등
- 데이터 링크 계층(Data Link Layer):
- 내용 : 데이터 링크 계층은 전기 신호를 데이터 형태로 처리하고, MAC 주소를 사용하여 데이터를 목적지로 보낸다. 이 계층은 데이터를 패킷화하여 네트워크 장치에서 안전하게 전달한다.
- 예시 : 네트워크 인터페이스 카드, 스위치
- 네트워크 계층 (Network Layer):
- 내용 : 네트워크 계층은 데이터 패킷을 IP 주소를 통해 전송한다. 이 계층은 데이터가 어디로 가야 하는지 결정하고 라우팅을 관리한다.
- 예시 : 라우터
- 전송 계층 (Transport Layer):
- 내용 : 전송 계층은 데이터를 안정적으로 전송하기 위한 역할을 한다. 데이터를 분할하고, 에러 복구와 데이터 흐름 제어를 담당한다. 이 계층에서는 포트 번호를 사용하여 응용 프로그램을 식별한다.
- 예시 : 로드밸런서, 방화벽
- 세션 계층 (Session Layer):
- 내용 : 세션 계층은 데이터 교환의 세션을 설정, 유지, 종료하며, 세션 관리와 동기화를 제공한다. 이 계층은 연결을 관리하고 중간에 문제가 발생하면 복구한다.
- 예시 : 세션
- 표현 계층 (Presentation Layer):
- 내용 : 표현 계층은 데이터 형식의 변환, 압축, 암호화, 문자 인코딩 변환과 같은 데이터 형식 관리를 수행한다. 이는 다른 시스템 간에 데이터 교환을 위해 데이터 형식을 표준화하는데 도움이 된다.
- 예시 : MIME 인코딩, 암호화, 압축, 코드 변환
- 응용 계층 (Application Layer):
- 내용 : 응용 계층은 사용자와 상호 작용하는 웹 애플리케이션 또는 다른 응용 프로그램을 나타낸다. 웹 서버 및 브라우저, 이메일 클라이언트, 파일 전송 소프트웨어와 같은 응용 프로그램이 이 계층에서 동작한다.
- 예시 : FTP, SMTP, HTTP, TELNET
아래는 계층별 주요 프로토콜 및 장비를 나타낸 표이다.
참고 네트워크는 규모와 범위에 따라 다음 3가지로 구분됨.
LAN (Local Area Network) - 사용자 내부 네트워크 MAN (Metro Area Network) - 한 도시 정도를 연결하고 관리하는 네트워크 WAN (Wide Area Network) - 멀리 떨어진 LAN을 연결해주는 네트워크
그리고, 추가적으로 위에서 설명했던 OSI 7계층을 전체적인 플로우로 정리해서 구체적인 예시를 통해 적어본다. 이 OSI 7계층의 개념과 플로우는 이후 정리할 내용의 기본 토대가 되기 때문에 여기서 개념을 잡는 것이 중요하다. 그러므로 이렇게나마 다시 또 정리해본다. 우선 전체적인 플로우 그림이다.
위 그림에 대한 설명은 아래와 같다.
가정 : Alice와 Bob은 서로 다른 컴퓨터에서 데이터를 주고 받고자 하는 상황.
- 물리 계층 (Physical Layer):
- Alice는 데이터를 전송하기 위해 키보드를 사용하여 메시지를 입력. 이 메시지는 전기 신호로 변환되어 NIC(Network Interface Card)를 통해 컴퓨터의 네트워크 케이블로 보내짐. 이 단계에서 데이터 전송이 이루어진다.
- 데이터 링크 계층 (Data Link Layer):
- NIC는 전송된 데이터를 패킷으로 나누고, 이 패킷에 프레임 헤더를 추가하여 데이터를 출발지와 목적지 MAC 주소와 함께 패킷을 만듦. 이 패킷은 스위치를 통해 목적지로 전송됨. 데이터 전송은 출발지 MAC 주소에서 목적지 MAC 주소까지 스위치를 통해 이루어짐을 원칙으로 하되, 이 원칙은 로컬 네트워크 내에서만 한정한다. 만약, 목적지 MAC 주소가 로컬 네트워크가 아닌 다른 네트워크 상에 있다면, 3계층으로 나아가서 라우팅을 통해 다른 네트워크가 존재하는 목적지 MAC 주소로 전송되도록 하고. 그 과정에서 IP 주소 형태로 바뀌어서 진행됨. 해당 프로세스는 바로 이경우에 해당하므로, 네트워크 계층으로 나아가서 IP 형태를 통해 데이터 전송이 이루어짐.
- 네트워크 계층 (Network Layer):
- 스위치는 패킷의 목적지 IP 주소를 확인하고, 목적지 컴퓨터가 다른 네트워크에 있을 경우, 라우터를 사용하여 데이터를 다음 네트워크로 라우팅.
- 전송 계층 (Transport Layer):
- 라우터를 통과한 패킷은 목적지 컴퓨터의 NIC에 도착하고, NIC는 패킷을 전달된 순서대로 재조립하고, 패킷이 완전한 메세지임을 확인. 이 계층은 패킷의 오류 검출과 복구를 담당.
- 세션 계층 (Session Layer):
- Alice와 Bob 간의 세션(통신 세션)이 설정됨. 이 계층은 데이터 교환을 관리하고, 데이터 전송 중에 오류를 처리.
- 표현 계층 (Presentation Layer):
- 데이터를 컴퓨터에서 표현 가능한 형식으로 변환. 예를 들어, 암호화 및 데이터 압축이 이 계층에서 이루어짐.
- 응용 계층 (Application Layer):
- 메시지가 응용 프로그램으로 전달됨. Alice의 컴퓨터에서 메시지를 응용 프로그램(예:웹 브라우저, 이메일 클라이언트)에 전달하고, Bob의 컴퓨터에서 응용 프로그램은 메시지를 읽고 표시함.
이렇게 OSI 7계층은 데이터 통신 과정을 관리하고, 데이터가 출발지에서 목적지로 안전하게 전송되도록 한다. 각 계층은 특정한 기능과 역할을 담당하며, 데이터 흐름을 지원하는데 협력한다.
여기까지가 OSI 7계층에 대한 내용으로, 해당 내용은 앞으로 설명할 네트워크 기본 지식들을 이해함에 있어서 뿌리가 되는 부분이기 때문에 그냥 지나칠 수 없어서 이렇게 기록한다.