위키백과를 찾아 보니 OSI7 계층은
OSI 모형(Open Systems Interconnection Reference Model)은 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다. 일반적으로 OSI 7 계층이라고 한다.
이라고 명시되어 있습니다.
즉 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말합니다.
그러면 왜? why? OSI 7계층을 나눈이유는 무엇일까요?
구글링을 해본 결과 OSI 7계층을 나눈 이유는 통신이 일어나는 과정이 단계별로 파악할 수 있기 때문입니다.
7계층을 나누어서 만약 7계층에서 하나가 오류가 발생하게 되면 다른 계층을 건들이지 않고 문제가 발생한 계층만 건들여서 고칠 수 있기 때문입니다.
예를 들어보면
철수는 어느날 리그오브 레전드를 하기 위해서 피시방을 갔다고 합니다.
그런데 중요한 승격전에서 연결이 끊겼습니다.
만약 피시방의 모든 PC가 전부 이런 문제가 있다면 라우터의 문제(3계층 네트워크 계층)거나 광랜을 제공하는 회사의 회선 문제가 (1계층 물리 계층)됩니다.
하지만 철수가 하고있는 리그오브레전드의 클라이언트가 문제가 있거나 (7계층 어플리케이션 계층)
스위치에 문제가 있다면(2계층 데이터링크 계층) 다른 계층에 있는 장비나 소프트웨어를 건들이지 않는 것입니다.
자 이제 OSI 7층 단계를 그림과 같이 계층 하나 하나 보겠습니다.
물리계층은 주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송하게 됩니다.
이 계층에서 사용되는 통신 단위는 비트이고 단지 데이터를 전달만 할뿐 전송하려는 데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경을 안쓴다고 합니다.
즉 이계층은 데이터 전기적인 신호로 변환해서 주고받는 기능만 한다고 합니다.
ex) 통신 케이블, 리피터, 허브
1계층은 데이터가 무었인지, 어떤 에러인지 신경쓰지 않는다고 했죠? 그 부분을 신경 쓰는 계층이 바로 2계층 데이터링크계층 입니다.
이 계층은 1계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할을 합니다.
즉 통신에서의 오류를 찾아주고 재전송 하는 기능을 가지고 있는것 이죠.
이 계층에서는 맥 주소를 가지고 통신하게 됩니다.
그리고 전송되는 단위는 프레임(MAC 주소를 부여한다)이라고 하고 대표적인 장비로는 브리지, 스위치등이 있습니다.
이 계층은 쉽게 설명하면 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능을 합니다. (라우팅 기능)
여기에서 사용되는 프로토콜의 종류도 다양하고 라우팅하는 기술도 다양합니다.
즉 경로를 선택하고 주소를 정하고 경로에 따라 패킷을 전달해주는 것이 이 계층의 역할입니다.
대표적인 장비로는 라우터 이며 요즘은 2계층 대표적인 장비중 스위치라고 있는데 그 스위치에 라우팅 기능을 장착한 스위치도 있다고 합니다!
음... 이계층은 네비게이션 역할을 하는 계층이라고 생각하시면 될거같습니다.
그리고 네트워크 계층은 라우팅 말고도 흐름 제어, 세그멘테이션(segmentation/desegmentation), 오류 제어, 인터네트워킹(Internetworking) 등을 수행합니다.
마지막으로 네트워크 계층은 논리적인 주소 구조(IP), 곧 네트워크 관리자가 직접 주소를 할당하는 구조를 가지며, 계층적(hierarchical)이라고 합니다
-- 주요역할 IP주소 부여, 경로설정(Routing). 신뢰성 없음
이 계층은 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 해 주어, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각 하지 않도록 해줍니다. (내가 다 옳바른지 다 검사해줄께!)
시퀀스 넘버 기반의 오류 제어 방식을 사용한다고 하는데... 이거에대해서는 따로 조사를 해봐야될거 같습니다.
즉 전송 계층은 특정 연결의 유효성을 제어하고, 일부 프로토콜은 상태 개념이 있고(stateful), 연결 기반(connection oriented)입니다. 이는 전송 계층이 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들을 다시 전송한다는 것을 뜻합니다. 가장 잘 알려진 전송 계층의 예는 TCP입니다.
-- 주요역할 종단간 신뢰성 있고 효율적인 데이터를 전송하며, 기능은 오류검출 및 복구와 흐름제어, 중복검사 등을 수행
데이터가 통신하기 위한 논리적인 연결을 하는 계층입니다. 음.. 통신을 하기위한 대문이라고 생각 하시면 될거 같습니다. 하지만 4계층에서도 연결을 시키고 종료할 수 있기 때문에 어느 계층에서 끊어 졌나 판단하기에는 한계가 있다고 합니다. 그래서 세션 계층은 응용 프로그램 관점에서 봐야된다고 합니다.
동시 송수신 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(Full Duplex)의 통신과 함께, 체크 포인팅과 유휴, 종료, 다시 시작 과정 등을 수행합니다.
이 계층은 TCP/IP 세션을 만들고 없애는 책임을 집니다.
-- 주요역할 통신하는 사용자들을 동기화하고 오류복구 명령들을 다룹니다. 통신을 하기 위한 세션을 확립/유지/중단을 담당합니다.(운영체제가 해준다고 합니다.)
이 계층은 데이터 표현이 상이한 응용 프로세스의 독립성을 제공하고, 암호화합니다.
코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어 줍니다. MIME인코딩이나 암호화 등의 동작이 이 계층에서 이루어집니다.
ex) EBCDIC로 인코딩된 문서 파일을 ASCII로 인코딩된 파일로 바꿔 주는 것.
즉 해당 데이터가 TEXT파일인지 그림인지 GIF인지 구분하는부분이 이 계층의 역할입니다.
-- 주요역할 사용자의 명령어를 완성및 결과 표현. 포장/압축/암호화
최종 목적지로서 HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜이 있습니다.
통신 패킷들은 위의 프로토콜에 의해 모두 처리되며 우리가 흔히 사용하는 Chrom이나 메일 프로그램은 프로토콜을 보다 쉽게 사용하게 해주는 응용 프로그램입니다.
-- 주요역할 네트워크 소프트웨어 UI부분, 사용자의 입출력(I/O) 부분
좋은 정보 감사합니다!