네트워크

ChaeHo95·2022년 5월 22일
0

Java

목록 보기
8/10

패킷

정보 기술에서 패킷 방식의 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록이다. 패킷은 제어 정보와 사용자 데이터로 이루어지며, 이는 페이로드라고도 한다. 패킷을 지원하지 않는 컴퓨터 통신 연결은 단순히 바이트, 문자열, 비트를 독립적으로 연속하여 데이터를 전송

프로토콜

컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계. 기기 간 통신은 교환되는 데이터의 형식에 대해 상호 합의를 요구하며, 이러한 형식을 정의하는 규칙의 집합을 프로토콜이라고 한다

TCP/IP프로토콜

TCP 프로토콜은 Tramsmission Contrrol Protocol의 약자로 다른 두 시스템 간에 신뢰성 있는 데이터의 전송을 관장하는 프로토콜로서 IP(Internet Protocol) 프로토콜 위에서 동작
TCP 프로토콜을 사용하는 응용프로그램으로는 e-mail,FTP(파일 전송 프로토콜), 웹(HTTP)등이 있음
IP는 패킷 교환 네트워크에서 송신 호스트와 수신 호스트가 데이터를 주고받는 것을 관장하는 프로토콜로서 TCP의 하위 레벨 프로토콜이다
TCP는 IP 기능을 활용하여 두 시스템 사이에 데이터가 손상 없이 안전하게 전송되도록 하며, TCP와 IP를 묶어 TCP/IP로 표기

IP주소

네트워크상에서 유일하게 식별될 수 있는 네트워크 장치의 주소

포트

컴퓨터 내의 각 응용프로그램은 통신을 위해 가상의 연결단인 포트(port)를 생성
포트 번호로 상대방이 자신을 식별할 수 있게 함

소켓(socket)

소켓 통신은 개발자가 TCP/IP 네트워크를 이용하여 쉽게 통신 프로그램을 작성하도록 지원하는 기반 기술
소켓은 통신하는 두 응용프로그램 간의 통신 링크의 각 끝단(endpoint)으로서, TCP/IP의 네트워크 기능을 활용하여 다른 컴퓨터의 소켓과 데이터를 주고 받음

소켓과 서버클라이언트 통신

소켓을 이용하는 통신에서는 서버 응용프로그램과 클라이언트 응용프로그램으로 구분 됨
정보를 제공하는 쪽을 서버(server)라고 부르며, 정보를 이용하는 쪽을 클라이언트(client)라고 함

  • 서버 소켓과 클라이언트 소켓
    서버 소켓은 서버 응용프로그램이 사용자의 접속을 기다리는 목적으로만 사용
    클라이언트 응용프로그램에서는 클라이언트 소켓을 이용하여 서버에 접속
    서버 소켓은 클라이언트가 접속하면, 클라이언트 소켓을 추가로 만들어 상대 클라이언트와 통신

  • 서버에서 클라이언트 소켓들의 포트 공유
    클라이언트가 처음 서버 소켓에 연결될 때, 운영체제는 연결된 클라이언트 IP 주소와 포트 번호를 저장하고 기억 후 서버 컴퓨터의 운영체제는 클라이언트로 부터 데이터 패킷을 받어 패킷 속에 들어 있는 클라이언트 IP 주소와 포트 번호를 참고하여 서버에 있는 클라이언트 소켓을 찾아 데이터를 보냄

  • 소켓을 이용한 서버 클라이언트 통신 프로그램 구성
    a. 서버 응용프로그램은 서버 소켓 객체 생성 후 클라이언트의 접속 기다림
    b. 클라이언트 응용프로그램은 클라이언트 소켓 객체 생성 후 서버에 접속 시도
    c. 서버는 클라이언트 접속 요청 받은 후 통신 전용 클라이언트 소켓 따로 생성
    d. 서버에 생선된 클라이언트 전용 소켓과 클라이언트의 소켓이 상호 연결 후 양방향 데이터 주고 받음
    e. 통신 후 소켓 닫음

Socket 클래스, 클라이언트 소켓

서버와 통신하기 위해 클라이언트 응용프로그램에서 사용하는 소켓

Socket 클래스, 서버 소켓

클라이언트로부터 연결 요청을 기다리는 목적 및 연결 요청 수락하는 목적으로 사용하는 소켓

참조 : 명품 JAVA Programming 개정 4판

profile
what you do matters ,but why you it matters much more 당신이 무엇을 하는지는 중요하지만, '왜' 그것을 하는지는 훨씬 더 중요합니다.

0개의 댓글