OSI(Open Systems Interconnection Reference Model)란
- 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다.
각 계층은 하위 계층의 기능만을 이용하고, 상위 계층에게 기능을 제공한다.
왜 나누어야하고 OSI 7계층을 알아야할까?
- 단계별로 정의한 이유는 통신 과정 속에서 장애가 발생한 경우, 다른 계층의 소트프웨어나 장비를 건들지 않고 통신 장애가 발생한 계층에서만 해결책을 강구할 수 있기 때문이다.
OSI 7 계층
L1 물리계층(Physical layer)
- 네트워크의 기본 네트워크 하드웨어 전송 기술을 이룬다.
- 데이터 전기적인 신호(0,1)로 변환해서 주고받는 기능만 한다.
- 즉, 전기 신호만 잘 보내면 된다.
- 네트워크의 높은 수준의 기능의 논리 데이터 구조를 기초로 하는 필수 계층이다.
- 다양한 하드웨어 기술이 접목되어 있기에 OSI 아키텍처에서 가장 복잡한 계층으로 간주된다.
- 전송 단위 : Bit
- 관련 장비
리피터 (Repeater)
- 가장저렴하다.
- 긴 케이블일수록 신호가 약해지기 때문에 신호를 멀기 보내기 위한 증폭 장치이다.
- 지금은 다른 네트워크 장비에 기본적으로 리피터 기능이 탑재되어있어 사용하지 않는다.
허브 (Hub)
- 리피터에 몇가지 기능을 추가한 것이다.
- 허브는 CSMA/CD 방식을 적용하고 있기 때문에 여러 장비에서 동시에 데이터를 전송하지 못한다.
- 예를 들어 A가 데이터를 전송 중일 때 B도 데이터를 보내면 충돌(Collision)이 일어나게 된다.
- 컴퓨터 A~H가 허브에 연결되어있을 때 A → B 더라도 허브에 모두 연결되어있어서 나머지에게도 전송된다. 그래서 Collision이 자주 발생한다.
- 물론 전송만 되고 원치않은 데이터이므로 폐기한다.
L2 데이터 링크 계층(Data link layer)
- 직접 연결된 서로 다른 2개의 네트워크 장치간의 데이터 전송을 담당하는 계층이다.
- 1계층으로부터 전달된 전기 신호를 데이터 형태로 처리하는 역할을 수행하고 주소 정보를 정의하여 정확한 주소로 통신이 되도록 하는데 초점이 맞춰져 있다.
- 정의하는 주소를 MAC(Media Access Control address)주소라고 한다.
- MAC 주소의 주소값은 네트워크에 인터페이스에 할당된 물리적 고유 식별주소이다. (계층이 없는 단일 구조)
- 2계층에서는 주소에서 주소로, 즉 출발지와 도착지 주소(MAC 주소)를 확인하고
나한테 보낸 것이 맞는지 또는 내가 처리해야되는 데이터가 맞는지에 대해 검사를 하고 데이터를 처리한다. - Point to Point 간 신뢰성있는 전송을 보장하기 위한 계층으로 CRC 기반의 오류 제어와 흐름 제어가 필요하다.
(에러검출, 재전송, 흐름제어를 하지만 → 주로 사용하는 이더넷 기반 네트워크 2계층에서는 에러를 감지하는 역할만 수행)네트워크 인터페이스 카드(랜카드) 동작 방식
- 전기 신호를 데이터 형태로 변환
- 목적지 MAC 주소와 출발지 MAC 주소를 확인
- 랜카드의 MAC 주소를 확인
- 목적지 MAC 주소와 랜카드의 MAC 주소가 맞으면 데이터를 처리하고 다르면 데이터를 폐기
- 데이터 전송 단위 : Frame
- 관련 장비
브릿지 (Bridge)
- 하나의 네트워크망 안에서 서로 다른 LAN을 연결한다.
- MAC 주소 기반 필터링 기능을 통해 더 나은 대역폭을 제공하고, 트래픽을 통제한다.
- MAC 주소 기반 리피터 기능을 제공한다.
- 소프트웨어적 처리방식이다.
- 전송방식 : Store-and-forward
스위치 (Switch)
- 같은 네트워크 내의 특정한 다른 단말기로 패킷을 보낼수 있는 기능을 한다.
- 스위치는 허브와 비슷하 역할을 수행하는데 이 때문에 스위칭 허브라고 불리기도 한다.
- 허브와는 달리 스위치는 수신장치를 인식하는 기능이 있다.
- 하드웨어적 처리방식이다.
- MAC주소와 포트번호가 기록된 MAC주소 테이블을 가지고 있다.
- 전송방식 : Cut-through, Store-and-forward
L3 네트워크 계층(Network layer)
- 라우터를 통해 이동할 경로를 선택하여 IP 주소를 지정하고, 해당 경로에 따라 패킷을 전달해준다.
- 주소는 L2의 물리적인 MAC 주소 / L3의 논리적인 IP 주소 가 있다.
- MAC 주소와 달리 IP 주소는 사용자가 변경해 사용할 수 있고 네트워크 주소 부분과 호스트 주소 부분으로 나뉩니다.
- 라우팅, 흐름 제어, 세그멘테이션(segmentation/desegmentation), 오류 제어, 인터네트워킹(Internetworking) 등을 수행한다.
- IP주소는 네트워크 관리자가 직접 주소를 할당하는 구조를 가지며, 계층적(hierarchical)이다.
데이터 전송 단위 : Packet
라우터 (Router)
- 서로 다른 네트워크를 연결해 주는 장치로써 현재의 네트워크에서 다른 네트워크로 패킷 전송 (단에서 단으로)
- 라우팅 테이블을 이용하여 경로정보를 등록하고 관리하며 라우팅 테이블을 기반으로 경로 설정한다.
- 패킷의 헤더에서 목적지 IP주소를 확인하고 목적지의 네트워크 망으로만 전송한다. (Brodcasting을 차단한다.)
L4 전송 계층(Transport layer)
- 앞의 계층들은 신호를 보내거나, 올바른 주소로 데이터와 신호를 보내는 역할에 초점이 맞춰있는데, 전송계층에서는 실제로 해당 데이터들이 정상적으로 잘 보내지도록 확인하는 역할을 한다.
- 양 끝단(End to end) 사용자들의 데이터 전송의 에러 복구 및 흐름 제어를 담당합니다. 따라서 신뢰성있는 데이터를 주고 받을 수 있도록 한다. 그렇기 때문에 상위 계층에서 데이터 전달의 유효성이나 효율성을 생각하지 않도록 한다.
- 시퀀스 넘버 기반의 오류 제어 방식을 사용한다.
- 전송 계층은 특정 연결의 유효성을 제어하고, 일부 프로토콜은 상태 개념이 있고(stateful), 연결 기반(connection oriented)이다. (이는 전송 계층이 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들을 다시 전송한다는 것을 뜻한다.)
- TCP (Transmission Control Protocol)와 UDP (User Datagram Protocol)가 이 계층에서 동작합니다.
- 데이터 전송 단위: TCP - Segment / UDP - Datagram
L5 세션 계층(Session layer)
- 주 지점간의 프로세스 및 통신하는 호스트 간의 데이터가 통신하기 위한 논리적 연결을 담당한다.
- TCP/IP 세션을 만들고 없애는 역할을 한다. (포트번호를 기반으로 통신 세션을 구성한다.)
L6 표현 계층(Presentation layer)
- 데이터 표현에 대한 독립성을 제공하고 암호화하는 역할을 담당한다.
- 표현 방식을 하나의 통일된 형식으로 변환하는 일종의 변환기 역할을 수행하는 계층이다.
- 전송하는 데이터의 표현방식을 결정(ex. 데이터변환, 압축, 암호화 등)
→ 표현 방식이 다르면 통신을 하는데 어려움이 생길 수 있다. - 파일인코딩, 명령어를 포장, 압축, 암호화
L7 응용 계층(Application layer)
- 최종 목적지로, 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다.
- 사용자 인터페이스, 전자우편, 데이터베이스 관리 등의 서비스를 제공한다.
- 일반적인 응용 서비스는 관련된 응용 프로세스들 사이의 전환을 제공한다.
OSI 7 계층 Flow
전기신호 → 응용 계층 표현
OSI 7계층으로 각각의 계층이 하는 일을 알아봤는데 전체적인 흐름을 표현해보자면 아래와 같이 정리할 수 있다.
(나름 정리해 본거라서 틀린 경우 댓글로 알려주시면 감사하겠습니다.)
↓
2. 2계층은 1계층으로부터 받은 전기 신호를 데이터 형태로 변환
↓
3. 변환된 데이터의 목적지가 내 랜카드의 MAC 주소랑 맞는지 확인해서 3계층으로 데이터를 전달, 아니면 폐기
↓
4. 3계층은 2계층으로부터 받은 MAC주소랑 3계층의 IP주소를 확인해서 알맞은 단말기로 라우터가 경로를 찾아서 패킷을 전달
↓
5. 4계층은 3계층으로 부터 받은 패킷의 SEQ, ACK 번호 및 포트번호를 확인해서 해당 패킷을 통과, 아니면 차단
↓
6. 5계층은 보내는 쪽과 받는 쪽을 연결하고 안정적으로 유지되도록 관리. 패킷 전송이 완료되면 연결을 끊는 역할을 수행
↓
7. 6계층은 받은 패킷을 자신의 시스템 또는 애플리케이션에 맞게 인코딩 또는 암호화 등을 하여 통일된 형식으로 변환
↓
8. 7계층은 6계층으로 부터 받은 통일된 형식의 데이터를 애플리케이션에서 사용
인캡슐레이션, 디캡슐레이션
- 4계층 - Segment : TCP 헤더 + 데이터
- 3계층 - Packet : IP 헤더 + TCP 헤더 + 데이터
- 2계층 - Frame : MAC 주소 + IP 헤더 + TCP 헤더 + 데이터
- 1계층 - Bit
인캡슐레이션(Encapsulation)
- 상위계층에서 하위계층으로 데이터를 보내는 과정
- 네트워크 전송을 위해 헤더를 붙여넣는데 각 계층에서 확인할 수 있는 정보를 넣는다.
디캡슐레이션(Decapsulation)
- 하위계층에서 상위계층으로 데이터를 보내는 과정
- 보내는 쪽으로 부터 받은 전기 신호를 데이터 형태로 만들어서 상위계층으로 올려보내면 해당 계층의 헤더에 포함된 정보를 확인합니다.
- 예를들어 2계층으로부터 3계층으로 데이터가 왔을 때, 3계층의 헤더 정보를 확인한 후에
→ 맞다면 4계층의 헤더를 포함해서 상위로 보낸다.
→ 다르다면 폐기한다.
이미지 출처
OSI 7계층 그림
’데이터 통신’, 오창환 저, 한국 학술정보(주)