CS 공부/네트워크

Wireshark로 배우는 컴퓨터네트워크 [3장 네트워크층 개요]

kkyoug 2025. 5. 31. 16:41
  1. 개요
  2. 교환
  3. 네트워크층에서 패킷 교환
  4. 네트워크층 서비스
  5. 네트워크층 문제점

 

1. 개요

  • 개념적인 수준에서 전체 인터넷은 수백만 대의 컴퓨터를 연결하는 블랙박스 네트워크로 생각할 수 있다.

 

  • 러나 인터넷은 LAN과 WAN들의 조합인 네트워크들이 서로 연결된 네트워크이다.
    • 해당 사진에서는 라우터와 같은 연결장치를 활용하여 교환이라는 과정이 수행된다.

 

2. 교환

  • 메시지가 연결 장치에 도착하면 패킷을 송신하는 출력 포트를 결정해야 한다.

2.1 회선 교환

  1. 메시지 전달 전에 발신지와 목적지 사이에 물리 회선(또는 채널)이 생성된다.
  2. 회선이 생성된 후에 전체 메시지가 발신지에서 목적지로 전달이 완료되면 이를 네트워크에 통보해서 네트워크가 다른 연결을 위하여 사용할 수 있게 한다.
  • 대부분 물리층에서 구현된다.
  • 예시는 초기 전화 시스템이 있다.

2.2 패킷 교환

  • 이 네트워크에서는 상위 계층의 메시지가 관리 가능한 크기의 패킷으로 분할되고 각 패킷이 네트워크를 통하여 전달된다.
    • 메시지 발신지는 패킷을 한 개씩 송신하고 목적지는 패킷을 한 개씩 수신한다. 목적지는 같은 메시지에 속하는 모든 패킷이 도착하면, 메시지를 상위 계층으로 전달한다.
  • 패킷 교환에서 메시지는 발신지에서 관리 가능한 크기의 패킷으로 분할된 후 송신된다. 패킷들은 목적지에서재조립된다.

3. 네트워크층에서 패킷 교환

  • 네트워크층은 패킷 교환망으로 설계되어 있다.
  • 인터넷의 패킷 교환 네트워크층은 원래 비연결형 서비스(connectionless service)로 설계되었으나 최근에 연결형 서비스(connection-oriented service)로 전환되고 있는 추세이다.

3.1 비연결형 서비스

  • 해당 서비스에서 네트워크층은 각 패킷을 상호 독립적으로 다룬다.
    • 네트워크층이 비연결형 서비스를 제공하는 경우 인터넷에서 전달되는 패킷은 독립적인 개체가 되고 같은 메시지에 속한 패킷 사이에 아무런 연관 관계가 없다.

 

  • 각 패킷은 헤더에 속한 정보인 발신지 주소와 목적지 주소를 기반으로 전달된다. 목적지 주소는 어느 곳으로 갈 것인지를 결정하고 발신지 주소는 어느 곳에서 패킷이 왔는지를 알려준다.
    • 비연결형 패킷 교환망에서 패킷의 목적지 주소를 기반으로 전달 결정이 이루어진다.

 

3.2 연결형 서비스

  • 연결형 서비스는 데이터 전송 전에 가상 회선(virtual circuit)을 미리 생성하여 고정된 경로를 설정하는 방식이다.
  • 모든 데이터그램은 동일한 경로를 따라 순서대로 전달되며, 각 패킷은 발신지 주소, 목적지 주소와 함께 가상 회선을 식별하는 흐름 레이블(flow label)을 포함한다.

 

  • 연결형 서비스를 생성하기 위하여 연결 설정(setup), 데이터 전송(data transfer)과 연결 해제 (teardown)로 구성된 세 단계 과정이 사용된다.
  • 설정 단계에서 송신자와 수신자의 발신지와 목적지 주소를 사용하여 연결형 서비스를 위한 테이블 엔트리를 생성한다.

3.2.1 설정 단계

  • 설정 단계(Setup Phase)에서 라우터는 가상 회선을 위한 엔트리를 생성한다.
  • A가 목적지 B로 가는 가상 회선이 필요하다고 가정
    • 두 개의 패킷(요청 패킷과 응답 패킷)이 교환되어야 한다.

요청 패킷

  • 발신지에서 목적지로 전달된다. 이 요청 패킷은 발신지와 목적지 주소를 전달한다.
    • 1단계: 발신지 A가 라우터 R1으로 요청 패킷을 전송한다.
    • 2단계: 라우터 R1이 요청 패킷을 수신하고 A→B 패킷이 포트 3으로 가야 함을 알고 있다. 입력 포트(1), 입력 레이블(14), 출력 포트(3)를 설정하고 출력 레이블은 추후 응답에서 결정한다.
    • 3단계: 라우터 R3가 설정 요청 패킷을 수신하여 입력 포트(1), 입력 레이블(66), 출력 포트(2)를 설정한다.
    • 4단계: 라우터 R4가 설정 요청 패킷을 수신하여 입력 포트(2), 입력 레이블(22), 출력 포트(3)를 설정한다.
    • 5단계: 목적지 B가 설정 패킷을 수신하고 A로부터의 패킷 수신 준비가 되면 레이블 77을 할당하여 A로부터 온 패킷임을 식별한다.

 

확인응답 패킷

  • 1단계: 목적지 B가 라우터 R4에게 확인응답을 보내며, 레이블 77을 포함하여 R4의 출력 레이블 열을 완성한다.
  • 2단계: 라우터 R4가 자신의 입력 레이블(22)을 포함한 확인응답을 라우터 R3에게 보내고, R3은 이를 출력 레이블로 사용한다.
  • 3단계: 라우터 R3가 자신의 입력 레이블(66)을 포함한 확인응답을 라우터 R1에게 보내고, R1은 이를 출력 레이블로 사용한다.
  • 4단계: 라우터 R1이 자신의 입력 레이블(14)을 포함한 확인응답을 발신지 A에게 보내고, A는 이 값을 데이터 패킷의 출력 레이블로 사용한다.

3.2.2 데이터 전송 과정

  • 데이터 전송 단계는 연결 설정 완료 후 실제 데이터 패킷을 전송하는 과정이다.
  • 발신지 A는 레이블 14를 사용하여 라우터 R1에 패킷을 전송하고, R1은 레이블 66으로 R3에, R3는 레이블 22로 R4에, R4는 레이블 77로 목적지 B에 순차적으로 전달한다
  • 메시지 내 모든 패킷(1개든 100개든)은 동일한 가상 회선과 레이블 순서를 따라 전송되어 목적지에 순서대로 도달한다.

3.3.3 연결 해제 과정

  • 발신지 A가 B에게 모든 패킷을 보낸 후 해제 패킷이라는 특별한 패킷을 보낸다.
  • 목적지 B는 확인(confirmation) 패킷으로 응답하고 모든 라우터는 자신의 테이블에서 해당하는 엔트리를 삭제한다.

4. 네트워크층 서비스

4.1 네트워크층 서비스 예

  • 상황: 철수(한국출판사)가 영희(코리아플라워)에게 광고 책자 준비 완료를 알리는 전자우편 전송
  • 네트워크 경로: 한국출판사 LAN → 케이블 WAN → BestNet(지역 ISP) → SONET WAN → 국가 ISP → ServeNet(지역 ISP) → DSL WAN → 코리아플라워 LAN
  • 패킷 전송: 메시지가 여러 패킷으로 분할되어 라우터 R1, R3, R5, R6, R8을 순차적으로 경유
  • 계층 구조: 컴퓨터는 TCP/IP 5계층 관여, 라우터는 3계층(물리, 데이터링크, 네트워크)만 관여

 

4.2 논리주소 체계

  • 네트워크층은 종단 대 종단(end-to-end) 통신을 제공한다.
    • 상호 통신하는 두 컴퓨터는 네트워크층 주소(논리 주소)라는 인터넷 공통의 식별자 시스템이 필요하기 때문에 인터넷은 전역 주소 시스템을 통해 주소 공간을 사용하며, 각 개체에게 유일한 주소를 할당한다
  • 인터넷 주소는 IPv4와 IPv6 버전이 존재한다.

4.3 발신지 컴퓨터에서 제공되는 서비스

  • 패킷화, 다음 홉 논리 주소 찾기, 다음 홈 물리(MAC) 주소 찾기, 필요한 경우 데이터그램 단편화 제공

 

1. 패킷화 (Packetizing)

  • 상위 계층에서 받은 데이터를 데이터그램으로 변환하는 첫 번째 단계다.
  • 이때 데이터에 헤더를 붙이는데, 헤더에는 발신지와 목적지의 논리 주소, 단편화 정보, 프로토콜 ID, 데이터 길이, 필요시 선택사항들이 포함된다.
  • 또한 오류 검출을 위한 검사합도 계산해서 넣는다. 발신지 주소는 호스트가 자신의 주소를 알고 있기 때문에 네트워크층이 자동으로 추가해준다.

2. 다음 홉의 논리 주소 찾기

  • 준비된 데이터그램은 최종 목적지까지 가기 위해 여러 네트워크를 거쳐야 한다
  • . 목적지가 같은 네트워크에 있지 않다면 다음 라우터로 보내야 하는데, 이때 라우팅 테이블을 참조해서 다음에 갈 곳의 논리 주소를 찾는다.

3. 다음 홉의 MAC 주소 찾기

  • 네트워크층은 실제 데이터 전송을 데이터 링크층에 맡긴다.
  • 데이터 링크층이 일을 하려면 다음 홉의 MAC 주소가 필요한데, 이를 위해 ARP(주소 결정 프로토콜)를 사용해서 논리 주소를 MAC 주소로 변환한다.

4. 단편화 (Fragmentation)

  • 마지막으로 데이터그램이 너무 클 수 있다는 문제가 있다.
  • 각 네트워크마다 한 번에 보낼 수 있는 최대 크기(MTU)가 정해져 있어서, 데이터그램이 이보다 크면 작은 조각들로 나누어야 한다.
  • 이때 각 조각의 헤더는 원본과 같게 유지하고, 전체에서 어느 부분인지 알 수 있는 위치 정보를 추가한다.

4.4 각 라우터에서 제공되는 서비스

라우터는 데이터그램 전달을 위해 입력 인터페이스와 출력 인터페이스를 사용한다.

  • 네트워크층은 입력 인터페이스의 데이터 링크층에서 데이터그램을 받아서, 필요시 단편화를 수행한 후 출력 인터페이스의 데이터 링크층으로 전달한다.

라우터는 일반적으로 상위 계층에는 관여하지 않고 네트워크층까지만 처리한다.

  • 라우터에서 수행하는 과정은 발신지에서와 동일하게 다음 홉의 논리 주소 찾기, MAC 주소 찾기, 단편화를 거친다.

다만 라우터는 이 과정들을 시작하기 전에 검사합을 이용해 데이터그램의 유효성을 먼저 검증한다.

  • 이는 데이터그램 헤더가 손상되지 않았고 올바른 라우터에 전달되었는지 확인하는 과정이다.

 

4.5 목적지 컴퓨터에서 제공되는 서비스

목적지 컴퓨터의 네트워크층은 상대적으로 간단하다.

  • 더 이상 다른 곳으로 전달할 필요가 없기 때문에 포워딩 과정이 필요하지 않다.

하지만 단편화된 데이터를 재조립하는 중요한 역할을 담당한다.

  • 각 데이터그램의 유효성을 검증한 후, 단편들에서 데이터를 추출해서 저장한다. 모든 단편이 도착하면 원래 데이터로 재조립해서 상위 계층에 전달한다.

재조립 과정에는 타이머가 설정된다.

  • 만약 일정 시간 내에 모든 단편이 도착하지 않으면 타이머가 만료되고, 이미 받은 단편들은 모두 폐기된다. 그리고 발신지에게 모든 단편을 다시 보내달라는 오류 메시지를 전송한다.

단편화 과정은 상위 계층에게는 투명하다.

  • 모든 단편이 완전히 재조립되기 전까지는 상위 계층에 데이터를 전달하지 않기 때문이다. 데이터그램은 발신지 컴퓨터나 중간 라우터 어디서든 단편화될 수 있어서 재조립 과정은 매우 복잡하고 민감한 작업이다.

 

5. 네트워크층 문제점

5.1 오류 제어

  • 인터넷 네트워크층은 완전한 오류 제어를 제공하지 않는다
  • 헤더에 대해서만 검사합으로 제한적 오류 제어
  • 완전한 오류 검사는 상위 계층에서 담당
  • ICMP로 오류 상황 보고를 진행한다.

5.2 흐름 제어

  • 흐름 제어는 수신자의 처리 능력에 맞춰 발신지의 데이터 전송량을 조절하는 것
  • 발신지가 너무 빨리 보내면 수신자에서 데이터 넘침 현상 발생
  • 일반적으로 수신자가 송신자에게 피드백을 주는 메커니즘 필요
  • 인터넷 네트워크층은 직접적인 흐름 제어를 제공하지 않음 (수신자 준비 상태 확인 없이 즉시 전송)

5.3 혼잡 제어

혼잡이란?

  • 인터넷 내부에 데이터그램이 너무 많아 네트워크나 라우터 용량을 초과하는 상황

혼잡의 악순환

  • 라우터가 데이터그램을 폐기 → 상위 계층이 재전송 → 더 많은 데이터그램 → 시스템 붕괴

비연결형 네트워크 해결법

  • 후향 신호방식: 혼잡 발생 시 반대 방향 패킷의 비트를 1로 설정해 송신자에게 알림
  • 전향 신호방식: 같은 방향 패킷의 비트를 1로 설정해 수신자에게 알리고, 수신자가 상위 계층을 통해 발신지에 전달
  • 인터넷은 이런 신호방식을 사용하지 않음

연결형 네트워크 해결법

  • 진보된 협상: 가상 회선 설정 시 송신자와 수신자가 트래픽 수준을 미리 합의
  • 라우터가 현재 트래픽과 최대 용량을 비교해서 새로운 가상 회선 생성 여부 결정

5.4 서비스 품질

  • 멀티미디어 통신의 발전으로 서비스 품질이 중요해짐
  • 오디오, 비디오 실시간 통신 등 새로운 응용 프로그램들이 더 좋은 서비스 품질 요구
  • 네트워크층 수정을 피하기 위해 대부분 상위 계층에서 구현

5.5 라우팅

  • 라우터가 라우팅 테이블을 생성하는 방법이 핵심
  • 비연결형 서비스의 데이터그램 전달과 연결형 서비스의 가상 회선 생성을 지원
  • 라우팅 프로토콜이 라우팅 테이블 생성, 유지, 갱신을 담당
  • 유니캐스트 라우팅과 멀티캐스트 라우팅으로 구분

5.6 보안

  • 인터넷 초기에는 학교와 연구소만 사용해서 보안이 중요하지 않았음
  • 네트워크층에 보안 대책이 전혀 없었음
  • 현재는 보안이 큰 문제가 됨
  • 비연결형 네트워크층에 보안 제공을 위해 가상화를 통한 연결형 서비스 변경 필요