1. TCP/IP 통신이란 ?
우리는 흔히 IP(Internet Protocol)를 주로 사용하고 있다.
이 "IP"를 할당한다 라는 말을 많이 들어보셨을 겁니다.
즉 "IP" 규약 혹은 규칙에 따라 컴퓨터에 인터넷 주소를 부여 한다는 의미 이다.
예를들어 "256.152.10.100" <-- 이러한 주소를 많이 보셨을 겁니다.
네이버에서 내 IP 라고 검색하시면 내 PC에 할당 된 IP Address를 확인 할수 있다.
이렇게 "IP" 주소를 할당 받은 PC는 어디서든지 해당 "IP" 주소의 "PC"로 접근이 가능하게 된다.
TCP란? - Transfer (전달)
서버와 클라이언트 간에 데이터를 신뢰성 있게 (전달)하기 위해 만들어진 프로토콜 이다.
데이터를 전송하기 전에 데이터 전송을 위한 연결을 만드는 연결지향 프로토콜 이다.
데이터는 네트워크선로를 통해 전달되는 과정에서 손실되거나 순서가 뒤바뀌어서 전달될수 있는데 , TCP는 손실을 검색해내서 이를 교정하고 순서를 재조합 할 수 있도록 해준다.
2. PORT 란 무엇인가
"IP"로 해당 PC에 접근은 했지만 "PC" 내부에서 어느 프로그램과 통신을 해야하는지 구분을 해야 한다.
이때 사용하는것이 포트(PORT) 이다.
포트란 통신을 하기 위한 출입구 라고 보면 된다.
각 프로그램들은 자신만의 포트를 부여함으로 각각 통신을 할때 구분을 할수 있게 된다.
포트 번호는 0 ~ 65535 까지 쓸수 있고 , 0 ~ 1023 까지는 시스템에서 사용하는 포트임으로 사용하면 안된다.
즉 , 1024 ~ 65535 사이에 숫자를 사용하면 된다.
3. 소켓 통신
"TCP/IP" 통신을 하기 위해서 프로그래머들은 소켓을 이용한다
그렇다면 이 소켓(Socket) 은 무엇인가?
소켓은 각 포트를 사용하여 통신을 수행하는 도구 라고 생각하면 된다.
각각 프로그램에 포트를 세팅해 놓기만 하면 알아서 통신이 되는것이 아니고 이 소켓으로 데이터를 주고 받는다.
즉 포트는 출입구 역활 , 소켓은 출입구를 통하여 데이터를 직접 송수신 하는 매체 인것이다.
자~ 그럼 소켓의 동작 모양이 어떻게 되는지 설명 드리자면 다음과 같다
1. 서버 소켓과 클라이언트 소켓으로 나뉜다.
2. 서버 소켓의 역할은 클라이언트 소켓의 연결 요청을 대기하고 연결 요청이 클라이언트 소켓을 생성하여 통신을 가능하게 한다
3. 클라이언트 소켓은 대기하는것 없이 바로 사용하며 실제로 데이터 송수신이 일어나는것은 클라이언트 소켓이다.
먼가 좀 어려우면서 쉬운듯한 내용이다.
쉽게 말해서 2가지 소켓이 있는데 한가지는 (요청대기 소켓)이고 , (하나는 요청하고 송수신하는 소켓) 이라고 생각하면 된다.
'JAVA Programming > 자바 네트워크 서버 소켓' 카테고리의 다른 글
[5] 자바 Socket 통신으로 채팅 프로그램 만들기 2 (0) | 2020.08.09 |
---|---|
[4] 자바 Socket 통신으로 채팅 프로그램 만들기 1 (0) | 2020.08.09 |
[3] 자바 소켓 통신 (0) | 2020.08.09 |
[2] 이클립스 콘솔창 2개로 서버 클라이언트 보기 (0) | 2020.08.09 |