128june

Network Programming - Socket (1) 본문

Java/네트워크

Network Programming - Socket (1)

128june 2020. 5. 17. 20:16
반응형

1. 소켓 - Socket

 

네트워크 프로그래밍 방법을 알기 전에 먼저 소켓의 개념을 알아야 한다.

네트워크 프로그래밍에서의 소켓이란 "사용자에게 네트워크에 접근할 수 있는 인터페이스를 제공"이라는 의미이다.

소켓을 사용하려면 소켓 생성 / 소켓을 통한 송신 / 수신 소켓 소멸 이 세가지 과정을 이해야한다.

먼저 소켓의 종류는 다음과 같다.

  • SOCK_RAW : 자바 보안상 더이상 지원 X

  • SOCK_STREAM

    -  바이트를 주고받을 수 있는 스트림(Stream) 통신을 구현할 수 있게 해주는 소켓

    -  양방향 통신 가능
    TCP(Transfer Control Protocol)

  • SOCK_DGRAM

    -  데이터그램 통신용 소켓
    -  양방향 통신 가능
    UDP(User Datagram Protocol)

하나씩 들여다보자.

 

A. TCP(Transfer Control Protocol) : 수신 측과 송신측이 미리 연결을 맺고 연결된 순서로 데이터 교환

  • 다른 말로 스트림 통신 프로토콜이라고 부름

  • 양쪽의 소켓이 연결된 상태여아만 가능 ➜  연결지향 프로토콜이라고도 말한다.

  • 한번 연결되면 연결이 끊어질 때까지 신뢰성 있는 통신 가능

  • 대용량 데이터 주고받기 가능 but 네트워크 부담이 다소 큼

B. UDP(User Datagram Protocol)

  • 데이터그램 통신 프로토콜

  • TCP와 다르게 비연결성(Connectionless) 프로토콜

  • 패킷을 보낼 때마다 수신 측의 주소와 포트 번호, 전송해야할 데이터를 함께 전송

  • 신뢰성이 떨어짐 but 네트워크 부담이 적음

반응형
Comments