사물인터넷(IoT: Internet of Things)은 다양한 기기와 사물이 인터넷으로 연결되어 데이터를 주고받는 기술로, 최근 그 활용 범위가 급속히 확대되고 있다. 이에 따라 IoT 환경에서의 안정적인 연결성과 저전력 통신을 위한 전용 칩셋의 개발이 활발히 이루어지고 있으며, 대표적인 예로 삼성전자의 엑시노스(Exynos) 시리즈가 있다. 본 글에서는 삼성전자의 IoT 전용 솔루션 칩 라인업과 주요 기능, 그리고 해외 주요 기업들의 NB-IoT 칩 동향을 살펴본다.

1. 국내 현황: 삼성전자의 엑시노스 IoT 솔루션 칩셋

삼성전자는 사물인터넷의 다양한 활용 시나리오에 대응하기 위해 모든 통신 거리를 수용할 수 있는 전용 솔루션 칩셋을 구축하였다. 엑시노스 i 시리즈는 각각의 통신 방식에 따라 세 가지로 구분된다.

삼성전자 IoT 칩셋 체계

1-1. 엑시노스 i S111: 협대역 IoT용 솔루션

엑시노스 i S111은 협대역 사물인터넷(NB-IoT: NarrowBand-IoT)을 지원하는 IoT 솔루션용 칩이다. NB-IoT는 기존 LTE 기지국 인프라를 활용하여 통신사업자의 서비스 영역 내에서 저전력으로 소량의 데이터를 송수신하는 LPWAN(Low Power Wide Area Network) 기술이다. 이 기술은 수도, 전기, 가스 등의 원격 검침, 영유아 및 반려동물의 위치 추적, 농축산물의 원격 관리 등 다양한 원거리 응용 환경에서 유용하게 사용된다.

해당 칩은 다음과 같은 기술적 특성을 갖는다.

  • 세 가지 동작 모드(In-band, Guard band, Stand alone)에서 주파수를 사용할 수 있다.
  • 데이터 다운로드 속도는 최대 127Kbps, 업로드는 최대 158Kbps를 지원한다.
  • 보안성을 위해 암호화 및 복호화 처리를 위한 보안 서브시스템(SSS: Security Sub System)과 물리적 복제 방지 기능(PUF: Physically Unclonable Function)을 탑재하였다.
  • 모뎀, 프로세서, 메모리, GNSS(위성항법장치) 기능을 하나의 칩에 통합하여 높은 통합성을 자랑한다.
  • 데이터 송수신이 없는 경우, 칩을 수면 모드로 전환하여 전력 소비를 최소화하며, PSM(Power Saving Mode)과 eDRX(extended Discontinuous Reception) 기능을 통해 AA 배터리 2개로 최대 10년 이상 구동이 가능하다.

NB-IoT 네트워크 및 주파수 대역

1-2. 엑시노스 i T100: 단거리 통신용 IoT 칩셋

엑시노스 i T100은 블루투스 및 ZigBee 기반의 단거리 IoT 환경을 위한 전용 칩셋이다. 스마트 조명, 창문 개폐 센서, 온도 조절기, 가스 감지기 등 가정 및 사무실에 설치되는 소형 IoT 기기에 적합하다. 또한 웨어러블 기기를 통해 신체 활동 및 운동량을 모니터링하는 데에도 활용 가능하다.

주요 특징은 다음과 같다.

  • 블루투스 5.0(저전력) 및 ZigBee 3.0 등 최신 무선 통신 기술을 지원하여 다양한 IoT 기기와의 호환성을 확보하였다.
  • 보안 서브시스템(SSS)과 PUF 기술을 통해 데이터 보안 기능을 강화하였다.
  • 일반적인 동작 온도 범위(-40℃~85℃)를 넘어 최대 125℃의 고온에서도 안정적인 작동이 가능하여 다양한 환경에서 활용 가능하다.

1-3. 엑시노스 i T200: 중거리 IoT용 고성능 칩셋

엑시노스 i T200은 WiFi 기반의 중거리 통신 환경을 위한 IoT 전용 프로세서 칩이다. 멀티코어 구조를 통해 성능과 효율을 동시에 향상시켰으며, Cortex-R4 고성능 연산 프로세서와 Cortex-M0+ 저전력 보조 프로세서를 함께 탑재하여 다양한 작업을 효과적으로 처리할 수 있다.

추가적인 특징은 다음과 같다.

  • 보안 기능 강화를 위해 SSS와 PUF 기술이 적용되었다.
  • IEEE 802.11 b/g/n 2.4GHz 와이파이 통신을 지원한다.
  • WiFi Alliance 인증, 마이크로소프트 애저(Azure) IoT 인증, IoTivity 표준을 지원하여 다양한 기기 및 클라우드 서비스와의 호환성을 제공한다.

IoTivity는 OCF(Open Connectivity Foundation)에서 제안한 오픈 소스 IoT 표준 프로토콜로, IoT 기기 간 상호운용성을 높이기 위한 기술이다.

2. 국외 현황: 주요 NB-IoT 칩셋 공급 업체

글로벌 시장에서도 다양한 반도체 기업들이 NB-IoT 칩셋 개발에 적극적으로 참여하고 있으며, 대표적으로 인텔(Intel), 퀄컴(Qualcomm), Nordic Semiconductor, Sierra Wireless, U-Blox, MEDIATEK 등이 있다.

2-1. 인텔(Intel)

인텔은 IoT 시장에서 종단 간(end-to-end) 플랫폼 솔루션을 제공하는 주요 공급업체로, 분석, 보안, 게이트웨이, 응용 프로그램 인터페이스(API)를 통합하여 포괄적인 서비스를 제공한다. 주요 제품은 다음과 같다.

  • 인텔 XMM 7115 모뎀: NB-IoT 전용 제품
  • 인텔 XMM 7315 칩: LTE-M과 NB-IoT 기술 모두 지원
  • 네트워크 구축을 위해 다운링크 속도는 200Kbps(IoT)부터 1Mbps(Cat.M)까지 조절 가능
  • IoT 플랫폼은 사물, 게이트웨이, 네트워크(데이터센터), 클라우드 기반 분석으로 구성되어 있다.

인텔의 IoT 플랫폼(예)

2-2. 퀄컴(Qualcomm)

퀄컴은 멀티모드 연결 솔루션의 일환으로 MDM9206 LTE 모뎀을 개발하였다. 해당 제품은 배터리 수명이 길고, 대역폭 요구가 적은 IoT 서비스에 적합하며, 신뢰성과 최적화된 성능을 바탕으로 셀룰러 연결을 제공하는 것을 목표로 하고 있다.

요약

협대역 사물인터넷(NB-IoT)은 기존 LTE 인프라를 기반으로 한 저전력 광역 통신 기술로, 소량의 데이터를 간헐적으로 전송하는 환경에 최적화되어 있다. 삼성전자는 이를 기반으로 엑시노스 i S111, WiFi 기반의 중거리용 i T200, 블루투스 및 ZigBee 기반의 단거리용 i T100을 개발하여 다양한 통신 거리 요구를 만족하는 IoT 칩셋 체계를 구축하였다. 이와 함께 인텔, 퀄컴 등 글로벌 기업들도 NB-IoT 기술을 탑재한 칩셋 개발을 통해 IoT 생태계 확대에 기여하고 있다.

 

데이터 링크 계층은 신뢰성 있는 데이터 전송을 보장하기 위해 다양한 기술을 포함하고 있으며, 앞서 살펴본 기본적인 오류 제어 및 흐름 제어 기법 외에도 보다 효율적인 전송을 위한 고급 프로토콜들이 존재한다. 본 글에서는 슬라이딩 윈도우 방식과 HDLC 프로토콜, 그리고 LAP 계열의 프로토콜에 대해 정리한다.

1. 슬라이딩 윈도우 프로토콜

슬라이딩 윈도우(Sliding Window) 프로토콜은 데이터 링크 계층에서 양방향 통신을 지원하는 대표적인 프로토콜로, 오류 제어와 흐름 제어 기능을 모두 갖추고 있다. 이 방식은 특히 효율적인 데이터 전송이 요구되는 환경에서 널리 사용된다.

1.1 흐름 제어

슬라이딩 윈도우 방식은 다음 두 가지 개념을 기반으로 흐름 제어를 수행한다.

  1. 순서 번호(Sequence Number)
    각 프레임에는 고유한 순서 번호가 부여되어 전송 순서를 추적할 수 있다. 수신 측은 순서 번호를 바탕으로 프레임의 정상 수신 여부를 판단한다.
  2. 윈도우 크기(Window Size)
    송신 측과 수신 측이 한 번에 처리할 수 있는 프레임 수를 지정한다. 송신 윈도우는 수신 측의 버퍼 처리 능력을 고려하여 설정되며, 과도한 프레임 전송을 방지한다.

슬라이딩 윈도우 프로토콜의 동작 과정
슬라이딩 윈도우 프로토콜의 동작 과정 2

1.2 연속형 전송

기존의 정지-대기 프로토콜은 송신 윈도우 크기가 1인 경우로, 프레임 하나를 전송한 뒤 ACK(확인 응답)를 기다린 후 다음 프레임을 전송한다. 그러나 슬라이딩 윈도우 방식에서는 여러 프레임을 연속으로 전송할 수 있으며, 이를 연속형 정지(Continuous Stop-and-Wait)라고 부르기도 한다.

이 방식은 다음과 같은 장점을 가진다.

  • 오류가 적은 환경에서는 송수신의 대기 시간이 줄어들어 전송 효율이 향상된다.
  • ACK 프레임을 기다리지 않고 여러 프레임을 연속적으로 전송함으로써 지연 시간을 줄일 수 있다.

오류 제어 방식

오류 발생 시 슬라이딩 윈도우 방식은 다음 두 가지 방법 중 하나로 오류를 해결한다.

  1. Go-Back-N 방식
    오류가 발생한 프레임 이후의 모든 프레임을 다시 전송한다. 수신 측은 오류가 난 프레임부터 이후 프레임을 모두 폐기하고, 송신 측은 오류 발생 이후의 데이터를 다시 보낸다.

고백NGo-Back-N 방식

  1. 선택적 재전송 방식(Selective Repeat)
    오류가 발생한 프레임만 선택적으로 재전송하는 방식이다. 수신 측은 오류가 발생하지 않은 프레임을 임시로 저장하고, 오류 프레임만 재요청한다. 이 방식은 처리 복잡도는 높지만 전송 효율이 높다.

선택적재전송

1.3 피기배킹(Piggybacking)

피기배킹은 양방향 통신에서 송신 측이 데이터 프레임(정보 프레임)을 전송하면서 동시에 상대 측의 데이터에 대한 응답(ACK)을 포함시키는 기술이다. 이렇게 함으로써 별도의 응답 프레임을 전송할 필요가 없어 전송 효율이 향상된다. 이는 대역폭 절약과 지연 시간 감소에 매우 효과적이다.

피기배킹

2. HDLC 프로토콜

HDLC(High-Level Data Link Control)는 ISO에서 제정한 비트 기반(bit-oriented)의 데이터 링크 계층 프로토콜로, 다양한 네트워크 환경에서 신뢰성 있는 데이터 전송을 위해 사용된다.

2.1 HDLC의 프레임 구조

HDLC 프로토콜은 전송 목적에 따라 다음 세 가지 종류의 프레임을 사용한다.

  1. 정보 프레임(Information Frame)
    사용자 데이터를 포함하며, 데이터 전송에 사용된다.
  2. 감독 프레임(Supervisory Frame)
    오류 제어나 흐름 제어 기능을 수행하며, ACK 및 NAK 등을 포함한다.
  3. 비번호 프레임(Unnumbered Frame)
    연결 설정, 해제 등의 제어 메시지를 전달하며, 번호를 부여하지 않는다.

HDLC 프레임구조
감독 프레임
비번호 프레임

2.2 호스트의 동작 모드

HDLC에서는 통신에 참여하는 호스트의 역할에 따라 다음 세 가지 모드로 동작할 수 있다.

  • 일차국(Primary Station): 통신을 제어하는 중심 노드로, 명령을 주도한다.
  • 이차국(Secondary Station): 명령에 응답하는 수동적 노드이다.
  • 혼합국(Combined Station): 일차국과 이차국의 기능을 모두 수행할 수 있다.

3. LAP 및 LAPB 프로토콜

HDLC는 다양한 환경에 맞춰 응용된 여러 하위 프로토콜을 가지고 있으며, 그중 대표적인 것이 LAP와 LAPB이다.

3.1 LAP 프로토콜

LAP(Link Access Procedure)은 HDLC에서 파생된 프로토콜로, 비동기 응답 모드인 ARM(Asynchronous Response Mode)으로 동작한다. ARM 모드는 주로 일차국이 통신을 제어하고, 이차국이 요청에 응답하는 구조를 취한다. 이는 단방향 통신 환경에서 적합한 구조이다.

LAP에서의 연결 설정 1
LAP에서의 연결 설정 2

3.2 LAPB 프로토콜

LAPB(Link Access Procedure Balanced)는 HDLC의 변형으로, X.25 프로토콜 계열에서 사용된다. 이 프로토콜은 혼합국 모드(Balanced Mode)를 사용하여, 양쪽 호스트가 모두 일차국 및 이차국의 기능을 수행할 수 있도록 한다. 따라서 어느 쪽이든 먼저 명령을 전송할 수 있으며, 대등한 입장에서 통신이 이루어진다.

LAPB에서의 연결 설정

결론

슬라이딩 윈도우 방식과 HDLC 계열 프로토콜은 데이터 링크 계층에서의 효율적이고 신뢰성 있는 데이터 전송을 위한 핵심 기술이다. 슬라이딩 윈도우는 흐름 제어와 오류 제어를 효과적으로 수행하며, 피기배킹 기법을 통해 전송 효율을 극대화한다. HDLC는 다양한 프레임 구조와 호스트 동작 방식을 지원하며, LAP와 LAPB와 같은 응용 프로토콜을 통해 다양한 통신 환경에 적응할 수 있다. 이러한 개념들은 네트워크 프로토콜 설계 및 구현의 근간을 이루는 중요한 요소이다.

 

컴퓨터 네트워크에서 데이터 전송의 정확성과 효율성을 확보하기 위해 여러 계층의 프로토콜이 사용된다. 그중 데이터 링크 계층은 물리 계층과 네트워크 계층 사이에서, 신뢰성 있는 데이터 전송을 보장하는 핵심적인 역할을 수행한다. 이 글에서는 데이터 링크 계층의 연결 방식, 프레임 종류, 오류 및 흐름 제어 방식에 대해 정리한다.

1. 데이터 링크 계층의 연결 방식

데이터 링크 계층은 호스트 간에 데이터를 프레임 단위로 전송하고, 오류 제어 및 흐름 제어를 통해 안정적인 통신을 지원한다. 이 계층에서의 연결 방식은 크게 점대점(Point-to-Point) 연결멀티드롭(Multidrop) 연결로 구분된다.

  • 점대점 연결은 두 호스트가 1:1로 직접 연결된 형태로, 상대방이 누구인지를 명시할 필요가 없기 때문에 주소 개념이 불필요하다.
  • 멀티드롭 연결은 하나의 전송 매체를 여러 호스트가 공유하는 방식이다. 이 경우, 각 프레임의 수신 대상을 명확히 구분해야 하므로 주소 개념이 필요하다.

또한 데이터 링크 계층은 물리 계층에서 발생할 수 있는 오류를 제어하기 위해 재전송 기법을 포함한 다양한 오류 제어 기법을 사용한다.

연결 구성도

2. 프레임의 종류

데이터 링크 계층에서는 전송 단위를 프레임(Frame)이라 하며, 다양한 제어 및 데이터 정보를 담고 있다. 프레임의 종류는 다음과 같이 나뉜다.

  1. 정보 프레임(Information Frame, I 프레임)
    실제 데이터를 전송하는 데 사용되는 프레임이다.
  2. 긍정 응답 프레임(Acknowledgement Frame, ACK 프레임)
    이전에 수신한 프레임이 오류 없이 도착했음을 알려주는 제어 프레임이다.
  3. 부정 응답 프레임(Negative Acknowledgement Frame, NAK 프레임)
    오류가 발생했거나 프레임을 받지 못한 경우 이를 송신 측에 통보하는 제어 프레임이다.

3. 오류 및 흐름 제어 기법의 발전 과정

데이터 링크 계층에서는 다양한 상황을 가정하여 오류 제어 및 흐름 제어 기능이 포함된 여러 프로토콜이 사용된다.

3.1 오류 및 흐름 제어가 없는 프로토콜

  • 가정: 매우 이상적인 통신 환경으로, 프레임 손실이나 오류가 발생하지 않는다고 가정한다.
  • 단순 프로토콜(Simple Protocol): 송신 측이 데이터를 전송하면, 수신 측은 이를 곧바로 처리하며 오류나 흐름 제어는 고려하지 않는다. 이 프로토콜은 학습용 개념으로만 사용된다.
  • 단순 프로토콜

3.2 오류 제어가 없는 프로토콜

  • 가정: 수신 측은 유한한 수의 버퍼만을 보유하고 있다.
  • 정지-대기 프로토콜 1(Stop-and-Wait Protocol 1): 송신 측은 하나의 프레임을 전송한 후, 수신 측이 확인 응답을 줄 때까지 기다린다. 흐름 제어는 어느 정도 가능하지만, 오류가 발생해도 재전송이 이루어지지 않는다.
  • 정지-대기 프로토콜 1

3.3 단방향 오류 및 흐름 제어 프로토콜

  • 가정: 프레임 손실 및 변형 가능성을 고려하며, 수신 측은 오류 제어와 흐름 제어 기능을 지원한다.
  • 이 프로토콜은 실제 환경에서의 데이터 전송 시 발생할 수 있는 여러 오류를 처리하기 위한 기능들을 포함한다.
    주요 특징은 다음과 같다:
  1. 프레임 변형 오류 대응:
    수신 측은 프레임이 손상된 경우 이를 인식하고, 송신 측에 **부정 응답 프레임(NAK)**을 전송하여 재전송을 요청한다.
  2. 프레임 분실 오류 대응:
    송신 측은 일정 시간 동안 응답을 받지 못하면, 타임아웃 기능을 통해 해당 프레임을 재전송한다.
  3. NAK가 없는 경우:
    프레임 손실이나 오류를 확인하는 수단이 없어 송신 측은 오직 타임아웃에 의존해 재전송을 수행한다. 이 경우, 효율성은 떨어질 수 있으나 구현은 간단하다.

정보 프레임 분실 오류
ACK 프레임 분실 오류
프레임 변형 오류

  1. NAK가 있는 경우:
    수신 측이 오류를 감지할 경우, 즉시 송신 측에 NAK를 보내므로 보다 빠른 오류 복구가 가능하다.

프레임 변형 오류
프레임 분실 오류

결론

데이터 링크 계층은 데이터 통신의 기초가 되는 계층으로, 오류 없는 데이터 전송을 위해 다양한 프레임 구조와 제어 프로토콜을 사용한다. 점대점 연결과 멀티드롭 연결처럼 연결 형태에 따라 설계 방식이 달라지며, 오류 제어 및 흐름 제어 기능은 실제 네트워크 환경에서 데이터 전송의 신뢰성을 보장하는 데 필수적인 요소이다. 특히, 단방향 오류 및 흐름 제어 프로토콜은 프레임 변형 및 분실 같은 문제를 효율적으로 처리하기 위한 기능들을 포함하고 있어 실무적으로도 중요한 기반이 된다.

 

데이터 링크 계층은 네트워크에서 두 호스트 간 안정적인 데이터 전송을 보장하기 위한 다양한 기능을 수행한다. 이 글에서는 그중에서도 오류 제어와 흐름 제어를 효과적으로 수행하는 슬라이딩 윈도우 프로토콜과 고급 데이터 링크 제어 방식인 HDLC(High-level Data Link Control) 프로토콜에 대해 정리한다.

1. 슬라이딩 윈도우 프로토콜

슬라이딩 윈도우 프로토콜(Sliding Window Protocol)은 양방향 통신을 지원하며, 오류 제어와 흐름 제어 기능을 모두 포함하는 전송 방식이다. 여러 개의 프레임을 한꺼번에 전송하고, 수신자의 응답에 따라 윈도우를 조정하는 방식으로 효율적인 데이터 전송이 가능하다.

1) 기본 원리

슬라이딩 윈도우 프로토콜의 동작 과정은 다음과 같다.

  • 송신 호스트는 각 프레임에 순서 번호(sequence number)와 오류 검출 코드를 포함하여 정보 프레임을 생성하고 순차적으로 전송한다.
  • 수신 호스트는 수신한 프레임에 대해 현재 정상적으로 수신한 프레임의 번호가 아닌, 다음에 수신되기를 기대하는 순서 번호를 응답한다.
  • 송신 측은 아직 응답을 받지 못한 프레임들을 송신 윈도우에서 관리하며, 이를 통해 중복 전송을 방지하고 오류 발생 시 재전송할 수 있다.
  • 수신 측 또한 수신 윈도우를 사용하여 수신 가능한 프레임을 관리하며, 그 크기는 사용하는 방식에 따라 달라진다.
    • 선택적 재전송(Selective Retransmission) 방식에서는 수신 윈도우의 크기가 송신 윈도우와 동일하다.
    • 고백 N(Go-Back-N) 방식에서는 수신 윈도우의 크기가 1로 제한된다.

2) 순서 번호와 윈도우 크기

  • 순서 번호는 각 프레임에 부여되는 고유 번호로, 0부터 특정 최대값까지 순환 방식으로 사용된다.
  • 일반적으로 순서 번호의 범위는 2ⁿ 개이며, 이때 n은 순서 번호를 표현하는 비트 수이다.
  • 순서 번호의 최대값은 송신 윈도우의 크기보다 커야 하며, 이를 통해 프레임의 중복이나 누락 없이 안정적인 전송이 가능하다.
  • 윈도우 크기란 수신 호스트로부터 긍정 응답을 받지 않고도 송신 측이 연속으로 전송할 수 있는 최대 프레임 수를 의미한다. 이 값이 클수록 더 많은 데이터를 ACK 없이 전송할 수 있어 효율이 높아지지만, 오류 발생 시 재전송 부담이 증가할 수 있다.

3) 흐름 제어

슬라이딩 윈도우 프로토콜은 송신자와 수신자 간의 처리 속도 차이를 고려하여 데이터를 조절하는 흐름 제어 기능을 수행한다. 예를 들어, 송신 윈도우의 크기가 3이라면, 송신자는 최대 3개의 프레임을 연속 전송할 수 있으며, 이 중 하나라도 ACK를 받으면 해당 윈도우는 앞으로 이동하여 새로운 프레임 전송이 가능해진다.

슬라이딩 윈도우 프로토콜의 동작 과정1

(a): 송신 윈도우의 최대 크기를 3으로 했을 때 슬라이딩 윈도우 프로토콜의 동작 과정으로 0,1,2번
의 정보 프레임을 전송한 후에, 아직 해당 정보 프레임에 대한 ACK 프레임을 받지 못한 경우이다.
[3번을 전송하려면 0번에 대한 긍정 응답 처리가 완료되어야 한다]
(b) : 수신 호스트로부터 0번에 대한 ACK 프레임이 돌아오면 프레임 처리가 완료된 것으로 1,2번만
존재한다.
(c) : 윈도우의 최대 크기가 3이므로 3번 프레임을 전송할 수 있다.
(d) : a, b, 와 같은 수순을 밟음
(f) : 2,3번 프레임에 대한 ACK 프레임이 도착한 직후로 이후에는 5,6번을 전송할 수 있다.
[9까지 가면 다시 0부터 쭉]

4) 연속형 전송 (Pipelining)

정지-대기 방식에서는 송신 윈도우 크기가 1이므로, 매 프레임마다 수신자의 응답을 기다려야 한다. 반면, 연속형 전송은 ACK를 기다리지 않고 여러 프레임을 연속적으로 전송할 수 있으므로, 전송 효율이 높아진다.

이 방식은 네트워크 환경이 안정적일수록 효과적이며, 오류가 발생할 경우 다음 두 가지 방법 중 하나로 복구가 이루어진다.

  • 고백 N 방식: 오류가 발생한 프레임을 포함하여 그 이후에 전송된 모든 프레임을 다시 전송한다.
    • 고백 N(Go-Back-N) 방식
  • 선택적 재전송 방식: 오류가 발생한 프레임만 선별적으로 재전송한다. 이 방식은 전송 효율이 높지만 구현이 복잡하다.
    • 선택적 재전송(Selective Retransmission )방식

5) 피기배킹 (Piggybacking)

피기배킹은 데이터 프레임을 전송하면서 동시에 수신 응답(ACK)을 포함하여 전송하는 기술이다. 이를 통해 별도의 ACK 프레임을 보내지 않아도 되므로 전송 효율이 향상된다.

  • 피기배킹을 사용하지 않을 경우, 각 프레임에 대해 별도의 ACK 혹은 NAK 프레임이 전송된다.
  • 피기배킹을 사용하는 경우, 프레임은 I(i, j) 형식으로 표현되며,
    • i는 현재 전송 중인 데이터의 순서 번호
    • j는 마지막으로 제대로 수신한 프레임 번호를 의미한다.
  • 피기배킹을 사용하지 않는 경우


  • 피기배킹을 사용하는 경우

 

2. HDLC 프로토콜

HDLC(High-level Data Link Control) 프로토콜은 고급 데이터 링크 제어 프로토콜로, 신뢰성 있는 데이터 전송을 위해 다양한 통신 방식과 제어 프레임 구조를 제공한다.

1) 개요

HDLC는 일대일 또는 일대다 통신 환경에서 데이터 송수신을 위한 프레임 구조와 절차를 정의한다. 통신 참여자는 다음 세 가지 형태로 나뉜다.

  • 주국(Primary Station): 명령을 전송하는 역할을 수행한다.
  • 종국(Secondary Station): 응답만 수행하는 수동적인 호스트이다.
  • 혼합국(Combined Station): 명령과 응답 모두를 처리할 수 있는 기능을 가진 호스트이다.

2) 프레임 구조

HDLC 프레임은 시작과 끝을 구분하기 위해 플래그 비트 01111110으로 구분되며, 다음과 같은 구성 요소를 포함한다.

  • Address 필드: 수신 대상 호스트를 식별하는 용도로 사용된다.
  • Control 필드: 프레임의 종류를 나타내며, 정보 프레임인지, 응답 프레임인지 등을 구분한다.
  • Data 필드: 전송할 실제 데이터가 담기는 영역으로, 가변 길이를 가질 수 있다.
  • Checksum 필드: 전송 오류를 검출하기 위한 영역으로, 일반적으로 CRC 방식이 사용된다.

HDLC 프레임

3) 프레임 종류

HDLC에서는 전송 목적에 따라 다음과 같은 세 가지 프레임을 사용한다.

(1) 정보 프레임(Information Frame)

  • 데이터 전송을 담당하며, 3비트 슬라이딩 윈도우 프로토콜을 기반으로 동작한다.
  • 순서 번호는 0부터 7까지의 값을 순환하여 사용한다.
  • 주요 필드는 다음과 같다.
    • Seq: 전송 중인 데이터의 순서 번호
    • Next: 피기배킹을 통해 응답하는 마지막 수신된 프레임의 번호
    • P/F 비트: 1일 경우, 명령 프레임에서는 Poll(폴링) 의미, 응답 프레임에서는 Final(종결) 의미를 갖는다.

정보 프레임(Information Frame)

(2) 감독 프레임(Supervisor Frame)

  • 정보 프레임에 대한 응답 기능을 수행하며, 긍정 응답(ACK)과 부정 응답(NAK) 등으로 구성된다.

감독 프레임(Supervisor Frame)

(3) 비번호 프레임(Unnumbered Frame)

  • 순서 번호가 없는 특수 기능용 프레임이며, 다양한 제어 기능을 수행한다.

종류는 다음과 같다.

  • SABM: 비동기 균형 모드(ABM) 연결 설정 요청
  • SNRM: 정규 응답 모드(NRM) 연결 설정 요청
  • SARM: 비동기 응답 모드(ARM) 연결 설정 요청
  • DISC: 연결 해제 요청
  • RSET: 연결 상태 초기화
  • FRMR: 잘못된 프레임 수신 시 거부
  • UA: 비번호 프레임에 대한 응답

비번호 프레임(Unnumbered Frame)

4) LAP와 LAPB 프로토콜

  • LAP (Link Access Protocol): HDLC에서 정의된 하위 프로토콜로, 주국이 SARM 명령을 전송하고 종국이 UA 응답을 회신함으로써 연결이 설정된다. 이 방식은 비동기 응답 모드(ARM)로 동작한다.
  • LAPB (Link Access Protocol - Balanced): 양쪽 호스트 모두 혼합국으로 동작할 수 있으며, 어느 한쪽이든 먼저 명령을 보낼 수 있다. 더욱 유연한 통신이 가능하다.

LAP 프로토콜
LAP 프로토콜 2
LAPB에서의 연결 설정

요약

  • 슬라이딩 윈도우 프로토콜은 오류 제어와 흐름 제어를 함께 지원하는 방식으로, 여러 프레임을 ACK 없이 전송할 수 있어 효율적이다.
  • 선택적 재전송 방식에서는 오류가 발생한 프레임만 다시 전송하며, 고백 N 방식에서는 오류 발생 이후의 모든 프레임을 재전송한다.
  • 피기배킹은 응답 정보를 데이터 프레임에 포함시켜 전송 효율을 극대화하는 기법이다.
  • HDLC 프로토콜은 정보, 감독, 비번호 프레임의 구조를 통해 다양한 통신 환경에서 유연하게 동작하며, LAP와 LAPB 같은 하위 프로토콜을 통해 모드 전환과 연결 관리를 지원한다.

 

1. 데이터 링크 계층의 역할과 구성

데이터 링크 계층은 컴퓨터 네트워크에서 물리 계층과 네트워크 계층 사이의 중간 계층으로, 인접한 노드 간의 신뢰성 있는 데이터 전송을 담당한다. 이 계층은 물리적인 오류가 발생할 수 있는 전송 매체에서 데이터를 정확하게 전달하기 위해 오류 제어, 흐름 제어, 프레임화, 주소 지정 등의 기능을 수행한다.

데이터는 상위 계층에서 전송되기 전, 물리 주소(MAC 주소)와 제어 정보를 포함한 헤더(header)가 앞부분에 추가되고, 오류 검출을 위한 정보가 담긴 트레일러(trailer)가 뒷부분에 추가되어 전송된다.

데이터 링크 프로토콜

데이터 링크 계층에서 사용되는 프로토콜은 크게 문자 지향 방식비트 지향 방식으로 구분된다.

데이터 링크 계층 프로토콜의 기초

(1) BSC (Binary Synchronous Communication)

  • 문자 지향 동기 방식으로, 데이터를 문자 단위로 전송한다.
  • 반이중 방식(Half Duplex)을 사용한다.
  • 전송 제어 문자로는 SOH, STX, ETX, ETB, EOT, ENQ, DLE 등이 있다.
  • 점대점(Point-to-Point) 연결 방식에서는 주소 개념이 불필요하나, 멀티드롭(Multi-drop) 방식에서는 각 호스트 주소가 필요하다.

(2) HDLC (High-level Data Link Control)

  • 비트 지향 방식으로, 비트 단위로 데이터를 전송하며 전이중 통신을 지원한다.
  • 신뢰성과 속도가 뛰어나며 고속 통신에 적합하다.
  • 비트 스터핑(Bit Stuffing) 기능을 제공하여 데이터 내 플래그 오인을 방지한다.
    • HDLC에서 프레임 시작과 끝을 나타내는 플래그는 01111110으로 고정되어 있다.
    • 전송 데이터 중에 ‘1’이 5번 연속될 경우, 송신 측은 자동으로 ‘0’을 삽입하고, 수신 측은 이를 제거함으로써 플래그와 혼동되는 것을 방지한다.

2. 프레임(Frame)의 종류

데이터 링크 계층에서 전송 오류를 해결하기 위해 다양한 종류의 프레임이 사용된다.

  • 정보 프레임 (I-Frame): 상위 계층에서 받은 데이터를 전송하기 위한 프레임으로, 순서 번호와 송·수신 주소 정보를 포함한다.
  • 긍정 응답 프레임 (ACK-Frame): 수신 측이 데이터를 정상적으로 수신하였음을 송신 측에 알리는 프레임이다.
  • 부정 응답 프레임 (NAK-Frame): 수신 측에서 오류가 발생한 경우 송신 측에 재전송을 요청하는 프레임이다.

3. 오류 제어 및 흐름 제어

1) 오류 제어(Error Control)

오류 제어는 데이터 전송 중 발생할 수 있는 오류를 탐지하고 수정하는 기능을 말한다. 방식은 다음과 같이 구분된다.

  • 전진 오류 수정 (FEC, Forward Error Correction): 송신 측이 제어 비트를 추가하여 전송하며, 수신 측이 이를 이용해 오류를 수정한다. 재전송이 필요 없다는 장점이 있다.
  • 후진 오류 수정 (BEC, Backward Error Correction): 오류가 발생했을 경우 수신 측이 재전송을 요청하며, 이를 위해 역채널이 필요하다.

오류의 주요 원인은 다음과 같다.

  • 감쇠(Attenuation): 거리 증가에 따라 신호가 약해지는 현상
  • 지연 왜곡(Delay Distortion): 주파수에 따라 전송 속도가 달라져 발생하는 신호 손상
  • 백색 잡음(White Noise): 열에 의한 랜덤한 신호 간섭
  • 상호변조 잡음(Intermodulation Noise): 서로 다른 주파수 간의 간섭
  • 누화 잡음(Crosstalk Noise): 인접한 회선 간 전자기 유도
  • 충격성 잡음(Impulse Noise): 외부 충격이나 기계적 진동 등으로 인한 잡음

2) 흐름 제어(Flow Control)

흐름 제어는 송신 측의 데이터 전송 속도를 조절하여 수신 측의 처리 능력을 초과하지 않도록 하는 기능이다.

정지-대기(Stop-and-Wait) 프로토콜

  • 송신 측은 하나의 프레임을 전송한 후, 수신 측의 ACK 응답을 받은 후에 다음 프레임을 전송한다.
  • 수신 측의 버퍼 크기가 제한적인 경우 효과적이다.
  • 흐름 제어 및 오류 제어가 동시에 적용된다.
  • 정지-대기 프로토콜

단방향 프로토콜 (Unidirectional Protocol)

  • 프레임이 단일 방향으로만 전송된다.
  • 오류 제어와 흐름 제어 모두 지원해야 한다.
  • 오류 상황에 따라 NAK 프레임, 타임아웃 기능 등을 이용하여 복구한다.
  • NAK가 없는 경우


  • NAK가 없는 경우 2
  • NAK가 있는 경우


  • NAK가 있는 경우 2

4. 통신 프로토콜의 개념과 기능

1) 통신 프로토콜의 정의

통신 프로토콜(Communication Protocol)은 네트워크 상의 다양한 장비들이 서로 데이터를 원활하게 주고받기 위해 정한 일련의 규칙이다. 하드웨어와 소프트웨어, 그리고 이들 사이의 데이터 교환 절차를 모두 포함한다.

프로토콜의 구성 요소는 다음과 같다.

  • 구문(Syntax): 데이터 형식, 부호화 방식, 신호 수준 등을 정의
  • 의미(Semantics): 제어 정보 및 상호 동작 방식 정의
  • 시간(Timing): 통신 속도, 메시지 전송 순서 등을 정의

2) 통신 프로토콜의 주요 기능

  1. 단편화와 재결합(Fragmentation & Reassembly)
    데이터를 일정 크기로 나누어 전송하고, 수신 측에서 이를 다시 원래의 데이터로 조합함
  2. 캡슐화(Encapsulation)
    데이터에 주소, 오류 검출 정보 등을 포함시켜 전송하는 과정
  3. 오류 제어(Error Control)
    전송 중 발생하는 오류를 검출하고 정정함
  4. 흐름 제어(Flow Control)
    송·수신 속도를 조절하여 수신 측의 과부하 방지
  5. 순서 제어(Sequencing)
    데이터 블록에 전송 순서를 부여하여 순차적 수신 보장
  6. 동기화(Synchronization)
    송·수신 장치 간의 타이밍을 일치시켜 데이터 손실 방지
  7. 주소지정(Addressing)
    데이터를 정확한 목적지로 전달하기 위한 주소 정보 부여
  8. 다중화(Multiplexing)
    하나의 물리 채널을 여러 사용자 또는 데이터가 공유할 수 있도록 함
  9. 경로 제어(Routing)
    최적의 데이터 전송 경로를 설정
  10. 전송 서비스
    데이터 전송 시 제공되는 부가 기능 (우선순위, 서비스 등급, 보안 등)

3) 통신 프로토콜의 전송 방식

프로토콜은 데이터 프레임 구성 방식에 따라 다음과 같이 분류된다.

  • 문자 전송 방식: 전송 제어 문자를 이용해 시작과 끝을 구분 (예: BSC)
  • 바이트 방식: 헤더에 문자 개수 및 상태 정보를 포함 (예: DDCM)
  • 비트 방식: 특정 비트 패턴으로 프레임의 경계를 구분 (예: HDLC, SDLC, LAPB)

리눅스를 처음 접하는 사용자라면, 터미널에서 자주 사용하는 명령어들과 텍스트 편집 도구인 vi 에디터의 기본 사용법을 익히는 것이 중요하다. 본 글에서는 vi의 핵심 사용법을 간략히 소개하고, 리눅스에서 자주 사용하는 명령어들과 함께 유용한 옵션들을 정리한다.


📝 vi 에디터 간단 사용법

 

vi는 총 3가지 모드를 가지고 있으며, 이들 간의 전환을 통해 다양한 편집 작업을 수행할 수 있다.

모드 설명
명령 모드 기본 모드. 커서를 이동하거나 명령을 실행할 수 있음
입력 모드 실제로 텍스트를 입력할 수 있는 모드
명령행 모드 저장, 종료 등 파일과 관련된 명령을 입력하는 모드

🔁 모드 전환 방법

현재 모드 전환할 모드 입력  키설명
명령 모드 입력 모드 i, a, o 등 텍스트 입력 가능해짐
입력 모드 명령 모드 Esc 입력 종료, 명령 대기 상태로 전환
명령 모드 명령행 모드 : 저장, 종료 등 명령어 입력 가능

🛠️ vi 시작 및 종료 명령

명령어 설명
vi 파일명 해당 파일을 열고 vi 실행
:w 현재 편집 내용을 저장
:q 에디터 종료
:q! 저장하지 않고 강제 종료
:wq 또는 ZZ 저장 후 종료
:x 저장한 경우에만 종료

🧭 명령 모드에서의 커서 이동

설명
h 왼쪽으로 한 글자 이동
l 오른쪽으로 한 글자 이동
j 아래로 한 줄 이동
k 위로 한 줄 이동
w 다음 단어의 처음으로 이동
b 이전 단어의 처음으로 이동
0 현재 줄의 맨 앞으로 이동
^ 현재 줄의 첫 글자로 이동
$ 현재 줄의 맨 끝으로 이동
G 문서의 마지막 줄로 이동
gg 문서의 첫 줄로 이동
숫자G 지정한 줄 번호로 이동

✂️ 텍스트 삭제 및 복사

명령어 설명
x 현재 커서 위치의 한 글자 삭제
dd 현재 줄 삭제
d$ 현재 줄에서 커서 위치부터 끝까지 삭제
dw 한 단어 삭제
yy 현재 줄 복사
p 복사한 내용을 커서 다음 줄에 붙여넣기
u 마지막 명령 실행 취소
Ctrl + r 실행 취소한 명령 다시 실행

🔍 검색 및 치환

명령어 설명
/검색어 앞으로 검색
?검색어 뒤로 검색
n 같은 방향으로 다음 검색 결과 이동
N 반대 방향으로 다음 검색 결과 이동
:s/old/new 현재 줄에서 첫 번째 old를 new로 치환
:s/old/new/g 현재 줄에서 모든 old를 new로 치환
:%s/old/new/g 전체 문서에서 모든 old를 new로 치환
:%s/old/new/gc 치환 여부를 하나씩 확인하면서 진행

💡 자주 사용하는 입력 모드 명령어

명령어 설명
i 현재 커서 앞에 입력
I 현재 줄의 맨 앞에서 입력
a 현재 커서 뒤에 입력
A 현재 줄의 끝에서 입력
o 현재 줄 아래에 새로운 줄을 추가하고 입력 시작
O 현재 줄 위에 새로운 줄을 추가하고 입력 시작

📄 유용한 설정 (명령행 모드)

명령어 설명
:set number 줄 번호 표시
:set nonumber 줄 번호 숨김
:set paste 붙여넣기 모드 활성화 (들여쓰기 방지용)
:syntax on 문법 강조 활성화
:set tabstop=4 탭 간격을 4로 설정

💡 리눅스 기본 명령어 정리

리눅스는 명령어 기반의 운영체제이므로, 아래 명령어들은 자주 사용되며 반드시 숙지할 필요가 있다.

📂 파일 및 디렉토리 관련

명령어  설명
ls 현재 디렉토리의 파일 목록 출력
ls -l 상세 정보 포함 목록 출력
ls -a 숨김 파일 포함 목록 출력
cd 디렉토리명 해당 디렉토리로 이동
pwd 현재 작업 중인 디렉토리 경로 출력
mkdir 디렉토리명 새로운 디렉토리 생성
rm 파일명 파일 삭제
rm -r 디렉토리명 디렉토리 및 내부 파일 삭제
cp 원본 대상 파일 복사
mv 원본 대상 파일 이동 또는 이름 변경

🗂️ 파일 내용 확인

명령어  설명
cat 파일명 전체 파일 내용 출력
more 파일명 페이지 단위로 출력 (위아래 이동 가능)
less 파일명 더 유연한 탐색 가능 (검색 등)
head 파일명 파일의 앞부분 10줄 출력
tail 파일명 파일의 뒷부분 10줄 출력
tail -f 파일명 실시간 로그 확인 시 유용

🛠️ 시스템 관련

명령어  설명
clear 터미널 화면 초기화
whoami 현재 로그인한 사용자 확인
hostname 시스템 호스트 이름 확인
df -h 디스크 사용량 확인 (사람이 읽기 쉬운 형식)
top 또는 htop 실시간 프로세스 및 리소스 사용량 확인
ps -ef 현재 실행 중인 프로세스 목록 출력
kill PID 특정 프로세스 종료 (PID는 프로세스 ID)

🔐 권한 및 사용자

명령어  설명
chmod 파일 권한 변경
chown 소유자 변경
sudo 명령어 관리자 권한으로 명령어 실행
passwd 비밀번호 변경
sudo su 또는 su root 사용자로 전환

🔄 패키지 관리 (Debian/Ubuntu/Kali 계열)

명령어  설명
apt update 저장소 정보 갱신
apt upgrade 설치된 패키지 전체 업데이트
apt install 패키지명 패키지 설치
apt remove 패키지명 패키지 제거
apt search 키워드 패키지 검색
apt show 패키지명 패키지 상세 정보 확인

✅ 마무리

리눅스는 초반에 다소 낯설 수 있지만, 자주 사용되는 명령어와 도구들부터 차근차근 익혀가면 금세 익숙해진다.
특히 vi 에디터와 ls, cd, cp, rm, sudo 등은 리눅스의 기본기를 다지는 데 필수적이다.

리눅스 명령어
리눅스 명령어 2

리눅스는 모든 것이 파일로 이루어진 운영체제다.
처음 리눅스를 접하는 사람이라면 /bin, /etc, /usr 같은 디렉토리가 낯설게 느껴질 수 있다.
하지만 리눅스의 디렉토리 구조는 매우 체계적이며, 각 디렉토리는 명확한 목적을 가지고 있다.

이번 글에서는 리눅스를 처음 배우는 사람도 쉽게 이해할 수 있도록
디렉토리 구조의 핵심 개념과 주요 폴더의 역할을 정리해보았다.


✅ 리눅스 디렉토리는 트리 구조

리눅스의 파일 시스템은 루트 디렉토리 /를 최상위로 하여
하위에 수많은 디렉토리가 뻗어나가는 트리(Tree) 구조로 되어 있다.

/
├── bin
├── boot
├── dev
├── etc
├── home
├── lib
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin
├── tmp
├── usr
└── var

각 디렉토리는 정해진 목적에 따라 특정한 역할을 수행한다.

리눅스 디렉토리 구조


📌 주요 디렉토리 설명

아래는 가장 많이 사용하는 디렉토리들의 설명이다.

주요 디렉토리 설명

/ - 루트 디렉토리

  • 모든 파일과 디렉토리의 최상위 경로
  • 리눅스 시스템의 시작점

/bin - 기본 명령어

  • 일반 사용자와 관리자 모두 사용하는 기본 명령어가 저장됨
  • 예) ls, cp, mv, rm

/sbin - 시스템 관리자 명령어

  • 시스템 설정 및 관리를 위한 명령어가 위치함
  • 일반 사용자는 거의 사용할 일이 없음
  • 예) reboot, fdisk, ifconfig

/etc - 설정 파일

  • 시스템 전반에 대한 설정 파일이 위치하는 디렉토리
  • 예) 사용자 계정 설정, 네트워크 설정 등
  • 중요한 설정 파일:
    • /etc/passwd – 사용자 정보
    • /etc/fstab – 파일 시스템 설정
    • /etc/hosts – 로컬 호스트네임 매핑

/home - 사용자 디렉토리

  • 일반 사용자들의 개인 폴더
  • 예: /home/사용자이름
  • 사용자의 문서, 다운로드, 설정 파일 등이 여기에 저장됨

/root - 루트 계정의 홈

  • root(최고 관리자)의 전용 홈 디렉토리
  • 일반 사용자의 /home과는 별도로 관리됨

/lib, /lib64 - 라이브러리 파일

  • /bin, /sbin에 있는 실행 파일이 사용하는 필수 라이브러리를 저장
  • 시스템이 부팅되고 명령어를 실행하는 데 필요함

/usr - 사용자 프로그램

  • 유저 애플리케이션, 라이브러리 등이 저장됨
  • 실제 프로그램이 설치되는 공간
  • 세부 디렉토리:
    • /usr/bin – 사용자 명령어
    • /usr/lib – 라이브러리
    • /usr/share – 공유 데이터

/var - 가변 데이터

  • 로그, 이메일, 캐시, 프린터 스풀 등 지속적으로 변하는 데이터를 저장
  • 예:
    • /var/log – 로그 파일
    • /var/mail – 메일박스

/tmp - 임시 파일

  • 임시로 생성되는 파일 저장소
  • 시스템을 재부팅하면 대부분 자동 삭제

/dev - 장치 파일

  • 하드웨어 디바이스를 파일처럼 관리
  • 예) /dev/sda – 하드디스크, /dev/tty – 터미널

/proc, /sys - 가상 파일 시스템

  • 커널과 프로세스 정보를 파일 형태로 제공
  • 예)
    • /proc/cpuinfo – CPU 정보
    • /proc/meminfo – 메모리 정보

/media, /mnt - 외부 장치 마운트

  • USB, CD-ROM 등 외부 장치를 마운트할 때 사용하는 디렉토리
  • /media는 자동 마운트, /mnt는 수동 마운트 시 사용

/opt - 추가 소프트웨어

  • 추가로 설치한 애플리케이션 프로그램의 설치 경로
  • 예) 구글 크롬, VMware 등

/run - 런타임 데이터

  • 부팅 후 생성되는 일시적인 데이터를 저장
  • 시스템이 종료되면 대부분 삭제됨

/lost+found - 손상 파일 복구용

  • 디스크 복구 시 손상된 파일이 보관되는 공간
  • 일반적으로 직접 사용할 일은 거의 없음

📝 마무리

리눅스를 처음 접하면 디렉토리들이 많아 보이고 복잡하게 느껴질 수 있지만,
각 디렉토리는 명확한 역할과 목적을 갖고 잘 구성되어 있다.

처음에는 자주 쓰는 /bin, /etc, /home, /usr, /var부터 익히고
점차 다른 디렉토리의 역할도 익혀나간다면
리눅스 사용이 훨씬 편리해질 것이다.

🔗 참고 자료
INPA 블로그 - 리눅스 디렉토리 구조 정리

 

Kali Linux는 정보 보안 테스트 및 윤리적 해킹에 특화된 리눅스 배포판이다. 이 글에서는 Oracle VirtualBox를 활용하여 Kali Linux를 설치하고, 기본적인 초기 설정을 수행하는 방법을 정리하였다. 또한 관리자 권한 전환, 네트워크 연결 확인, 패키지 업데이트 명령어까지 소개한다.

칼리 리눅스


1. 버추얼박스에 칼리 리눅스 설치하기

  1. VirtualBox 설치
    먼저, 공식 VirtualBox 웹사이트에서 운영체제에 맞는 버전을 다운로드하고 설치한다.
  2. Kali Linux 다운로드
    https://www.kali.org/get-kali/#kali-virtual-machines

Kali Linux 다운로드

    1. 가상 머신 생성
  •  VirtualBox를 실행한 뒤, 파일 > 가상 시스템 가져오기 를 클릭
  • 가상 시스템 가져오기

2. 네트워크 설정

설치 후 가상 머신의 네트워크를 올바르게 구성해야 인터넷 연결 및 패키지 업데이트가 가능하다.

  1. VirtualBox 네트워크 설정 변경
    • 가상 머신 종료 후, 설정 > 네트워크 탭 이동
    • 어댑터 1: “네트워크 어댑터 사용” 체크
    • 연결 방식: 브리지 어댑터 또는 NAT 중 선택
      • 브리지 어댑터: 호스트와 동일한 네트워크 대역을 사용. 외부와 직접 통신 가능
      • NAT: 기본값으로, 간단한 인터넷 접속에는 충분함
    • 네트워크 설정
  2. Kali 내에서 네트워크 자동 설정 확인
    대부분의 경우 DHCP로 자동 설정되며, 별도 수동 설정은 필요 없다.

3. 관리자(root) 계정으로 전환 및 비밀번호 설정

가상 머신 시작 버튼을 누른 후, 기본적으로 Kali는 일반 사용자 계정으로 로그인된다(ID:kali,Password:kali). 루트 권한이 필요한 작업을 위해 관리자 계정으로 전환하거나 비밀번호를 설정할 수 있다.

sudo su
  • 위 명령어를 통해 현재 사용자에서 root 계정으로 전환 가능하다. 이후 비밀번호를 설정하려면 아래와 같이 입력한다:
passwd
  • 새로운 root 비밀번호를 두 번 입력하여 설정을 완료한다.

4. 네트워크 연결 테스트 명령어

Kali가 네트워크에 정상적으로 연결되었는지 확인하려면 아래의 명령어를 사용한다.

ping -c 3 google.com
  • 외부 네트워크로 패킷이 정상적으로 전달되는지 확인하는 기본 명령어이다.
  • 연결이 되지 않을 경우, VirtualBox 네트워크 설정 또는 Kali 내의 네트워크 인터페이스 설정을 다시 점검해야 한다.

또한 IP 주소를 확인하려면 다음 명령어를 사용할 수 있다.

ip a

5. 패키지 목록 업데이트

설치 직후 최신 패키지 정보를 받아오기 위해 아래의 명령어로 패키지 목록을 갱신한다.

apt-get update
  • 이 명령은 /etc/apt/sources.list에 명시된 저장소 목록을 기반으로 최신 패키지 정보를 가져온다.
  • 이후 패키지 업그레이드는 apt-get upgrade 명령어로 수행할 수 있다.

마무리

이와 같이 VirtualBox를 이용한 Kali Linux 설치 및 초기 설정은 몇 가지 기본 절차만 따르면 비교적 간단하게 완료할 수 있다. 이 환경을 기반으로 보안 테스트 및 다양한 리눅스 학습을 진행해볼 수 있으며, 필요에 따라 다양한 도구를 설치하여 활용할 수 있다.

+ Recent posts