본문 바로가기

Network

OSI 7Layer

전 네트워크 공부하면서 처음공부한게 OSI 입니다 ㅎㅎ 처음보면 굉장히 어렵지만  흐름만 파악하면 전반적인 내용은 이해될꺼에요


ISO(국제 표준화 기구)에서 이기종(서로 다른컴퓨터들)이 원활하게 통신할 수 있게 통신에대한 표준 을만들었는데  그게 OSI입니다.

   

OSI ==>Open System Interconnection (열린 시스템 상호연결) 의 약자입니다. 그래서 열린 시스템 상호연결이 뭐냐~ 하면

'이기종간의 통신을 가능하게해주는 것' 입니다. 

예를들어 삼성에서 스마트폰을 만들고 LG에서 노트북을 만들었는데 두 기기가 카카오톡 메세지를 주고받을 수 있는 이유는 뭘까요?

그건 바로 엘지와 삼성이 통신하는부분을 개발할때 어떻게 통신할지 약속을하고 그약속대로 개발하엿기 때문입니다.

그약속들을 정해준곳이 ISO이고 그 과정을 보기쉽게 계층별로 정리해 놓은것이 OSI 7 Layer입니다. 

그 '약속'이 바로 프로토콜(protocol) 이고 OSI 7Layer에는 많은 프로토콜들이 있습니다. 


즉,  "통신할때 필요한 약속(protocol) 들을 통신이 이루워지는 절차에따라 계층별로 정리해 둔 모델" 입니다.


-OSI 7Layer는 참조모델로서 통신하는 프로그램을 만드는 개발자들이 참고하여 만들 수 있습니다.(삼성의 스마트폰과 엘지의 노트북 개발자가 다른데 통신이 가능한 이유)

-통신의 과정을 계층적으로 볼수 있기 때문에 네트워크를 공부할때 쉽게 이해할 수 있습니다.

-네트워크 장애시 어떤계층에서 이상이 있는지 확인하여 Trouble Shooting(장애 복구)를 쉽게 할 수 있게 해줍니다.


OSI는 7개의 계층으로 나뉘는데상위층부터 아래와같습니다.

응용 - 표현 - 세션 - 전송 - 네트워크 - 데이터링크 - 물리

간단하게설명하면 

 응용

 사용자와의 접촉점으로 사용자가 데이터를 생성하여 보내고 수신응용층에서 수신된데이터를 확인하는 계층입니다.

 표현 

 어플리케이션 데이터를 어떠한 형식(데이터 포멧이나 언어, 암호화방식) 으로보내질지 결정하는 계층입니다.

 세션

 세션을 설정 및 해제 하는 기능을 담당하는 계층입니다.

 전송

 종단 어플리케이션 프로그램으로의 도착까지의 제어를 담당합니다.

 네트워크

 상대방 컴퓨터까지 도달하는데 많은 기기를 거치게 되는데, 내컴퓨터를 출발한 데이터가 상대방 컴퓨터까지 도착할 수 있게 어떤 컴퓨터를 거칠지 경로를 제어해줍니다.

 데이터링크

 인접노느까지의 전송을 제어해 줍니다.

 물리

  매체를 정하거나 비트들의 표현방식(전압, 빛의 깜박임, 주파수)를 정해줍니다.



 

http://best1articles.blogspot.


그림에 왼쪽의 Transmit Data 에서 시작하여서 Receive Data로 끝나는 과정으로 내 응용에서 출발한 데이터가 상대방 응용에 도착하는 순서 입니다.

사용자가 보낸데이터가 점점 커지는 것을 볼 수 있는데, 각 층에서 제어를 하기위에 붙이는 '헤더' 라는 것때문입니다. 이 헤더는 데이터를 전송할때 각층마다 하나씩 붙고 상대쪽 순서에서 한번씩 떼어네며 해석합니다.

전송측에서 헤더를 붙이는 과정을 Encapsulation 이라하고,  

수신측에서 헤더를 떼어내는 과정을 De-encapsulation 이라 합니다.


각층마다헤더를 포함한 데이터는 각각 다른단위로 불리는데 그 단위를 PDU(Protocol Data Unit)라고 합니다

응용,표현,세션층 PDU는   데이터(data)

전송층 PDU는                세그먼트(Segment)

네트워크층 PDU는          패킷(Packet)

데이터링크층 PDU는       프레임(Frame)

물리층 PDU는                비트(Bit)

입니다.



카카오톡 메세지전송을 예로 들면

1. 카카오톡 메세지를입력하고 전송버튼을누릅니다.   (Application)             

    PDU = 데이터


2.  카카오톡 프로그램이 메세지 압축, 암호화등을 수행합니다.  (Presentation)  

   PDU = 데이터+암호화정보,압축정보(표현층 헤더)


3. 수신 카카오톡 프로그램과 어떻게 세션을 설정할지 정합니다.  (Session)  

   PDU = 표현층데이터 + 세션정보(세션층 헤더)


4. 수신 기기에 도착했을때 카카오톡 프로그램에 보낼것이라 지정하고, 그과정까지의 제어정보를 추가합니다. (Translation)  

    PDU = 세션층데이터 + 카카오톡포트번호, 제어정보 (전송층 헤더)


5. 수신기기 IP 주소를 정하고, 그과정까지의 제어정보를 추가합니다.  (Network)     

    PDU =  전송충데이터 + IP주소, 제어정보(네트워크층헤더) 


6. 수신기기까지  노드중 인접노드의 MAC(물리주소) 를 정하고, 그과정까지의 제어정보를 추가합니다.  (Datalink)    

    PDU = 네트워크층데이터 + MAC,제어정보(데이터링크층 헤더)


7. 전송시 물리적인 특성을 정합니다.  (Physical)                    

   PDU =  데이터링크층데이터 + 물리층헤더


8. 수신기기에 도착한 물리층 데이터 에서 헤더를 제거해 데이터링크층으로 올려줍니다. 

bit - 물리층헤더


9. 인접노드에서 올바르게왔는지 헤더를 확인하여 검사히고(데이터링크층 헤더제거) 네트워크층으로 올려줍니다.  

      Frame - 데이터링크층헤더


10. IP와 단편화정보를 확인하고(네트워크층 헤더 제거) 전송층으로 올려줍니다.

Packet - 네트워크층헤더


11. 전송제어정보와 포트번호를 확인하고 카카오톡 프로그램으로 보내줍니다.(전송층 헤더제거)

Segment - 전송층헤더


12. 세션제어정보를 확인하고 (헤더제거) 표현층으로 올려줍니다.

13. 압축을 풀거나 복호화를하여(표현층 헤더 제거) 응용층으로 올려줍니다.

14. 도착한 메세지를 카카오톡 프로그램에서 사용자가 확인합니다.


'Network' 카테고리의 다른 글

Internetworking의 초기솔루션 X.25  (0) 2016.03.09
표준화 기구들  (0) 2016.03.09