[정보통신망] #8. TCP/IP 네트워크 계층

bien·2024년 5월 30일
0

정보통신망

목록 보기
8/13

0. 학습목표

  • 네트워크 계층의 프로토콜에 대하여 설명할 수 있다.
  • 데이터 그램의 형식을 순차적으로 나열할 수 있다.
  • ARP, ICMP, IGMP, DHCP에 대해 구분하여 설명할 수 있다.
  • ICMP, IGMP, DHCP메시지 형식을 비교하여 설명할 수 있다.

1. IP

01) IP 개요

TCP/IP 기본구조

오늘 배워볼 것은 네트워크, 인터넷 계층. 데이터링크에 위치한 ARP, RARP는 네트워크 계층에도 속하게 되어 함께 배워봅니다!

IP개요

  • 인터넷 프로토콜(IP): OSI 모델의 네트워크 계층의 기능
  • 사용자에게 복잡한 인터넷의 개별 네트워크들의 구조를 숨겨 모든 호스트들을 연결하는 1개의 가상 네트워크로 보이도록 함.
  • 네트워크 계층의 투명성(transparency)을 제공함
    • 송신자 호스트는 수신자 호스트까지 경유해야 하는 데이터링크 및 라우터에 관한 물리적 세부사항을 알지 못해도 데이터그램을 전송할 수 있도록 해줌.
    • 인터넷에 존재하는 다양한 네트워크들이 각각 개별적인 구조를 가지고 있는데, 호스트들로써 네트워크에 연결하는 과정이 매우 복잡하다. 따라서 이 많은 네트워크를 통합하여, 하나의 가상의 네트워크처럼 보이도록 하기위해 사용되는 것이 IP이다.
    • 여기서 투명성(transparency)이 언급된다. 여러개의 네트워크를 이용할때 많은 경로를 거쳐 전달하게 되는데, 사실 이를 위해서는 이 모든 과정을 다 알아야만 한다. 그러나 이 많은 과정을 하나의 가상 네트워크처럼 보이도록 하여 다양한 경로를 몰라도 되도록 하는 개념으로 투명성이 언급된다. 클라우드 서비스도 비슷하게 여겨질 수 있는데, 이 역시 구름안에 다양한 서비스가 존재하여, 단일의 경로로만 접속해도 구름에 가려져 있는 내부 과정에 대한 세부적 지식없이도 사용이 가능하며 이를 투명성이란 개념으로 표현할 수 있다.

02) 비연결 서비스

비연결형(Connectionless) 서비스

  • 인터넷 계층의 투명성
    • IP 역할: 호스트의 주소 지정 및 데이터그램 전송
    • 경유해야 하는 데이터 링크 및 라우터 정보를 무시
    • 신뢰성이 없는 데이터 전송

두 호스트간 데이터 전송에 있어서, 미리 연결해두는것이 아니라 비연결로 전송이 이루어지는 것. 연결이 없고 전송을 막 하므로, 순서 보장이나 누락 방지등의 신뢰성이 없다. 반대로 미리 연결을 수립하지 않으므로 속도가 빠르다.

03) 데이터그램

IP 계층의 패킷

  • 패킷: 헤더 + 데이터.
    • 한 행: 31ibt = 총 4byte = 한 word
    • 총 6개의 word를 합쳐 헤더로 사용.

  1. 버전(4비트): IP version 식별번호
  2. 헤더길이(4비트): 20~60bytes
    • 5 => 20 bytes (최소)
    • 15 => 60 bytes (※ 1 word = 4 bytes)
  3. 서비스유형(8비트): QoS(Quality of Service: 어떻게 서비스를 보장할 것인지)
    • 3개 비트: 우선순위
    • 4개 비트: 서비스 유형 (품질과 관련된 것)
      • 0000: 기본
      • 0001: 비용 최소
      • 0010: 신뢰성 최대
      • 0100: 처리량 최대
      • 1000: 지연 최소
    • 1개 비트: 사용하지 않음
  4. 전체 길이(16비트): 데이터 그램 길이
  5. 식별자(16비트): 데이터그램이 단편되었을 때 각 단편은 동일한 식별자를 가짐.
    • 이렇게 3개의 데이터그램이 단편화되어 수신측으로 넘어갔을때, 그 단편들이 동일한 식별자를 가져야 같은 곳에서 송신된것을 알 수 있음
  6. 플래그(3비트): (단편화 사용 여부 표기)
    • 1개 비트: 사용하지 않음
    • 1개 비트 (DF)
      • 1: Don't Fragment (단편화 안함)
      • 0: Fragment(단편화 함)
    • 1개 비트 (MF)
      • 1: More Fragment(뒤에 단편화 더 있음)
      • 0: 마지막 단편, 유일한 단편(내가 마지막 조각 or 유일한 조각)
  7. 단편 오프셋(13 비트) (단편의 순서를 알려주기 위함)
    • 메시지가 단편되었을 때 데이터그램 내의 데이터가 원래 메시지의 어느 위치에 있었는지 나타냄.
  8. TTL(8비트): Time To Live
    • 패킷이 데이터 전송을 계속 기다릴 수 없음. 신뢰성이 없어서 전송 여부를 확실히 알 수 없으므로, 유효 시간을 두고, 해당 시간이 지나면 다시 보내라고 신호를 보내줘야 함.
    • 데이터그램이 폐기되기 전까지의 활동 기간
    • 거쳐야 하는 최대 라우터 수를 나타내는데, 보통 두 호스트 사이의 라우터 수의 두 배로 설정함.
    • 라우터를 지날 때 마다 1씩 감소
    • 0이 되면 폐기됨.
  9. 프로토콜 (8비트)
    • 상위계층 프로토콜 식별
      • 1: ICMP
      • 6: TCP
      • 17: UDP
  10. 헤더 검사합 (16비트): 헤더만의 검사합

04) IP 단편화(Fragmentation)

  • IP 데이터그램의 분할
  • MTU(Maximum Transfer Unit)
    • 네트워크 링크에서 허용하는 프레임당 데이터의 최대 길이
      • Ethernet LAN: MTU = 1500byte
      • CCITT X.25: MTU = 128byte
  • IP 데이터그램은 전송 중 각 네트워크의 MTU에 적합한 크기로 분할되었다가 목적지 호스트에서 각 fragment들을 재조립함.

단편화 예시1.

  • 호스트A에서 B까지 전송되면서, Net1,2,3을 지나가야 한다.
    • Net1에서 Net2로 넘어갈때는 1500의 양을 보낼 수 없어 600, 600, 300으로 나눠서 보낼 수 있다.
    • Net2의 MTU는 620이지만, 헤더까지 붙어야 하므로 600정도가 전송의 최대치다.

단편화 예시2.

  • 단편1: MF1(뒤에 단편화가 더 있음) 오프셋0(0부터 600까지)
  • 단편2: MF1(뒤에 단편화가 더 있음) 오프셋600
  • 단편3: MF0(뒤에 단편화 더 없음)

05) 인터넷상에서의 라우팅

라우팅

  • IP 데이터그램이 목적지 호스트까지 진행하면서 경유할 경로를 결정하는 것
  • 비교
    • IP: 송신자, 수신자 그리고 그 사이의 경로 상에 있는 모든 라우터들이 IP 데이터그램 전달에 관여
    • TCP: 송신자와 수신자만 TCP 세그먼트 전달에 관여

전달 과정에서 항상 라우터를 거침. 라우터에서 정보를 가지고 있음.

라우팅 테이블

  • 호스트는 자신의 물리적 네트워크에 연결된 라우터에 대한 정보를 자신의 라우팅 테이블에 관리
    • 라우터에서 다른 호스트와 관련된 정보를 가지고 있어야 경로 설정이 가능한데, 자신의 마스크 주소와 목적지, 다음 홉의 주소 등을 테이블에 정보등을 저장해둔다.
    • 그냥은 갈 수 없고 라우터를 거쳐야 다른 컴퓨터를 갈 수 있음. 라우터에서 특정 컴퓨터에 대한 정보를 가지고, 연결해준다.

동일한 물리적 네트워크에서의 데이터그램 전송

다른 물리적 네트워크에서의 데이터그램 전송

이더넷 2개가 다른 네트워크. 패킷에서 목적지 주소를 가지고 있는데, 다른 네트워크이므로 라우터로 가야한다. 링크 헤드가 라우터의 주소를 가지고 있음. 라우터에서 또다른 라우터로 간 뒤, 원하는 목적지까지 전달되게 된다. 라우터를 건너뛴다는 표현으로 hop by hop이라고 부르기도 한다.


2. 주소변환

  • ARP: IP주소를 알고 물리주소를 모르는 경우, 물리주소를 구하기 위해 사용
  • RARP: 물리주소를 알고 IP주소를 모르는 경우, IP 주소를 구하기 위해 사용

01) ARP

정의

  • ARP(Address Reolution Protocol)
    • 상대방 호스트의 IP 주소를 알고 데이터 통신을 위해 그 호스트의 물리주소를 알고자 할 때 사용하는 프로토콜
      • 내가 IP주소는 아는데 물리 주소를 모를 때, IP주소에 맞는 물리주소를 찾기위해 사용
    • IP 주소를 물리주소로 매핑해 주는 프로토콜

동적 바인딩

  • ARP는 호스트의 IP 주소를 대응하는 물리 주소로 변환하여 실제 데이터 통신이 가능하게 해줌
    • IP 주소: 32bit (4byte) - IPv4
    • 물리 주소: 48bit (6byte) - MAC 주소 (랜카드)
  • ARP 요청: broadcasting
    • 실제 연결은 되어있지 않으니, ARP가 어떤 주소가 있는지 모른다. 그래서 모든 호스트에게 무작정 다 보낸다.
  • ARP 응답: unicasting
    • 응답같은 경우에는, 해당되는 ARP 단일만 응답을 하게 된다.

ARP 프로토콜

  • ARP 동작(request)
    • broadcasting되어 같은 네트워크에 있는 전체 컴퓨터에게 ARP 주소 확인을 요청한다.
  • ARP 동작(response)
    • 주소가 일치되는 하나의 호스트 B가 unicasting으로 응답을 하게 된다.

프락시 ARP

request를 네트워크에 전부 보내는데 같은 네트워크 내부에 일치하는 호스트가 없을 때, 다른 네트워크를 확인하고 unicast로 호스트에게 전송하는 프록시 라우터를 사용할 수 있다.

02) RARP

정의

  • RARP(Reverse Address Reolution Protocol)
    • 물리주소만 알고 있는 호스트자신의 IP 주소를 찾을 때 사용되는 프로토콜
    • 일반적으로 호스트의 IP 주소는 디스크에 저장된 구성 파일에서 확인
    • 디스크가 없는 호스트는 물리주소만 알고 있으므로 이를 이용하여 IP 주소를 얻고자 함
      • 단말기중에 자신의 MAC address만 알고 ip주소를 모르는 경우, RARP를 통해 알 수 있음.

RARP 프로토콜

다른 호스트들에게 broadcasting으로 자신의 MAC address를 알려주면서 자신의 IP주소를 보내게 된다. 이를 다른 호스트가 unicasting으로 ip를 알려줄 수 있다.


3. ICMP

01) ICMP 프로토콜

Internet Control Messag Protocol

  • 인터넷 계층 프로토콜
  • 전송 오류 제어
    • IP는 비연결성 비신뢰성 전송 서비스 (실패 가능성 있음)
    • IP 데이터그램 전송의 오류가 발생할 경우 오류 메시지 또는 제어 메시지를 제공해주는 프로토콜
    • IP 데이터그램의 전송과정에서 발생하는 오류를 라우터나 발신지 호스트에게 보고하는 메커니즘을 제공
    • 즉, IP의 전송 실패를 대신 처리해줌

ip는 비신뢰적. 즉, 신뢰성을 제공하지 않는다. 연결이 되지 않거나 시간이 초과되어 누락되거나 중복 발생 등 다양한 실패가 발생할 수 있다. ICMP는 이러한 실패를 어느정도 방지해주기 위해 전송 오류 제어를 통해 신뢰성을 높여준다.

02) ICMP 메시지

다양한 메시지들이 있지만, 크게는 2가지 유형을 나뉜다.

03) ICMP 메시지 유형

오류 보고 메시지(error reporting)

  • ICMP는 오류를 수정하지 않고, 단지 보고만 수행
  • IP 주소를 이용하여 발신지에 오류 전송

질의 메시지(simple query)

  • 일부 네트워크의 문제를 진단

4. IGMP

01) IP 멀티캐스트

Internet Group Management Protocol

  • 인터넷 계층 프로토콜
  • 인터넷에서 multicast 서비스를 위해 사용되는 프로토콜
  • IP호스트가 어떤 멀티캐스트 그룹에 참가하고 있는지를 멀티캐스트 라우터에 통보하는 프로토콜
  • Mutlicast
    • 하나의 그룹에 속한 호스트들에게 메시지 전송 (1-to-many)
      • 참고: unicast(1-to-1), broadcast(1-to-all)

IP Multicast

  • 클래스 D 주소 사용 (멀티캐스트는 클래스 D사용함)
    • 앞의 1110은 D클래스임(멀티캐스트를 쓰기위한 주소다!)을 나타냄. 이후에는 실제 멀티캐스트 주소가 이어짐.
  • 주소 범위: 224.0.0.0 ~ 239.255.255.255
  • 예약된 멀티캐스트 주소 (이 주소들은 미리 예약되어있어 사용 불가)

02) IGMP 메시지

버전에 따라 IGMP, ICMP 형태는 좀 다를 수 있음. 강의에서는 ICMP는 버전4, IGMP는 버전2에 해당.

  1. 유형 (8비트)
    • Query (general/special)
    • Membership report
    • Leave report
  2. 최대 응답시간 (8비트)
    • 질의에 응답해야 하는 최대 허용 시간
  3. 검사합 (16비트)
    • 전체 IGMP 메시지의 오류 검사
  4. 그룹 주소 (32비트)
    • 멀티캐스트 주소 (클래스D IP 주소)

03) IGMP 프로토콜

호스트에서 멀티캐스트 라우터에게 요청하고, 라우터가 정보들을 전달.
TTL = 1 => 하나의 라우터에게만 연락
Dest IP addr = group addr => IP address는 그룹 어드레스
Src IP addr = host's IP addr => 호스트에 대한 ip 어드레스를 전달

돌발 퀴즈

Q1. IGMP에 관한 설명이 아닌 것은?

  1. 인터넷에서 멀티캐스트 전송 서비스를 제공한다.
  2. 클래스 D 주소를 사용한다.
    3. 멀티캐스트 그룹에 가입한 프로세스만 멀티캐스트 메시지를 전송할 수 있다.
  3. IGMP 질의 및 보고 메시지를 통해 그룹 가입 및 탈퇴가 가능하다.

3: 멀티캐스트 메시지를 전송할 수 있는 것은 멀티캐스트 그룹에 가입한 프로세스가 아니라, 멀티캐스트 그룹에 가입한 호스트가 그룹으로부터 메시지를 수신할 수 있습니다. 멀티캐스트는 일대다 통신이며, 특정 멀티캐스트 주소로 메시지를 보내면, 그 주소를 구독하는 모든 호스트가 메시지를 수신할 수 있습니다.
4: IGMP는 멀티캐스트 그룹의 가입 및 탈퇴를 관리하기 위해 질의(Query) 및 보고(Report) 메시지를 사용합니다.


5. DHCP

01) IP 주소관리

IP 주소 관리 방법

  • IP주소 (32비트. (예) 150.138.135.215등으로 표시)
  • 기억하기 어려움 => ip 주소 관리 방법의 필요
    1. Host Table
    2. DNS (Domain Name System)
    3. BOOTP (Bootstrap Protocol)
    4. DHCP (Dynamic Host Configuration Protocol)

호스트 테이블

  • 모든 IP 주소와 이와 mapping되는 호스트 이름으로 구성된 테이블
  • 장점
    • 중앙집중형 관리 방식
    • host table 구조가 간단함
  • 단점
    • 호스트의 급속한 증가와 변화에 대응하기 어려움
      • 매핑 정보의 일관성 유지 어려움
    • 계층적 구조가 아닌 평면 구조
      • 중복 정보를 포함함

라우트 테이블처럼 "IP:호스트 이름"을 테이블로 저장해 두는 것. 아무래도 중앙에서 집중적으로 다루게 됨. 변경을 반영하여 일관성 유지하기 힘들고, 특정 정보들이 중복될 수 있어 문제가 될 수 있음.

DNS (Domain Name System)

  • 계층적 구조분산 관리 특성
    • 예) 도메인 이름: knou.ac.kr
  • 분산 관리의 문제
    • name server는 특정 네트워크 영역만의 정보를 가지며 다른 영역에 대해서는 다른 name server의 정보를 참조
  • name server 데이터의 복잡성
    • 수작업에 의한 데이터의 오류 가능성

ip의 주소를 DNS 서버에 요청하고, 이 호스트에 정보를 요청서버에 전달. 특정 네트워크 영역의 정보만 가지고 있고, 다른 영역에서는 다른 서버를 참조해야 한다. 자동으로 관리되기 보다도 DNS 서버에서 수작업으로 다루는 측면이 있어 오류 가능성이 있음.

BOOTP (Bootstrap Protocol)

  • 기존의 방식은 IP 주소를 수작업으로 할당 (정적 할당)
  • BOOTP는 동적으로 IP 주소를 할당
  • 디스크가 없는 호스트(X 터미널)에 대해 주소 및 설정 정보를 자동적으로 할당하고 관리하는 프로토콜
    • RARP와 관련이 있음

02) DHCP 메시지 형식

Dynamic Host Configuration Protocol

  • 개요
    • 응용계층 프로토콜
    • BOOTP에서 발전된 동적 주소 할당 프로토콜로서 IP주소 재사용이 가능함
    • DHCP 메시지 형식은 BOOTP와 동일함
  • 동적 주소 할당 프로토콜
    • IP 주소 pool에서 사용 가능한 IP 주소를 선택하여 원하는 호스트에게 일정기간 임대해줌

집에서 다른 통신사를 통해 인터넷을 하면 컴퓨터를 껏다 킬때마다 IP주소가 대부분 변경이 된다.그러면 그 IP주소는 다른 사람이 받아서 재사용이 가능해진다.

03) DHCP 프로토콜

DHCP 네트워크 구성

원하는 DHCP 클라이언트의 주소를 요청. 서브넷을 건너 멀리있는 클라이언트의 주소를 요청하는 경우 중계 에이전트 이용.

IP 주소 자동할당

1. DHCPDISCOVER

  • DHCP 주소가 있는지 브로드캐스팅으로 질문

2. DHCPOFFER

  • DHCP 서버에서 그 주소가 있고, 몇일간 쓰라고 알려줌

3. DHCPREQUEST

  • 받은 응답에 대해, "그럼 내가 그 주소 사용해도 될까?"하고 요청

4. DHCPACK

  • 해당하는 서버 관련 정보(서버 주소, 서버, 노드 유형 등등...)를 넘겨줌

Reference

  • 한국방송통신대학: 정보통신망 - 박지수
profile
Good Luck!

0개의 댓글