뚝딱햄 탈출기

[인터넷공학] Chap 1. 네트워크 기초 본문

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

[인터넷공학] Chap 1. 네트워크 기초

hyrmzz1 2023. 5. 3. 21:27

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

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

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


네트워크 기초 용어

  • 네트워크는 하드웨어적인 전송 매체를 매개로 서로 연결되어 데이터를 교환하는 시스템의 모음이다.
  • 네트워크는 서로 다른 기기(컴퓨터, 스마트폰, IPTV 등)가 통신하기 위해 유선 혹은 무선으로 연결되어 있는 것으로, 라우터와 같은 네트워크 장치를 통해 연결된다. 컴퓨터가 1 대 1로 연결된 것도 네트워크 !
  • 시스템과 전송 매체의 연결 지점에 대한 규격은 인터페이스이다.
  • 시스템이 데이터를 교환할 때는 소프트웨어적으로 동작하는 통신 규칙인 프로토콜이 필요하다.
  • 인터페이스와 프로토콜은 서로 다른 시스템을 상호 연동해 동작시키기 위함이니, 연동 형식의 통일(=표준화)이 필요하다.
  • 인터넷은 여러 네트워크가 서로 연결된 것이다.

프로토콜/인터페이스

  • 논리적으로 상호 연동되는 시스템이 전송 매체를 통해 데이터를 교환할 때는 표준화된 대화 규칙을 따른다. → 프로토콜.
  • 프로토콜은 상하관계가 아닌 동등한 위치에 있는 시스템 사이의 규칙이다.
  • 인터페이스는 두 시스템이 연동하기 위한 특정한 접촉 지점을 의미하는 경우가 많지만, 프로토콜과 비교하여 인용될 때는 상하 개념이 적용된다.
  • 프로토콜은 주고받는 데이터의 형식과 그 과정에서 발생하는 일련의 절차적 순서에 무게를 둔다.
  • 네트워크 계층 모델 구조에서 인터페이스는 상하 계층 사이의 관계를 다루고, 프로토콜은 동등 계층 사이의 관계를 다룬다.

시스템

  • 노드는 컴퓨터 이론 분야에서 특정 시스템을 가리키는 가장 일반적인 용어로 사용된다.
  • 노드는 인터넷 내부를 구성하는 라우터와 인터넷 바깥쪽에 연결되어 데이터를 주고받는 호스트로 구분된다.
    라우터는 데이터 전송 기능을 포함한다.
  • 라우터의 주요 역할은 데이터 중개 기능이며, 인터넷 바깥쪽에 연결된 호스트들 사이의 데이터 전송이 인터넷 내부에서 최적의 경로를 통하여 이루어지도록 한다.
  • 호스트는 인터넷 바깥쪽에서 연결되어 일반 사용자들의 네트워크 접속 창구 역할을 한다.
  • 호스트는 호스트 사이에 제공되는 서비스를 기준으로 클라이언트(→서비스 요청)와 서버(→서비스 제공)로 나눌 수 있다.
  • 클라이언트는 요청하는 호스트, 서버는 요청에 응답하는 호스트.
  • 클라이언트는 임의의 인터넷 서비스를 이용하는 응용 프로그램이고, 서버는 서비스를 제공하는 응용 프로그램이다.
    둘의 개념은 서비스 단위로 이루어지며 “특정 서비스 기준으로 상대적 관점에서 사용하는 언어”
    → 임의의 호스트가 서버나 클라이언트로 고정 X\
  • 클라이언트가 서버에 요청을 보내면, 서버는 그 요청을 처리하고 결과를 클라이언트에게 반환하는 형태로 작동한다.
  • 서비스를 다른 클라이언트가 접근할 수 있도록 게시하는 것을 호스팅이라고도 한다.

OSI 7계층 모델

  • 다수의 시스템을 서로 연결해 통신하려면 선행적으로 연결 방식을 표준화해야 한다.
  • 국제 표준화 단체인 ISO 에서 제안한 모델으로, 네트워크에 연결된 시스템이 갖추어야할 기본 구조와 기능을 상세히 정의하고 있다.
  • 네트워크에 연결된 호스트들은 7개 계층으로 모듈화된 전송 기능을 갖추어야 한다.
  • 일반 사용자는 OSI 7계층 맨 위에 있는 응용계층을 통해 데이터의 송수신을 요청한다.
  • 데이터 전송 과정에서 송수신 호스트 사이의 라우터들이 중개 기능을 수행한다. 
    일반적으로 라우터는 하위 3개 계층의 기능만 수행한다.
    (→1,2,3계층. 리피터→1계층, 브리지→1,2계층 기능 수행.)
  • 계층 1~4의 기능은 운영체제에서 시스템 콜 형태로 상위 계층에 제공하며, 계층 5~7의 기능은 응용 프로그램으로 작성된다.
  • 1~4계층은 호스트의 운영체제 내부에서 구현되고, 5~7계층의 기능은 사용자 응용 프로그램으로 구현된다.

물리 계층 (1)

  • 호스트를 전송 매체와 연결하기 위한 인터페이스 규칙과 전송 매체의 특성을 다룬다.

데이터 링크 계층 (2)

  • 물리 계층의 오류에 관한 오류 제어 기능을 수행하며 이를위해 오류의 발생 사실을 인지하는 기능과 오류 복구 기능이 필요하다.
    • 대표적인 물리적 오류로는 데이터 분실과 데이터 변형이 있다. 
    • 일반적으로 컴퓨터 네트워크에서 오류복구는 송신자가 원래의 데이터 재전송하는 방식으로 처리한다.

네트워크 계층 (3)

  • 송신 호스트가 전송한 데이터가 호스트까지 안전히 도착하려면 여러개의 중개 시스템인 라우터를 거쳐야 하는데, 이 과정에서 데이터가 올바른 경로를 선택할 수 있도록 지원한다.

전송 계층 (4)

  • 송신 프로세스와 수신 프로세스 간의 연결 기능을 제공하기 때문에 프로세스 사이의 안전한 데이터 전송을 지원한다.

세션 계층 (5)

  • 전송 계층에서 제공하는 연결의 개념과 유사하나 더 상위의 논리적 연결인 세션 연결을 지원한다.

표현 계층 (6)

  • 전송되는 데이터의 의미를 잃지 않도록 올바르게 표현하는 방법을 다룬다.
    → 정보를 교환하는 호스트들이 표준화된 방법으로 데이터를 인식할 수 있게 해줌.
  • 압축과 암호화 기능을 중요하게 다룬다.
    • 대용량 멀티미디어 데이터를 압축하여 전송하면 전송 데이터 양은 줄일 수 있다.
    • 암호화는 외부의 침입자로부터 데이터를 안전하게 보호하는 네트워크 보안 기능이다.

응용 계층 (7)

  • 일반 사용자를 위한 다양한 네트워크 응용 서비스를 지원한다.

인터넷 계층 모델

  • IP 프로토콜이 네트워크 계층의 기능을 수행한다.
  • TCP와 UDP 프로토콜은 전송 계층의 기능을 수행한다.
  • IP, TCP, UCP 프로토콜은 인터넷 환경에서 사용자 데이터를 전송하는 핵심 역할을 한다.
  • 전송 계층 이하의 프로토콜들은 호스트의 운영체제 내부에서 구현된다.
  • 프로토콜 스택은 계층 구조로 이루어진 통신 프로토콜의 집합이다.
  • 통신하는 호스트 사이에는 중개 기능을 수행하는 라우터들이 존재할 수 있다.
  • 인터넷은 전 세계 모든 네트워크가 유기적으로 연결되어 동작하는 통합 네트워크이다.
    (= 인터넷은 IP 프로토콜을 지원하는 전세계 모든 네트워크가 반복 구조로 연결된 시스템)
  • 인터넷은 데이터 전달 기능으로 IP 프로토콜을 사용한다.
  • 인터넷에서는 IP 프로토콜(→네트워크 계층 기능 수행)이 중개 기능을 수행하므로 라우터에는 계층 3까지의 프로토콜이 구현되어 있다.

인터네트워킹 장비

  • 네트워크와 네트워크의 연결을 인터네트워킹이라 하며 연결되는 네트워크 수가 증가할수록 복잡도가 커진다.
  • 리피터는 한쪽에서 입력된 신호를 단순 증폭하여 다른 쪽으로 중개한다. 전송 과정에서 발생하는 물리적 오류 문제는 다루지 않는다.
  • 브리지는 리피터 기능에 데이터 링크 계층의 기능이 추가된 것. 물리 계층에서 발생한 오류를 해결한다.
  • 라우터는 물리, 데이터링크, 네트워크 계층의 기능을 지원한다.
  • 라우터는 자신과 연결된 네트워크와 호스트들의 정보(→라우팅 테이블에 보관)를 유지 및 관리한다.
    따라서 특정 경로의 이용 가능 여부와 빠른 데이터 전송을 지원하는 경로 판단이 가능하다.
  • 송신 호스트가 전송한 데이터가 수신 호스트까지 안전히 도착하려면 여러 개의 중개 시스템인 라우터를 거쳐야 함.
    → 이 때, 네트워크 계층이 데이터의 올바른 경로 선택 지원한다.
  • 혼잡 제어도 데이터의 전송 경로와 관계된다. (네트워크 부하 증가시 특정 지역에 혼잡 발생 가능)

데이터 단위

  • 네트워크 프로토콜을 사용해 데이터를 교환할 때는 먼저 데이터를 특정 형태로 규격화하는 작업이 필요하다.
  • 네트워크에서는 데이터를 프로토콜에 정의된 규격에 맞춰 묶어주어야 한다.
    → 묶인 전송 데이터: 데이터 단위
  • 각 계층에서 규격화된 데이터는 고유 명칭이 있는데, 계층에 상관 없이 사용할 때는 PDU라 부른다.
  • 데이터링크 계층에서는 프레임이라 부른다.
  • 네트워크 계층에서는 패킷이라 부른다.
  • 전송 계층의 TCP 프로토콜은 세그먼트, UDP 프로토콜은 데이터그램이라 부른다.

주소

  • 구분자의 역할은 대상을 서로 구분하여 지칭하는 것.
  • 인터넷 구분자인 IP주소의 고갈 문제에 직면해 있다.
  • 시스템 설계 과정에서 부여되는 구분자는 시스템 내부 처리 구조를 효율적으로 운용할 수 있도록 해주어야 한다.
  • 숫자로 된 주소(= IP 주소)와 문자로 된 이름(= 도메인 이름)을 모두 가지므로 이를 매핑하는 기능이 필요하다.
    (= 주소와 이름은 일대일 관계. 연결하는 기능 필요.)
  • 구분자는 응용 환경에 필요한 다양한 정보를 포함하는 경우가 많다.

IP 주소

  • 네트워크 계층의 기능을 수행하는 IP 프로토콜이 호스트를 구분하기 위해 사용하는 주소 체계이다.
  • 인터넷에서 IP 주소를 통해 서로를 식별한다.
  • 임의의 호스트를 인터넷에 연결하려면 반드시 IP 주소를 할당받아야 한다.
  • IP 주소는 32bit의 이진 숫자로 구성되며, 8bit씩 4부분으로 나누어 십진수로 표현한다.
    → 확장성에 많은 문제점 야기 => IPv6에서 주소 표현 공간 64bit로 확장.
  • 숫자로 된 IP 주소는 외우기 어렵기 때문에, 문자로 된 도메인 이름(www.hongik.ac.kr)을 사용한다.
    도메인 이름이란 일반 사용자가 호스트를 지칭할 때 사용하는 호스트 이름이다.
  • 인터넷에서는 도메인 이름을 IP 주소로 변환하는 작업이 필요하다. → DNS 사용
  • 유일성을 보장하기 위해 국제 표준화 기구가 전체 주소를 관리하고 할당한다. 
    따라서 중복 주소의 사용이 원천적으로 차단된다.

IP 주소 확인법

윈도우 터미널에서 'ipconfig' 명령어 입력

리눅스 및 mac에서는 'ifconfig' 명령어 입력

호스트 파일을 이용한 주소 정보의 관리

  • 호스트 이름과 IP 주소를 변환하려면 특정 파일에 호스트 이름과 IP 주소의 조합을 기록하여 관리하면 된다.
  • 네트워크 응용 프로그램에서는 사용자가 입력한 호스트 이름을 이 파일에서 검색하여 1:1로 대응된 IP주소 정보를 얻을 수 있다.
  • 네트워크 관리자는 관리 대상이 되는 모든 컴퓨터의 호스트 정보를 주기적으로 갱신해야한다.
  • 과거 호스트 파일을 갱신하고 복사하는 작업은 보통 시스템 관리자가 수작업으로 수행했으나 지금은 DNS 서비스를 사용하므로 수작업으로 수행하는 작업은 보조적으로만 사용한다.
  • 호스트 파일은 한 줄에 하나의 호스트 정보가 기록되며 일반 텍스트 문서 형식으로 보관된다.
    보안을 위하여 암호 문서 형식으로도 보관된다.
  • 숫자로 된 IP 주소는 기억하기 힘드므로 문자로 된 호스트 주소가 필요하다.
    호스트 이름의 구조는 <호스트>.<단체 이름>.<단체 종류>.<국가 도메인> 이다.
  • 구분자의 특징으로는 유일성, 확장성, 편리성, 정보의 함축이 있다.

DNS

  • 주소와 이름 정보를 자동으로 유지 및 관리하는 분산 데이터베이스 시스템
  • 네임서버라는 특정한 관리 호스트가 호스트 주소와 이름 정보를 유지한다.
    주소 작업이 필요한 클라이언트는 네임 서버에 요청하여 IP 주소를 얻는다.
  • ‘네임 서버’는 DNS 시스템의 이론에서 정의되는 용어로, 보통 DNS 서버라는 명칭이 사용된다.
  • 여러 네임 서버에 분산하여 관리하도록 설계.
    하나의 집중화된 네임서버가 전체 호스트의 정보 관리 X
  • 계층 구조로 연결된 네임서버는 자신이 관리하는 영역에 있는 호스트 정보만 관리하며 정보를 상호 교환하는 협력 관계를 통해 전체 호스트 정보를 일관성있게 유지한다.
  • 인터넷이 확산되면서 호스트 수가 증가함에 따라 호스트 파일로 주소와 이름 정보를 변환하는 작업을 수동으로 하는 것은 힘드므로 DNS가 필요하다.

네트워크 관련 주소

  • MAC 주소는 계층 2의 MAC 계층에서 사용하고, 일반적으로 LAN 카드에 내장되어 있다.
  • 네트워크 계층이 데이터링크 계층에 데이터 전송을 요청하면, 먼저 IP 주소를 MAC 주소로 변환하는 작업이 이루어진다.
  • IP주소는 인터넷에서 네트워크 계층의 기능을 수행하는 IP 프로토콜에서 사용되며 송신자 IP 주소와 수신자 IP 주소로 구분된다.
  • 수신자 IP 주소는 IP 패킷이 지나가는 경로를 결정하는 라우팅의 기준이 된다.
  • 포트 주소는 전송 계층에서 사용하며 호스트에서 실행되는 프로세스를 구분해준다.
  • 전송 계층 프로토콜인 TCP와 UDP가 독립적으로 포트 주소(=소켓 주소)를 관리한다.
  • 컴퓨터 네트워크에서 데이터를 교환하는 최종 주체는 호스트 내부에서 실행되는 응용 네트워크 프로세스이다.
Comments