네트워크

하마·2025년 3월 18일

Spring

목록 보기
2/22

인터넷 프로토콜 (IP)

192.168.0.1 같은 숫자는 IP 자체가 아닌 IP 주소이다.

IP 주소

  • 인터넷 통신 시에는 지정한 IP 주소에 데이터를 Packet 단위로 전달함

Packet

  • 소스 IP(출발지), 대상 IP(도착지)를 포함하고 있어 어떤 컴퓨터에 데이터를 전송할지 판별할 수 있음
  • Packet은 크게 헤더, 페이로드, 트레일러(수신여부 포함)로 구분됨
    • 헤더: IP
    • 페이로드: 실제로 전송할 데이터
    • 트레일러: 수신여부
  • 데이터를 주기만 하는 것이 아닌 받고 응답함

IP 방식의 문제점

  • 애플리케이션 구분 불가
    • 대상 컴퓨터의 어떤 프로그램에 사용될 데이터인지 구분할 수 없음
  • 비연결성
    • 수신 대상의 현재 상태에 상관없이 데이터 전송
    • 대상 컴퓨터가 꺼져있을 경우 데이터를 전달받지 못함
  • 비신뢰성
    • 패킷이 소실되는 경우 발생
    • 패킷 손상 여부를 송/수신측 모두 알 수 없음
    • 패킷 순서가 섞여서 들어오는 경우 발생
    • 패킷이 손실되거나 오류가 발생해도 데이터의 재전송을 진행하지 않음



TCP (Transmission Control Protocol)

데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜

3 Way HandShake

물리적으로 연결되는 것이 아님!
최소한의 논리적 연결을 통해 연결되었다고 가정하는 것

  1. SYN 접속 요청
  2. ACK 요청 수락 -> ACK가 없다면 연결 실패
  3. ACK
  • SYN (Synchronize)
    • 클라이언트가 서버에게 연결을 요청하는 첫 번째 단계
    • 클라이언트는 서버에게 "연결하고싶다"는 의사를 나타내기 위해 SYN 플래그가 설정된 패킷 전송
  • ACK (Acknowledge)
    • 서버가 클라이언트의 SYN 패킷을 받고, 이를 확인했다는 신호를 보내는 단계
    • 서버는 클라이언트의 SYN 요청을 수락한 후
      자신도 연결을 시작하고 싶다는 뜻을 담아 SYN 플래그와 함께 ACK 플래그가 설정된 패킷을 클라이언트에게 전송함
    • 이때 서버는 클라이언트의 시퀀스 번호에 1을 더한 값을 ACK로 응답함
      • ACK와 함께 데이터 전송 가능

TCP/IP Packet 구조

  • 소스 PORT, 대상 PORT를 포함함

TCP의 장점

  • 데이터 전송 여부 확인
  • 패킷 순서 보장

TCP의 단점

  • 연결하는 과정, 데이터 전송에 시간이 많이 소요됨
    • 3 Way HandShake 과정을 거쳐야 함
  • 현재 단계 이상의 최적화가 힘듦 (최소한의 논리적 연결 필요)



UDP (User Datagram Protocol)

비연결형, 신뢰성이 없는 전송 프로토콜
실시간 통신이나 스트리밍 앱에서는 빠른 전송이 중요했기 때문에 개발됨

UDP의 특징

  1. IP 방식과 거의 비슷함
    • 3 way handshake를 하지 않음
    • 데이터 전송, 응답, 순서를 보장하지 않음 (비신뢰성)
  2. 추가적인 기능이 거의 없음
    • 기능이 없고 연결을 하지 않는 대신 속도가 빠름
  3. IP와 차이점으로 PORT 가 존재함
    • TCP에도 PORT가 존재함
  4. 데이터 무결성 검사 -> 체크섬(Checksum)을 포함함
    • 잘못된 데이터가 전송되지 않도록 만듦

참고자료


Spring 입문 - 1주차

  • 네트워크 1강
  • 네트워크 2강

0개의 댓글