Dolphins의 HelloWorld

OSI 7 Layer(전체적인 개념) 본문

전공지식 정리/컴퓨터 네트워크

OSI 7 Layer(전체적인 개념)

돌핀's 2019. 7. 8. 15:42

OSI 7 Layer


OSI 7 Layer란 국제 표준기구인 ISO에서 통신이 일어나는 과정을 7단계로 나눈것이다. 이는 통신을 7개의


단계별로 표준화하여 효율성을 높이기 위해 사용되었다.



OSI 7 Layer는 다음과 같이 구성된다. 그렇다면 왜 네트워크를 이런식으로 나누었을까?


먼저 이를 통해 데이터의 흐름을 한눈에 볼 수 있다는 장점이 있다. 우리가 사용하는 어플리케이션 계층부터 물리


계층까지를 나누어 놓으니 보기 쉬운것이다.


둘째로 문제를 해결하기가 쉽다는 것이다. 네트워크에서 문제가 발생했을 시에 이를 7가지로 나누어놓고 접근해서


각 계층에 맞게 문제를 해결할 수 있으니 편리하다.


마지막으로 계층을 7개로 나누고 층별로 표준화를 하여 여러 회사 장비를 써도 네트워크를 이상없이 돌릴 수 있다.


즉 랜카드는 인텔 것을 쓰고 라우터는 시스코것을 써도 네트워크를 쓰는데 이상이 없다.



OSI 7계층 모델의 데이터 전송

OSI 7계층 모델의 데이터 전송은 다음과 같이 이루어지는데, 송신측에서 각 계층에 맞는 프로토콜을 붙여 보내면


수신측에서는 자신의 계층에 해당하는 Protocol을 가져가는 식이다.




1계층 - 물리계층(Physical Layer)


이 계층에서는 주로 전기적,기계적,기능적 특성을 이용하여 통신 케이블로 데이터를 전송한다.


이 계층에서 사용되는 통신 단위는 비트이며 이는 1과 0으로 나타내어지는, 즉 전기적으로 On,Off 상태라고


생각하면된다. 이 계층에서는 상위 계층에서 전송된 데이터를 물리매체를 통해 다른 시스템에 전기적 신호로


전송하는 역할을 수행하며 이 데이터가 무엇인지, 어떤 에러가 있는지, 어떻게 보내는 것이 더 효과적인지 하는 


것은 전혀 관여하지 않는다. 케이블, 리피터, 허브 등이 이 계층에 속하는 대표적인 장비이다.



2계층 - 데이터 링크 계층(Data-Link Layer)


물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행하도록 돕는다.


고로 통신에서의 오류도 검출하고 재전송도 할 수 있도록 한다.


시스템 간에 오류 없이 데이터를 전송하기위해 네트워크 계층에서 받은 데이터 단위(패킷)을 프레임으로 구성하여


물리 계층으로 전송한다. 해당 계층에서는 맥 어드레스를 가지고 통신하게 되며 이 계층에 속하는 대표적인 


장비에는 브리지, 스위치가 있다.




3계층 - 네트워크 계층(Network Layer)


다중 네트워크 링크에서 패킷을 발신지로부터 목적지로 전달하는 책임을 갖는다.


경로를 선택하기 위해 라우팅 기능을 수행하며, 전달시 생기는 혼잡을 제어하는 혼잡제어 기능을 수행한다.


인터 네트워킹 기능을 통해 개개의 네트워크가 서로 접속될 수 있도록 한다.


대표적인 프로토콜로는 IP프로토콜이 있다.



4계층 - 전송 계층(Transport Layer)


전체 메세지에 대한 종단 대 종단간 제어와 에러를 관리하는 계층이다.


패킷들의 전송이 유효한지 확인하고 실패한 패킷은 다시 보내는 등 신뢰성 있는 통신을 보장한다.


해당계층의 데이터 단위는 세그먼트라고 하며 대표적인 프로토콜로는 TCP가 있다.


전송계층의 주요 기능으로는 흐름제어, 오류제어, 분할과 병합, 서비스 프리미티브가 있다.



5계층 - 세션 계층(Session Layer)


통신 세션을 구성하는 계층으로, 포트 연결이라고도 한다.


세션계층 에서는 응용 프로그램 계층 간의 통신을 제어하는 구조를 제공하기 위해 응용 프로그램 계층


사이의 접속을 설정.유지.종료시켜주는 역할을 한다. 세션계층은 사용자와 전송 계층간의 인터페이스 역할도


하며 사용자가 서버에 접속할 때 이를 관리하는 역할도 수행하며


통신장치 간의 상호작용을 설정하고 유지하며 동기화하는 역할을 수행한다.


대표적인 프로토콜은 SSH,TLS가 있다.



세션 계층 기능


위에서 말했듯이 세션 계층에서는 동기 기능이 수행되며 이는 통신 양단에서 서로 동의하는 논리적인 동기점을


지정하기 위해 사용된다. 이는 오류 복구를 위해 필수적으로 요구되며 동기점 설정 이전까지는 서로 처리가


완료되었음을 합의했다는 의미이기도 하다. 대화 단계에서 시간 경과에 따라 순차적으로 동기점을 부여해서


신뢰성 보장 기능을 단계적으로 구현할 수 있다.



토큰


세션계층은 두 응용프로세스의 대화를 관리하기 위해 토큰이라는 특수 메세지를 사용한다. 토큰 보유는 토큰에 


부여된 특정한 권리를 배타적으로 소유한다는 의미를 가지며 토큰의 종류로는 데이터를 전송할 수 있는 권리를


제공하는 데이터 토큰, 통신 양단 간의 연결 해체 과정을 제어하기 위해 사용하는 해체 토큰, 세션 연결을 사용하는


과정에서 동기 처리가 필요한 지점에 사용하는 동기토큰이 있다.



큰 파일 전체를 하나의 단위로 전송하는 것 보다 논리적으로 작은 단위로 나누어 전송하는 것이 오류 발생시 


유리하다. 고로 세션 계층에서는 큰 파일을 작은 파일로 구분하기 위해 큰 파일을 전송하는 과정의 중간 중간에


동기점을 부여한다. 동기점이 부여되었다는 것은 해당 내용까지 전송이 완료되었다는 의미이며 고로 전송 과정에


오류가 발생해도 동기점 이후의 과정만 복구하면 된다는 의미이다. 주동기 토큰은 특정 대화 단위를 구분하며


부동기 토큰은 대화 단위를 세분화시켜서 구분한다.




6계층 - 표현 계층(Presentation Layer)


운영체계의 한 부분으로 입력 또는 출력되는 데이터를 하나의 표현 형태로 변환한다.


송신측에서는 수신 측에 맞는 형태로 변환(ASCII코드 -> EBCDIC)하고, 수신측에서는 응용 계층에 맞는


형태로 변환한다. 또한 그래픽 정보는 JPEG 형태로, 동영상은 MPEG 형태로 변환하여 송수신하는 기능과


데이터압축 및 암호화 기능등을 제공한다.



7계층 - 응용 계층(Application Layer)


사용자가 네트워크에 접근할 수 있도록 해주는 계층이다. 응용 프로그램에서 사용할 수 있도록


운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있도록 만든 인터페이스인 API를


제공한다 또한 사용자가 어플리케이션을 관리할 수 있도록 Application Management 기능도


수행한다. 텔넷이나 HTTP, SSH, SMTP, FTP가 이에 해당한다.



Comments