네트워크 통신의 기본 원리와 구조를 이해하기 위해, OSI 7 레이어 모델은 필수적인 개념입니다.
각 레이어는 데이터 전송 과정에서 고유한 역할을 담당하며, 네트워크의 다양한 측면을 관리합니다.
발송자와 수신자간에 캡슐화, 디캡슐화 과정을 거쳐, 상호간 통신을 보장할 수 있는 모델입니다.
마냥 하드웨어 입장에서 설명을 한 글이라 다소 오해의(?) 소지가 있지만,
아래의 내용과 썸네일을 이해하며 데이터를 쌓고, 분해 한다.
라는 내용으로 접근 하시면 아무래도 조금 더 이해하기 좋지 않을까 싶습니다.
그럼 설명을 시작해 보도록 하겠습니다.
레이어별 설명
물리 계층 (Physical Layer, Layer 1)
데이터를 비트 단위로 전송합니다. 물리적인 매체를 통해 신호를 전송하며, 전기적, 기계적, 절차적 특성을 정의합니다.
하드웨어 설계자의 관점에서 보면, 이 계층은 전송 매체(케이블, 무선 등)와 신호 처리 기술을 다룹니다.
전송 단위 | 비트 |
대표 장치 | 케이블, 안테나, 앰프, 허브, 리피터 |
프로토콜 | Ethernet, USB, Bluetooth, Wi-Fi |
데이터 링크 계층(Data Link Layer, Layer 2)
물리적 주소( EX)MAC 주소 )를 사용하여 인접 장치 간의 데이터 전송을 담당합니다.
하드웨어 입장으로 보면, 데이터 링크 계층은 물리 계층에서 전송된 데이터를 프레임 단위로 전송하고, 오류 검출 및 수정을 통해 안정성을 보장합니다.
전송 단위 | frame |
대표 장치 | L2 Switch, Modem, AP |
프로토콜 | MAC Address, DAC/ADC, |
네트워크 계층(Network Layer, Layer 3)
논리적 주소(IP 주소)를 사용하여 패킷을 목적지까지 전달합니다. 라우팅과 트래픽 관리가 포함됩니다.
하드웨어 입장으로 보면, 데이터 패킷의 경로를 설정하고, 효율적으로 전달하는 데 중점을 둡니다.
전송 단위 | Packet(패킷) |
대표 장치 | Router(라우터), L3 Switch |
프로토콜 | IP, NAT |
전송 계층(Transport Layer, Layer 4)
종단 간 데이터 전송을 보장합니다. 흐름 제어, 오류 검출 및 수정을 담당합니다. 또한, 데이터 분할 및 재조합을 담당합니다.
하드웨어 입장에서 데이터 전송의 신뢰성과 효율성을 보장하는 중요한 계층입니다. 이 계층에서는 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)를 통해 데이터 세그먼트를 관리하고, 종단 간 통신을 설정합니다.
전송 단위 | Segment(세그먼트) |
대표 장치 | L4 Switch |
프로토콜 | TCP, UDP |
세션 계층(Session Layer, Layer 5)
세션을 설정, 관리 및 종료합니다. 응용 프로그램 간의 대화 및 통신 세션을 관리하여 데이터의 동기화를 지원합니다.
하드웨어 입장에서 이 계층은 두 장치 간의 연결을 설정, 유지, 종료하는 작업이 이루어집니다.
대표 장치 | Server |
프로토콜 | RPC, NetBIOS, SMPP |
표현 계층(Presentation Layer, Layer 6)
데이터의 형식을 변환하여 응용 프로그램이 이해할 수 있도록 합니다. 데이터의 인코딩, 암호화, 압축 등을 수행합니다.
하드웨어 입장에서 직렬 버스와 병렬 버스를 통해 데이터가 하드웨어에 입력되고, 이를 적절한 형식으로 변환하여 저장하거나 처리하는 과정과 유사하다고 생각할 수 있습니다.
프로토콜 | ASCII, 유니코드, MIME, EBCDIC, UTF-8, MBCS. EUC-KR, JPG, MP3, MPEG |
응용 계층(Application Layer, Layer 7)
최종 사용자와 네트워크 간의 상호작용을 처리합니다. 네트워크 서비스와 응용 프로그램 기능을 제공합니다.
하드웨어 입장에서 응용 소프트웨어와 서비스를 이용하는 구조를 생각 할 수 있을것입니다.
전송 단위 | Message 또는 Data |
대표 장치 | L7 Switch, 방화벽 |
프로토콜 | FTP, HTTP, HTTPS, XML, Telnet, SSH, SMTP, POP3, IMAP |
결론
어떠신가요? 처음은 저게 뭔 소리야..? 싶기도 하고 글을 작성하는 동안 운영체제의 드라이버 또한 표현계층에서 사용하겠거니. 싶었지만, 글을 작성 하면서 응용계층에서 동작 수도 있겠구나 싶기도 하네요.
드라이버가 하드웨어와 소프트웨어 사이의 OS에서 서로 연결 시켜 주는 것이 드라이버이니, 응용 계층에서 동작하겠구나 싶기도 합니다.
국제 표준화 기구(ISO) 에서 네트워크 기술과 장치간 상호 운용성을 보장하기 위해서 만들어진 표준이다 보니, 참 드럽게 어려운거 같습니다… ㅎㅎ
잘못된 부분이 있다면 얼마든지 알려주세요.