CS 공부/네트워크
Wireshark로 배우는 컴퓨터네트워크 [3장 네트워크층 개요]
kkyoug
2025. 5. 31. 16:41
- 개요
- 교환
- 네트워크층에서 패킷 교환
- 네트워크층 서비스
- 네트워크층 문제점
1. 개요
- 개념적인 수준에서 전체 인터넷은 수백만 대의 컴퓨터를 연결하는 블랙박스 네트워크로 생각할 수 있다.
- 러나 인터넷은 LAN과 WAN들의 조합인 네트워크들이 서로 연결된 네트워크이다.
- 해당 사진에서는 라우터와 같은 연결장치를 활용하여 교환이라는 과정이 수행된다.
2. 교환
- 메시지가 연결 장치에 도착하면 패킷을 송신하는 출력 포트를 결정해야 한다.
2.1 회선 교환
- 메시지 전달 전에 발신지와 목적지 사이에 물리 회선(또는 채널)이 생성된다.
- 회선이 생성된 후에 전체 메시지가 발신지에서 목적지로 전달이 완료되면 이를 네트워크에 통보해서 네트워크가 다른 연결을 위하여 사용할 수 있게 한다.
- 대부분 물리층에서 구현된다.
- 예시는 초기 전화 시스템이 있다.
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 보안
- 인터넷 초기에는 학교와 연구소만 사용해서 보안이 중요하지 않았음
- 네트워크층에 보안 대책이 전혀 없었음
- 현재는 보안이 큰 문제가 됨
- 비연결형 네트워크층에 보안 제공을 위해 가상화를 통한 연결형 서비스 변경 필요