ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Network] OSI 참조 모델과 TCP/IP모델
    Network/Network 2023. 2. 10. 21:22

     

    OSI 7계층 모델

    네트워크에 연결된 컴퓨터들이 데이터를 주고받으려면 서로 연동할 수 있게 표준화된 인터페이스를 지원해야 한다. 일반적으로 컴퓨터 네트워크에서 계층 구조로 모듈화된 프로토콜 스택을 사용한다.

    국제 표준화 기구인 ISO가 확립한 OSI(Open System Interconnection) 7계층 모델은 개방화된 데이터 통신 환경에 적합한 계층적 구현 모델의 표준이다.

    OSI 7계층 모델

    ISO(International Standard Organization)에서 제시한 OSI 7계층 모델은 연결된 두 호스트가 각각 7개 계층으로 구성된 모듈을 수행함으로써 데이터 송수신이 가능하다.

     

    전송 데이터는 송신 호스트의 응용계층에서 시작해 하위 계층으로 순차적으로 전달되어, 최종적으로 물리 계층에서 수신 호스트에 전달된다. 수신 호스트의 물리 계층에 도착한 데이터는 다시 역순으로 물리 계층에서 시작해 상위 계층으로 순차적으로 전달되어, 최종적으로 응용 계층에 도착하게 된다.

     

    동일 계층에 위치한 통신 양단은 같은 프로토콜을 사용하여 통신하기 때문에 동료 프로세스라고 한다.

    동료 프로세스가 논리적으로 통신하려면 계층n프로토콜이 필요하다. 여기서 프로토콜은 프로토콜에서 정의된 기능을 수행하면서 필요한 정보를 서로 교환한다. 프로토콜의 기능을 원활하게 수행하려면 앞 장에서 언급한 주소 표현 방법, 오류제어, 흐름제어, 데이터 전달 방식 등의 기능이 설계와 구현 과정에서 반영되어야 한다.

     

    한 호스트에서 상하로 이웃하는 계층에 위치한 모듈 사이에는 인터페이스가 정의되어 둘 사이의 접근 방법을 제한한다. 인터페이스를 이용하여 하위계층에서 상위계층으로 서비스를 제공할 수 있다.

     

    송신 호스트에서 데이터를 전달할 때는 동료 프로세스에서 직접 전달하는 것이 아니라 하위 계층을 통해 간접적으로 서비스를 요청하는 것이다. 즉, 실제로는 항상 송.수신 호스트의 물리 계층에서 데이터가 전송되는 것이다.

     

         1. 헤더 정보

    전송 데이터는 송신 호스트의 응용계층에서 시작해 물리 계층을 거쳐 수신 호스트의 응용 계층에 전달된다고 했다.

    이 때 데이터를 전송할 때 프로토콜을 사용하는데, 각 계층마다 프로토콜에 헤더 정보를 추가해서 전달한다.

     

    위의 OSI 7계층 모델을 참고해서 보면, 송신 호스트에서 응용 계층에서 하위 계층으로 보낼 때마다 자기 계층의 헤더를 추가하는 것을 볼 수 있다. 전송 데이터는 데이터 물리 계층까지 헤더가 추가되어 물리 계층에서는 수신 호스트에 데이터를 실제로 전송하고, 이를 수신한 호스트에서는 송신 절차와 반대 방향으로 헤더를 제거하는 과정이 반복된다.

    즉, 계층별로 해당 계층의 헤더 정보를 해석하여 적절히 처리한 후에 상위 계층으로 올려준다. 이렇게 송신 호스트에서 계층별로 추가된 헤더 정보가 수신 호스트에서 해석 및 삭제되어 최상위 수신자는 원래의 전송 데이터만 받게 된다.

     

     

     

     

     

     

    계층별 기능

    1. 물리 계층
    • 전송 매체의 물리적 인터페이스에 관한 사항을 기술한다. 즉, 전송 매체에서는 개별 정보의 비트 교환 문제를 다룬다.
    • 물리계층에서 다루는 전송 매체의 특성에는 데이터의 전송 속도, 송수신 호스트 사이의 클록 동기화 방법, 물리적 연결 형태 등이 있다.

    2. 데이터 링크 계층

    • 물리 계층을 통해 전송되는 데이터의 물리적 전송 오류를 해결한다.
    • 전송 경로를 선택할 수 없으므로 두 호스트가 일대일로 직접 연결된 환경에서만 데이터 전송을 지원한다.
    • 데이터 링크 계층을 이용해 전송되는 데이터를 프레임이라 부르는데, 프레임 헤더에 표시되는 송수신 호스트 정보에는 LAN 카드에 내장된 송수신 호스트의 MAC 주소가 기록된다.
    • 데이터 링크 계층은 송.수신 호스트 사이의 전송 속도 차이를 고려한 흐름 제어 기능을 지원한다.

    3. 네트워크 계층

    • 송신 호스트가 전송한 데이터가 어떤 경로를 통해 수신 호스트에 전달되는지를 결정하는 라우팅 문제를 처리한다.
    • 네트워크 계층에서 전송되는 데이터를 패킷이라 부르며, 중개 과정에서 경로 선택의 기준이 되는 호스트 주소가 필요하다.
    • 컴퓨터 네트워크를 이용해 전송되는 패킷이 지나치게 많으면 네트워크의 전송 속도가 떨어진다. 네트워크의 전송 속도가 감소하면 프로토콜 동작에 많은 영향을 미칠 수 있는데, 네트워크의 트래픽이 과도하게 증하가는 문제를 조절하는 혼잡 제어 기능을 담당한다.

    4. 전송 계층

    • 송신 프로세스와 수신 프로세스를 직접 연결하는 단대단 통신 기능을 제공한다.
    • 송신 측에서 전송할 데이터를 패킷으로 분할한다. 수신측에서는 분할된 패킷을 다시 조합해서 본래의 자료로 만들고 상위 계층으로 전달한다.
    • 전송 오류율, 전송 속도 등과 같은 일반 사용자의 서비스 요구 유형에 대한 고려와 흐름 제어 기능을 제공한다.

    5. 세션 계층

    • 응용 계층 사이에 연결을 설정하고, 유지, 종료하는 기능을 수행한다. 이를 위해 전송 계층으로 전송할 자료의 순서를 결정하고, 자료의 점검이나 복구를 위해 동기 위치등을 지정한다.
    • 송수신 호스트 사이의 대화 제어를 비롯해 상호 배타적인 동작을 제어하기 위한 토큰 제어, 일시적인 전송 장애를 해결하기 위한 동기기능 등을 제공한다.

    6. 표현 계층

    • 호스트의 데이터 표현 방법이 서로 다르면 상대방의 데이터를 이해할 수 있도록 변환과정이 필요하다. 표현계층에서는 데이터의 의미(Semantic)와 표현 방법(Syntax)을 처리한다. 즉, 통신 양단에서 서로 이해할 수 있는 표준 방식으로 데이터를 코딩하는 문제를 다룬다.
    • 암호화, 압축 기능을 다룬다

    7. 응용 계층

    • 응용 프로세스를 네트워크에 연결할 수 있게 해서 자료를 송수신할 수 있는 창구를 제공한다.
    • 사용자가 이메일을 전송하거나 웹 브라우저를 통해 웹 서버에 연결하면 해당 서비스는 응용계층에서 SMTP, POP3, HTTP등의 프로토콜을 이용해 서비스 한다.

     

     

     

     

     

     

     

    TCP/IP 모델

    source:  https://goitgo.tistory.com/25
     

    위 그림은 OSI 7계층 참조모델과 TCP/IP모델을 비교한 것이다. OSI 참조모델은 7계층, TCP/IP모델은 4계층으로 나뉜 것을 알 수 있다.

    TCP/IP 모델과 OSI 참조 모델은 관련있지 않다. OSI 참조모델은 OSI 표준 프로토콜군을 만들기 위한 설계도 이기 때문에 TCP/IP 프로토콜군에는 아무런 영향이 없다.

     

     

    인터넷은 데이터의 중개 기능을 담당하는 네트워크 계층으로 IP프로토콜(Internet Protocol)을 사용하는 네트워크이다. 따라서 인터넷에 연결하고자 하는 호스트는 반드시 IP 프로토콜을 지원해야 하며, 전송계층은 TCP(Transmission Control Protocol)나 UDP(User Datagram Protocol)를 사용한다.

     

    인터넷에 연결된 컴퓨터의 네트워크 구현 모델에서는 전송 계층까지의 기능을 시스템 공간인 운영체제 내부에 구현한다. 즉, 인터넷 환경에서 사용하는 TCP/IP와 하위 계층의 기능을 담당하는 LAN 카드 드라이버 루틴은 운영체제 영역에 속한다. TCP/IP를 이용하려면 사용자 공간에서 네트워크 응용 기능을 지원하는 프로그램을 작성해야 한다.

     

     

         1. TCP/IP 구현 환경

    시스템 공간(계층1~계층4)

    TCP와 UDP는 시스템 운영체제인 커널 내부에 구현되므로 일반 사용자가 이 기능을 직접 이용할 수 는 없다. 대신 소켓 인터페이스라는 전송 계층의 프리미티브를 이용해야 하는데 소켓은 운영체제에서 시스템 콜 기능으로 구현되므로 사용자 프로그램에서 이를 호출하는 방식으로 사용한다. TCP는 연결형 서비스 제공, UDP는 비연결형 서비스를 제공한다.

    인터넷에서 네트워크 계층은 IP로 구현되며, 네트워크 계층은 전송 패킷이 올바른 경로 선택 기능을 제공한다. 네트워크 계층 아래의 계층들은 LAN 카드와 LAN 카드를 구동하는 드라이버 루틴에 의해 구현된다.

     

    사용자 공간(계층5~계층7)

    프로그래밍 환경에서 전송 계층의 기능을 제공하는 소켓 시스템 콜을 호출해 TCP와 UDP 기능을 사용할 수 있다. 소켓 시스템은 유닉스, 리눅스, 윈도우즈 운영체제 등 인터넷에 접속 가능한 모든 호스트에서 제공한다.

    프로그램에서 소켓을 사용할 때는 소켓마다 부여되는 고유 주소인 포트 번호를 관리해야 한다. 응용 환경에 따라서 포트 번호와 사용자 프로그램을 일대일 대응할 수도 있고 포트 번호를 여러 개 할당할 수도 있다.

    * 인터넷 응용 프로그램의 고유 주소는 IP주소와 포트번호의 조합으로 구성된다.

     

     

         2. TCP/IP 계층 구조

    TCP/IP 계층 구조

    TCP/IP를 사용하는 인터넷 환경에서 관련 프로토콜들의 계층 구조를 설명한 것이다.

    맨 위의 응용 프로그램은 TCP와 UDP를 사용해 데이터 송수신 기능을 수행하지만, 네트워크 계층의 IP프로토콜을 직접 사용하기도 한다. ICMP와 ARP/RARP는 네트워크 계층에 소속되어 IP동작을 도와준다.

     

     

     

     

     

     

     

    TCP/IP 프로토콜군

    source:  https://dokydoky.tistory.com/2

    위의 그림은 TCP/IP 프로토콜군을 나타낸 것이다.

     

         1. ARP/RARP

    ARP(Address Resolution Protocol) : TCP/IP 모델에서 사용하는 주소는 데이터 링크 계층의 MAC 주소, 네트워크 계층의 IP 주소, 전송 계층의 포트 번호이다. IP 주소와 MAC 주소는 프로토콜의 동작 특성상 몇 가지 고려할 사항이 있다. 일반적으로 송신 호스트는 자신의 IP 주소와 MAC 주소는 쉽게 얻을 수 있지만, 수신자의 주소를 얻으려면 몇 단계의 처리 과정이 필요하다. 먼저, 상대방 호스트의 IP 주소는 응용 프로그램의 사용자로부터 입력되지만 MAC 주소 정보는 어디에서도 얻을 수 가 없다. 따라서 사용자로부터 입력된 상대방 호스트의 IP 주소를 이용해 MAC 주소를 구하는 기능이다.

     

    RARP(Reverse Address Resolution Protocol) : 호스트의 IP주소는 컴퓨터 설정 작업의 초기화 과정에서 특정 파일에 보관된다. 하지만 하드디스크가 없는 시스템은 LAN 카드에 내장된 자신의 MAC 주소는 알지만, 파일 시스템이 존재하지 않기 때문에 IP 주소를 알 수 없다. 이 때 MAC 주소를 이용하여 IP 주소로 변환하는 기능이다.

     

         2. ICMP/IGMP

    ICMP(Inernet Control Message Protocol) : IP가 동작하는 과정에서 전송 오류가 발생하면 반드시 송신자에게 회신해 복구 작업을 해야 하는데, 이 작업을 ICMP이라고한다. 오류 메시지를 전송하기 위한 별도의 헤더 구조를 가지며, IP 패킷에 캡슐화되어 전송되지만 IP와 같은 계층으로 취급된다.

     

    'Network > Network' 카테고리의 다른 글

    [Network] 네트워크 기초 개념  (0) 2023.02.17
    [Network] 계층구조의 개념  (0) 2023.02.09
Designed by Tistory.