[컴퓨터 사이언스] 4. 신뢰성 있는 통신

백하림's avatar
Jan 27, 2025
[컴퓨터 사이언스] 4. 신뢰성 있는 통신
notion image
💡
  • 3-way handshake를 통한 TCP 통신 과정이 설명되어 있으며, 이는 전송 제어 프로토콜(Transmission Control Protocol)입니다.
  • Confidentiality (기밀성)
  • Integrity (무결성)
  • Availability (가용성)
  • 트랜잭션 : 일의 최소 단위
💡

신뢰성 있는 통신과 보안 개념 정리

1. 신뢰성 있는 통신

  • A와 B 간 Byte Stream을 통한 데이터 전송.
  • TCP (Transmission Control Protocol) 사용하여 신뢰성을 보장.
  • 3-way handshake(3단계 핸드셰이크) 과정으로 연결 확립:
      1. 클라이언트(A) → 서버(B) : SYN 요청
      1. 서버(B) → 클라이언트(A) : SYN-ACK 응답
      1. 클라이언트(A) → 서버(B) : ACK 전송 후 연결 확립

2. 신뢰성 있는 통신의 특징

  1. 순서 보장 (Ordered Delivery)
      • 패킷이 전송된 순서대로 도착하도록 순서 번호(Sequence Number) 사용.
  1. 데이터 손실 방지 (Reliability)
      • 수신 확인 응답(ACK, Acknowledgment) 메커니즘 사용.
      • 손실된 패킷이 감지되면 재전송 요청(Retransmission).
  1. 오류 검출 및 복구 (Error Detection & Correction)
      • 데이터가 손상되었는지 확인하는 체크섬(Checksum) 사용.
      • 오류 발생 시 재전송을 요청하여 데이터의 무결성 보장.
  1. 흐름 제어 (Flow Control)
      • 송신자가 너무 많은 데이터를 한 번에 보내는 것을 방지.
      • 윈도우 크기(Window Size) 조정을 통해 수신자의 처리 속도에 맞춤.
  1. 혼잡 제어 (Congestion Control)
      • 네트워크 과부하를 방지하기 위해 송신 속도를 조절.
      • TCP 슬라이딩 윈도우(Sliding Window) 방식 사용.

3. 보안의 3요소 (CIA)

  • Confidentiality (기밀성): 데이터가 인가된 사용자만 접근 가능해야 함.
  • Integrity (무결성): 데이터가 변조되지 않고 원래 상태를 유지해야 함.
  • Availability (가용성): 필요한 순간에 데이터를 사용할 수 있어야 함.

4. 보안 위협 및 해결 방법

보안 위협
영향 받는 요소
해결 방법
도청 (Eavesdropping)
기밀성(C)
암호화(Encryption) 사용
데이터 변조 (Tampering)
무결성(I)
해시(Hash), 디지털 서명 활용
서비스 거부 공격 (DoS)
가용성(A)
방화벽(Firewall), 트래픽 필터링 적용

5. 보안 해결 방법

(1) 암호화 기법

  • 공개키 암호화 (Public Key Cryptography)
    • RSA 알고리즘 사용.
    • A가 B에게 데이터를 보낼 때:
        1. B의 공개키(Public Key) 로 데이터를 암호화하여 전송.
        1. B는 자신의 개인키(Private Key) 로 복호화하여 데이터를 확인.

(2) 데이터 무결성 보장

  • 메시지 다이제스트 (Message Digest): 해시 함수(SHA-256 등)로 데이터 변조 감지.
  • 디지털 서명 (Digital Signature): 전송된 데이터가 변조되지 않았음을 증명.

6. 신뢰성 있는 통신 환경에서 계좌이체 예제

  • A가 B에게 800원을 전송한다고 가정.
    • A 계좌: 500 → 잔액 부족 (오류 발생)
    • B 계좌: 2000 → 변경 불가 (트랜잭션 롤백)

트랜잭션 처리 (Transaction Processing)

  • 원자성 (Atomicity): 하나의 작업 단위가 완벽하게 실행되거나, 실패 시 전부 롤백.
  • 일관성 (Consistency): 데이터베이스의 일관성을 유지.
  • 격리성 (Isolation): 여러 트랜잭션이 독립적으로 수행.
  • 지속성 (Durability): 트랜잭션이 완료되면 결과가 저장됨.

트랜잭션 처리 방식

  1. A의 계좌에서 800원 인출 요청.
  1. A 계좌의 잔액이 부족하면 거래 취소(rollback).
  1. 잔액이 충분하면 B의 계좌에 800원 입금 후 거래 확정(commit).
 
 
 
 
 
 
 
AI가 정리해준 신뢰성 있는 통신
AI가 정리해준 신뢰성 있는 통신
Share article

harimmon