OSI 7 Layers
OSI 7 Layers
OSI 7계층론은 네트워크 데이터 통신을 설명할때 가장 중요한 개념중에 하나입니다. 예전에는 네트워크 통신 프로토콜이 표준화 되지 않았기 떄문에 각 벤더에서 각자 개발을 했고 그 결과 벤더사가 다르면 통신이 안되는 시스템, 어플리케이션이 많았습니다. 이러한 통신이 안되는 상황을 개선하고 프로토콜을 제정하는 노력이 모아져 만들어진 것이 OSI 7계층입니다.
이러한 OSI 7계층 모델은 네트워크 동작을 나누어 이해하고 개발하는데 도움이 되어 네트워크를 나타낼때 주요한 레퍼런스 모델로 쓰이지만 현재는 대부분의 프로토콜들이 TCP/IP 프로토콜 스택 기반으로 되어 있습니다. 이는 TCP/IP 프로토콜 스택이 현실을 좀더 잘 반영하고 실무에서 많이 쓰이기 때문입니다.
OSI 계층은 어플리케이션 계층(7계층), 프레젠테이션 계층(6계층), 세션 계층(5계층). 트랜스포트 계층(4계층), 네트워크 계층(3계층), 데이터 링크 계층(2계층), 피지컬 계층(1계층)으로 이루어져있습니다.
- 실무 팁: 프레젠테이션 계층->표현 계층, 트랜스포트 계층 -> 전송 계층, 피지컬 계층 -> 물리 계층 이라고 부르기도함. 그리고 1~7계층을 각 계층을 나타내는 번호+L 로 나타내기도 함 (L1,L2,…L7)
OSI 7계층을 바탕으로 해서 계층별로 표준화된 프로토콜 탬플릿을 기반으로 계층별로 네트워크 통신 프로토콜을 개발해 네트워크 구성 요소들을 모듈화 할 수 있습니다. 이렇게 모듈화 된 요소들은 기존에 개발된 프로토콜과 연동해 사용할 수 있습니다.
OSI 7계층은 크게 두가지로 나눌 수 있는데 1~4계층까지는 데이터 플로우 계층(하위 계층), 5~7계층은 에플리케이션 계층(상위 계층)이라고 합니다. 이러한 구분으로부터 알 수 있듯이 애플리케이션 개발자는 하위 데이터 플로우 계층을 적게 고려하고 상대적으로 에플리케이션 계층을 고려해 데이터를 표현합니다. 반대로 네트워크 엔지니어는 데이터 플로 계층을 주로 생각합니다. 그렇기 때문에 에플리케이션 개발자는 네트워크 계층을 L7부터 하향식으로 생각하고 네트워크 엔지니어는 L1부터 상향식으로 네트워크를 생각합니다.
OSI 모델과 TCP/IP 모델 비교
OSI 모델 과 TCP/IP 모델을 비교한 사진입니다.
두 모델 다 네트워크를 나타내는 모델입니다. TCP/IP 모델은 OSI 모델의 상위 3계층을 어플리케이션 계층으로 묶고 하위 2계층을 네트워크 엑세스 계층으로 묶었습니다.
이러한 TCP/IP 모델의 레이어 그룹화는 데이터를 만드는 에플리케이션 부분과 데이터를 전달하는데 집중하는 하부 계층으로 구분했다는 점에서 좀더 어플리케이션 개발자가 고려하는 부분과 네트워크 엔지니어가 고려하는 부분을 구분했다는 점에서 현실을 좀더 반영했다고 볼 수 있습니다. 그렇기 때문에 OSI 7계층 모델을 네트워크를 나타낼 때 참조 모델로 많이 사용은 하지만 TCP/IP 모델의 현실 반영이 더 뛰어나 대부분의 프로토콜이 TCP/IP 프로토콜 스택 기반으로 되어있습니다.
OSI 1계층(피지컬 계층)
1계층은 물리 계츠으로 물리적 연결과 관련된 정보를 정의합니다. 전기 신호를 전달하는 계층입니다. 1계층에서 사용되는 장비로는 허브,리피터,케이블,커넥터,트랜시버등이 있습니다. 1계층에서는 전기 신호를 그대로 잘 전달하는것이 주요 목적입니다. 1계층 장비는 주소의 개념이 없기 때문에 전기 신호가 들어온 포트를 제외하고 모든 포트에 같은 전기 신호를 전송합니다.
OSI 2계층(데이터 링크 계층)
2 계층은 데이터 링크 계층으로 전기 신호를 모아 우리가 알아 볼 수 있는 데이터 형태로 변환해줍니다. 그리고 1계층과는 다르게 주소 정보를 정의하고 정확한 주소로 통신이 되도록 합니다. 2계층에서는 출발지와 목적지를 주소를 확인해서 나에게 보낸것이 맞는지 검사한 후 데이터를 처리합니다.
2계층에서 데이터로 처리가 되므로 데이터에 대한 에러를 탐지하는 역할을 수행하기도 합니다. 그리고 주소 체계를 통해 여러 명이 통신하는 것이 가능하기 때문에 데이터를 받는 컴퓨터가 데이터를 받을 수 있는지 체크하는 작업을 하는데 이를 플로 컨트롤 이라고 합니다. 2계층에서는 이러한 플로우 컨트롤이 가능합니다.
2계층에서는 스위치와 네트워크 인터페이스 카드(네트워크 인터페이스 컨트롤러,NIC,네트워크 카드,랜카드, 물리 네트워크 인터페이스,이더넷 카드,네트워크 어댑터 라고 불리기도 함)가 중요한 네트워크 구성 장비입니다. 2계층에는 MAC주소라는 주소 체계가 있는데 스위치와 네트워크 인터페이스 카드는 둘다 MAC주소를 이해할 수 있고 스위치는 MAC주소를 보고 통신해야할 포트를 지정해 내보내는 능력이 있습니다.
네트워크 인터페이스 카드 동작 방식은 다음과 같습니다.
- 전기 신호를 데이터 형태로 만든다.
- 목적지 MAC 주소와 출발지 MAC 주소를 확인한다.
- 네트워크 인터페이스 카드의 MAC 주소를 확인한다.
- 네트워크 인터페이스 카드와 목적지 MAC 주소가 같으면 데이터를 처리하고 아니면 데이터를 폐기한다.
스위치는 MAC주소 테이블을 가지고 있습니다.MAC 주소 테이블에는 주소에 포트가 매핑되어있습니다. 스위치는 단말기가 어떤 MAC주소인지, 어떤 포트에 연결되어있는지 주소 습득 과정에서 알 수 있기 때문에 이 데이터를 기반으로 단말들이 통신을 할 때 포트를 적절히 필터링 하고 적절한 포트로 포워딩해줍니다. 1계층의 허브에서는 한 포트에서 전기 신호가 들어오면 전체 포트로 다 전송을 해줘서 네트워크 내에서 한 장비만 데이터를 보낼 수 있었는데, 2계층의 스위치가 필터링 & 포트 포워딩을 해줘 통신이 필요한 포트만 사용하게 하여 네트워크 전체에 불필요한 처리가 감소하여 이더넷 네트워크의 효율성이 크게 향상되어 이더넷 기반 네트워크가 급증하게 되었습니다.
OSI 3계층(네트워크 계층)
3계층에서는 IP 주소와 같은 논리적인 주소가 정의됩니다. 데이터 통신에 사용되는 주소는 2계층의 MAC 주소(물리적 주소), 3계층의 IP 주소(논리적 주소)가 있습니다.
MAC주소와 달리 IP 주소는 사용자가 환경에 맞게 변경할 수 있고 네트워크 주소 부분과 호스트 주소 부분으로 IP주소는 나뉩니다.
3계층의 네트워크 구성 장비인 라우터는 IP 주소를 해석해 자신이 속한 네트워크와 원격지 네트워크를 구분할 수 있고 원격지 네트워크로 가려면 어디로 가야하는지 경로를 지정할 수 있습니다. 그리고 설정된 최적의 경로로 패킷을 전송하는 역할을 합니다.
OSI 4계층(트랜스포트 계층)
4계층은 데이터 플로우 계층, 즉 하위 계층 중에 가장 상위에 있는 계층입니다. 데이터 플로우 계층은 데이터를 잘 쪼개고 받는 역할을 중점적으로 고려하는데 4계층은 이러한 데이터 계층에서 가장 상위에 있으며 이러한 데이터의 전송이 잘 보내어지는지 확인하는 역할을 합니다. 네트워크에 데이터를 패킷형태로 보내면 중간에 패킷이 유실되거나 패킷 내용이 변하는 문제가 생길 수 있습니다. 이러한 문제를 해결하기 위해 패킷이 유실되거나 변경되었을 때 순서를 바로 잡아주는 역할을 4계층에서 담당합니다. 4계층에서는 패킷을 분할 할때 패킷 헤더에 보내는 순서, 받는 순서를 적어놓아서 패킷이 유실될 경우 재전송을 요구할 수 있고 순서가 뒤바뀌어도 순서를 다시 정렬 할 수 있습니다. 이때 패킷에 보내는 순서를 명시한 것이 시퀸스 번호(seq), 받는 순서를 나타낸 것이 ACK 번호(ack number)입니다.
또한 4계층에서는 장치 내의 에플리케이션을 구분하기 위해서 포트 번호를 이용해 상위 에플리케이션을 구분합니다.
이러한 4계층에서 네트워크 구성 장비는 로드 밸런서와 방화벽이 있습니다. 로드밸런서는 시퀸스, ACK 번호, 어플리케이션 구분자(포트 번호)를 이용해 네트워크 부하를 분산하고 방화벽은 앞서 말한 정보들을 활용해 보안 정책을 수립해서 패킷을 통과시키거나 차단하는 역할을 합니다.
OSI 5계층(세션 계층)
5계층인 세션 계층은 네트워크 양 끝단의 응용 프로세스가 연결을 성립하도록 도와주고 연결을 유지, 연결 끊는 역할을 합니다. 이를 위해 5계층은 TCP/IP 세션을 만들거나 관리해서 연결을 관리합니다. 그리고 에러로 통신이 중단될 경우 에러 복구와 재전송도 5계층에서 세션이 수행합니다.
OSI 6계층(프레젠테이션 계층)
6계층은 표현 방식이 다른 어플리케이션 또는 시스템간의 통신을 위해 하나의 통일된 구문 형식으로 변환시키는 기능을 수행합니다. 번역기의 역할을 수행하는데 이러한 역할은 어플리케이션 계층에서 데이터의 형식상의 차이를 해석하는데 드는 부담을 덜어줍니다. MINE인코딩, 암호화, 압축, 코드 변환과 같은 동작이 여기서 이루어집니다.
OSI 7계층(에플리케이션 계층)
최상위 계층인 7계층은 에플리케이션 계층으로 애플리케이션 프로세스를 정의하고 에플리케이션 서비스를 수행합니다. 소프트웨어의 UI부분, 입출력 부분을 정의하는게 7계층의 역할입니다. 이 애플리케이션 계층의 프로토콜은 엄청 많지만 대표적인게 FTP,SMTP,HTTP가 있습니다.
출처: IT엔지니어를 위한 네트워크 입문
Leave a comment