Chapter 16 네트워킹

Seunghee Ryu·2023년 11월 9일
0

자바의 정석

목록 보기
11/11

네크워킹

  • 네트워킹 : 두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크를 구성하는 것

클라이언트 / 서버

  • 클라이언트/서버는 컴퓨터간의 관계를 역할로 구분하는 개념
    - 서버 : 서비스를 제공하는 컴퓨터
    - 클라이언트 : 서비스를 이용하는 컴퓨터
    - 서비스 : 서버가 클라이언트로부터 요청받은 작업을 처리하여 그 결과를 제공하는 것
  • 네트워크 구성 시 전용 서버를 두는 것을 서버기반모델이라 하고 별도의 전용서버 없이 클라이언트가 서버 역할을 동시에 수행하는 것을 P2P모델이라고 한다
    - 서버 기반 모델 : 안정적인 서비스의 제공이 가능, 공유 데이터의 관리와 보관이 용이, 서버구축비용과 관리 비용 필요
    - P2P 모델 : 서버 구축 및 운용 비용 절감, 자원의 활용을 극대화, 자원의 관리가 어렵고 보안이 취약

IP 주소

  • 컴퓨터를 구별하는데 사용되는 고유한 값으로 인터넷에 연결된 모든 컴퓨터는 IP 주소를 갖는다
  • IP 주소는 4 byte의 정수로 구성되어 있다
  • 네트워크 주소와 호스트 주소로 이루어져 있다
  • IP 주소에서 네트워크 주소가 차지하는 자리수가 많을수록 호스트 주소의 범위가 줄어든기 때문에 네트워크의 규모가 작아진다

InetAddress

  • 자바에서 IP주소를 다루기 위한 클래스로 InetAddress를 제공

URL

  • 인터넷에 존재하는 여러 서버들이 제공하는 자원에 접근할 수 있는 주소를 표현하기 위한 것
  • 프로토콜://호스트명:포트번호/경로명/파일명?쿼리스트링#참조의 형태로 이루어져 있다

URLConnection

  • 어플리케이션과 URL 간의 통신연결을 나타내는 클래스의 최상이 클래스
  • 원하는 자원에 접근하고 읽고 쓰기를 할 수 있다

소켓 프로그래밍

  • 소켓을 이용한 통신 프로그래밍
    - 소켓 : 프로세스 간의 통신에 사용되는 양쪽 끝단을 의미

TCP와 UDP

  • TCP/IP 프로토콜은 이기종 시스템간의 통신을 위한 표준 프로토콜로 프로토콜의 집합
  • TCP와 UDP 모두 TCP/IP 프로토콜에 포함되어 있음
  • OSI 7계층의 전송 계층에 해당하는 프로토콜
  • TCP
    - 연결 방식 : 연결 기반 (연결 후 통신, 1:1 통화방식)
    - 특징 : 데이트의 경계를 구분 안함, 신뢰성 있는 데이터 전송, 순서 보장되며 수신여부 확인(손실 시 재전송), 패킷 관리 필요 없음, UDP보다 전송속도 느림
    - 관련 클래스 : Socket, ServerSocket
  • UDP
    - 연결 방식 : 비연결기반 ( 연결없이 통신, 1:1, 1:n, n:n 통신 방식)
    - 특징 : 데이터의 경계를 구분, 신뢰성 없는 데이터 전송, 순서 바뀜, 수신여부 확인 안함, 손실여부 모름, 패킷 관리 필요, TCP보다 전송속도 빠름
    - 관련 클래스 : DatagramSocket, DatagramPacket, MulticastSocket
  • TCP는 전화에, UDP는 소포에 비유됨

TCP 소켓 프로그래밍

  • 클라이언트와 서버간의 일대일 통신
  • 단계별 통신과정
    - 1. 서브 프로그램에서는 서버 소켓을 사용해서 서버 컴퓨터의 특정 포트에서 클라이언트의 연결요청을 처리할 준비를 한다
    - 2. 클라이언트 프로그램은 접속할 서버의 IP 주소와 포트 정보를 가지고 소켓을 생성해서 서버에 연결을 요청한다
    - 3. 서버소켓은 클라이언트의 연결요청을 받으면 서버에 새로운 소켓을 생성해서 클라이언트의 소켓과 연결되도록 한다
    - 4. 클라이언트의 소켓과 새로 생성된 서버의 소켓은 서버소켓과 관계없이 일대일 통신을 한다
  • 서버 소켓은 소켓간의 연결만 처리하고 실제 데이터는 소켓들끼리 서로 주고받는다
  • 소켓들이 데이터를 주고받는 연결 통로는 바로 입출력 스트림이다
  • 소켓은 두개의 스트림, 입력 스트림과 출력 스트림을 가지고 있으며 이 스트림들은 연결된 상대편 소켓의 스트림들과 교차 연결된다

0개의 댓글