네트워크 관련한 수업을 수강 중 OSI 7계층이라는 개념이 등장하길래, 정리해두면 좋겠다는 생각이 들었습니다. 강의 내용을 최대한 기억나는대로 작성하였기에 사실과 다른 내용이나 부족한 설명이 있을 수 있습니다. 그럼 시작하겠습니다.
OSI 모형이란 국제표준화기구인 ISO에서 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명하기 위해 개발한 모델입니다. 프로토콜은 연결을 위한 일종의 규칙입니다. 쉽게 말하면 둘 이상의 디바이스에서 서로 연결하기 위해 일어나는 일들을 과정에 따라 구분한 단계라고 생각하면 이해하기 쉬울 것 같습니다.
물리 계층 - Physical layer
물리 계층(Physical layer)은 OSI 모형의 가장 밑에 위치한 1단계입니다. 이름처럼 물리적인 현상이 일어나며, 하드웨어와도 밀접한 관련이 있는 계층입니다. 상위 계층으로부터 전달받은 데이터를 하드웨어에서 하드웨어로, 다른 장비에 전기적 신호를 전송하는 역할을 담당합니다. 물론 전달받는 하드웨어도 물리계층을 통해 전기적 신호를 처리하고 상위 계층에 비트(bit)의 형태로 전송합니다.
다양한 하드웨어가 이 물리계층을 통해 전기적 신호를 처리하고, 송수신 하는등 여러 종류의 하드웨어 기술이 접목되어있기 때문에 OSI 모델에서 가장 복잡한 계층이기도 합니다.
네트워크 어댑터, 리피터, 네트워크 허브, 모뎀 등이 물리 계층을 담당하는 하드웨어 장비의 대표적인 예시입니다.
데이터 링크 계층 - Data link layer
데이터 링크 계층(data link layer)은 물리 계층의 상위 단계로서, 비트의 형태로 전송한 데이터를 받는 계층입니다. 이 계층에서는 네트워크 위의 개체들 간 데이터를 전달하고, 물리 계층에서 발생할 수 있는 오류를 찾아 수정하는 역할을 담당합니다. 이를 오류 수정이라고 하는데, 데이터를 전달 받다가 연결이 불안정하거나 끊어지는 등 데이터에 직접적으로 영향을 줄 수 있는 오류를 감지하고, 만약 발견된다면 해당 데이터를 폐기시킵니다.
간단히 말해서 두 포인트 간의 신뢰성있는 전송을 보장하기 위한 계층이라고 보시면 될 것 같습니다.
네트워크 계층 - Network layer
네트워크 계층(Network layer)은 라우팅(routing)을 포함한 패킷 포워딩을 담당하는 계층입니다. 라우팅이란 어떤 네트워크 안에서 데이터를 전송할때 경로를 선택하는 과정을 의미하는데 간단히 이 데이터가 어떤 길로 이동할지 정해준다고 보시면 됩니다.
여담으로 TCP/IP protocol suite 라는 것이 있습니다. OSI 모델 이전에 나온 프로토콜 계층인데 OSI 모델과 상당히 비슷하게 생겼습니다. 완전히 같지는 않고 계층 수에 차이가 있는데 TCP/IP protocol suite은 5계층, OSI 모델은 7계층이고 이후에 설명할 세션(session), 표현(presentation), 응용(application) 계층을 통합해서 응용(application) 계층으로 표현합니다.
처음 TCP/IP protocol suite이 통신규약을 설명하는 방법으로 굳어지고, OSI 모델이 이후에 등장했을때 사람들은 OSI 모델이 이전의 TCP/IP protocol suite를 완전히 대체할거라고 기대했습니다. 그러나 둘이 설명하는 부분은 미묘하지만 달랐고 서로가 서로를 완벽히 대체하는 일은 일어나지 않았습니다. OSI 모델은 TCP/IP protocol suite가 있어야 비로소 완전하다는 것이 정론입니다.
전송 계층 - Transport layer
전송 계층(Transport layer)은 실 사용자(end-to-end)가 신뢰성있는 데이터를 주고 받을 수 있도록 해주는 계층입니다. 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어, 다중화 등의 서비스를 제공합니다. 정말 극단적으로, 전송계층=TCP라고 생각해도 될 것 같습니다. 물론 이건 위험한 생각이지만 처음 배울때 개념을 이해할 때는 우선 이렇게 알아두고 자세한 내용을 공부해가는게 좋다는 생각입니다.
TCP가 대표적인 전송 프로토콜이긴 하지만, UDP라는 이름도 한 번쯤은 들어 보셨을 것이라 생각합니다.
어릴때 학교 컴퓨터실에서 UDP를 통해 스타크래프트를 함께 즐기던 학생들이 꽤 있던 것으로 기억합니다. 그 짧은 시간동안 설치에 게임까지 어떻게들 했는지는 둘째치고, 연결 선택(Select Connection)창에 있는 UDP가 바로 전송 프로토콜입니다.
기본적으로 엔드 유저간의 연결을 위한 프로토콜임은 TCP와 UDP 모두 같지만, UDP는 TCP에서 기능들이 많이 빠진 전송 프로토콜입니다. 대신 그런만큼 속도는 빠르죠. UDP를 통한 접속에서 게임 속도가 빨랐던건 우연이 아니었던겁니다.
세션 계층 - Session layer
세션 계층(Session layer)은 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공하는 계층입니다. Internet Explorer를 사용하셨던 분들 중 상단 파일(F) 탭 메뉴에 새 세션(I)이라는 항목을 보신 분들이 계실지 모르겠습니다.
여기서 말하는 세션이 바로 세션 계층이 관리하는 부분입니다. 연결의 한 단위로 생각하셔도 좋습니다. 세션 계층에서는 각 프로그램(응용 프로세스)이 맺는 연결에 관한 것들을 관할합니다. 연결을 시작하기도, 유지하기도 하고 종료하는 그 순간까지 세션 계층에서 관여하고 있다고 보시면 되겠습니다.
표현 계층 - Presentation layer
표현 계층(Presentation layer)은 데이터의 표현 차이에 대한 문제를 해결하는 역할을 하는 계층입니다. 인코딩, 암-복호화 등의 일들을 이 계층에서 수행합니다. UTF-8 과 ASCII, EUC-KR 등 여러가지 인코딩 형식에 대해 들어보신 분들이라면 빠르게 이해하실 수 있다고 생각합니다. 당연히, 텍스트 뿐 아니라 이미지, 비디오 등 모든 데이터의 형태에 관여합니다.
특이하게도 텔넷(telnet)이 여기 표현 계층의 프로토콜에 속한다고 합니다. 어렸을때 cmd 창에서 telnet 명령어를 이용해 옆자리 친구에게 메시지를 보내면서 놀았었는데 신기하네요.
응용 계층 - Application layer
응용 계층(application layer)은 사용자 인터페이스입니다. 사람이 인식하고 다른 계층들과 상호작용 할 수 있도록 사용자에게 보여주는 역할을 합니다. 우리가 흔히 사용하는 응용 프로그램 그 자체라고 생각하셔도 됩니다. 다만 여기에서 말하는 응용 프로그램은 GUI에만 국한되진 않습니다. FTP 같은 파일 전송 프로토콜을 사용하는 것도 응용 계층이라고 말합니다.
간단하게 OSI 7계층에 대한 기본적인 의미와 예시 몇 가지를 들어보았습니다. 학교에서 배운건 사실 OSI 7계층보다는 TCP/IP 5계층 쪽에 더 중점을 두고 있던 내용이라 생각보다 디테일 한 부분은 글로 옮기지 못한 것 같네요.
프론트 개발자를 지망하는 입장에서 네트워크 지식도 정말 중요하니만큼 앞으로는 이런 쪽 포스팅도 많이 올라올 것 같습니다. 읽어주셔서 감사합니다.
'이론 > 네트워크' 카테고리의 다른 글
블록 암호 모드 (Block cipher mode of operation) (0) | 2023.04.06 |
---|---|
DES 알아보기 (Data Encryption Standard) (0) | 2023.03.18 |
TCP/IP 프로토콜 스위트 계층 구조 (TCP/IP Protocol Suite Layers) (0) | 2021.02.13 |
네트워크의 종류 (Network Types: LAN, WAN, Switching) (0) | 2021.01.24 |
네트워크의 물리적 구조 정리 (Physical Structures, topology) (0) | 2020.12.24 |
댓글