• 하나의 공인 IP와 여러 개의 사설 IP를 Port 번호를 이용해 NAT를 수행한다.
  • 1:N 방식

 

위 그림처럼 여러 대의 내부망 PC가 라우터를 통해 웹 서버에 접근할 때

NAT Table에 포트 번호를 이용해 어떤 PC에서 요청이 들어왔는지 구분할 수 있도록 기록을 해두는 것이다.

PAT은 NAT 장비가 사용자로부터 패킷을 전달받아 NAT를 실시할 때,

출발지 포트를 임의로 변경하는 방식으로 사용자를 구분할 수 있게 된다.

'K-Shield > Jr' 카테고리의 다른 글

[K-Shield][Jr] 웹의 동작 방식  (0) 2025.04.27
[K-Shield][Jr] VPN( Virtual Private Network )  (0) 2025.04.27
[K-Shield][Jr] NAT  (0) 2025.04.27
[K-Shield][Jr] DMZ  (0) 2025.04.27
[K-Shield][Jr] 7계층 : 응용 계층( Application Layer )  (0) 2025.04.27
  • Network Address Translation의 약자로 네트워크 주소 변환 기술을 뜻한다
  • 한 IP 주소를 다른 IP 주소로 바꾸는 기술이다.
  • 사설 IP 주소를 공인 IP 주소 또는 공인 IP 주소를 사설 IP 주소로 변환한다
  • NAT를 수행하는 장비들을 다른 말로 Session 장비라고도 불린다. 이는 NAT를 실시한 내역을 Session Table에 저장하여 내역을 기록하고 있기 때문이다.

 

장점

  1. IP 주소 부족 문제 해결
    • IPv4의 주소 부족 문제를 해결하기 위한 방법으로 고려되었다.
    • 주로 사설 네트워크 주소를 사용하는 망에서 외부와의 통신을 위해 네트워크 주소를 변환하게 된다
  2. 보안
    • NAT의 특성상 IP를 숨길 수 있다
    • 라우터를 통해 외부로 나갈 때 사설 IP가 공인 IP주소로 바뀌므로 공격자는 라우터 안쪽에 있는 사설 IP를 알 수 없다

 

NAT 흐름

A PC가 인터넷을 통해 121.16.8.98과 통신하려고 할 때를 예로 들어보자.

A PC는 게이트웨이를 통해 121.16.8.98과 통신하겠다고 인터넷으로 보내달라고 요청하게 된다

  1. 게이트웨이를 통해 외부로 통신 요청
    • 게이트웨이는 A PC의 IP 192.168.0.2를 자신의 공인 IP 33.31.7.100으로 변환하여 외부로 전송한다.
  2. 121.16.8.98의 응답
    • 121.16.8.98 PC는 게이트웨이의 주소로 응답을 하게 된다
  3. 게이트웨이에서 A PC로 전달
    • 신호를 보낸 장비를 기억하고 있다가 원래의 요청 PC IP로 패킷을 전달한다.

 

Static NAT

  • 공인 IP와 사설 IP 주소가 1:1로 매칭되어 있는 1:1 NAT
  • 공인 IP 주소의 절약 효과는 없으나 내부 IP를 숨길 수 있다.

 

IP 헤더가 어떻게 설정되는지 살펴보자

 

 

Dynamic NAT

  • 여러 개의 공인 IP와 여러 개의 사설 IP가 있을 때 사용한다.
  • M:N으로 맵핑되어 사용한다
  • 대부분 공인 IP 주소가 사설 IP 주소보다 적을 경우에 사용한다.

 

공인 IP가 3개인 상황을 가정해보자

 

 

  • DMZ( Demilitarized Zone ) 비무장 지대의 의미
  • 외부에서 접근할 수 있지만 내부에는 접근이 불가능한 영역을 말한다.
  • 다시 말해 네트워크에서의 DMZ는 내부 네트워크에 있는 서버가 외부에서 서비스 제공 시, 내부 자원을 보호하기 위해 내부망과 외부망 사이에서 접근 제한을 수행하는 영역이다.

 

위 그림처럼 네트워크를 구성하게 되면, 외부에서 DMZ로의 접근은 가능하나, 방화벽으로 인해 내부망 Posts clients로는 접근이 불가능하게 된다.

 

DMZ 구성 방법

방화벽, NAT( Network Address Translation ), PAT( Port Address Translation )을 이용해 구성

 

방화벽

  • 들어오는 패킷( Inbound Packet )과 나가는 패킷( Outbound Packet )을 제어하는데 사용되는 보안 장치다
  • 특정 유형의 패킷만 통과하도록 허용하고 다른 모든 트래픽은 차단하도록 구성하면 DMZ 구간만 접근이 가능하게 된다.

NAT

  • IP 헤더에 있는 주소 정보를 수정하여 하나의 IP 주소를 다른 IP 주소로 매핑
  • 공인 IP( 방화벽 )를 DMZ 내부 IP 주소로 매핑하여 사용

PAT ( Port Address Translation )

  • 다른 IP를 가진 여러 장치가 단일 공인 IP 주소의 Port 번호를 사용하여 공유할 수 있게 해주는 NAT의 한 종류
  • NAT로 인해 변환되는 주소는 하나의 공인 IP를 사용하기 때문에 구분이 어려워 Port 번호로 원래의 IP를 구분한다.

 

DMZ 예시

Trusted Network

  • 회사의 직원 또는 신뢰할 수 있는 파트너와 같은 회사 내부 네트워크를 말한다.

Untrusted Network

  • Trusted Network와 반대 개념으로 외부 인터넷을 의미한다.

위 그림을 살펴보면

Untrusted Network에서 들어오는 패킷은 DMZ 영역까지만 접근이 가능하게 설정되고 내부 네트워크는 접근할 수 없게 된다.

이렇게 네트워크를 구축하면 Trusted zone까지 직접 접근할 방법이 없기 때문에 안전한 네트워크를 구축할 수 있게 된다.

애플레이션에 사용자 인터페이스와 네트워크 서비스를 제공한다.
즉, 사용자가 소프트웨어 응용 프로그램과 직접 접촉하게 되는 계층이다.

 

 

  • 송신자와 수신자 모두가 데이터를 이해할 수 있도록 응용프로그램 간 데이터 변환을 담당한다.
  • 네트워크로 전송된 데이터 형식( Format )을 결정한다.
  • 데이터 표현 - ASCII, UNICODE, GIF 등

데이터 압축

  • 데이터를 압축하여 필요한 대역폭의 양을 줄인다
  • 데이터의 전송 속도 및 대역폭 절약의 효과가 있다.

데이터 암호화

  • 데이터를 암호화 하여 접근 권한이 없는 사용자로부터 보호한다.

데이터 변환

  • 서로 다른 형식 간의 데이터 변환을 담당한다.
  • 서로 다른 데이터 형식을 사용하는 경우에도 서로 다른 장치 및 응용프로그램에서 교환 가능하다.

5계층부터 7계층은 상위 계층이라고 불린다.

상위 계층은 응용 프로그램의 운영을 담당하는 역할을 한다.

따라서 상위 계층은 응용 프로그램의 관점에서 바라보아야 한다.

 

  • Session 생성, 유지, 종료 등 Session을 관리하는 계층
  • Seesion 계층의 주요 기능
    • 세션의 설정, 관리, 해제
    • 데이터 전송 서비스
    • 동기화
    • 오류 보고 및 복구

실제 세션 계층의 기능은 응용프로그램에 통합되어 구현

  • 세션 계층의 프로토콜은 일반적으로 단독으로 사용되지 않는다.
    • 예를 들어 Remote Desktop Protocol( RDP )은 응용 프로그램 계층에서 실행되는 프로토콜이지만 세션 계층의 서비스를 사용하여 마우스, 키보드, 비디오 출력을 전송하여 원격 데스크톱 기능을 제공해준다.
  • 데이터가 제대로 도착했는지 확인한다
  • 데이터가 최종적으로 도착할 애플리케이션이 무엇인지 식별한다.
    • 이는 네트워크 데이터를 어떤 애플리케이션에서 최종적으로 해석하고 사용할지를 의미한다.
    • 여기서 데이터는 HTTP 요청일 수도 있고, FTP를 사용한 파일 다운로드 요청일 수도 있고, 다양하다
  • 목적에 따라 두가지 통신 방법이 존재한다.
  1. 신뢰성과 정확성
    • 데이터를 목적지에 문제 없이 전달하는 방식
    • 이런 통신 방식을 다른 말로 연결형 통신이라고도 한다.
      • 연결형 통신은 상대방과의 통신 과정을 여러 번 확인하고 보내는 방식을 사용하게 된다.
      • 대표적인 프로토콜로 TCP가 있다.
  2. 효율성
    • 데이터를 빠르고 효율적이게 전달하는 방식
      • 대표적인 프로토콜로 UDP가 있다.
      • UDP는 별도의 확인 절차가 없어서 스트리밍 방식과 같은 동영상 서비스에 유리하다.

 

TCP( Transmission Control Protocol )

  • 전송 제어 프로토콜
  • 전송 계층에서 신뢰할 수 있고 정확한 통신을 제공하는 연결형 프로토콜
  • Segment 단위를 사용한다.

 

TCP는 포트 번호라는 주소로 통신한다. 이 포트 번호는 최종적으로 어떤 애플리케이션으로 향하게 될지를 정해주는 요소다.

 

Source Port

  • 송신자의 포트 번호

Destination Port

  • 목적지의 포트 번호

Sequence Number

  • 송신 측에서 수신 측에 이 데이터가 몇 번째 데이터인지 알려주는 역할을 한다.
  • 해당 번호를 통해 수신 측은 원래 데이터의 몇 번째 데이터를 받았는지 알 수 있다.
  • TCP는 이를 이용하여 데이터가 손상되었거나 유실되었는지를 확인하고, 손상이나 유실되었다면 재전송 제어를 하게 된다.

Acknowledgment Number

  • 수신 측이 몇 번쨰 데이터를 수신했는지 송신측에 알려주는 역할이다.
  • 받은 데이터의 다음 번호의 데이터를 요청하는데 사용한다.

Offset

  • TCP 헤더의 크기를 나타내는 값이다.
  • 데이터의 시작 위치를 나타낸다.

Reserved

  • 차후의 사용을 위해 예약된 필드
  • 항상 0으로 설정한다.

TCP Flags

  • 세그먼트의 용도와 내용을 결정하는 플래그 값이다.
  • 총 8 bit로 이루어져 있으며, 각각의 비트에 연결의 제어 정보가 기록된다.
  • 이를 이용해 TCP Connection을 맺고 TCP 통신을 하게 된다.

Window

  • 한번에 전송할 수 있는 데이터 양을 뜻한다.
  • 65535만큼의 값을 표현 가능하고, byte 단위를 사용한다. 64KB
  • 한 번에 전송할 수 있는 데이터의 최대 크기가 65535 byte라고 생각 하면 된다.

Checksum

  • 데이터를 송신하는 중에 발생할 수 있는 오류를 검출하기 위한 값이다.
  • Checksum과 데이터를 더했을 때, 모든 비트가 1이면 정상으로 판단한다.

Urgent Pointer

  • 긴급 포인터
  • URG 플래그가 1이라면 수신 측은 이 포인터가 가리키고 있는 데이터를 우선 처리한다.

TCP Options

  • 약 30개 정도의 TCP 옵션을 설정할 수 있다.
  • 대표적으로 Window 필드의 사이즈를 늘릴 수 있는 옵션이 있다.

 

3-Way Handshake

  • 데이터를 보내기 전에 연결을 확립하기 위해 패킷 요청을 세번 교환하는 것을 말한다.
  • TCP Flags를 이용하여 패킷을 교환한다.

 

 

UDP( User Datagram Protocol )

  • 데이터를 효율적으로 빠르게 보낼 때 사용한다.
  • 비연결형 통신이기 때문에 3-Way Handshake 과정이 존재하지 않는다.
    • 신뢰성과 정확성은 떨어지나 효율이 증가한다.

 

UDP 헤더

Wireshark를 이용해 3계층 네트워크 패킷을 확인해보자.

 

cmd를 열어서 192.168.0.200으로 ping 테스트를 진행하자.

 

 

이때 Wireshark를 확인하면 ICMP 프로토콜이 전송되는 것을 확인할 수 있다.

위 그림에 있는 ICMP를 클릭라고 상세 정보에서 Internet Protocol Version 4를 클릭해보면 아래와 같은 정보가 출력된다.

 

  • 네트워크 계층은 여러 개의 노드를 거칠 때마다 경로를 찾아주는 역할을 수행한다.
    • 경로를 찾기 위해 사용되는 주소로 IP 사용
    • 이런 경로를 설정해 주는 것을 라우팅이라 하고, 이를 수행하는 장비를 라우터라고 부른다.
  • 네트워크 대역 간에 신뢰성 있는 정보를 전송한다.
  • 라우팅, 흐름 제어, 오류 제어와 같은 기능이 존재한다.

 

IP( Internet Protocol )

  • 네트워크 계층에서 사용되는 프로토콜
  • 네트워크 장치간 데이터 패킷을 전송하고 라우팅을 하는데 사용한다.
  • 인터넷에서 사용되는 기본 프로토콜이다.
  • 네트워크 장치에 논리 주소인 IP 주소를 부여한다.
  • 패킷( Packet ) 또는 데이터그램( Datagram )이라는 전송 단위를 사용한다.
  • IPv4와 IPv6 두 종류가 존재한다.

 

IPv4의 헤더를 살펴보자.

 

 

Version

  • Internet Protocol의 버전을 나타내는 4 bit 크기의 필드
  • IPv4와 IPv6 두 종류가 존재한다.

 

IHL( Internet Header Length )

  • IP 헤더의 길이를 나타내는 4 bit 크기의 필드
  • 보통은 20byte 크기고, Options 필드에 따라 변동한다.
  • Word 단위로 헤더 길이를 표시한다.
    • word( 4 byte )

 

TOS( Type Of Service )

  • 서비스의 우선 순위를 제공 하는 1 byte 크기의 필드다
  • 우선순위, 전달 지연, 처리량, 신뢰성을 설정 가능하다.

 

Total Length

  • IP 헤더와 실제 데이터의 크기를 모두 합친 크기를 나타내는 2 byte 필드

 

Identification

  • 보내려는 데이터에 단편화가 일어났을 경우 단편화 된 패킷을 구분하기 위한 일련번호다.
    • 단편화( Fragment ) : IP 헤더의 Identification과 IP Flag, Fragment Offset을 이용하여 패킷을 나누어 보내는 작업
  • 단편화 발생 시 조각을 다시 결합하기 위해 사용한다.
  • 2 byte

 

Flags

  • 단편화에 대한 정보를 알려주기 위해서 사용되는 3 bit 필드다
  • 첫 번째 비트( x ) : 예비로 사용되며, 항상 0 으로 셋팅
  • 두 번째 필드 DF는 단편화 유무에 대해서 표현한다.
    • D( DF ) : 1 - 패킷이 목적지 까지의 경로를 따라 라우터에 의해 단편화 되지 않아야 한다는 것을 의미한다.
      • 단편화를 진행하지 않기 때문에 너무 큰 패킷이 전달되면 ICMP가 Fragment needed라는 에러를 보내준다.
  • 마지막 비트 값인 MF는 단편화 패킷 중 마지막 패킷인지에 대해 표현한다.
    • M( MF ) : 0 - 마지막 단편화 데이터 1 - 단편화 데이터가 더 있음을 의미

 

Fragmentation Offset

  • 8 byte 단위로 표시하며, 단편화가 이루어 지기 전 위치를 나타내는 13 bit 필드

 

TTL( Time To Live )

  • 패킷이 살아있는 시간을 지정하는 1 byte 크기의 필드
  • 여기에서의 시간은 몇 개의 라우터를 이동할 수 있는지에 대한 값
  • 라우터를 지날 때 마다 1 씩 감소한다.
  • TTL이 있기 때문에 라우터를 무한 순환하는 사태를 막아준다.

 

Protocol Identifier

  • 상위 계층 프로토콜을 의미하는 1 byte 크기 필드
    • 상위 계층 프로토콜이란 4계층에서 사용되는 프로토콜을 의미한다.
  • 1 : ICMP, 2 : IGMP, 3 : TCP, 17 : UDP

 

Header Checksum

  • IP 헤더 내용이 바르게 교환되고 있는지를 점검한다.
  • 2 byte

 

Source address

  • 발신지의 IP 주소로 4 byte 크기의 필드

 

Destination address

  • 수신지의 IP 주소 4 byte 크기의 필드

 

Options

  • TOS 필드 처럼 특별한 처리 옵션을 정의 가능
  • 보안기능, QoS, 라우팅 등

 

Data( Payload )

  • 상위 계층의 데이터에 따라 최대 65535 byte의 크기를 가진다.
  • 일반적으로 MTU 크기 까지 가능하다.
    • MTU( Maximum Transmission Unit ) : 최대 전송 단위

 

단편화

  • 커다란 패킷을 나누어 보내는 작업
  • IP 헤더의 Identification과 IP Flags, Fragment offset을 이용한다.

 

패킷을 나눠 보내는 이유

택배를 받을 때 택배는 커다란 트럭에 담아져서 오게 된다. 트럭은 최대 적재량이라는 것이 있다.

최대 적재량이란 트럭에 가득 실을 수 있는 무게가 되는데, 이러한 개념이 네트워크에도 있다.

  • MTU( Maximum Transmission unit )라는 최대 전송 단위가 존재한다.
  • 2계층의 데이터 링크에서 하나의 프레임 또는 패킷에 담아 운반 가능한 최대 크기를 의미한다.
  • Ethernet의 경우 기본 값이 1500 Byte 다.

정리하면 데이터 링크( 2계층 )에서 전송 가능한 크기가 있기 때문에 상위 계층인 네트워크 계층( 3계층 )에서

단편화를 이용해 패킷을 전송하게 되는 것이다.

 

MTU 확인

  • netsh interface ipv4 show interface 명령을 통해 MUT를 확인할 수 있다.

 

MTU가 1500 byte 이며, 168 byte의 데이터를 보낼 때 IP Header를 살펴보자.

 

Total Length : 패킷의 총 길이는 168 byte이므로 단편화 필요가 없다.

Identification : 식별 값을 111로 설정한다.

Flags : 0으로 설정하여 패킷이 단편화 되어 있지 않다는 것을 나타낸다.

Fragment Offset : 단편화 된 패킷이 아니기 때문에 Offset은 0으로 설정한다.

 

 

MTU가 1500 byte 이며, 4000 byte의 데이터를 보낼 때 IP Header를 살펴보자.

 

 

위 그림 같은 패킷을 전송할 수 있을까?

 

Total Length가 1500 byte를 초과하여 전송하기 위해서 단편화가 필요하다.

 

단편화 과정을 알아보자.

 

  • MTU가 1500 Byte 이며, 4000 byte의 데이터를 보낼 때 IP Header
  • 총 패킷 길이 : 4000 byte
    • IP Header 20 byte + Payload 3980 byte
    • 단편화 시켜야 하는 Payload : 3980 byte
  • 첫 번째 단편 : MTU 1500 byte 크기
    • IP Header 20 byte + Payload 1480 byte
    • Length : 1500 byte
    • Flag : 1 ( 뒤에 데이터가 남아 있는 패킷이 있음 )
    • Offset : 0
  • 남은 데이터 : 2500 byte
  • 두 번째 단편 : MTU 1500 byte 크기
    • IP Header 20 byte + Payload 1480 byte
    • Length : 1500 byte
    • Flag : 1 ( 뒤에 데이터가 남아 있는 패킷이 있음 )
    • Offset : 이전 단편들의 Payload / 8 
      • 1480( 첫 번째 데이터 크기 ) / 8 = 185
  • 세 번째 단편 : 남은 데이터
    • IP Header 20 byte + Payload 1020 byte
    • Length : 20 byte + ( 3980 - 1480 - 1480 ) byte / 20 byte + 1020 byte
    • Flag : 0 ( 뒤에 데이터가 남아 있는 패킷이 없음 )
    • Offset : 이전 단편들의 Payload / 8
      • ( 1480 + 1480 ) / 8 = 370

 

IP Header는 각각의 요소가 중요한 의미를 가지고 있어 2계층의 스위치처럼 상위 6 byte만 읽고 전달하는 것이 아닌 헤더 전체를 해석한 이후에 패킷을 전달하게 된다.

 

IP 주소

  • IPv4는 8 bit의 수 4개, 4 byte로 구성
  • IPv6는 16 bit의 수 8개, 16 byte로 구성

 

IPv4 주소

  • IPv4의 주소 체계는 8 bit의 수 4개로 32 bit ( 4 byte )다. 
  • IP Header를 확인하면 Source 및 Destination 주소가 4 byte임을 알 수 있다
  • 모든 비트가 0일 때 부터 모든 비트가 1일 때까지 표현이 가능하고 그 개수는 2^32( 43억개 )다.
  • 4 byte, 즉 32bit로 표현하게 되면 11000000101010000000000001100100와 같다.

 

2진수가 이어진 형태의 IP 주소는 너무 보기도 어렵고, 사용하기 어렵기 때문에 이를 해결하고자 나온 표기법이

Dot-Decimal notation이다.

 

Dot-Decimal notation

  • 점으로 구분한 십진수 표기법이다.
  • 10진수 문자열로 구성되며 각 옥텟( 8개의 비트 모임 )을 점으로 구분한 표기법이다.
  • aaa.bbb.ccc.ddd와 같이 표기한다.

 

11000000101010000000000001100100을 Dot-Decimal notation으로 변환하여 보자.

 

 

위 그림의 192.168.50.139에 핑을 보냈을 때와 3232248459에 핑을 보냈을 때 결과가 동일한 것을 확인할 수 있다.

 

네트워크 부와 호스트 부

  • IP 주소는 어떤 네트워크의 호스트( 누구, 어떤 PC인지 )를 식별하는 주소다
    • IP는 네트워크 주소를 의미하는 네트워크 ID와 호스트 ID로 구성된다.
      • 다른 네트워크와 구분하는 역할을 네트워크 ID로 한다.
      • 해당 네트워크의 어느 호스트인지를 나타내는 역할을 호스트 ID로 한다.
      • 호스트는 컴퓨터 뿐안 아니라 IP 주소가 할당되는 라우터도 포함된다.
      • 호스트 ID는 네트워크에 속한 호스트 중에서 고유한 값을 가지고 있어야 한다.
      • 네트워크 ID도 인터넷에 접속되어 있는 네트워크 중에서 고유해야 한다.

 

과거에는 클래스를 기준으로 네트워크 부와 호스트 부를 나누는 방식을 사용했지만,

현재는 서브넷마스크를 통해 네트워크 부와 호스트 부를 구분하는 CIDR이라는 기법을 사용하고 있다.

서브넷 마스크와 IP 주소를 AND 연산하여 나온 값이 네트워크 부가되고, 나머지 0 부분이 호스트 부가 된다.

 

위 그림에서는 192.168.56이 네트워크 부가되고 마지막 부분이 호스트 부가 들어올 수 있는 범위가 된다.

즉, 192.168.56.0 ~ 192.168.56.255 까지의 범위가 호스트가 할당받을 수 있는 IP가 된다.

이처럼 서브넷 마스크를 통해 네트워크 부와 호스트 부를 구분할 수 있고,

Prefix로 표현하면 192.168.56.1/24와 같이 표기할 수 있다.

이때 24는 서브넷 마스크를 2진수로 나타냈을 때 연속된 1의 개수다.

 

 

 

IP 클래스

  • 과거에 각각의 네트워크 대역에 Class라는 개념을 도입해서 목적과 상황에 따라 IP를 분류 하였다.
  • 하지만 호스트의 수가 늘어나며 턱없이 부족해지는 IP의 수로 인해 더이상 사용하지 않고, 지금은 CIDR 방식을 사용하여 IP를 분류하고 있다.
  • IP 클래스에 대해서는 '과거에 이런 기준을 통해 IP를 분류하였구나' 정도로 생각하고 넘어가면 된다.

 

IP를 할당받을 때 사용할 수 없는 호스트 주소가 있다.

특수 목적을 위한 IP 주소

  • 호스트 ID가 전부 1로 채워진 IP와 0으로 채워진 IP는 사용할 수 없다.

호스트 ID가 전부 0인 IP

  • 네트워크 주소를 의미하며 해당 네트워크를 대표하는 주소의 의미이기 때문에 사용이 불가능하다
  • ex) 192.168.56.0

호스트 ID가 전부 1인 IP

  • Broadcast 주소로 전체 네트워크에 데이터를 전송할 때 사용
  • ex) 192.168.56.255
  • 192.168.56.255로 데이터를 전송하면 192.168.56.0의 네트워크에 있는 모든 호스트가 데이터를 수신

 

 

라우팅

  • 네트워크에서 통신 데이터를 보낼 때 최적의 경로를 선택
  • 출발지로부터 최종 목적지까지 논리적으로 주소가 부여된 패킷의 전달 과정

소프트웨어를 이용한 라우팅

  • 라우팅 테이블을 이용하여 라우팅을 한다.

하드웨어를 이용한 라우팅

  • 라우터 장비를 사용하여 라우팅을 수행한다.

 

route print -4 명령어를 cmd에 입력하면 라우팅 테이블을 확인할 수 있다.

 

위 그림은 네트워크 대상에 0.0.0.0, 네트워크 마스크에 0.0.0.0이 입력되어 있는데 이는 모든 IP 패킷을 의미하게 된다.

192.168.50.139 인터페이스로 오는 모든 IP 패킷을 게이트웨이 192.168.50.1에 보내라는 의미를 가지고 있다.

 

라우터를 통해 패킷이 들어오면, 라우터의 인터페이스로 수신한 패킷의 목적지 IP에 따라 라우터는 어떤 인터페이스를 통해 전송할지를 결정한다. 또한 라우터는 네트워크 보안이나 QOS 등의 기능도 제공한다.

 

 

네트워크 계층에서 라우팅을 해주는 라우터는 서로 다른 네트워크 대역의 경로를 설정해 줘야 하기 때문에 연결된 네트워크의

수만큼 IP가 필요하게 된다.

 

네트워크 계층 프로토콜 ( TCP, IP를 제외한 )

  • MAC이라는 주소를 사용하여 통신한다.
  • Point to Point( 직접 연결된 ) 간 데이터 전송을 담당하며 흐름 제어, 오류 제어 기능이 존재한다.
    • MAC 주소를 통해 LAN 속 장치 간의 신뢰성 있는 정보( Frame )를 전송한다.
  • MAC( Media Access Control Address )
    • 데이터 링크 계층에서 통신을 위한 NIC에 할당된 고유 식별자를 말한다.
    • 16진수로 표현하며, 총 6 byte( = 48 bit )로 구성된다.
    • 상위 3 byte는 제조 업체 식별 코드 OUI( Organizetional Unique Identifier )를 나타낸다.
    • 하위 3 byte는 고유 번호를 부여하기 위한 시리얼 넘버를 나타낸다.

  • 이더넷( Ethernet )
    • MAC 주소를 통해 식별하는 유선 네트워크 구성 방식
    • LAN에서 적용되는 규칙으로 스위치 같은 장비에 연결된 장비들의 데이터 통신을 위해 사용
    • CSMA/CD 방식을 이용한 통신

2계층 프로토콜은 이더넷 외에도 Token Ring, FDDI, Wi-Fi 등이 존재한다.

 

CSMA/CD ( Carrier Sense Multiple Access with Collision Detection, 반송파 감지 및 접속 및 충돌 탐지 )

  • Carrier Sense : 신호 감지
  • Multiple Access : 다중 접근
  • Collision Detection : 충돌 방지

 

Ethernet Frame

  • Ethernet 네트워크를 통해 전송되는 데이터 단위이며, 헤더, 데이터( 페이로드 ), 트레일러로 구성된다.

Preamble

  • 물리계층에서 전송된 비트패턴
  • 송신자와 수신자의 동기를 맞추는데 사용한다.
  • 7 byte의 크기이며 항상 10101010... 으로 설정한다.

SFD( Start of Frame Delimiter )

  • 1 byte 형태의 물리 계층이 끝나고 프레임 헤더를 알려주는 신호 역할
  • 항상 10101011 이며 마지막 두 필드 11에 의해 프레임 시작을 알린다.

Preamble과 SFD는 프레임의 일부는 아니지만 동기화를 위해 사용된다.

Preamble과 SFD는 패킷 캡처 시 캡처되지 않는다.

 

Destination Address

  • 프레임이 전송되는 대상 장치의 MAC 주소
  • 6 byte
  • ex) AA:AA:AA:BB:BB:BB

Source Address

  • 프레임을 보내는 장치의 MAC 주소
  • 6 byte
  • ex) CC:CC:CC:DD:DD:DD

Ethernet Type

  • 상위 계층의 Protocol 코드 값
  • 3계층에서 어떤 통신을 할지 결정
  • 2 byte
  • IP : 0x0800, ARP : 0x0806 등

Data/Payload

  • 상위 계층에서 내려온 데이터
  • 7계층 부터 3계층의 캡슐화 된 데이터
  • 상위 계층의 데이터 크기에 따라 46 byte ~ 1500 byte까지 유동적인 길이를 가진다.

FCS( CRC ) = Trailer ( Frame Check Sequence( Cyclic Redundancy Check ) )

  • 오류를 확인하는 필드
  • Destination Address와 Source Address, 길이, 데이터 영역의 합을 계산해서 에러를 판별한다.
  • 송신 측에서 FCS에서 CRC를 추가해서 보내고 수신 측에서도 동일한 방법으로 추출한 결과와의 일치성으로 오류 검사를 하는 기술이다.

 

데이터 링크 계층의 장비

스위치

  • LAN에 위치한 장치를 연결하는데 사용한다
  • L2 스위치라고도 불리며 MAC 주소를 저장할 수 있는 특징이 있다.
  • MAC 주소를 저장할 수 있기 때문에 스위칭 기능이 존재한다.
    • 스위칭 기능은 자신이 원하는 목적지에 데이터를 전송하는 기법을 의미한다.
  • 패킷을 전달할 때 Preamble을 제외한 상위 6 byte( Destination MAC Address )만 목적지 MAC주소만 읽고 전달한다.

 

 

ARP( Address Resoluion Protocol )

  • 주소 결정 프로토콜로 해당 IP에 맞는 맥 주소를 가지고 오는 프로토콜이다.

ARP의 헤더를 살펴보자.

 

Hardware Type

  • 2계층 네트워크 유형을 정의
  • Ethernet의 경우 0x0001로 설정

Protocol Type

  • 3계층에서 사용하는 프로토콜을 정의
  • IPv4일 경우 0x0800으로 설정

HW addr Length

  • MAC 주소의 길이를 정의
  • Ethernet의 경우 6 byte로 설정

Protocol addr Length

  • 3계층 프로토콜의 길이를 정의
  • IPv4의 경우 4 byte로 설정

Operation

  • 패킷 유형
  • ARP 요청의 경우 1, ARP 응답의 경우 2를 설정

Sender HW Address

  • 발신자의 MAC 주소를 설정

Sender IP Address

  • 발신자의 IP 주소를 설정

Target HW Address

  • 목적지의 MAC 주소를 설정

Target IP Address

  • 목적지의 IP 주소를 설정

 

+ Recent posts