꾸준히 안타치기

네트워크와 TCP/IP 소켓통신 본문

Server & DB

네트워크와 TCP/IP 소켓통신

글자줍기 2021. 9. 18. 23:39
반응형

IP :  인터넷 프로토콜 

지정한 IP주소를 데이터를 패킷이라는 통신 단위로 전달한다.

패킷 통신  + 분산네트워크  = 인터넷의 기반기술

패킷 통신은 네트워크를 효율적으로 활용. 데이터를 쪼개서 보냄. TCP는 패킷을 재 조립하고, 재전송을 요청하는 등의 흐름을 관리한다.

TCP :   전송제어 프로토콜 

TCP (Transmission Control Protocol)는 IP 네트워크의 두 컴퓨터 간의 연결 지향 통신을 위한 전송 계층 호스트 간 프로토콜입니다. TCP는 가상 포트를 사용하여 두 컴퓨터 간의 물리적 연결을 재사용 할 수 있는 가상 종단 간 연결을 만듭니다.

TCP는 HTTP  SMTP (email)과 같은 상위 레벨 프로토콜 데이터를 캡슐화합니다.

연결 지향

Three-way - handshake 3번의 패킷 교환으로 쌍방을 확인한다.

 

 

 

프로토콜이란?

프로토콜은 컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계입니다.

기기 간 통신은 교환되는 데이터의 형식에 대해 상호 합의를 요구합니다. 이런 형식을 정의하는 규칙의 집합을 프로토콜이라고 합니다. 

 

TCP의 특징

- 연결지향 TCP 3 way handshake

- 데이터 전달 보증

- 순서보장

- 신뢰할 수 있는 프로토콜

 

통신프로그램 작성방법

1) 클라이언트가 연결을 요청하고, 서버가 그 요청을 받아 연결을 맺는다.

2)그 연결을 통해 데이터를 주고 받는다.

 

socket이란? 데이터 통신의 출입구

서버소켓

- 서버 프로그램에서만 사용되는 소켓

- 연결 요청을 기다리다가, 연결 요청이 오면 연결을 맺고 또 다른 소켓을 생성한다.

 

클라이언트 소켓

- 클라이언트 프로그램과 서버 프로그램에서 모두 사용되는 소켓

- 실제 데이터 전송에 사용되는 것은 이 소켓임

- 서버 프로그램에서는 서버소켓에 의해 생성된다.

- 클라이언트 프로그램에서는 직접 생성해야함 

 

 

네트워크 프로그램은  클라이언트와 서버간의 데이터 송수신을 목적으로한다. 

http통신은 실시간 서버 푸시를  구현해야하는 곳에서는 사용할 수 없다.

왜냐하면, 서버와 데이터를 주고 바은 다음 응답이 끝나면 자동으로 연결이 끊어지기 때문이다.

서버의 데이터를 화면에 표시하기만 하면되는 CRUD의 성격을 가지고 있다. 이런 부류의 작업은 클라이언트에서 필요한 순간에만

서버 연동이 발생해도 되므로, 굳이 소켓을 사용할 필요는 없다. 

서버와의 연결을 지속하지 않고는 데이터 서비스가 불가능한앱은 소켓프로그램을 개발을 해야한다.

 

소켓프로그램 작성시 

소켓연결,  Read, Write는 모두 쓰레드로 처리해야한다. 쓰레드는 서비스안에 넣어준다.

 

 

깡쌤 / 소켓예제 

https://github.com/kkangseongyun/kkangs_android_2019/blob/master/AndroidLab/part9_26/src/main/java/com/example/part9_26/MainActivity.java

 

네트워크와  TCP/IP

https://youtu.be/NOFWq2mWeGA?list=PL4PVSjdkPGZHVeNyPuhWATH-tFGv6U52J 

 

참고 유투브

https://www.youtube.com/watch?v=795As5WoHEQ&list=PL4PVSjdkPGZHVeNyPuhWATH-tFGv6U52J&index=4 

 

오준석의생존코딩

https://www.youtube.com/watch?v=KiFmyCrOvJg&list=PL4PVSjdkPGZHVeNyPuhWATH-tFGv6U52J&index=3

 

 

https://gdtbgl93.tistory.com/144?category=755543 

 

[JAVA] 채팅 만들기 완전 분석 ( 에코 서버 - 클라이언트 )

보통 자바를 배우는 초심자에 있어서 과제의 끝판왕(?)이라고 불리는 채팅 프로그램에 대해서 알아보겠습니다. 채팅 프로그램을 만들기 위해서는 아래와 같은 배경지식이 필요합니다. 네트워

gdtbgl93.tistory.com

https://lktprogrammer.tistory.com/62

 

[JAVA] TCP 소켓 프로그래밍 01 - Server/Client 일대일 연결

TCP 소켓 프로그래밍 01 - 일대일 연결 이번 포스팅에서는 Socket을 활용하여 Clinet측에서 Server로 일대일 연결을 유지하면서 Client측에서 보낸 메세지를 Server측에서 수신하여 수신 받은 메세지를 다

lktprogrammer.tistory.com

 

반응형

'Server & DB' 카테고리의 다른 글

DB 한글 ?, 물음표  (0) 2021.10.01
바이트 입출력 스트림  (0) 2021.09.20
EXSIST  (0) 2021.09.18
Jacob's Lecture, 데이터베이스  (0) 2021.09.13
검색 like  (0) 2021.09.03
Comments