Network

Socket에 대해

난쓰넌말 2024. 11. 15. 15:45

소켓(Socket)은 네트워크 통신을 위한 엔드포인트로, 컴퓨터 네트워크 프로그래밍에서 데이터를 주고받기 위해 사용되는 소프트웨어 인터페이스입니다. 소켓은 다음과 같은 주요 특징과 유형을 가지고 있습니다

  1. 통신 방식에 따른 분류:
    • TCP 소켓: 연결 지향적이고 신뢰성 있는 데이터 전송을 제공합니다.
      • Java 서버와 C/C++ 에이전트 간의 통신에 가장 흔히 사용되는 방식
    • UDP 소켓: 비연결형이며 빠른 데이터 전송을 제공하지만 신뢰성은 낮습니다.
  2. 주요 특징:
    • IP 주소와 포트 번호로 식별됨.
    • 양방향 통신을 지원합니다.
    • 다양한 프로그래밍 언어에서 지원
  3. 소켓 프로그래밍 모델:
    • 클라이언트-서버 모델: 서버가 특정 포트에서 연결을 기다리고, 클라이언트가 연결을 요청
    • Peer-to-Peer 모델: 양쪽 끝점이 동등한 역할을 하며 서로 통신
  4. 주요 소켓 연산:
    • 생성 (socket())
    • 바인딩 (bind())
    • 연결 대기 (listen())
    • 연결 수락 (accept())
    • 연결 (connect())
    • 데이터 송수신 (send(), recv())
    • 종료 (close())
  5. 소켓의 응용:
    • 웹 서버와 브라우저 간 통신
    • 이메일 전송
    • 파일 전송 프로토콜 (FTP)
    • 실시간 채팅 애플리케이션
    • 온라인 게임의 멀티플레이어 기능
  6. 보안:
    • SSL/TLS를 이용한 암호화된 소켓 통신이 가능
  7. 성능 고려사항:
    • 동시 연결 수 관리
    • 비동기 I/O 처리
    • 버퍼 크기 최적화
  8. 기타
    • 웹소켓:
      • 주로 웹 브라우저와 웹 서버 간의 실시간 통신에 사용
      • Java 서버와 C/C++ 에이전트 간에도 사용할 수 있지만, 일반적이지는 않음
    • Unix 도메인 소켓:
      • 같은 시스템 내의 프로세스 간 통신에 사용

'Network' 카테고리의 다른 글

ubiQuoss E5608R 콘솔 케이블 제작 및 초기화  (1) 2024.11.04