OSI 모형(Open Systems Interconnection Reference Model)은 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다. 일반적으로 OSI 7 계층 모형이라고 한다. 1위키백과 에서 발췌
이 모델 자체가 특별한 역할을 하거나, 목적은 아니고 네트워크 설계를 하게 되면 이 모델을 따라 설계를 하자 하는 표준. 약속이다. 많은 공학도들이 네트워크 과목에서 이걸 만나고 ‘WTF!’2What The Fuck(와떠뻑) 을 외친다는 사실은 많이 알려진 사실이다. 많은 책, 오픈백과, 블로그 등등에서 친절하게 설명하고있고, 이 포스트도 가능한한 친절하게 설명하고자 하지만 그들보다 쉬울 수 있을지는 잘 모르겠다.
1계층은 물리연결 계층이고 2계층은 데이터링크… 이런 내용은 따로 설명하지 않겠다. 이미 검색결과 상단의 링크에서 지겨울정도로 봤을테니까. 조금은 다른 방법으로 접근 해보자.
스위치는 L2 스위치 부터 존재한다.
여기서 ‘L’ 은 ‘Layer’를 의미한다.
즉, L2 스위치는 Layer-2 를 처리할 수 있는 스위치라는 뜻이다.
L3 는 Layer-3, L4는 Layer-4. 당연히 L5, L6, L7 스위치도 존재한다.
Layer 1
하.지.만. L1 스위치란 단어는 생소하다. 마치 없는 것 같다.
이유를 알기 위해서는 Layer-1 에서의 역할을 이해야 한다.
Layer-1은 ‘물리’계층임을 이미 알고 있을 것이다. 이름 그대로 물리적으로 연결이 되고, 신호가 전달 되는 것이 1 계층이다.
그림에서처럼 ‘뭔지 모르지만 신호를 보내는 장비’는 ‘뭔지 모르지만 신호를 받고 싶은 장비’ 에게 빨간색 신호를 보내지만 거리가 멀어서 닿지 않는다.
이 중간에 ‘들어오는신호를 증폭 시켜서 밖으로 내보내는 장비’를 설치한다. 멀어서 닿지 않던 신호는 ‘뭔지 모르지만 신호를 받고 싶은 장비’까지 전달된다.
이런 역할을 하는 녀석이 바로 ‘리피터(Repeater)’3신호의 증폭에 초점을 두면 리피터, 단순 연결에 초점을 두면 브릿지(Bridge)가 된다. 결국 그놈이 그놈이다. 신호라고 해서 이해가 안되면 1.5v짜리 건전지를 1Km밖에 있는 전구에 연결한다고 생각해보자. 1Km까지 1.5v를 유지하려면 중간중간 전압을 높여주는 장비들을 설치 해야 할 것이다.이다.
즉 Layer 1 에 해당하는 무언가를 만들 때는 ‘신호의 온전한 전달’ 만 신경 쓰면 된다는 이야기이다.
[가.] 는 리피터(혹은 브릿지)이다.
[나.] 는 출력을 세 개로 늘린 장비이다.
여기서 기억 해야 하는 건, 들어온 신호는 나머지 모든 출력으로 ‘동일하게’ 출력된다는 점이다.
이제 이것들을 수도관이라고 생각해보자.
[가]의 경우 왼쪽 구멍에 물을 부으면 오른쪽으로 나간다. 당연히 오른쪽에서 물을 부으면 왼쪽으로 물이 나간다.
[나]의 경우 왼쪽 구멍에서 물을 부으면 오른쪽 모든 구멍으로 물이 나갈 것이다. 그럼 오른쪽 위의 구멍에 물을 부으면? 역시나 나머지 구멍에서 물이 나올 것이다.
왼쪽 구멍에도 물을 붓고, 오른쪽에서도 물을 부으면? 어디로도 물이 나가지 못한다. (물을 붓지 않는 구멍으로 나가겠지만 그렇다고 치자…)
이게 바로 ‘허브’4(Hub:(특정 장소·활동의) 중심지, 중추, Herb 아니다.)이다.
1. 어딘가에서 신호가 들어오면 자기 자신을 제외한 모든 포트호로 신호를 증폭시켜 내보낸다.
2. 동시에 여러 포트에서 신호가 들어오면 처리하지 못한다.
※ 이것을 브로드캐스트(Broadcast)라고 한다. 신호를
Layer 2
1. Layer 1에서의 장비에 스위칭 기능을 추가한다.
즉, 누군가 신호를 쏘려고 하면 나머지 녀석들은 대기 하게 한다.
2. 각각의 장비에 주소를 부여한다.
즉, 모든 포트에 동일한 신호를 쏘는 것이 아니라 ‘선택적으로’ 신호를 전달한다.
여기에서의 주소는 우리가 흔히 말하는 MAC adress라고 하는 하드웨어의 물리적 주소를 의미한다.
이쯤에서 눈치를 챈 사람들도 있겠지만 허브에 ‘스위칭’ 기능을 추가함으로써 비로소 우리가 아는 ‘스위칭 허브’ 가 된 것이다.
Layer 3
신호가 정상적으로 전달되고, 장비들을 MAC 주소로 식별하여 신호를 전송한다.
L3에서는 TCP 라는 프로토콜을 이용해 신뢰할 수 있는 연결을 만든다
경로 설정을 통해 가장 빠르고 안정적인 경로를 찾아 연결을 수립한다.
(TCP나 신뢰할 수 있는 연결 등이 무엇인지는 따로 포스팅 하도록 하겠다)
Layer 4
신뢰할 수 있는 연결위에 암호화 기능을 추가한다.
애초에 L1은 무엇이고 L5는 무엇이니 하는 설명을 할 것은 아니었으니 이제 데이터가 어떻게 이동하는지 살펴보자. 누군가 한국에서 미국으로 편지를 보낸다고 가정해보자.
- 사용자가 편지를 쓰고 – 메시지 생성
누군가 볼 수 없게 자물쇠가 담긴 상자에 넣고 잠근다. – SSL 암호화 – Layer4 - 상자에 우표를 붙이고 주소를 적어서 배달부에게 전달한다. – Layer 3
- 우편배달부는 우편물센터로 편지상자를 이동한다. – Layer 2
- 우편물센터에서 비행기에 실어 보낸다. – Layer 1
~ - 미국 우편물 센터에 편지 상자가 도착한다. – Layer 1
- 우편배달부는 편지상자를 우편물 센터에서 꺼내온다. – Layer 2
- 우편배달부는 편지상자를 수신자에게 전달한다. – Layer 3
- 수신자는 열쇠로 편지상자를 연다. – Layer 4
편지에 빗대 설명하자면 위와 같다.
풀어 설명하자면 OSI 7 Layer 참조 모델은 ‘각 영역마다 해야 하는 일의 표준’을 정해 놓은 것이다.
만약 송신자가 편지를 보냈는데 수신자에 도착하지 않았을 경우 편지가 미국의 우편물 센터까지 갔다고 한다면, 내가 보낸 신호가 (L4-> L3-> L2-> L1-> L1) 수신측까지 물리적 연결은 문제가 없다는 이야기 일 것이다.
또 만약 내가 보낸 편지가 수신자에게 전달은 됐는데 편지의 내용을 수신자가 모른다면 자물쇠에 문제가 있거나, 수신자가 열쇠를 가지고 있지 않아서이기 때문일 것이다.
이제 결론.
거창할 것 없다. OSI 7 Layer 참조모델은 ‘네트워크를 통해 통신을 하거나, 하는 프로그램을 만들 때 참고해야 하는 하나의 참고모델‘ 일 뿐이다.
OSI 7 Layer 참조모델을 참고해 만들어진 프로그램과 장비를 이용한다면, 위 편지의 예처럼
– 각 레이어마다 고유한 일을 하므로 하위레이어의 프로그램을 만들지 않아도 되고,
– 만약 문제가 생겼을 경우 어느 Layer에서 문제가 생겼는지만 파악하기도 쉽다.
댓글을 달려면 로그인해야 합니다.