네트워크 통신의 기본 구조 이해

moonazn·2025년 8월 6일
0

cs

목록 보기
27/31

🐚 Client와 Server

  • 클라이언트(Client): 서비스를 요청하는 주체
    - 예: 웹 브라우저, 모바일 앱, 게임 사용자, 메시지 앱 사용자 등

  • 서버(Server): 클라이언트의 요청을 처리하고 응답하는 주체
    - 예: 웹 서버, 게임 서버, 데이터베이스 서버 등

클라이언트와 서버는 항상 을 이루며, 네트워크 통신의 기본 구조이다.

📎 예를 들어, 사용자가 크롬 브라우저로 www.naver.com에 접속할 때:
• 클라이언트: 크롬 브라우저
• 서버: 네이버 웹 서버
• 요청(Request): 웹페이지 보여줘
• 응답(Response): HTML 페이지, 이미지, 광고 등


🔁 Echo Server

: 클라이언트가 보낸 메시지를 그대로 다시 돌려주는 서버이다.

  • 에코(echo) = '되돌려주다'
  • 사용 목적: 네트워크 통신이 정상적으로 연결되었는지 확인하기 위한 테스트용으로 자주 사용된다.

예:

    // 받은 데이터를 그대로 다시 보냄
connection.receive { data in
    connection.send(data)
}

🏛️ OSI(Open Systems Interconnection) 참조 모델

: 네트워크 통신7단계 계층으로 나눠서 각 계층의 역할을 정의한 국제 표준화 모델

통신을 7개의 계층으로 나누어 책임과 기능을 분리해서 설계 및 문제 해결을 쉽게 할 수 있다.

각 계층은 서로 독립적으로 동작하며, 위 아래 계층에 필요한 서비스를 제공한다.

각 계층 요약

계층 번호계층 이름주요 기능 및 예시 프로토콜
7응용 계층 (Application)사용자 인터페이스, HTTP, FTP, SMTP 등
6표현 계층 (Presentation)인코딩, 암호화, 직렬화(JSON/XML 등)
5세션 계층 (Session)세션 관리, 동기화, 로그인 상태 유지 등
4전송 계층 (Transport)TCP/UDP, 포트 번호, 오류 제어, 흐름 제어
3네트워크 계층 (Network)IP 주소, 라우팅, 패킷 전달
2데이터 링크 계층MAC 주소, 프레임, 에러 감지
1물리 계층 (Physical)전기/광 신호, 케이블, 리피터, 허브 등

🔗 Session과 Connection의 계층별 의미와 차이

▶︎ Connection

: 네트워크 상에서 클라이언트와 서버가 물리적으로 연결된 상태를 의미한다.

  • 전송 계층(4계층)에서 사용된다.
  • TCP의 3-way handshake, 연결 유지, 순서 보장, 오류 복구 등 물리적 데이터 전송의 신뢰성을 담당한다.
  • Connection = 실제 네트워크 소켓 연결 상태

전화 통화가 끊어지면 더 이상 대화할 수 없는 것과 같다.

▶︎ Session

: 클라이언트가 로그인하거나 특정 정보를 서버와 논리적으로 공유하는 상태를 의미한다.

  • 세션 계층(5계층)에서 사용된다.
  • 논리적인 대화 흐름을 관리하며, 연결의 시작과 종료를 제어하고 데이터를 동기화한다.
  • TCP 연결에 장애가 생겨도 세션 계층은 다시 재연결(re-establishment)해서 대화 흐름을 이어갈 수 있다.
  • 대화 제어(dialogue control) 기능을 제공한다.

웹사이트에서 로그인하면 나의 장바구니 상태가 유지된다.
▶️ 세션 정보가 서버에 저장되어 있기 때문이다.


웹 애플리케이션에서의 Session 관리 방식

HTTP는 본질적으로 무상태(stateless) 프로토콜이므로, 별도의 세션 관리 기법이 필요하다. (5계층 기반)

  • 쿠키(Cookie): 세션 ID를 브라우저에 저장하고 HTTP 요청 시 서버에 전송하여 사용자 세션을 식별한다.
  • hidden form field: 폼 내부에 세션 ID를 포함하여 POST 전송
  • 증명서/토큰 방식: JWT, OAuth, TLS 인증서 등을 활용하여 세션 유지 및 인증을 수행한다.

웹 애플리케이션 구현 시 HTTP의 무상태 특성을 보완하기 위해 개발자가 세션 계층의 논리를 어플리케이션 레벨에서 직접 구현하는 경우가 많다.

profile
개발 공뷰

0개의 댓글