네트워크를 공부한다면 OSI 7계층에 대해 궁금한 분들이 있을 것입니다. 이 글은 OSI 7계층 정리를 통해 개념 및 구조 그리고 어떤 기능을 담고 있는지를 알기 쉽게 공유드리기 위해서 작성합니다. 글의 내용을 이해하면 OSI 7계층에 대한 모든 것을 알 수 있도록 구성했습니다.
목차
- OSI 7계층이란? 통신에 관한 서로간의 약속(프로토콜)
- OSI 7계층 구조 – 응용 / 표현 / 세션 / 전송 / 네트워크 / 데이터 링크 / 물리
- 각 계층의 세부적인 기능 (+TCP/UDP)
- OSI 모델과 TCP/IP 모델 비교
- OSI 7계층 간단 예시
OSI 7계층이란? 통신에 관한 서로간의 약속(프로토콜)
안녕하세요! 컴퓨터 초보자를 위한 친절한 IT가이드 컴퓨터앤가이드입니다.
네트워크를 공부하려고 하는 분들이 있다면 처음에 OSI 7계층에 대해 먼저 공부하게 될 텐데요. 먼저 OSI 7계층이 무엇인지부터 설명을 드리겠습니다. OSI 7계층은 ISO(International Organization for Standardization)라는 전세계의 여러나라들이 모여 만든 국제표준화 기구에서 만든 통신에 관한 규약(프로토콜)입니다.
우리가 컴퓨터를 통한 통신을 할 때는 서로간의 표준화된 규칙이 필요합니다. 여기서 중요한 점은 표준화 되어야 한다는 점입니다. 이것은 마치 우리가 외국인과 의사소통할 때 서로 다른 언어로 얘기하면 대화가 되지 않기 때문에 같은 언어(=프로토콜)를 사용해야 하는 것과 비슷하죠.
그래서 어떤 표준화된 약속을 하고 나면 이 약속에 따라 정보를 주고 받으며 통신을 하면 됩니다. 그러니까 내가 이런 정보를 보내면 너는 이렇게 알아들으면 된다와 같은 약속을 미리 해두는 것이죠. 이렇게 약속이 된 다음에는 약속된 규칙에 따라 정보를 보내기만 하면 상대방은 이해가 되지 않는다거나 또는 따로 문의할 필요가 없이 바로 알아들을 수가 있습니다.
이 녀석의 구조를 보면 이름처럼 7가지의 계층으로 나누어져 있는데요. 사실 초보자 분들이라면 계층이 어떻게 나누어져 있는지보다는 이걸 왜 나누고 나눈 게 무슨 의미가 있지?라는 생각이 먼저 들 수 있습니다.
이것을 이해하기 위해서는 먼저 통신을 우리가 이해할 수 있는 큰 개념에서부터 출발해서 생각해 볼 수 있습니다. 통신을 할 때 한 지점에서 다른 지점으로 데이터를 보낼 때는 보내기 전에 헤더(Header)라고 부르는 정보를 상위 계층에서 아래 계층으로 내려가면서 덧붙여서 보낸다는 점을 먼저 이해해야 합니다. 이게 무슨 얘기인지 예시를 들어볼테니 한 번 머리속에서 상황을 떠올려 보시기 바랍니다.
예를 들면 이렇습니다. 한 컴퓨터에서 네트워크를 통해 다른 컴퓨터로 자료를 보내려고 하는 상황입니다. 이 때 사용자는 어떤 프로그램을 써서 자료를 보내려고 할 것입니다. 사용자 입장에서는 단순히 데이터를 보내고 상대방은 받게 되는 결과만을 보게 됩니다.
하지만 데이터를 아직 보내기 전에 컴퓨터 내부적으로 보면 각 계층을 밟아 내려가면서 이 데이터에 헤더(Header)라는 것이 하나씩 씌여집니다. 헤더라는 녀석은 지금은 그냥 각 계층에 필요한 추가적인 정보로 단순히 이해하면 좋습니다. 그러니까 7계층에서 헤더가 씌워진 녀석이 다시 아래에 있는 6계층으로 내려가면 이 계층에서는 7계층에서 헤더가 씌워진 녀석 전체를 다시 하나의 데이터로 봅니다. 그리고 다시 헤더를 씌우고 5계층으로 내려가죠.
이런 식으로 헤더가 붙고 또 붙고 하면서 7계층에서 1계층까지 내려가면 총 여섯번의 헤더가 씌워지게 됩니다. 여기까지는 아직 데이터를 보내기 전입니다. 그 후 이렇게 덕지덕지 헤더가 붙은 녀석을 상대방측에 전송하죠. 그러면 상대방측에서는 헤더가 여러개 붙은 데이터를 받게 되는데 이 때 상대방 컴퓨터에서는 다시 내부적으로 계층을 올라가면서 헤더를 하나하나씩 떼어냅니다. 그리고 상대방 사용자가 데이터를 받아서 확인할 때는 처음 송신한 사람의 데이터만 남게 되는 것처럼 보이죠. 이해가 되시나요?
[<송신측> 7 –> 6 –> … –> 1] —–> 네트워크 —–> [1 –> 2 –> … –> 7 <수신측>]
글자로 표현하면 위와 같은 흐름이 된다고 이해할 수 있습니다.
그런데 사실 실제 IP네크워크 상황에서는 OSI 7계층이 아닌 TCP/IP라는 약속을 사용합니다. 이 녀석은 조금 다른 구조를 가지고 있는데 5계층으로 이루어져 있습니다. 하지만 계층을 내려가며 헤더를 덧씌우는 이 흐름은 동일합니다. 사실은 TCP/IP가 더욱 복잡하고 중요하지만 일단 전체적인 흐름 자체는 OSI 모델을 알아야만 하죠. 그렇다면 이제 실제 어떤 구조를 가지고 있는지를 알아보도록 하겠습니다.
OSI 7계층 구조 – 응용 / 표현 / 세션 / 전송 / 네트워크 / 데이터 링크 / 물리
7계층 | 응용 프로그램 계층 (Application Layer) |
6계층 | 표현 계층 (Presentation Layer) |
5계층 | 세션 계층 (Session Layer) |
4계층 | 전송 계층 (Transport Layer) |
3계층 | 네트워크 계층 (Network Layer) |
2계층 | 데이터 링크 계층 (Data Link Layer) |
1계층 | 물리 계층 (Physical Layer) |
이 프로토콜의 구조는 위와 같이 되어 있습니다. 7계층부터 1계층까지 각각의 이름들이 있는데요. 만약 어떤 특정 시험을 준비한다면 모두 암기해야 하겠죠. 앞서 설명 드렸듯이 7계층에서 데이터를 아래로 내려 보내면 내려갈 때마다 계속 헤더를 씌우면서 내려갑니다. 그리고 상대방 측에 도착을 하면 헤더를 떼내면서 올라가서 최종적으로 상대방은 처음 보내는 사람의 데이터만 사용하는 것처럼 느끼게 되죠.
처음에 보면 계층이 너무 많아서 상당히 복잡하죠. 그런데 어차피 7계층에서 시작해서 중간단계를 거쳐 1계층까지 내려가기 때문에 단순화를 위해 7계층과 1계층의 관계에 대해서만 살펴보겠습니다.
7계층은 응용 프로그램 즉 우리가 일상적으로 사용하는 프로그램과 관련되어 있습니다. 예를 들어 크롬 브라우저, 아웃룩 등과 같은 프로그램을 얘기하죠. 예를 들어 만약 아웃룩을 이용해 메일을 보냈다고 가정해 보겠습니다. 그러면 사용자는 아웃룩을 통해 7계층의 데이터를 전송한 것입니다. 그러면 아직 데이터를 상대방에게 보내기 전 헤더를 계속 씌우면서 각 계층을 거쳐 내려와서 1계층인 물리적인 연결매체 즉 랜케이블까지 오게 되죠. 그 후 공유기를 타고 네트워크를 거쳐 상대방에게 전송이 됩니다.
그러면 상대방 측에서는 1계층인 랜케이블을 통해 이 데이터가 도착합니다. 그리고 이렇게 도착한 데이터는 반대로 헤더를 계속 떼어내면서 점점 계층을 올라가 7계층에 해당하는 아웃룩에서 상대방이 보낸 메일 내용을 볼 수 있죠.
물론 이것은 정말 단순화시킨 얘기입니다. 실제로는 각 단계의 내용들도 무척 복잡하고 중간 노드(지점)에서 전달되는 과정 자체도 아주 복잡하죠.
그렇지만 이렇게 앞의 예시처럼 단순화시켜 생각하면 OSI 7계층이든 TCP/IP이든 통신의 큰 개념 자체는 어려울 것이 없습니다. 정리하면 사용자는 데이터를 전송하는 어떤 액션을 취하고 이것이 물리적인 랜케이블을 거쳐 네트워크를 지나 상대방 측의 랜케이블을 통해 전달된 후 상대방은 받은 데이터를 볼 수 있다는 것이죠. 이 과정을 수행할 때 송신측과 수신측 각각 모두 계층을 나누어 놓고 계층마다 세부적이고 서로 다른 내용들에 관한 약속을 해둔 프로토콜을 참고하여 주고받은 정보를 해석하는 것입니다.
각 계층의 세부적인 기능 (+TCP/UDP)
그러면 이번에는 각 계층에서의 세부적인 기능에 대해서 알아보도록 하겠습니다. 참고로 자세하게 다루자면 아마 내용이 많이 길어질 것입니다. 각 계층의 내용 자체가 정말 많은 내용을 알아야 하고 그 개념도 처음 네트워크를 공부하는 분들에게는 결코 쉽지 않기 때문입니다. 여기서는 정말 간단하게 공유드립니다.
7계층은 우리가 그냥 프로그램이라 부르는 응용 프로그램에 해당하는 계층입니다. 응용이란 단어가 붙은 이유는 말 그대로 운영체제(OS)라는 기반 위에서 사용자가 원하는 다양한 프로그램을 개발해서 사용하기 때문이죠. 이 계층에서 대표적인 녀석은 HTTP(Hyper Text Transfer Protocol)입니다. 우리가 인터넷을 할 때 인터넷 주소를 보면 항상 http:// 또는 보안이 추가된 https://와 같이 주소가 시작되는 것을 볼 수 있죠.
6계층은 이론적으로는 코드간의 번역을 담당합니다. 다시 말해 통일된 데이터 구조를 나타내기 위해 사용한다는 개념입니다. 그런데 TCP/IP에서는 응용 프로그램 계층에 포함되기 때문에 간단히만 알고 있어도 좋습니다.
5계층은 이론적으로는 한 지점에서 끝 지점간의 프로그램간의 통신에서 정보를 효과적으로 할 수 있는 추가적인 서비스를 제공합니다. 예를 들면 연결 복구를 시도한다든지, 시간이 지나서 연결 안 되면 재연결을 한다든지 하는 정보를 담기 위해 사용합니다. 이 계층 역시 TCP/IP에서는 응용 프로그램 계층에 포함됩니다.
4계층은 사용자들이 신뢰성이 있는 데이터를 주고받을 수 있도록 하는 계층입니다. 다시 말해 그 위의 계층들은 데이터가 잘 전달되었는지를 신경쓰지 않아도 되도록 해주는데요. 여기에는 유명한 녀석들인 TCP와 UDP가 있습니다. 이에 대해 설명드리면 TCP는 연결 지향형(높은 신뢰성)이고 UDP는 비연결 지향형(낮은 신뢰성)이라는 차이점이 있습니다.
이 두 가지는 경우에 따라 다르게 사용합니다. UDP가 필요한 경우는 신뢰성보다는 데이터를 계속 어떻게든 전송해야 하는 경우입니다. 예를 들어 실시간으로 동영상을 볼 때는 당연히 영상 데이터를 인터넷을 통해 끊임없이 받아와야 하는데요. 이 때는 데이터를 온전히 받지 못해 화질이 좋지 못하더라도(신뢰성이 없어도) 일단 영상이 재생되는 것이 우선일 수 있습니다. 왜냐면 사용자에게 끊김없는 영상재생이 중요하기 때문입니다.
대조적으로 TCP가 필요한 경우는 불완전한 데이터가 계속 오는 것보다는 대부분 신뢰성이 중요할 때입니다. 예를 들어 어떤 브라우저로 인터넷을 할 때는 화면에 표시되는 정보의 신뢰성이 중요합니다. 만약 인터넷을 하는데 특정 페이지를 새로고침 할 때마다 다른 정보가 뜬다면 말이 되지 않겠죠. 이 경우는 사용자에게 신뢰성이 중요합니다.
3계층은 각 지점을 거칠 때마다 경로를 찾아주는 역할을 하는 계층입니다. 네트워크에 대해 공부하면 라우팅이라는 단어를 자주 사용하는데요. Routing 즉 경로를 찾는 역할을 맡게 되고 여러분들이 잘 알고 있는 IP 주소가 이와 관련되어 있습니다. 사실 네트워크를 공부하게 된다면 가장 많은 시간을 할애하는 파트가 될 것입니다.
2계층은 양쪽 지점에서 신뢰성 있는 통신을 하기 위한 MAC 주소를 다루는 계층입니다. MAC 주소란 기기의 물리적인 주소인데 이것은 바뀔 수 없는 주소입니다. 예를 들어 요즘 무선 이어폰을 많이 사용할 텐데요. 블루투스 통신을 하기 위해 연결을 시도할 때 ‘MAC주소를 찾는중’이라는 메세지가 뜨는 것을 본 적이 있을 것입니다. 바로 이 MAC주소를 의미합니다. 컴퓨터의 통신을 하기 위한 랜카드 역시 이 MAC주소가 모두 부여되어 있습니다. 초보자 분들을 위해 조금 쉽게 풀면 제품의 일련번호 같은 거라고 생각하면 되겠습니다.
1계층은 인터넷을 할 때 물리적인 연결 매체에 관련된 것인데요. 쉽게 말해 랜 케이블 또는 광케이블과 같은 것을 의미합니다. 이 중 우리가 실생활에서 가장 많이 접하게 되는 것은 랜 케이블입니다. 랜 케이블은 여러가지 카테고리(종류)가 있는데요. 카테고리는 CAT로 표기하고 보통 CAT5 또는 CAT6를 사용합니다. 다이소 같은 곳에서 랜케이블을 구매한 후 잘 살펴보면 이 표기가 되어 있죠.
OSI 모델과 TCP/IP 모델 비교
OSI 7계층 | TCP/IP 계층 | ||
7계층 | 응용 프로그램 계층 | 5계층 | 응용 프로그램 계층 |
6계층 | 표현 계층 | ||
5계층 | 세션 계층 | ||
4계층 | 전송 계층 | 4계층 | 전송 계층 |
3계층 | 네트워크 계층 | 3계층 | 인터넷 계층 |
2계층 | 데이터 링크 계층 | 2계층 | 네트워크 인터페이스 계층 |
1계층 | 물리 계층 | 1계층 | 하드웨어 계층 |
그렇다면 이번에는 실제로는 사용되지 않는 OSI 7계층과 실제로 많이 사용하는 TCP/IP 계층에 대해 간단히 비교해 보도록 하겠습니다.
위 표에서 보면 두 모델의 차이점을 쉽게 볼 수 있습니다. 1~4계층은 비슷하지만 5~7계층은 TCP/IP에서는 응용 프로그램 계층이라고 간단히 정리할 수 있죠. 이렇게 두 가지를 표로 비교해 보았을 때는 TCP/IP가 꽤 단순하고 효율적으로 바뀐 것을 볼 수 있습니다.
이렇게만 보면 TCP/IP가 훨씬 단순하고 간단해 보이지만 실제로는 더욱 복잡하고 어렵습니다. 왜냐면 TCP/IP를 공부한다는 것은 각 계층이 어떤 의미를 담고 있는지와 네트워크 흐름에 대해서까지 모두 세부적으로 알아야 하기 때문입니다.
혹시 와이어샤크(Wireshark)라는 프로그램을 아시나요? 이 프로그램은 IP 네트워크에서 통신을 할 때 중간의 패킷(IP의 데이터 조각) 흐름을 보여주는 프로그램입니다. 실제로 이 프로그램 사용해보면 정말 짧은 순간에 어마어마하게 많은 데이터가 흘러갑니다. 그리고 이 패킷의 내용을 보면 처음에는 각각의 항목이 무슨 뜻인지 알 수가 없어 마치 외계어를 보는 것 같은 기분이죠.
참고로 TCP/IP에서 우리가 주로 공부하게 되는 것은 인터넷 계층입니다. 왜냐하면 이 계층이 IP를 다루기 때문입니다. 여기서 IPv4(version 4)와 IPv6(version 6)의 차이점 그리고 각 버전에서 패킷(쉽게 말해 인터넷을 통해 전달되는 데이터) 구성에 대해 공부하게 됩니다.
참고로 자신의 인터넷 속도 측정을 해보고 싶다면 아래 웹사이트를 이용한 간단한 방법을 정리한 내용에서 알 수 있을 것입니다.
함께 보면 좋은 연관 포스팅
인터넷 속도 측정하는 3가지 방법과 용어 이해하기
OSI 7계층 간단 예시
- 7계층 응용 프로그램 계층 : 브라우저를 통한 인터넷
- 6계층 표현 계층 : 암호화된 이메일
- 5계층 세션 계층 : 원격 데스크톱 연결시 연결 관리
- 4계층 전송 계층 : UDP를 사용한 동영상 스트리밍
- 3계층 네트워크 계층 : IP주소를 이용한 인터넷
- 2계층 데이터 링크 계층 : Wi-Fi 연결시 MAC 주소를 기반으로 기기 식별
- 1계층 물리 계층 : 인터넷 연결을 위한 케이블 설치
앞의 내용을 통해 OSI 7계층에 대해 이해하셨나요? 여기서는 마지막으로 간단 예시를 정리해 보았습니다. 앞서 얘기드린 것처럼 실제로 OSI 7계층은 실제로는 사용되지 않고 주로 TCP/IP를 사용합니다. 다만 이 글은 OSI를 다루고 있으므로 이에 대해 이해를 돕기 위한 예시를 통해 개념을 이해해 보시기 바랍니다. 이 OSI 모델이 물론 이론적인 개념이지만 위 내용을 보면 실제로 우리 주변에서 많이 사용하는 익숙한 개념들과 연결지을 수 있음을 알 수 있습니다.
마치며
여기까지 OSI 7계층 정리에 대해 알아보았는데요.
통신을 공부할 때 OSI는 꼭 마주치게 되는 이론적인 부분입니다. 물론 이 개념은 이론적인 부분에 너무 치우쳐져 있기는 하지만 잘 이해하고 나면 네트워크를 이해하는데 많은 도움이 되죠. 이 내용은 사실 인터넷이나 어떤 책에도 정리가 잘 되어 있습니다. 다만 초보자분들이 볼 때 대체 왜 이런 모델을 만들고 왜 계층이 나누어져 있는지가 잘 이해가 되지 않을 수 있죠.
아무쪼록 이 글이 OSI 7계층 프로토콜에 대해 궁금한 분들에게 좋은 가이드가 되길 바랍니다.
감사합니다.