티스토리 뷰

공부자료

[네트워크] OSI 모형(OSI 7 Layer) 개요

임다솜 임다솜 2016.11.09 10:39

예전에 3학년 때였나, 데이터통신, 네트워크? 무슨 과목하구 네트워크 프로그래밍 수업까지 들었었는데요. 데이터통신 수업 때 컴퓨터가 어떻게 아날로그 전류를 0과 1이라는 이진 숫자로 처리하고, 그 데이터에 헤더를 붙여서 다른 컴퓨터로 전송하는 방법에 대해서 이해하게 되고 너무나 신기하고 깊은 깨닳음을 얻은 기억이 있네요.


수업도 재미있었고 RTSP 스트리밍 쪽 개발을 하면서 데이터와 헤더가 프로토콜에 맞추어 패키타이징 되는 과정들을 직접 보며 매우 흥미로웠습니다. 프로토콜 쪽 분야에서 일을 해도 재미있을 것 같다는 생각을 하게 됩니다.


네트워크 방식에 대해 이해하는 것은 매우 중요하다고 생각을 해요. 전 네트워크방식에 대해 이해하며 (특히 Physical Layer 쪽) 컴퓨터란 이런거구나하며 이해가 안되던 부분들이 연쇄적으로 퍼즐처럼 이해되더라구요. 때로는 프로그래밍 언어나 추상적 단계만 공부하는 것도 효율적일 수 있겠지만, 컴퓨터와 네트워크 방식에 대해서도 거시적 관점에서 흐름을 이해하고 있다면 어떤 분야를 공부해도 풍부하게 이해할 수 있다고 생각을 합니다. 나무와 숲을 모두 아우르는 지식을 가지기 위해 노력해야겠죠.


OSI Model ? OSI 7 Layer ?

OSI 모형(Open Systems Interconnection Reference Model)은 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다. 일반적으로 OSI 7 계층 모형이라고 한다.

-위키백과


OSI는 모델이다.

어떤 모델이냐? 계층으로 나누어 설명한 모델이다.

무엇을 계층으로 나누었나? 컴퓨터 네트워크 프로토콜 디자인과 통신을.



OSI 7 Layer 구성




목적

이 모델은 프로토콜을 기능별로 나눈 것이다. 각 계층은 하위 계층의 기능만을 이용하고, 상위 계층에게 기능을 제공한다. '프로토콜 스택'혹은 '스택'은 이러한 계층들로 구성되는 프로토콜 시스템이 구현된 시스템을 가리키는데, 프로토콜 스택은 하드웨어나 소프트웨어 혹은 둘의 혼합으로 구현될 수 있다. 일반적으로 하위 계층들은 하드웨어로, 상위 계층들은 소프트웨어로 구현된다.

-위키백과




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

컴퓨터와 연결된 케이블을 통해 데이터를 송수신할 수 있도록 도와주는 계층입니다. 단순하게 보자면 디지털 신호를 아날로그 신호로, 아날로그신호를 디지털 신호로 바꾸는 역할을 하죠. 비트스트림을 전류신호로 만들어 케이블로 전송하거나, 케이블로 들어온 전류신호를 비트스트림으로 만들어 상위 계층으로 넘겨주는 부분을 구현합니다. 


다시 설명하면

보내는 컴퓨터에서 1100100이라는 비트스트림을 Physical Layer에서 아날로그 전류 신호로 바꿔 케이블로 전송합니다. 받는 컴퓨터에서 연결된 케이블을 통해 전류 신호가 들어오면 Physical Layer에서 전류신호를 1100100이라는 비트스트림으로 변경해 상위 계층으로 넘겨줍니다.


물리계층이 규정하는 것

어떤 신호로 통신을 할 것인가? 


Protocol Data Unit

Bits


물리 계층의 데이터 처리 과정 눈으로 보기



Encoding(부호화) & Modulation(변조)

  • Encoding(부호화)-Decoding(복호화)

  • (아날로그or디지털 신호를) 디지털 신호로 변환

  • 디지털 데이터 > 디지털 신호로 바꾸는 방법 : NRZ, RZ, Biphase, ...

  • 아날로그 데이터 > 디지털 신호로 바꾸는 방법 : PCM, Coder, ...


  • Modulation(변조)-Demodulation(복조)

  • (아날로그or디지털 신호를) 아날로그 신호로 변환

  • 디지털 데이터 > 아날로그 신호 : ASK, FSK, PSK, ...

  • 아날로그 데이터 > 아날로그 신호 : AM, FM, PM, ...





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

데이터 링크 계층은 기기 사이에 정보를 어떻게 전달할 것인지에 대해 규정하는 계층입니다. Bit를 Frame화하여 다음 계층에서 사용 가능하도록 만들어주고, 장치에 올바르게 송수신되도록 주소를 할당하고, 데이터의 에러를 검출하고, 흐름을 제어하는 등의 역할을 합니다.


핵심 기능 / 출발지-목적지정보 붙이기, 오류검사, 흐름제어


다르게 정의하면

잡음이 없는 인접한 노드 간의 물리적인 회선을 상위 망계층(3 Layer)가 사용할 수 있도록 전송 에러가 없는 통신 채널로 변환시키는 계층이라고 합니다.


데이터 링크 계층이 규정하는 것

정보를 어떻게 전달할 것인가?


Protocol Data Unit

Frame


데이터 링크 계층의 역할

1. 프레임화

데이터를 헤더와 트레일러를 추가하여 프레임으로 만든다. 이는 전송할 데이터를 전송단위로서의 패킷으로 나누어 그룹화 하는 것이다.

2. 링크 액세스

인접한 링크간 링크의 설정, 유지, 단락 및 데이터 전송 등을 제어하는 것이다.

3. 신뢰적인 전달

무선 링크와 같이 오류율이 높은 링크에서 자주 사용되며 링크상에서 발생한 오류에 대해 제어한다.

4. 흐름 제어
    수신 노드의 프레임 버퍼링 능력을 고려하여 송신양을 제어한다.

5. 오류 검출

비트 오류는 신호의 약화나 전자기적 잡음으로 인해 발생한다. 이런 오류를 체크하기 위해 오류-검출비트를 설정하게 하고 수신측에서 오류 검사를 하여 오류 검출을 가능하게 한다. 여기서 나오는 것이 패리티 비트 & 패리티 검사.

6. 오류 정정

오류가 발생했을 때 프레임 재전송 요청을 하는 방법과 프레임을 다시 전송하지 않아도 에러 비트를 정정할 수 있는 방법이 있다.

7. 반이중과 전이중

반이중 전송에서는 한 노드가 송수신을 동시에 할 수 없다.



데이터 링크 계층의 처리 과정 눈으로 보기


여기서 중요한 것 첫번째는 Data Link Layer는 출발지와 목적지를 관리한다는 것입니다. 이 과정에서 데이터에 에러를 확인하고 복구를 하는 기능도 수행하게 됩니다. (경로를 관리하는 것은 Network Layer이죠!)



이미지 출처 : http://noobiesgeek.blogspot.kr/2015/09/data-link-layer.html




그렇다면 어떻게 출발지에서 목적지로 데이터를 전송하고, 오류를 체크하는 등의 일을 수행할 수 있을까요? 다음과 같이 데이터에 헤더를 붙여 하나의 Frame으로 만드는 작업을 통해 다양한 작업을 수행합니다.



이미지 출처 : http://netwrk-internet.blogspot.kr/2011/06/data-link-layer-diagram.html




또 궁금한 것이 그러면 Frame에는 어떤 내용이 있을까? 다음 이미지를 보면 이해가 됩니다! Preamble이라는 Syncronization을 돕는 필드, Destination-Source의 MAC주소, 전달하고자 하는 Data, 오류를 체크하는 Frame Check Sequence 필드 등이 있습니다. 이 데이터에 또 살을 붙여 목적지로 전송하게 됩니다.



이미지출처 : https://omakku.wordpress.com/2014/01/28/osi-layer4-data-link-layer-wait-data-li-what/






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

핵심기능 / 경로 설정, 받아서 전달,  



댓글
댓글쓰기 폼
공지사항
Total
37,943
Today
34
Yesterday
56
링크
TAG
more
«   2018/05   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
글 보관함