Post

CMM, SOA, UDP, TCP/IP

CMM, SOA, UDP, TCP/IP

능력성숙도모델 Capability Maturity Model

  • 소프트웨어 개발업체들의 업무능력평가 기준을 세우기 위한 평가모형
  • 레벨1:Initial(초기) : 표준화된 프로세스 없이 프로젝트 수행결과 예측이 곤란한 조직
  • 레벨2:Managed(관리): 기본적인 프로세스 구축에 의해 프로젝트가 관리되고 있는 조직
  • 레벨3:Defined(정의) : 세부표준 프로세스가 있어 프로젝트가 통제되는 조직
  • 레벨4:Quantitatively Manaed(잘관리된) : 프로젝트 활동이 정략적으로 관리 통제되고 성과예측이 가능한 조직
  • 레벨5:Optimizing(최적화) : 지속적인 개선활동이 정착화 되고 최적의 관리로 프로젝트가 수행되는 조직

SOA(Service Oriented Architecture,서비스 지향 아키텍처)계층

-표현 계층(Presentation Layer) -프로세스 계층(Process Layer) -서비스 계층(Service Layer) -비즈니스 계층(Business Layer) -영속 계층(Persistency Layer)


1. UDP의 주요 특징

UDP(User Datagram Protocol)는 전송 계층(Transport Layer)에서 동작하는 프로토콜로, 빠르고 가벼운 데이터 전송을 위해 사용됩니다.
TCP와 달리 연결 설정 없이 데이터를 전송하며, 실시간 통신이 중요한 환경에서 활용됩니다.

비연결형(Connectionless)

  • 데이터를 전송하기 전에 연결을 설정하지 않음
  • 송신자는 수신자의 상태(온라인/오프라인)를 확인하지 않고 바로 패킷 전송

신뢰성이 낮음(Unreliable)

  • 데이터 패킷이 손실될 가능성이 있음
  • 패킷 순서 보장❌, 재전송❌, 오류 감지 및 수정❌
  • 신뢰성이 필요한 경우, 애플리케이션에서 추가적인 오류 제어 기능을 구현해야 함

빠른 전송 속도(High Speed)

  • TCP보다 오버헤드(Overhead, 부가 비용)가 적어 속도가 빠름
  • 실시간 서비스(예: 화상 통화, 스트리밍, 온라인 게임)에서 선호됨

패킷 기반 전송(Packet-Based Transmission)

  • 고정된 크기의 데이터 블록(데이터그램, Datagram)으로 전송
  • 패킷 단위로 독립적으로 처리되며, 네트워크 경로가 다를 수도 있음

포트 번호(Port Number) 사용

  • TCP와 동일하게 포트 번호를 사용하여 여러 애플리케이션과 데이터 송수신 가능
  • 예: DNS(53번 포트), DHCP(67/68번 포트), VoIP(5060번 포트)

🔹 2. UDP와 TCP 비교

특징UDPTCP
연결 방식비연결형연결형 (3-way Handshake)
신뢰성낮음 (패킷 손실 가능)높음 (순서 보장, 재전송 기능)
속도빠름느림
데이터 전송 단위데이터그램 (패킷 단위)스트림 (연속적인 바이트 흐름)
흐름 제어없음있음 (Window Size, Congestion Control)
주요 사용 사례실시간 스트리밍, VoIP, 게임, DNS웹 브라우징(HTTP/HTTPS), 이메일(SMTP), 파일 전송(FTP)

3. UDP 패킷 구조

UDP 패킷은 헤더(8바이트) + 데이터로 구성됩니다.
TCP(20~60바이트)보다 헤더 크기가 작아 전송 효율이 높음


1. TCP/IP의 특징

TCP/IP(Transmission Control Protocol / Internet Protocol)는 인터넷과 네트워크 통신의 핵심 프로토콜로, 패킷 기반 데이터 전송을 지원합니다.
모든 인터넷 서비스(웹, 이메일, 파일 전송 등)는 TCP/IP 기반으로 동작합니다.

패킷 기반 통신(Packet Switching)

  • 데이터를 작은 패킷으로 나누어 전송 → 네트워크 자원을 효율적으로 사용

계층 구조(Layered Architecture)

  • 4계층(네트워크, 인터넷, 전송, 응용 계층) 구조로 구성
  • 각 계층은 독립적으로 동작하며 모듈화(Modular Design) 되어 있음

라우팅 및 주소 지정

  • IP 주소를 사용하여 데이터 전송
  • 라우터(Router)가 목적지까지 데이터 경로를 결정

인터넷 표준 프로토콜

  • 전 세계 모든 인터넷 및 네트워크 장치에서 사용
  • 서로 다른 장비 및 운영체제 간 호환성(Interoperability) 제공

2. TCP/IP 4계층 구조

계층역할주요 프로토콜
응용 계층 (Application Layer)사용자와 네트워크 간 상호작용HTTP, FTP, SMTP, DNS, SSH
전송 계층 (Transport Layer)프로세스 간 데이터 전송TCP, UDP
인터넷 계층 (Internet Layer)IP 주소 기반 데이터 전송 및 라우팅IP, ICMP, ARP
네트워크 액세스 계층 (Network Access Layer)실제 물리적 데이터 전송이더넷, Wi-Fi, MAC

1️ 응용 계층 (Application Layer)

사용자가 직접 이용하는 서비스 계층으로, 다양한 인터넷 애플리케이션 프로토콜을 포함합니다.

  • HTTP/HTTPS: 웹 브라우징
  • FTP: 파일 전송
  • SMTP/POP3/IMAP: 이메일 전송
  • DNS: 도메인 네임 시스템
  • SSH: 원격 접속

2️ 전송 계층 (Transport Layer)

  • TCP (Transmission Control Protocol)
    • 신뢰성 보장 (데이터 손실 없음)
    • 패킷 순서 유지 (Sequencing)
    • 흐름 제어(Flow control), 오류 검출 및 재전송 기능
    • stop and wait, sliding window, 핸드쉐이킹
  • UDP (User Datagram Protocol)
    • 비연결형(빠른 전송, 신뢰성 없음)
    • 실시간 스트리밍 VoIP, 온라인 게임 등에 사용

3️ 인터넷 계층 (Internet Layer)

  • IP (Internet Protocol):
    • 데이터 패킷을 목적지까지 전송
    • IPv4 (32비트 주소) vs. IPv6 (128비트 주소)
  • ICMP (Internet Control Message Protocol)
    • 네트워크 상태 확인 (예: ping 명령어)
  • ARP (Address Resolution Protocol)
    • IP 주소 => MAC 주소 변환
  • RARP
    • MAC 주소 => IP 주소

4️ 네트워크 액세스 계층 (Network Access Layer)

  • 이더넷(Ethernet), Wi-Fi, PPP
  • 실제 데이터를 물리적으로 전송하는 계층

3. TCP/IP 통신 과정

1 도메인 이름 조회 (DNS)

  • 사용자가 www.example.com 입력 → DNS 서버가 IP 주소 반환

2️ TCP 연결 설정 (3-Way Handshake)

  • 클라이언트와 서버 간 TCP 연결 수립

3️ 데이터 전송 (패킷 단위)

  • TCP(신뢰성 보장) 또는 UDP(빠른 전송) 사용

4️ 라우팅 및 전송

  • IP 패킷이 라우터를 거쳐 최적의 경로로 이동

5️ 데이터 수신 및 응답

  • 서버가 요청을 처리하고 응답 패킷을 전송

4. TCP/IP vs. OSI 7계층 비교

OSI 7계층TCP/IP 4계층주요 프로토콜
응용 계층응용 계층HTTP, FTP, SMTP, DNS
프레젠테이션 계층응용 계층TLS/SSL (암호화)
세션 계층응용 계층SSH, NetBIOS
전송 계층전송 계층TCP, UDP
네트워크 계층인터넷 계층IP, ICMP, ARP
데이터 링크 계층네트워크 액세스 계층이더넷, Wi-Fi
물리 계층네트워크 액세스 계층광케이블, 무선신호

5. TCP/IP의 장점과 한계

장점

  • 개방형 프로토콜 (전 세계 표준)
  • 안정적이고 신뢰성 높은 데이터 전송 (TCP)
  • 확장 가능 (IPv6 지원)
  • 다양한 네트워크에서 동작 가능

한계

  • 보안 기능 부족 (IP 자체는 암호화 지원 없음 → VPN, SSL/TLS 필요)
  • 네트워크 트래픽 증가 시 성능 저하 가능
  • 실시간 애플리케이션(TCP) 지연 발생 가능

This post is licensed under CC BY 4.0 by the author.