OSI 7계층

SeokHwan An·2022년 7월 22일
1

네트워크

목록 보기
1/3

OSI 7계층이란?

위키백과에 따른면 OSI 7계층은 다음과 같습니다.

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

OSI 7계층으로 나눈 이유?

클라이언트와 서버가 통신하는 과정을 단계 별로 파악이 가능하기 때문이며 흐름을 한 눈에 알아보기 쉬어 사람들이 쉽게 이해하는 것인 가능하기 때문입니다. 또한 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건드리지 않고 이상이 생긴 단계만 고칠 수 있기 때문입니다.

OSI 7계층의 구조

OSI 7계층의 구조를 그림으로 보면 다음과 같습니다.
각 계층은 각기 다른 역활을 하며 데이터를 보낼 때에는 7Layer에서부터 1Layer로 거치면서 마치 택배를 보내는 것처럼 데이터 위에 다양한 header 덮고 데이터를 받는 경우에는 각 층에서 알맞게 header 열어 최종적으로 데이터를 읽을 수 있게 합니다. 이어서 각 층에서의 역활에 대해 알아보겠습니다.

Physical Layer(1 Layer)

두 대의 컴퓨터가 데이터 통신을 하는데는 0과 1로 구성된 이진파일을 주고 받으면서 데이터를 주고 받을 수 있습니다. 이 때 전선을 통해 통신을 하게 되는데 전선의 경우 전선의 종류에 따라 허용이 가능한 주파수가 정해져 있습니다. 만약 전선이 허용하지 않은 범위의 주파수를 통해 데이터를 전송하게되면 받는 컴퓨터에게는 엉뚱한 데이터가 도착하게 됩니다.
데이터 통신을 할 때는 위의 그림과 같이 디지털 전자기파를 통해 통신을 하는데 위의 그림의 경우에는 0 ~ 무한대(Hz)의 주파수 범위를 가지게 됩니다. 그렇기에 위의 신호를 허용해주는 전선을 존재하지 않습니다. 따라서 아래의 그림과 같이 아날로그의 형태의 전자기파로 변경해주어야 합니다. Pyhsical Layer는 0과 1의 디지털 신호를 아날로그의 신호로 바꾸어주는 encoding과정을 해주어 전선이 허용해주는 주파수에 맞게 하여 데이터를 전송하고 데이터를 받은 쪽에서는 이 아날로그 신호를 컴퓨터가 읽을 수 있게 0과 1의 구성된 디지털 신호로 해석하는 decoding과정을 수행합니다.

즉, Physical Layer는 물리적으로 연결된 두 대의 컴퓨터가 0과 1의 나열을 주고 받을 수 있게 해주는 모듈입니다.

앞서 과정에서는 두 대의 컴퓨터가 통신하는 과정에 대해서 알아보았는데 실제로는 여러대의 컴퓨터와 통신이 이루어지게 되는데 이를 효율적으로 연결해주는 것이 스위치이며 이를 하나의 인트라넷이라고 볼 수 있습니다. 이 인트라넷을 외부 네트위크와 연결해주는 것을 라우터라고 보면 될 것 같습니다. 아래의 그림을 보면 쉽게 이해가 가능할 것입니다. 만약 하나의 컴퓨터가 같은 네트워크 내 다른 컴퓨터의 통신을 하려면 그에 해당하는 목적지에 알맞게 전송해주어야 하고 그렇지 않으면 옳바르지 않은 목적지로 가게될 수 있는데 이 때 DataLink Layer는 physical Layer로 부터 받은 데이터를 알맞은 목적지로 갈 수 있게 필요한 모듈입니다.
이 중에서는 Framing이 있는데 이는 한대 컴퓨터에 다른 여러 대의 컴퓨터가 데이터를 전송하는 과정에서 데이터가 섞이지 않고 구분되게 하기 위해 앞 뒤에 임의의 비트열을 붙여주는 것입니다.

Network Layer(3 Layer)

앞선 과정에서는 같은 인트라넷에 두 컴퓨터가 통신하는 과정에 대해 알게 되었고 이제 외부의 네트워크과 통신하는 과정에 대해 알아보겠습니다. 한 컴퓨터가 외부의 컴퓨터(서버 : google 이나 naver) 접속하는 과정을 예시로 설명하면 송신 컴퓨터는 DNS를 통해 외부의 컴퓨터의 도메인에서 IP주소를 알게 됩니다. 더 자세한 내용은 DNS에 대해 찾아보시면 좋을 것 같습니다. 여기서 Network Layer는 IP주소를 활용해 라우터의 길을 찾고 각 라우터로 전송하는 과정을 거쳐 목적지에 데이터를 전송하게 도와주는 것이라고 보면 좋을 것 같습니다.
여기서 라우터의 길을 찾는 것을 Routing이라고 하고 하나의 라우터에서 다른 라우터로 데이터를 보내는 것을 forwarding이라고 합니다.

Transport Layer(4 Layer)

앞선 과정을 통해 모든 네트워크에서 컴퓨터끼리 통신이 가능해졌습니다. 그러면 한 컴퓨터는 여러 컴퓨터로부터 여러 데이터를 받게 되고 이는 각각의 프로그램의 프로세스에 알맞게 전송되어야 하는데 이를 도와주는 것이 Transport Layer입니다. Transport Layer에서는 포트번호를 활용해 이를 해결하는데 포트 번호는 하나의 컴퓨터에서 동시에 실행되고 있는 프로세스들이 서로 겹치지 않게 가지는 정수 값입니다.
즉, Transport Layer는 포트번호를 사용하여 도착지 컴퓨터의 프로세스까지 데이터가 도달하게 해주는 모듈입니다.

Application Layer(7 Layer)

처음에 그림을 보면 7계층으로 나누어져 있지만 현재의 인터넷은 OSI 모델이 아닌 TCP/IP모델을 따르고 있습니다. TCP/IP모델은 아래의 그림과 같습니다. 3개의 상위 계층이 하나의 Application Layer로 합쳐진 것을 확인할 수 있습니다.
Application Layer는 우리가 흔히 주소창에 생략하는 HTTP라는 프로토콜을 이용해 목적 컴퓨터로 데이터를 보내는것을 도와주고 이 때 데이터를 알맞은 확장자에 맞게 볼 수 있게 변경해줍니다(Presentation Layer). 또한 데이터의 무결성이나 신뢰성을 파악하여 데이터를 끊거나 확인해주는 작업을 거칩니다.(session Layer)

최종적 흐름

레퍼런스

https://www.youtube.com/watch?v=1pfTxp25MA8 (우아한테크 코스의 테코톡)
https://medium.com/harrythegreat/osi%EA%B3%84%EC%B8%B5-tcp-ip-%EB%AA%A8%EB%8D%B8-%EC%89%BD%EA%B2%8C-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0-f308b1115359 (OSI게층, TCP/IP 모델 쉽게 알아보기)

0개의 댓글