OSI 참조 모델 (Open System Interconnection)
- 국제표준화기구가 서로 다른 컴퓨터가 네트워크 구조에 상관없이 통신할 수 있도록 정의한 계층형 모델
- 총 7개의 계층으로 이루어져 있다.
- OSI 참조 모델은 프로토콜이 아니라 유연하면서 안전하고 상호 연동이 가능한 네트워크 구조를 설계하고 이해하는 모델이다.
- OSI 참조 모델에서 각 계층은 상위 계층의 요구에 따라 서비스를 제공하고, 하위 계층은 필요한 서비스를 요구할 수 있다.
- OSI 참조 모델의 계층 구조
- 응용 계층 (7계층)
- 표현 계층 (6계층)
- 세션 계층 (5계층)
- 전송 계층 (4계층)
- 네트워크 계층 (3계층)
- 데이터 링크 계층 (2계층)
- 물리 계층 (1계층)
OSI 참조 모델의 데이터 전송
- OSI 참조 모델은 각각 특정 기능을 수행하는 7개의 계층으로 이루어져 있다.
- 각 계층은 헤더와 데이터 단위로 정의된다.
- 헤더에는 각 계층의 기능과 관련된 정보가 포함된다.
- 송신 측이 헤더를 생성해서 추가하면 수신 측의 해당 계층이 이 헤더를 생성한다.
데이터 단위
는 헤더를 추가한 데이터를 전송하는 기본 단위이다.- 상위 계층이나 하위 계층 사이에 주고받는 데이터의 단위를
서비스 데이터 단위(Service Data Unit, SDU)
라고 부른다. - 같은 계층 사이에 주고받는 데이터의 단위를
프로토콜 데이터 단위(Protocol Data Unit, PDU)
라고 부른다. - 데이터 단위는 상위 계층이 전소앟려는 데이터인 SDU에 제어 정보인
PCI(Protocol Control Information)
을 추가한 것이다.- 즉, PDU는 PCI와 SDU를 합친 것으로 생각하면 된다.
- 제어 정보에는 흐름 제어 정보, 오류 제어 정보, 주소 정보 등이 포함된다.
- 데이터 단위는 다음 계층에 데이터 정보를 전송할 때 사용된다.
- 일반적으로 데이터 단위를
패킷
이라고 한다. - OSI 참조 모델에서는 데이터가 응용 계층(7계층)에서 하위 계층으로 순차적으로 전송된다.
- 물리 계층과 응용 계층을 제외한 나머지 계층에서는 데이터의 시작과 끝 부분에 헤더나 트레일러 형태로 정보를 추가한다.
- 시작 부분에 추가되는 헤더는 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층의 데이터에 추가된다.
- 끝 부분에 추가되는 트레일러는 데이터 링크 계층의 데이터에만 추가된다.
- 송신 측에서 데이터를 전송하는 방식
- 응용 계층에서 표현 계층에 데이터를 전송한다.
- 표현 계층에서 데이터에 표현 계층에 대한 헤더를 추가한 뒤 세션 계층에 전송한다.
- 세션 계층에서 데이터에 세션 계층에 대한 헤더를 추가한 뒤 전송 계층에 전송한다.
- 전송 계층에서 데이터에 전송 계층에 대한 헤더를 추가한 뒤 네트워크 계층에 전송한다.
- 네트워크 계층에서 데이터에 네트워크 계층에 대한 헤더를 추가한 뒤 데이터 링크 계층에 전송한다.
- 데이터 링크 계층에서 데이터에 데이터 링크 계층에 대한 헤더와 트레일러를 추가한 뒤 물리 계층에 전송한다.
- 물리 계층에서 데이터를 전자적 신호로 변환하여 전송 매체를 통해 수신 측으로 전송한다.
- 수신 측에 데이터가 도착하면 전기적 신호로 변환되었던 데이터가 수신 측의 물리 계층으로 전송되어 디지털 형태로 복원된다.
- 수신된 데이터가 상위 계층에 전송되면 각 계층은
송신 측의 각 계층에서 추가된 헤더와 트레일러를 제거 한 후 각 계층에서 해야할 일을 수행한다. - 최종적으로 수신 측의 응용 계층에 데이터가 전송되면 데이터를 적절한 형태로 변환하여 수신자에게 전송한다.
- 실제로 서로 다른 시스템 간에 데이터를 전송하는 경우에는 수많은 중간 노드를 거치게 된다.
- 다만 중간 노드의 경우에는 OSI 참조 모델의 7계층을 모두 사용하는 것이 아닌 1~3 계층만 사용한다.
네트워크 접속 계층
- 실제로 OSI 참조 모델을 완벽하게 적용하기에는 어려운 부분이 많다.
- 그래서 실제로는 OSI 참조 모델의 7계층을 4계층으로 단순화한
TCP/IP 모델
을 많이 사용한다. - TCP/IP 모델의 계층 구조
- 응용 계층 (4계층)
- OSI 참조 모델의 5~7계층에 해당한다.
- 전송 계층 (3계층)
- OSI 참조 모델의 4계층에 해당한다.
- 네트워크 계층 (2계층)
- OSI 참조 모델의 3계층에 해당한다.
- 네트워크 접속 계층 (1계층)
- OSI 참조 모델의 1~2계층에 해당한다.
- 응용 계층 (4계층)
물리 계층
- 두 시스템 간에 데이터를 전송하기 위해 링크를 활성화하고 관리하는 전기적·기계적·기능적·절차적 특성 등을 정의하는 계층
- 허브, 라우터, LAN 카드, 케이블 등 전송 매체를 통해
비트
를 전송한다. - 물리적인 네트워크 장치의 사용은 물리 계층에 의해 결정된다.
- 상위 계층인 데이터 링크 계층에서 형성된 데이터 패킷을 전기 신호나 광신호로 바꾸어 송수신한다.
물리 계층의 기능
- 회선 구성
- 점대점, 다중점 등 2개 이상의 장치에 대한 회선 구성을 결정한다.
- 데이터 전송 모드
- 단방향, 양방향 등 연결된 시스템 간의 데이터 전송 모드를 결정한다.
- 접속 형태
- 성형, 버스형, 트리형 등 네트워크 접속 형태를 결정한다.
- 전송 매체 유형
- 허브, 케이블 등 데이터를 전송하는 물리적 장치를 결정한다.
물리 계층의 특성
기계적 특성
- 시스템과 주변장치를 연결하기 위해 정의한다
- 물리적 접속에 필요한 커넥터의 모양, 내부의 핀 수, 각 핀의 위치 등을 정의한다.
전기적 특성
- 두 시스템 간 상호 접속 회로의 전기적 특성 등을 정의한다.
- 출력 전압, 전력 전압, 2진수의 논리적 표현을 정의한다.
기능적 특성
- 상호 접속 회로의 기능을 정의한다.
- 데이터, 제어, 타이밍, 접지 및 절차를 정의한다.
- CCITT 권고안 V.24에 정의되어 있다.
절차적 특성
- 데이터 전송에 필요한 순서를 정의한다.
- 동작 종료의 절차, 물리 연결의 활성화 및 비활성화를 정의한다.
- CCITT 권고안 X.20, X.21에 정의되어 있다.
물리 계층의 데이터 단위
- 송신 측의 물리 계층은 데이터 링크 계층에서 0과 1로 구성된 비트열의 데이터(프레임)을 받아
전기 신호로 변환한 후 전송 매체를 통해 수신 측에 보낸다. - 수신 측의 물리 계층은 수신한 전기 신호를 0과 1로 구성된 비트열로 복원하여 데이터 링크 계층에 전송한다.
물리 계층의 네트워크 접속 장치
리피터
- 전기 신호를 복원하고 증폭하는 장치
- 멀리 떨어져 있는 상대방과 통신할 수 있도록 파형을 정상으로 만든다.
- 일대일 통신만 가능하다.
- 최근에는 다른 네트워크 장치가 리피터의 기능을 지원하기 떄문에 잘 쓰이지 않는다.
허브
- 여러 대의 컴퓨터를 연결해주는 장치
- 리피터의 역할도 가능하기 떄문에
리피터 허브
라고도 부른다.- 일그러진 전기 신호를 보구언하고 증폭한다,
- 컴퓨터에서 보낸 전기 신호가 허브에 도착하는 동안 잡음의 영향으로 일그러지기도 한다.
- 허브는 일그러진 파형을 정상으로 되돌리는 기능을 한다.
- 통신하는 통로인 포트가 여러 개이다.
- 여러 컴퓨터와 통신할 수 있게 해준다.
- 특정 포트로부터 데이터를 받으면 그 데이터를 해당 포트를 제외한 나머지 포트로 전송한다.
- 허브는 전기 신호를 모든 포트로 보낸다.
- 이 때문에
더미 허브
라고도 부른다. - 이를 해결하기 위해 데이터 링크 계층에서 스위치를 사용한다.
- 이 때문에
데이터 링크 계층
- 물리적 링크를 이용하여 신뢰성 있는 데이터를 전송하는 계층
- 네트워크를 통해 데이터를 전송할 떄 전송로 역할을 한다.
- 비트를 프레임이라는 논리적 단위로 구성한다.
- 전송하려는 데이터에 인접한 노드(시스템)의 주소가 더해진다.
- 해당 주소는 최종 수신지의 주소가 아니라 전송되는 다음 노드의 주소다.
- 물리 계층에서 발생하는 오류를 검출하고 복구하는 오류 제어 기능, 동기화, 흐름 제어 등을 담당한다.
- 과도한 양의 데이터를 한 번에 전송하지 않도록 데이터 양을 조절한다.
데이터 링크 계층의 기능
- 주소 지정
- 데이터 링크 계층에서 추가된 시작과 끝 부분에는 가장 최근에 데이터가 지나온 노드(시스템)와
다음에 접근할 노드의 물리 주소가 포함된다.
- 데이터 링크 계층에서 추가된 시작과 끝 부분에는 가장 최근에 데이터가 지나온 노드(시스템)와
- 순서 제어
- 데이터를 순차적으로 전송하기 위해 프레임 번호 부여 기능을 수행한다.
- 수신 노드에서 식별 번호를 추가하여 프레임의 순서를 제어한다.
- 흐름 제어
- 한 번에 전송할 수 있는 데이터의 양을 조절한다.
- 연속으로 프레임을 전송할 때 수신 여부를 확인하는 기능을 수행한다.
- 오류 처리
- 오류 검출과 정정 기능을 수행한다.
- 오류가 발생한 프레임의 재전송을 요구할 수 있다.
- 프레임
- 데이터를 전송할 떄 처리가 쉽도록 프레임 단위로 전송한다.
- 동기화
- 헤더에는 수신 측에 프레임이 도착했음을 알리는 비트가 있다.
- 트레일러에는 프레임의 끝을 나타내는 비트와 오류를 제어하는 비트 등이 있다.
- 데이터 링크 설정
- 전송할 데이터의 앞에는 헤더를, 뒤에는 트레일러를 추가하여 물리 계층으로 전달한다.
- 헤더와 트레일러에는 송신 측 주소와 수신 측 주소 등의 정보가 포함된다.
- 수신 측의 데이터 링크 계층은 헤더와 트레일러를 삭제한 후 수신 측의 네트워크 계층으로 전달한다.
데이터 링크 계층의 특성
- 시스템 간에 오류 없이 데이터를 전송하기 위해 네트워크 계층으로부터 받은 데이터 단위(패킷)를 프레임으로 구성하여 물리 계층으로 전송한다.
- 네트워크 계층으로부터 데이터 단위를 받아 주소와 제어 정보같은 의미 있는 비트를 시작 부분(이더넷 헤더)와 끝 부분(트레일러)에 추가한다.
- 데이터 링크 프레임의 헤더와 트레일러에는 송신지에서 수신지로 데이터를 전송하는 데 필요한 여러 가지 정보가 들어 있다.
- 거쳐야 하는 곳의 물리 주소나 최종 수신지로 가기 위해 프레임이 거쳐야 하는 곳의 정보가 들어 있다.
- 데이터 링크 계층의 프로토콜은 수신자가 제대로 수신할 수 있도록 전송을 제어하고, 전송 도중에 발생한 오류를 교정하는 일 등을 담당한다.
- 시작과 끝 부분은 어느 부분에 해당하는지, 도착한 프레임이 손상되지 않고 잘 도착했는지 등의 정보도 전송한다.
- 데이터 링크 계층에서 시작과 끝 부분은 송신 노드로 추가하고 수신 노드로 검사 및 해석한다.
- 수신 노드가 프레임을 받으면 시작과 끝 부분을 삭제한 후 남은 데이터 단위를 네트워크 계층으로 보낸다.
데이터 링크 계층의 규칙
- 데이터 링크 계층은 네트워크 접속 장치 간에 신호를 주고받는 규칙을 정하는 계층이다.
- 가장 일반적으로 사용되는 규칙은 이더넷이다.
- 이더넷은 허브와 같은 네트워크 접속 장치에 연결된 컴퓨터와 데이터를 전송받을 때 사용한다.
이더넷 헤더
- 이더넷 헤더는 수신지 MAC 주소 6바이트, 송신지 MAC 주소 6바이트, 유형 2바이트로 총 14바이트로 구성되어 있다.
- 이더넷 유형은 이더넷으로 전송되는 상위 계층 프로토콜의 종류를 나타낸다.
- 16진수 번호가 들어있다.
- 이더넷 헤더 외에 데이터 뒤에 추가하는 트레일러는
FCS(Frame Check Sequence)
라고 부른다.- 데이터 송신 도중에 오류가 발생하는지 확인하는 용도로 사용한다.
- 이더넷 헤더와 트레일러가 추가된 데이터를
프레임
이라고 한다.
이더넷 데이터 전송 규칙
- 여러 컴퓨터가 동시에 데이터를 전송하먄 데이터가 충돌할 수 있다.
- 이더넷은 여러 컴퓨터가 동시에 데이터를 전송해도 충돌이 발생하지 않는 구조로 되어 있다.
- 데이터가 동시에 케이블을 지나갈 떄 충돌이 발생하지 않도록 데이터를 전송하는 시점을 늦춘다.
- 이더넷에서 데이터의 충돌을 막기 위한 규칙으로는 CSMA/CD 방식을 사용하고 있다.
- CS : 데이터를 전송하려는 컴퓨터가 케이블에 데이터 신호가 흐르고 있는지 확인하는 규칙
- MA : 케이블에 데이터 신호가 흐르고 있지 않으면 데이터를 전송해도 된다는 규칙
- CD : 충돌이 발생하는지 확인하는 규칙
- 최근에는 효율이 좋지 않다는 이유로 CSMA/CD를 거의 사용하지 않는다.
- 네트워크 충돌이 일어나지 않는 스위치를 사용하고 있다.
데이터 링크 계층의 데이터 전송 과정
- 데이터 링크 계층에서 데이터에 이더넷 헤더와 트레일러를 추가하여 프레임을 생성한다.
- 물리 계층에서 이 프레임 비트열을 전기 신호로 변환하여 네트워크를 통해 전송한다.
- 컴퓨터가 송신한 데이터를 허브에서 해당 컴퓨터와 관련된 포트로 수신한다.
- 허브가 수신한 데이터를 다른 포트로 전송한다.
- 각 컴퓨터는 프레임에 명시되어 있는 수신지 MAC 주소가 자신과 동일하다면 수신하고, 그렇지 않다면 데이터를 파기한다.
- 전기신호를 수신한 컴퓨터는
물리 계층에서 전기 신호로 전송된 데이터를 비트열로 변환하고
데이터 링크 게층에서는 이더넷 헤더와 트레일러를 제거한 후 데이터를 수신한다.
스위치
- 데이터 충돌이 발생하지 않도록 중재하는 장치
스위칭 허브
또는레이어2 스위치
라고 부른다.- 겉모습은 허브랑 비슷하지만 기능이 완전히 다르다.
허브의 경우
- (더미) 허브는 회선 하나를 송수신에 사용하는 반이중 통신 방식이다.
- 동시에 데이터를 전송할 떄 충돌한다.
- 충돌이 발생할 떄 그 영향이 미치는 범위를
충돌 도메인
이라고 한다. - 허브는 접속되어 있는 모든 컴퓨터가 하나의 충돌 도메인이 된다.
스위치의 경우
- 데이터를 동시에 송수신할 수 있는 전이중 통신 방식이다.
- 충돌이 발생하지 않고 충돌 도메인의 범위도 좁다.
- 네트워크를 지연시키지 않기 위해서라도 충돌 도메인의 범위를 좁히는 것은 매우 중요하다.
- 허브를 사용하면 충돌로 인해 네트워크 지연이 발생하기 때문에 최근에는 스위치를 사용한다.
MAC 주소 학습 기능
- 스위치 내부에는
MAC 주소 테이블
이 있다.브리지 테이블
이라고도 부른다.
- MAC 주소 테이블은 스위치의 포트 번호와 해당 포트에 연결되어 있는 컴퓨터의 MAC 주소가 등록되어 있는 데이터베이스이다.
- 컴퓨터에서 수신지 MAC 주소가 추가된 프레임이 전송되면 MAC 주소 테이블을 확인하여
송신지 MAC 주소가 등록되어 있지 않으면 MAC 주소를 포트와 함께 등록한다.- 이 기능을
MAC 주소 학습 기능
이라고 부른다. - 더미 허브에는 없는 기능이다.
- 이 기능을
- 수신지의 MAC 주소가 MAC 주소 테이블에 저장되어 있지 않다면 송신 포트 이외의 모든 포트에 프레임이 전송된다.
- 이러한 프레임 전송을
플러딩(flooding)
이라고 한다.
- 이러한 프레임 전송을
- 수신지의 MAC 주소가 MAC 주소 테이블에 저장되어 있다면 수신지에만 데이터가 전송된다.
- 이처럼 MAC 주소를 기준으로 수신지를 선택하는 것을
MAC 주소 필터링
이라고 한다. - 필터링을 통해 불필요한 데이터를 네트워크에 전송하지 않기 위한 기능이다.
- 이처럼 MAC 주소를 기준으로 수신지를 선택하는 것을
출처
- 네트워크 개론 3판 (전혜진 지음)