네트워크 모델

삼식이·2022년 10월 19일
0

컴퓨터 통신

목록 보기
5/11

본 자료 정리는 '쉽게 배우는 데이터 통신과 컴퓨터 네트워크(개정판)' 원서에 출처합니다.
Copyright © 한빛 아카데미.

학습목표

  • 모듈의 개념을 알아보고, 계층 구조의 필요성을 이해한다.
  • 프로토콜을 설계할 때 고려할 사항을 알아본다.
  • 서비스 프리미티브의 필요성과 동작 원리를 이해한다.
  • OSI 7계층 모델의 동작 원리와 데이터 전달 방법을 이해한다.
  • TCP/IP의 계층 구조와 관련 프로토콜을 이해한다.

내용

  • 계층 구조의 개념
  • OSI 참조 모델
  • TCP/IP 모델

계층구조의 개념

계층적 모듈 구조

  • 모듈화

    • 복잡한 시스템을 기능별로 모듈화하면 시스템 구조가 단순해짐

    • 프로그래밍 언어에서는 함수 개념을 사용해 전체 프로그램을 모듈화함
      -> 매개변수에 의한 인터페이스로 이해가 용이함, 나만의 라이브러리 생성가능

    • 모듈화의 장점: 설계의 독립성(재활용성), 디버깅의 용이, 유지보수 성능 개선

    • 다음 그림은 시스템 모듈화의 장점: 전체 수정교체가 아닌 모듈 B만 처리

  • 계층 구조

    • 특정 모듈이 다른 모듈에 서비스를 제공하는 형식의 계층 구조: 추상화수준의 차이, Granulartiy 고려, 일의 절차나 기능으로도 구분

    • 네트워크에서도 독립적인 고유 기능을 수행하는 모듈들이 상하위의 계층 구조(Layered Structure)로 연결되어 동작

  • 모듈화된 계층 구조 프로토콜의 장점

    • 전체 시스템을 이해하기 쉽고, 설계 및 구현이 용이: 작은 시스템으로 재구성 가능

    • 모듈간의 표준 인터페이스를 제공. 이 인터페이스가 단순하면 모듈의 독립성이 향상됨 -> 모듈의 독립성은 시스템 구조를 단순화 -> 설계와 유지보수에 큰 장점이 됨

    • 전송매체 양단의 프로토콜은 좌우 대칭구조의 특징 -> 대칭 구조에서는 동일 계층 사이의 인터페이스인 프로토콜을 단순화시킬 수 있음

    • 각 계층의 오류 수정 또는 기능 개선 시, 특정 모듈만 교체하면 됨 -> 특정 모듈의 외부 인터페이스가 변하지 않으면 내부 기능의 변화가 전체 시스템의 동작에 영향을 미치지 않음

계층구조의 통신프로토콜 설계 시 고려 사항

: 대표적인 것 -> 네트워크 호스트의 주소 표현방법, 데이터 전송 오류제어(데이터 분실, 변형 등의 복구), 통신 양단의 속도를 제어하는 흐름제어

주소표현

  • 주소(Address)체계: 시스템을 구분하여 지칭하기 위해 이름을 부여하는 것

  • 주소의 역할: 서로를 구분하여 목적지를 정하기 위함

  • 주소의 활용도를 높이기 위하여 구조적 정보를 포함

    • 전화번호: 국가코드-지역코드-번호
    • 주민번호: yymmdd-abcdefg
  • 일대일(1:1) 통신이 기본

  • 다수의 호스트를 묶어 하나의 그룹주소로도 표시

  • 일대다(1:n) 통신도 지원

    • 브로드캐스팅: 모든 호스트에게 데이터 전달
    • 멀티캐스팅: 특정 호스트 그룹에게 데이터 전달

오류제어(Error Control): 전송매체의 물리적 오류, 논리적 전송 오류

  • 데이터 번형 오류: 데이터가 깨져서 도착

  • 데이터 분실 오류: 데이터가 도착하지 못함

  • 오류 제어기능은 통신 프로토콜의 가장 기본적인 기능

  • 오류가 발생하는 1차원인: 전송매체에 의한 물리적 오류(바로 위 상위계층인 데이터 링크계층에서 물리적 전송오류를 해결함)

  • 기타 상위계층의 논리적오류도 발생: 상위계층에서 해결

  • 가장 일반적인 오류복구 방법: 재전송(Retransmission)

*(b) 분실되는 경우: 전송경로 오류, 상위계층의 논리적 처리 오류, 수신 호스트가 분실되었음을 알리기 쉽지 않음 -> 송신 호스트가 오류 감지

*논리적 오류의 예: 송신 호스트가 보낸 순차적 데이터의 순서가 뒤바뀌는 경우
-> 데이터의 순서를 나타내는 순서번호 필요

흐름 제어(Flow Control)

  • 송수신 호스트의 처리속도 차이: 수신 호스트의 버퍼 처리 속도보다 송신 호스트가 데이터를 전송하는 속도가 빠르면 논리적인 데이터 분실 오류가 발생할 수 있음

    (수신 호스트의 내부 입력 버퍼 용량부족 등: 수신 호스트의 CPU가 데이터를 가져가기 전 수신호스트의 내부 입력 버퍼의 내용이 업데이트될 수 있음)

  • 따라서 송신 호스트의 전송 속도를 조절하는 흐름 제어기능이 필요: 수신 호스트의 전송허가를 확인 후, 다음 데이터를 송신호스트가 전송

데이터 전달 방식: 프로토콜 설계 시 고려사항

  • 단방향(Simplex): 데이터를 한 쪽 방향으로만 전송

  • 전이중(Full Duplex): 데이터를 양쪽에서 동시에 전송, 보통의 프로토콜이 지원하는 방식

  • 반이중(Half Duplex): 양방향으로 전송할 수 있지만, 특정 시점에서는 한쪽 방향으로만 전송, 양쪽이 동시에 전송을 못하므로 전송시점의 제어가 가능해야 함

  • 데이터 사이의 전송 우선순위 설정방법이나, 긴급 데이터 전송방식도 고려해야 함

서비스 프리미티브 (Primitive)

  • 계층 구조 프로토콜에서 하위 계층이 상위 계층에 제공하는 서비스의 종류에는 연결형비연결형이 있으며 서비스 프리미티브 형태로 구현됨

  • 연결형 서비스

    • 연결형 서비스를 이용하는 3단계: 서비스 프리미티브를 암기할 것

  • 비연결형 서비스

    • 연결을 설정하고, 해제할 필요가 없음: 우편시스템과 동일
    • 전송할 데이터가 있으면 각 데이터를 독립적으로 목적지 호스트로 전송

서비스 프리미티브의 기능

서비스 프리미티브의 동작 원리

  • Request: 연결 설정 요청, 데이터 전송 요청, 연결 해제 요청
    (= CONNECT.Request, DATA.Request, DISCONNECT.Request)

  • Indication: 연결 설정 요청, 데이터 전송 요청, 연결 해제 요청
    (= CONNECT.Indication, DATA.Indication, DISCONNECT.Indication)

  • Response: 연결 설정 요청, 데이터 전송 요청, 연결 해제 요청
    (= CONNECT.Response, DATA.Reponse, DISCONNECT.Response)

  • Confirm: 연결 설정 요청, 데이터 전송 요청, 연결 해제 요청
    (= CONNECT.Confirm, DATA.Confirm, DISCONNECT.Confirm)

OSI 참조 모델

OSI(Open System Interconnection) 7-Layer Model

  • 용어 정의
    • 계층 n 프로토콜(Protocol): 계층 n 모듈끼리 사용하는 통신 규칙
    • 동료 프로세스(Peer Process): 동일 계층에 위치한 통신 양단 프로세스
    • 인터페이스(Interface): 상하위 계층 사이의 접속 방법
    • 서비스(Service): 상위 계층을 위해 하위 계층이 제공
  • 헤더(Header) 정보
    • 송신 호스트: 데이터가 상위 계층에서 하위 계층으로 갈수록 헤더 추가
    • 수신 호스트: 데이터가 하위 계층에서 상위 계층으로 갈 수록 헤더 제거

  • 중개 기능: 중개 노드에서 네트워크 계층의 프로토콜까지 동작
    • 라우팅: 경로 배정 기능, 라우터 좌우의 네트워크가 다를 경우 헤더 정보 값을 변환하는 작업도 라우터가 수행함

계층 별 기능: 전송 계층이 제일 중요 -> End-to-End 프로세스 연결
: 1~4 계층은 OS 내부에서 처리, 5~7 계층은 사용자 프로그램으로 구현

  • 물리 계층 (Physical Layer)

    • 전송 매체물리적 인터페이스에 관한 사항을 기술
    • 데이터 전송 속도, 송수신 호스트 사이의 클록 동기화 방법, 물리적 연결 형태
  • 데이터 링크 계층 (Data Link Layer)

    • 데이터의 물리적 전송 오류를 해결
    • 프레임(Frame): 전송 데이터의 명칭
    • 헤더에 LAN카드의 MAC주소 기록
  • 네트워크 계층 (Network Layer)

    • 송신 호스트가 전송한 데이터가 어떤 경로를 통해 수신 호스트에 전달되는지를 결정하는 라우팅 문제를 처리
    • 호스트 구분을 위한 호스트의 IP 주소가 경로 선택의 중요한 기준
    • 패킷(Packet): 전송 데이터의 명칭
    • 혼잡 제어(Congestion Control): 데이터 전송 경로의 선택에 따라 네트워크 혼잡(Traffic)에 영향을 미침
  • 전송 계층 (Transport Layer)

    • 송신 프로세스와 수신 프로세스를 직접 연결하는 단대단(End-to-End) 통신 기능 제공
    • 컴퓨터 내부에 논리적으로 구축된 통신 프로세스 사이의 통신 문제
    • 전송 오류율, 전송 속도 등 일반적 사용자 서비스 요구사항에 대한 고려와 흐름 제어 기능도 제공
  • 세션 계층 (Session Layer)

    • 전송 계층과 유사
    • 송수신 호스트 사이의 대화 제어를 비롯 상호 배타적인 동작을 제어하기 위한 토큰 제어, 일시적인 전송 장애를 해결하기 위한 동기 기능 등 제공
    • 원격 파일 전송이나 원격 로그인 등의 상위적 연결개념인 세션 기능 제공
  • 표현 계층 (Presentation Layer)

    • 데이터의 의미(semantic)와 표현 방법(syntax)을 처리, 표준방식으로 데이터를 코딩하는 문제를 다룸
    • 데이터 암호화, 압축 등
  • 응용 계층 (Application Layer)

    • 최상위, 다양하게 존재하는 응용 환경에서 공통으로 필요한 기능을 다룸
    • 대표적인 인터넷 서비스: FTP(파일 공유 서비스), Telnet, 전자 메일

TCP/IP 모델

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

  • TCP(연결형 서비스 제공)UDP(비연결형 서비스 제공)는 시스템 운영체제인 커널 내부에 구현됨

  • 네트워크 계층은 IP로 구현, 전송 패킷의 올바른 경로 선택 기능을 제공

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

  • 사용자 프로그램으로 구현

  • 전송 계층의 기능을 제공하는 소켓(socket) 시스템 콜을 호출해 TCP와 UDP 기능을 사용: Socket Interface라는 전송계층의 프리미티브를 사용하여 응용 프로그램을 작성

  • 프로그램에서 소켓 사용시 소켓마다 부여되는 고유주소인 포트번호를 관리해야함: 포트번호 하나와 사용자 프로그램 하나가 일대일로 대응
    -> 인터넷 응용 프로그램의 고유주소 = IP주소+포트번호

TCP/IP 계층 구조

  • TCP/UDP: 사용자 데이터를 전송하는 전송 계층 프로토콜
  • IP: 사용자 데이터를 전송하는 네트워크 계층 프로토콜
    • 오류 정보를 전송하는 목적으로 ICMP를 사용
    • ICMP, ARP: IP 주소 -> MAC 주소
    • RARP: MAC 주소 -> IP 주소

ARP와 RARP

  • ARP: IP 주소를 이용하여 MAC 주소로 변환
  • RARP: MAC 주소를 IP 주소로 변환, 하드디스크가 없는 시스템의 경우 필요

ICMP

  • 오류 메세지를 전송하는 프로토콜
  • IP 프로토콜에 캡슐화되어 전송됨

수정해야될 사항이 있을경우 댓글로 알려주세요 :)

profile
I want to be coool and chilll developer...

0개의 댓글