[Spring 입문] 네트워크 정리

박화랑·2025년 3월 17일

Spring_개념정리

목록 보기
1/17

네트워크 1강: 컴퓨터들은 어떤 방법으로 서로 통신하나요?

1. 초기 컴퓨터 간 네트워크 연결

  • 과거에는 물리적인 연결(예: USB 케이블)로 컴퓨터 간 데이터를 주고받음.
  • 그러나 거리가 먼 컴퓨터 간 통신에는 한계가 존재함.
    → 예: 한국의 컴퓨터가 이탈리아의 컴퓨터와 통신하려면?

2. 인터넷(Internet)

  • 인터넷이란?
    → 인터넷 프로토콜 스위트(TCP/IP) 기반의 전 세계적인 컴퓨터 네트워크 통신망
    → 인터넷을 통해 원거리의 컴퓨터 간에도 통신 가능
  • 인터넷의 물리적 연결 방식
    • 해저 광케이블: 전 세계적으로 연결되어 있는 유선 통신망
    • 인공위성: 무선 통신 가능
    • 이러한 인프라 덕분에 World Wide Web(WWW) 구축 가능

3. 인터넷 프로토콜 (IP, Internet Protocol)

  • 인터넷에서 데이터를 송·수신하는 통신 규약
  • IP 주소(Internet Protocol Address)
    • IP 자체가 아니라 IP를 위한 고유 주소
    • 쉽게 말하면 각 기기의 전화번호 역할을 함
    • 인터넷에서는 IP 주소를 기반으로 패킷(Packet) 단위로 데이터를 주고받음

패킷(Packet)이란?

  • 패킷의 구성

    1. 소스 IP (출발지 IP)
    2. 대상 IP (목적지 IP)
    3. 헤더(Header): 패킷의 정보 포함
    4. 페이로드(Payload): 실제 데이터
    5. 트레일러(Trailer): 수신 여부 확인
  • 패킷은 출발지에서 목적지까지 여러 경로를 거쳐 이동하며, 응답을 통해 양방향 통신을 수행함. 즉 택배 소포와 같은 역할


4. IP 방식의 문제점

  1. 애플리케이션 구분 문제

    • 목적지 컴퓨터의 어떤 프로그램(예: 웹 브라우저, 이메일 등)에 데이터를 전달해야 하는지 알 수 없음
  2. 비연결성(Connectionless)

    • 수신 대상의 상태를 고려하지 않고 데이터를 전송함
      → 즉, 상대방이 데이터를 받을 준비가 되었는지 확인하지 않음
  3. 비신뢰성(Unreliable)

    • 패킷이 도착하지 않거나, 손실되었는지 확인 불가
    • 패킷이 여러 개로 나뉘어 전송될 때, 순서가 뒤바뀌는 문제 발생

이러한 문제점들을 해결하기 위해 등장한 것이 바로 TCP 프로토콜
→ 다음 강의에서 TCP(Transmission Control Protocol) 에 대해 배울 예정


네트워크 2강: TCP와 UDP, 그리고 PORT

1. TCP (Transmission Control Protocol)

  • TCP란?
    • 클라이언트와 서버 간 데이터를 신뢰성 있게 전달하기 위한 프로토콜
    • IP 방식의 문제점(비연결성, 비신뢰성, 패킷 순서 문제 등)을 해결하기 위해 사용됨
  • TCP의 주요 특징
    1. 연결 지향적(Connection-Oriented)
      • 데이터를 전송하기 전에 연결을 설정하는 과정이 필요함
    2. 신뢰성 보장(Reliable)
      • 패킷 손실 시 재전송을 통해 데이터가 올바르게 도착하도록 보장
    3. 패킷 순서 보장(Ordering)
      • 패킷이 전송된 순서대로 도착하도록 관리함

TCP의 3-Way Handshake (연결 과정)

TCP는 데이터를 주고받기 전에 3단계 핸드셰이크(3-Way Handshake) 과정을 거침.

  1. SYN (Synchronize)
    • 클라이언트 → 서버: "연결을 시작하고 싶어요!"
  2. SYN + ACK (Acknowledge)
    • 서버 → 클라이언트: "연결 요청을 확인했어요! 저도 연결하고 싶어요!"
  3. ACK (Acknowledge)
    • 클라이언트 → 서버: "확인 완료! 이제 데이터 전송 시작!"

3-Way Handshake가 완료되면 데이터를 전송할 준비가 끝남

TCP의 데이터 전송 방식

  • 데이터가 제대로 도착했는지 확인하는 과정 포함
  • 데이터가 손실될 경우 재전송 수행
  • 패킷이 순서대로 도착하도록 순서 관리 수행

신뢰성을 보장하지만, 연결 설정 과정 때문에 속도가 상대적으로 느릴 수 있음


2. UDP (User Datagram Protocol)

  • UDP란?

    • TCP와 달리 비연결형, 신뢰성이 없는 전송 프로토콜
    • 빠른 데이터 전송이 필요한 상황에서 사용됨 (예: 실시간 스트리밍, 온라인 게임, 인터넷 전화 등)
  • UDP의 주요 특징

    1. 비연결형(Connectionless)
      • 연결 설정 과정 없이 바로 데이터 전송
    2. 빠른 전송 속도
      • TCP보다 오버헤드가 적어 속도가 빠름
    3. 신뢰성 없음(Unreliable)
      • 패킷이 유실될 수 있고, 순서가 보장되지 않음

UDP는 TCP보다 빠르지만, 데이터 손실 위험이 있음


3. PORT (포트)란?

  • 같은 IP 주소 내에서도 여러 프로그램이 동시에 실행될 수 있음
  • PORT 번호를 통해 어떤 애플리케이션과 통신할지를 결정

PORT의 역할

  • 아파트의 호수 번호와 같은 개념
  • 같은 IP 주소를 사용하는 여러 프로그램을 구분함
  • 예: 웹 브라우저, 이메일 클라이언트, 게임 서버 등이 각각 다른 PORT를 사용

PORT 번호의 범위

  • 0 ~ 65535 범위 내에서 할당 가능
  • 0 ~ 1023: 국제적으로 사용이 예약된 포트 (잘 사용하지 않음)
  • 1024 ~ 49151: 등록된 포트 (대부분의 애플리케이션이 사용)
  • 49152 ~ 65535: 동적 포트 (임시로 사용됨)

자주 사용되는 PORT 번호 예시

서비스프로토콜포트 번호
FTPTCP20, 21
SSHTCP22
SMTPTCP25
DNSTCP/UDP53
HTTPTCP80
HTTPSTCP443
RDPTCP/UDP3389

웹 개발에서는 HTTP(80)와 HTTPS(443) 포트를 주로 사용


4. TCP vs UDP 비교

특징TCPUDP
연결 방식연결형(Connection-Oriented)비연결형(Connectionless)
신뢰성데이터 전송 보장데이터 유실 가능
속도상대적으로 느림빠름
용도웹, 이메일, 파일 전송실시간 스트리밍, 온라인 게임

TCP는 신뢰성이 중요한 경우, UDP는 속도가 중요한 경우 사용


정리

  • TCP는 신뢰성을 보장하지만 속도가 느림 (3-Way Handshake 필요)
  • UDP는 속도가 빠르지만 데이터 손실 가능성이 있음
  • 포트(PORT)를 사용하여 같은 IP 내에서 여러 프로그램을 구분

다음 강의에서는 웹 기초 개념(DNS, URI, URL 등)에 대해 학습할 예정!

profile
개발자 희망생

0개의 댓글