뚝딱햄 탈출기

[인터넷공학] Chap 2. 네트워크 개념 본문

데이터 통신 & 컴퓨터 네트워크

[인터넷공학] Chap 2. 네트워크 개념

hyrmzz1 2023. 5. 3. 21:33

인터넷 공학(2) 수업에 사용되는

쉽게 배우는 데이터 통신과 컴퓨터 네트워크 [3판] / 박기현 / 한빛 아카데미

교재에 대한 연습문제를 정리한 내용이다.


모듈화

  • 기능별로 모듈화→ 시스템 구조 단순해짐→ 전체 시스템 이해 용이
  • 일반 프로그래밍 언어에서는 함수 개념을 사용해 전체 프로그램을 모듈화한다.
  • 함수 사이의 인터페이스는 함수의 매개변수에 의해서만 이루어지므로 전체 시스템 이해하기 용이하다. 
    (함수의 역할이 매개변수로 추상화되어 내부 구조를 이해하지 않고도 이해할 수 있으니까)
  • 각 모듈은 독립적으로 동작하면서도 정해진 인터페이스에 유기적으로 연결. 
    (인터페이스가 모듈들 서로 연동되어 동작시키게 함.)
  • 모듈 구조는 서로 동등한 위치에서 서비스 주고받을 수도 있고, 특정 모듈이 타 모듈에 서비스 제공하는 계층 구조를 이루기도 한다.

계층 구조

  • 네트워크에선 독립적인 고유 기능을 수행하는 모듈들이 상하 계층 구조로 연결되어 동작한다. 
    상위 계층이 하위 계층에 특정 서비스 요청. 하위 계층이 상위 계층에 서비스 제공.
  • 네트워크에서 통신하는 시스템들은 계층 구조로 모듈화된 기능이 동작하는데, 같은 계층끼리 데이터를 전달하는 전달 규칙이 프로토콜이다.
  • 상하 계층에 인접한 모듈 사이의 인터페이스를 포함하여 분할된 모듈이 연동할 수 있는 표준 인터페이스를 제공한다.
  • 전송 매체 양단에 있는 호스트가 수행하는 프로토콜들은 좌우 대칭 구조.
  • 개별 계층의 기능 오류를 수정하거나 향상시켜야 하는 경우 해당 계층의 모듈만 교체하면 된다. 시스템 재작성 X. // 장점
  • 계층 구조의 프로토콜 설계시 고려할 요소로는 네트워크 호스트의 주소 표현 방법, 오류 제어, 흐름 제어가 있다.

주소 표현

  • 여러 호스트가 연결된 환경에서 특정 호스트끼리 통신하려면 상대 구분 가능해야하므로 호스트마다 주소 하나씩 부여한다.
    다수의 호스트 묶어 하나의 그룹 주소로 표기하기도 함. (화상 회의 등을 지원하기 위해)
  • 일대다 통신의 대표적 유형은 브로드 캐스팅 표기 방법과 멀티캐스팅 표기 방법이 있다.
    • 브로드 캐스팅 유형→ 네트워크에 연결된 모든 호스트에 데이터 전송
    • 멀티 캐스팅 유형→ 특정 사용자를 그룹으로 묶어 지칭.

오류 제어

  • 전송 오류에는 데이터 변형 오류(데이터 깨져서 도착)와 데이터 분실 오류(데이터 도착 X)가 있다.
  • 오류의 발생 사실을 인지한 후 재전송 기능을 이용해 오류 복구 절차 진행.
  • 데이터 분실 원인에는 전송 경로가 잘못되어 데이터가 잘못 전달되거나, 상위 계층의 논리적 처리 과정에서의 분실이 있다.
  • 데이터 변형 오류가 발생하면 수신 호스트가 CRC 방식 등의 오류 검출 기법을 이용해 오류를 검출할 수 있다.
  • 데이터 변형 오류는 수신 호스트 주도로, 분실 오류는 송신 호스트 주도로 이루어진다.
  • 수신 호스트에서 도착 순서를 바로잡으려면 데이터의 논리적 순서를 의미하는 순서번호 기능이 필요하다.
  • 송신 호스트에서 보낸 데이터가 수신 호스트에 도착했을 때 세가지 유형의 현상이 발생할 수 있다.
    데이터가 오류없이 도착하는 정상적인 경우 / 데이터가 수신 호스트에 도착하지 못하는 데이터 분실 오류 / 데이터의 내용이 변경되어 도착하는 데이터 변형 오류.

흐름 제어

  • 전송 매체에서 물리적 오류가 없는데도 데이터가 분실되는 경우는 송수신 호스트 사이의 데이터 전송/처리 속도 차이 때문이다. 
    (수신호스트의 버퍼 처리 속도보다 송신 호스트의 전송 속도가 빨라 수신 호스트가 버퍼에 저장된 데이터 처리 못한 상태에서 새로운 데이터 수신되어 일시적으로 저장할 공간 없기 때문.)
  • 흐름 제어 기능은 송신 호스트의 전송 속도를 조절하여 데이터 분실 오류를 막는다.
  • 흐름 제어에서 송신 호스트가 데이터를 전송하려면 반드시 수신 호스트로부터 명시적인 전송 허가를 받아야 한다.
  • 일반적으로 송신 호스트는 속도를 높이기 위해 동시에 여러 전송 데이터를 송신할 수 있고, 수신 호스트가 데이터 개수를 통제한다.

데이터 전달 방식

  • 전이중 방식 : 양쪽에서 데이터를 동시에 전송. 일반적인 통신 프로토콜들이 모두 지원하는 방식.
  • 단방향 방식 : 데이터를 한 방향(왼/오)으로만 전송.
  • 반이중 방식 : 데이터가 양방향으로 전송되나 특정 시점에서 한 방향으로만 전송할 수 있는 방식.

서비스 프리미티브

  • 연결형 서비스에는 연결 설정 단계(데이터 전달 경로 설정), 데이터 전송 단계, 연결 해제 단계가 필요. 비연결형 서비스에는 연결 해제 단계 필요 없음.(설정 단계는 필요)
  • 데이터는 독립적인 경로 선택 과정에 의해 전달되므로 도착 순서와 보낸 순서가 일치하지 않을 수 있다.
  • 클라이언트와 서버 사이에서 서비스 프리미티브의 기능은 Request, Indication, Response, Confirm으로 구성.
  • 클라이언트에서 서버로 전달되는 요청은 Request(요청)와 Indication(요청 도착 통지)으로 구현되고, 서버의 응답은 Response(응답 회신)와 Confirm(응답 도착 통지)로 구현된다.
  • 클라이언트의 상위 계층이 하위 계층에 Request 요청시 이 요청은 하위 계층 아래의 차하위 계층의 도움을 받아 서버의 하위 계층에 전달됨. → 이를 서버의 상위 계층에 Indication 형태로 전달해 서버가 클라이언트 요청 인지. / 서버에서 해당 프리미티브를 올바르게 수신하였음을 Response 통해 클라이언트에게 통보 → 클라이언트에 Confirm 형태로 도착

OSI 7계층 모델

  • 국제 표준화 기구인 ISO가 확립. 개방화된 데이터 통신 환경에 적합한 계층적 구현 모델의 표준.
  • 전송 데이터는 송신 호스트의 7계층에서 1계층으로 순차적 전달되어 최종적으로 1계층에서 수신 호스트에 전달됨. 수신 호스트에서는 데이터를 상위 계층으로 순차적으로 이동시켜 7계층까지 보내준다.
  • 데이터가 하위 계층으로 내려갈 때 각 계층의 프로토콜에서 정의한 헤더 정보가 부여된다.
  • 송신 호스트와 수신 호스트 사이 다수의 라우터 등이 중개 기능 수행.
  • 임의의 호스트에서 실행되는 계층n 모듈은 상태 호스트의 계층n 모듈과 논리적으로 통신하는데, 이들이 사용하는 규칙이 계층n 프로토콜이다.
  • 동일 계층에 위치한 통신 양단은 같은 프로토콜을 사용하여 통신하므로 동료 프로세스라 한다.
    한 호스트에서 상하로 이웃하는 계층에 위치한 모듈 사이엔 인터페이스가 정의되어 둘 사이의 접근 방법을 제한함.
  • 물리 계층은 전송 매체의 물리적 인터페이스에 관한 사항을 기술.
  • 데이터 링크 계층은 물리 계층을 통해 전송되는 데이터의 물리적 전송 오류를 해결.
    → 상위 네트워크 계층에 신뢰성 있는 패킷 전송 보장.
  • 네트워크 계층은 라우팅 문제(송신 호스트가 전송한 데이터가 어떤 경로를 통해 수신 호스트에 전달되는지를 결정)를 처리하고 네트워크 트래픽이 과도하게 증가하는 문제를 조절하는 혼잡제어 기능도 담당한다.
    라우팅 문제 처리하므로 경로 선택의 기준이 되는 호스트 주소 필요.
  • 전송 계층은 송신 프로세스와 수신 프로세스를 직접 연결하는 단대단 통신 기능 제공.
  • 세션 계층의 기능은 전송 계층와 거의 유사하나, 세션 기능(원격 파일 전송, 원격 로그인 등의 상위적 연결 개념)을 제공한다는 점이 다르며, 전송 계층의 연결이 일시적으로 끊겼을 때 이를 복구해 유지될 수 있도록 한다.
  • 표현 계층은 데이터의 의미와 표현 방법을 처리. 통신 양단에서 서로 이해 가능한 표준 방식으로 데이터를 코딩.
  • 데이터 링크 계층을 통해 전송되는 데이터는 프레임이라 한다.
    프레임 헤더에 표시되는 송수신 호스트 정보에는 LAN 카드에 내장된 송수신 호스트의 MAC 주소가 기록된다.
  • 네트워크 계층에서는 전송 데이터를 패킷이라 한다.
    전송되는 패킷이 지나치게 많으면 네트워크 전송 속도가 떨어진다.

인터넷 모델의 구현 환경

  • 인터넷에 연결하고자 하는 호스트는 반드시 IP 프로토콜을 지원해야 하며 전송 계층은 TCP(연결형 서비스 제공)나 UDP(비연결형 서비스 제공)를 사용.
  • 전송 계층 프로토콜(TCP, UDP)은 시스템 운영체제인 커널 내부에 구현되므로 일반 사용자가 이 기능 직접 이용할 수 없어 소켓 인터페이스라는 전송 계층의 프리미티브를 이용해야 한다.
  • 인터넷은 데이터의 중개 기능을 담당하는 네트워크 계층. 따라서 IP 프로토콜을 사용하고, 전송 패킷의 올바른 경로 선택 기능을 제공한다.
  • 세션 계층부터 응용 계층까지의 기능은 사용자 응용 프로그램으로 구현된다.
  • 프로그램에서 소켓을 사용할 때는 소켓마다 부여되는 고유 주소인 포트 주소를 관리해야 한다.
  • IP 주소는 호스트를 구분하는 주소 역할을 하고, 포트 번호는 특정 호스트에서 실행되는 네트워크 프로세스를 구분하는 주소 역할을 한다.

ARP와 RARP

  • 계층 2 프로토콜 이용해 데이터 전송하려면 수신 호스트의 MAC 주소가 필요.
  • 인터넷 모델에서 사용하는 주소는 데이터링크 계층의 MAC 주소, 네트워크 계층의 IP 주소, 전송 계층의 포트 번호이다.
  • 송신 호스트의 MAC 주소는 호스트의 네트워크 설정 과정에서 LAN 카드 내에 저장된다.
  • 수신 호스트의 IP 주소는 응용 프로그램의 사용자로부터 입력된 호스트 이름을 IP 주소로 변환하여 얻을 수 있다.
  • ARP는 사용자로부터 입력된 수신 호스트의 IP 주소를 통해 MAC 주소를 구하는 기능을 담당한다.
  • 송신 호스트 자신의 IP주소, MAC주소는 쉽게 얻을 수 있으나 수신 호스트의 MAC 주소 정보는 얻을 수 없기 때문에 ARP가 필요하다.
  • 파일 시스템이 존재하지 않는 특수 목적의 시스템은 LAN 카드에 내장된 자신의 MAC 주소는 알지만 자신의 IP 주소는 알지 못하므로 MAC 주소를 IP 주소로 변환하는 RARP가 필요하다.

ICMP

  • ICMP는 사용자 데이터의 전송 과정에서 오류 발생시 생성되는 오류 메세지를 송신호스트에 전송한다. 
    (데이터 전송 프로토콜인 IP가 동작하는 과정에서 전송 오류 발생시 송신자에게 회신해 복구 작업 하도록 해야 함.)
  • ICMP 프로토콜은 오류 메시지를 전송하기 위한 별도의 헤더 구조를 가지며, IP 패킷에 캡슐화 되어 전송되나 네트워크 계층으로 취급된다.
Comments