TCP/IP 프로토콜 스택의 이해
TCP/IP 프로토콜 스택은 크게 4계층으로 구성됩니다.
- 애플리케이션 계층: 데이터 전송을 위한 애플리케이션 서비스가 위치한 계층으로, HTTP, FTP, SMTP 등 다양한 프로토콜이 포함됩니다.
- 전송 계층: 데이터의 신뢰성과 흐름을 제어하는 계층으로, TCP와 UDP 프로토콜이 있습니다.
- 인터넷 계층: 패킷을 목적지까지 가장 효율적으로 전달하는 경로를 관리하는 계층으로, IP, ARP, ICMP, RARP 프로토콜이 여기에 포함됩니다.
- 네트워크 인터페이스 계층: 물리적인 네트워크 매체와 통신을 위한 계층입니다.
상세 스택은 아래와 같습니다.
보다 세부적인 사항은 아래에서 소개하겠습니다.
TCP와 UDP의 특징과 차이점
- TCP (Transmission Control Protocol): 신뢰성 있는 데이터 전송을 위해 연결지향 방식을 사용합니다. 데이터를 잘게 쪼개어 보낸 후(패킷 단위), 전송이 완료되면 ACK 응답을 받아 신뢰성을 보장합니다.
- 특징
- 연결지향 프로토콜 - 데이터 전송 전에 연결을 설정하여 신뢰성과 순서 보장을 제공하는 통신 방식
- 에러 검출 - 전송된 데이터의 무결성을 확인하기 위해 오류를 탐지하는 메커니즘으로, 오류 발생 시 재전송을 요구
- 순서 검사 - 패킷이 올바른 순서로 수신되도록 보장하는 기능으로, 패킷 순서가 뒤바뀔 경우 재정렬
- 응답 - 수신자는 데이터 수신 후 송신자에게 확인 응답을 보내, 전송의 성공 여부를 알려준다
- 흐름 제어 - 수신자의 처리 능력에 맞추어 송신자의 전송 속도를 조절하여 데이터 손실을 방지하는 방법
- 패킷 복구 - 손실된 패킷을 다시 전송하여 전체 데이터의 무결성을 유지하는 과정
- Full Duplex 가상 회선 - 동시에 양방향으로 데이터를 전송할 수 있는 가상의 연결을 제공하여 효율적인 통신을 가능하게 한다
- 신뢰성 있는 전송에 대해
- TCP는 연결을 설정하기 위해 3-way handshake를 진행하며, 데이터 전송 시 응답(ACK)를 요구하여 신뢰성을 보장합니다. 주로 유니캐스트 방식으로 전송되며, 이를 통해 수신자와의 안정적인 연결을 유지합니다.
- 특징
- UDP (User Datagram Protocol): 연결 설정 과정이 없으며 빠른 데이터 전송을 중시합니다. 오류 제어나 흐름 제어 없이 전송하므로 비디오 스트리밍, VoIP 등 속도가 중요한 애플리케이션에 적합합니다.
- 특징
- 무조건 데이터를 보내고 본다: UDP는 데이터 전송 시 오류 복구나 순서 보장에 신경을 쓰지 않으며, 송신 후 수신 여부를 확인하지 않습니다.
- 데이터 유실이나 순서의 어긋남에 대해 처리하지 않으며, 전송, 오류 검출, 흐름 제어 기능이 없습니다.
- 흐름 제어는 버퍼를 통해서만 제한적으로 이루어질 수 있습니다.
- 다양한 전송 방식: UDP는 유니캐스트, 멀티캐스트, 브로드캐스트 전송을 지원하여, 다양한 통신 방식에 유연하게 대응할 수 있습니다.
- 작은 오버헤드: UDP는 헤더 크기가 8바이트로 매우 작아, 전송 오버헤드가 적습니다. 이는 빠른 데이터 전송이 필요한 상황에서 큰 장점이 됩니다.
- 체크섬 옵션: UDP는 체크섬 기능을 제공하지만, 이는 선택 사항입니다. 체크섬을 사용하지 않을 경우 데이터의 무결성을 보장하지 않습니다.
- 무조건 데이터를 보내고 본다: UDP는 데이터 전송 시 오류 복구나 순서 보장에 신경을 쓰지 않으며, 송신 후 수신 여부를 확인하지 않습니다.
- 특징
인터넷 계층 프로토콜 소개
- IP (Internet Protocol): 네트워크 상의 다른 노드로 데이터를 전달하기 위한 주소 체계를 제공합니다. Best-Effort 방식으로 최대한 빠르게 전달하지만, 신뢰성은 보장하지 않습니다. 심지어 문제가 생기면 데이터를 슬그머니 버리기도 합니다.
- ICMP (Internet Control Message Protocol): IP 프로토콜의 한계를 보완하는 프로토콜로, 네트워크 문제를 진단하고 오류 발생 시 이를 알리는 역할을 합니다.
- 제공하는 서비스 정리
- Echo Request and Reply (Ping Command)
네트워크 연결을 테스트하는 데 사용되는 Ping 명령어는 Echo Request와 Echo Reply 메시지를 통해 대상의 접근성을 확인합니다. 이 과정은 네트워크의 상태를 진단하는 데 유용합니다. - Destination Unreachable
이 메시지는 전송된 데이터가 목표 주소에 도달하지 못했음을 알립니다. 동시에, 해당 문제가 발생한 이유를 함께 전달하여 문제 해결에 도움을 줍니다. - ICMP Redirect
ICMP Redirect 메시지는 패킷이 최적의 경로를 따라 전송되지 않고 있을 때, 올바른 경로로 전송할 수 있도록 안내합니다. 이를 통해 네트워크 효율성을 개선할 수 있습니다. - Time Exceed
이 메시지는 패킷의 생존 시간(TTL)이 만료되어 더 이상 전송할 수 없음을 알려줍니다. 주로 패킷의 루프 문제를 해결하는 데 사용되며, 네트워크의 안정성을 높이는 데 기여합니다.
- Echo Request and Reply (Ping Command)
- IPv4에서는 ICMP가 잘 안 쓰이지만 IPv6로 넘어가면 다시 주목받는 중입니다.
IPv4에서는 ICMP 사용이 제한적이지만, IPv6에서는 기능이 강화되어 ICMP의 중요성이 다시 부각됩니다. 이는 현대 네트워크 환경에서 ICMP의 역할이 점점 더 커지고 있음을 시사합니다.
- 제공하는 서비스 정리
- ARP (Address Resolution Protocol): IP 주소를 MAC 주소로 변환해 로컬 네트워크에서 데이터가 전달될 수 있도록 합니다.
- RARP 개념(MAC에서 IP로 변환하는 프로토콜)이 존재하며 BootP를 거쳐 현재는 DHCP로 발전하여 많이 쓰이지 않습니다.
IP 주소의 이해
IP 주소는 네트워크 상에서 각 장치의 고유한 식별자로, IPv4에서는 32비트(4개의 8비트 옥텟)로 구성되어 있습니다. 각 옥텟은 십진수로 표현되며, 점(.)으로 구분됩니다.
IPX의 유연성 문제
IPX(Internetwork Packet Exchange)는 32비트와 48비트로 이루어져 있지만, 네트워크 범위와 호스트 범위가 고정되어 있어 유연성이 떨어집니다. 즉, 사용 가능한 호스트 수가 적은 경우에도 48비트의 주소 공간이 고정적으로 점유되어 비효율적인 자원 사용이 발생합니다.
서브넷 마스크와 클래스 개념
IPv4에서는 서브넷 마스크를 통해 네트워크 범위를 보다 자유롭게 할당할 수 있습니다. 이 과정에서 IP 주소는 클래스 개념으로 나뉘게 되며, 첫 번째 옥텟에 따라 A, B, C 클래스로 구분됩니다.
- 클래스 A: 1-126 (주로 대규모 네트워크용)
- 클래스 B: 128-191 (중간 규모 네트워크용)
- 클래스 C: 192-223 (소규모 네트워크용)
클래스 0과 127은 특별한 목적을 가지고 있습니다. 예를 들어, 0.0.0.0은 모든 네트워크를 의미하며, 127.0.0.1은 루프백 주소로 내부 네트워크 테스트에 사용됩니다.
D 클래스는 멀티캐스트용으로, E 클래스는 실험적 또는 연구 목적으로 사용됩니다. 255.255.255.255는 로컬 브로드캐스트 주소로 사용되며, 모든 호스트 비트가 0이나 1인 주소는 사용할 수 없습니다. 0은 네트워크 자체를 표현하고, 1은 브로드캐스트 주소로 사용됩니다.
연결 체크 테스트
네트워크 연결을 확인하는 테스트는 다음과 같은 순서로 진행됩니다:
IP 고갈 방지 기술
IP 주소의 고갈 문제를 해결하기 위한 몇 가지 기술이 있습니다:
- 서브넷팅: 서브넷 마스크를 통해 네트워크와 호스트의 비트 구분을 할 수 있습니다. 일반적으로 255로 표현되지만, 필요에 따라 비트 단위로 설정할 수도 있습니다.
- DHCP: 동적 호스트 구성 프로토콜(DHCP)은 IP 주소를 자동으로 할당하고 회수하는 기능을 제공합니다. 이를 통해 네트워크 관리의 편의성을 높이고 IP 주소의 효율적인 사용을 지원합니다.
- NAT: 네트워크 주소 변환(NAT)은 내부 네트워크에서 사설 IP 주소를 사용하고, 외부 인터넷에 접근할 때는 공인 주소로 변환하여 통신하는 개념입니다. NAT를 사용하면 사설 IP 주소를 여러 장치가 공유할 수 있어 IPv4 주소의 고갈 문제를 완화하는 데 도움을 줍니다.
스위칭 기술의 이해
네트워크에서 스위칭 기술은 데이터 전송의 효율성을 높이는 중요한 요소입니다. 이 포스트에서는 스위칭 기술의 기본 개념과 기능에 대해 살펴보겠습니다.
- MAC 주소 테이블의 초기 상태
- 스위치의 MAC 주소 테이블은 초기 상태에서는 비어 있습니다. 이후 소스 정보에 기반해 MAC 주소가 테이블에 기록되며, 이를 주소 학습(Address Learning)이라고 합니다.
- 프레임 전송 과정
- 스위치에서는 유니캐스트만 처리할 수 있으며, 알려지지 않은 유니캐스트, 브로드캐스트, 멀티캐스트 프레임은 MAC 테이블에 기록되지 않습니다. 이 경우 스위치는 들어온 포트를 제외한 모든 포트로 프레임을 전달하는 플러딩(Flooding) 방식으로 처리합니다. 이미 MAC 테이블에 기록된 주소에 대해서는 포워딩(Forwarding) 하며, 이 과정을 필터링 결정(Filtering Decision)이라고 합니다.
- 포트 시큐리티
- 스위치 환경에서는 데이터가 물리적으로 연결된 허브처럼 쉽게 캡처되지 않습니다. 하지만 포트 시큐리티 기능을 통해 보안을 강화할 수 있습니다. 예를 들어, 공격자가 MAC 발생기 같은 도구를 사용하여 대량의 패킷을 보내면, 스위치는 MAC 테이블에 빠르게 기록합니다. 이로 인해 이전 기록이 지워지고 새로운 MAC 주소로 가득 차게 되어, 데이터가 플러딩되는 상황이 발생할 수 있습니다. 이러한 상황에서 스위치는 위반 조치(Violation Action)로 포트를 차단할 수 있습니다.
- Spanning Tree Protocol (STP)
- STP는 스위치 간의 루프를 방지하는 프로토콜입니다. 예를 들어, 영업부서와 마케팅 부서의 스위치가 백본 스위치에 연결되어 있을 때, 백본 스위치의 다운이 전체 네트워크 다운으로 이어질 수 있습니다. 이를 방지하기 위해 백본 스위치는 이중화됩니다. 그러나 이러한 구조로 인해 루프가 발생할 수 있으며, 이 경우 데이터가 무한히 반복되며 네트워크에 문제를 일으킬 수 있습니다.(SPOF(Single Points of Failure))
- STP는 이러한 루프를 감지하고 소프트웨어적으로 차단하여 네트워크의 안정성을 보장합니다. STP가 활성화되면 주황색 LED가 점등되며, 루핑 문제가 없을 것으로 판단되면 녹색으로 변합니다.
- Virtual Local Area Network (VLAN)
- VLAN은 브로드캐스트 데이터가 전달될 수 있는 영역을 가상으로 형성하는 기술입니다. VLAN은 브로드캐스트 도메인(Broadcast Domain)과 논리적 네트워크(Subnet)으로 이해할 수 있습니다. DHCP와 같은 자동 IP 할당 프로토콜은 브로드캐스트 방식을 통해 작동합니다.
- 스위치가 브로드캐스트를 나누지 못하는 상황에서는 네트워크의 성능이 저하될 수 있습니다. VLAN은 이러한 브로드캐스트를 가상으로 나누어 혼잡한 상황을 개선합니다. 즉, 원래는 하나의 LAN 네트워크를 여러 개의 가상 네트워크로 나누는 개념입니다.
- 라우터와 브로드캐스트 도메인은 다르게 작동합니다. 예를 들어 아래 이미지와 같은 경우 라우터는 층별로 네트워크를 공유하고, 스위치에서 VLAN을 설정할 경우 원하는 노드를 브로드캐스트 도메인으로 지정할 수 있습니다.
*생성형 AI 활용한 클라우드&보안 전문가 양성캠프 과정의 교육내용 정리 자료입니다.
'IT 관련 > 네트워크' 카테고리의 다른 글
[새싹 성동 2기] VLAN 과 Inter VLAN Routing (0) | 2024.10.27 |
---|---|
[새싹 성동 2기] 패킷 트레이서를 활용한 VLAN 설정과 트렁크 구성 실습 (0) | 2024.10.27 |
[새싹 성동 2기] 패킷 트레이서를 활용한 같은 네트워크와 다른 네트워크 간의 통신 절차 교육 및 실습 (0) | 2024.10.27 |
[새싹 성동 2기] 패킷 트레이서를 활용한 라우터 기반 네트워크 연결 실습(1) (1) | 2024.10.27 |
[새싹 성동 2기] 충돌 및 브로드캐스트 도메인과 L1~L3계층별 장비 정리 (1) | 2024.10.25 |