이야기박스
OSI 7 Layer, Why is it important? 본문
개발자 또는 학생으로서 네트워크를 접하다 보면 필연적으로 OSI 7 계층에 대한 이야기가 꼭 나오게 됩니다. 면접에서도 종종 나올 수 있는 내용이지요. 신입 면접에서는 자주 등장하고 경력 면접에서도 지원자가 네트워크 지식이 약하다 생각되면 종종 물어보기도 합니다.
그렇기에 이번 포스팅에서는 OSI 7 Layer 에 대하여 알아보도록 하겠습니다. 이 포스팅을 거친 독자분들은 시험, 면접도 잘 보실 것이라 믿고 현업에서 일하시는 분들도 복습할 수 있는 좋은 기회가 될 것이라 믿습니다.
OSI란 무엇이고 왜 중요한가요?
OSI는 `Open Systems Interconnection` 의 약자입니다. 이를 직역하면, OSI 7 Layer란 것이 시스템 간 통신에 대하여 다룬 내용이란 걸 유추해 볼 수 있습니다.
먼저 정의를 해보자면, OSI 7 Layer란 ISO(국제 표준화 기구)에서 서로 다른 시스템 및 프로토콜에 대해서 통신하는 방법에 대한 물리적/추상적 계층 구분에 따른 표준이라고 볼 수 있습니다.
이러한 표준이 없었을 때에는 회사 별로 각자만의 네트워크 기술을 개발하였습니다. 이는 같은 회사 장비 내에서는 통신이 가능하였지만, 다른 회사와의 장비와는 통신이 어렵게되었고 이는 통신의 효율성을 크게 떨어트리게 되었습니다.
이러한 문제를 해결하기 위하여 ISO는 1980년대에 OSI 7 Layer 모델을 제안하였습니다. 이 모델에서 각 계층별 역할을 정의함으로써, 서로 다른 회사의 시스템에서도 통신 할 수 있는 방법을 가이드하였습니다. 이는 네트워크를 하나의 규약으로 묶음으로써, 현재의 데이터 통신의 표준화를 이루었습니다.
OSI 모델이 모든 네트워크 기술에 적용될 수 있는 것은 아닙니다. 하지만 네트워크를 이해하고 이를 바탕으로 시스템을 설계하는 것에 있어서는 훌륭한 가이드라인이 될 수 있습니다.
OSI 7 Layers
1 계층에서부터 올라갈 수록 점점 더 추상화가 되어 사용자(개발자) 입장에서는 신경 쓸 부분이 적어집니다. 대부분의 개발자는 4 계층 이상을 다루겠지만 오늘은 공부를 하니 1 계층부터 무엇이 있는지 확인해 보도록 하겠습니다.
Layer 1. 물리 계층 (Physical Layer)
이 계층은 실제 데이터의 전송을 담당합니다. 전송 매체 (코엑시얼 케이블, 광섬유 등)와 신호를 다룹니다. 이 계층에서 사용하는 대표적인 기술과 표준은 Ethernet, USB, HDMI, Bluetooth 등이 있습니다.
Layer 2. 데이터 링크 계층 (Data Link Layer)
이 계층은 물리 계층에서 전달 받은 정보를 하나의 프레임으로 만들어 네트워크 계층으로 전송합니다. 주요 프로토콜로는 Ethernet, Wi-Fi (IEEE 802.11), PPP(Point-to-Point Protocol) 등이 있습니다.
Layer 3. 네트워크 계층 (Network Layer)
이 계층에서는 패킷의 경로를 결정하고, 라우팅을 수행합니다. 대표적인 프로토콜로는 IP (Internet Protocol), ICMP (Internet Control Message Protocol), IPsec, IGMP 등이 있습니다.
Layer 4. 전송 계층 (Transport Layer)
이 계층에서는 데이터의 전송을 관리합니다. TCP (Transmission Control Protocol)와 UDP (User Datagram Protocol)가 이 계층에서 가장 많이 사용되는 프로토콜입니다.
Layer 5. 세션 계층 (Session Layer)
이 계층에서는 통신 세션을 설정, 관리 및 종료합니다. NetBIOS, RPC (Remote Procedure Call), PPTP(Point-to-Point Tunneling Protocol) 등이 여기에 해당합니다.
Layer 6. 표현 계층 (Presentation Layer)
이 계층에서는 데이터를 애플리케이션 계층에서 이해할 수 있는 형태로 변환하거나 암호화 및 복호화를 수행합니다. SSL (Secure Sockets Layer), TLS (Transport Layer Security), ASCII, JPEG, MIDI 등의 표준 및 프로토콜이 이 계층에 포함됩니다.
Layer 7. 응용 계층 (Application Layer)
이 계층에서는 사용자와 가장 가깝게 위치하며, 네트워크 서비스에 대한 접근을 제공합니다. HTTP, FTP, SMTP, DNS 등의 프로토콜이 이 계층에서 작동합니다.
Ethernet은 Physical / Data link 두 계층 모두 사용된다고 볼 수 있습니다.
데이터 링크 계층에서, Ethernet은 프레임 구조와 MAC(Media Access Control) 주소를 사용하여 노드 간의 통신을 가능하게 합니다. 또한, 이 계층에서 Ethernet은 오류 검출 (FCS, Frame Check Sequence)을 제공하며, 필요한 경우 재전송을 요청할 수 있습니다.
물리 계층에서, Ethernet은 실제 데이터 전송 방식을 정의합니다. 이는 전송 매체(코엑시얼 케이블, 광섬유, 전기적인 신호 등)와 연결, 신호화, 전송 속도 등에 관한 사항을 포함합니다.
실제로 두 계층은 다른 프로토콜에서도 서로 밀접하게 연관되어 있습니다.
Encapsulation / Decapsulation
OSI 7 Layer에서 캡슐화는 데이터가 송신자에서 수신자에게 전송되는 과정에서 데이터가 각 계층을 통과하면서 데이터에 헤더와 트레일러가 추가되는 과정을 의미합니다.
- 상위 계층 -> 하위 계층: 캡슐화(Encapsulation)
- 하위 계층 -> 상위 계층: 디캡슐화(Decapsulation)
위 그림이 Application, Presentation, Session 계층이 헤더를 사용하지 않는다는 것을 의미하는 건 아닙니다. 다만, 이 세 계층에서 사용되는 header, footer는 데이터의 앞과 뒤 부분에 정보를 추가하는 개념으로 이해하면 좋을 것 같습니다. 다른 Transport, Network, Data link 계층과는 구분하여 생각하는 것이 좋을 것 같습니다.
마무리
OSI 7 layer는 네트워크의 가장 기본이 되는 지식이라고 볼 수 있습니다. 이를 이해하면 개발자로써 업무를 함에 아래 내용들의 도움을 받을 수 있을 것 같습니다.
- 이해력 향상: OSI 7 계층 모델은 네트워킹의 복잡한 개념들을 이해하기 쉽게 만들어 줍니다. 각 계층은 특정한 목적을 가지고 있으며, 해당 계층에서 일어나는 일들만을 집중적으로 고려하면 됩니다.
- 문제 해결: 네트워크 문제가 발생했을 때, OSI 모델을 통해 문제의 원인을 찾아내고 해결할 수 있습니다. 예를 들어, 특정 웹사이트에 접속할 수 없다면, 이 문제는 응용 계층에서 일어나는 것일 수도 있고, 물리 계층의 문제일 수도 있습니다. OSI 모델을 이해하고 있다면 문제의 원인을 좀 더 명확하게 파악할 수 있습니다.
- 설계 및 구현: 네트워크 시스템을 설계하거나 구현할 때, OSI 모델은 필수적인 참조 모델입니다. 각 계층의 기능과 책임을 정확하게 이해하고 있어야 효율적인 네트워크 시스템을 만들 수 있습니다.
- 표준화: OSI 모델은 전 세계의 네트워크 표준을 결정하는 데 기본적인 프레임워크 역할을 합니다. 각 계층에서 사용되는 프로토콜들은 대부분 이 모델에 기반하여 개발되었으며, 이는 서로 다른 시스템 간의 상호 운용성을 보장합니다.
- 커뮤니케이션: IT 전문가들 사이에서 공통적으로 이해하고 있는 프레임워크이기 때문에, OSI 모델을 이해하고 있다면 다른 전문가들과 더 효과적으로 커뮤니케이션을 할 수 있습니다.
참고
'Computer & Data > Network' 카테고리의 다른 글
로드밸런서 inline/dsr 모드 및 remote-addr 구하기 (0) | 2020.06.15 |
---|---|
PKCS 공개키 암호 표준 ; InvalidKeySpecException (1) | 2020.06.03 |
netty-grpc ssl 통신 인증 문제 (0) | 2018.09.07 |
tcp/ip 네트워크 스택 (0) | 2018.09.06 |
SSLProtocolException: handshake alert: unrecognized_name (0) | 2018.08.22 |