네트워크 기반
네트워크 아키텍처
정의: 네트워크의 계층화된 모델이며 각 계층 모델에서 사용하는 프로토콜 모음입니다.
분류: OSI 7계층 모델, TCP/IP 4계층 모델
IP 주소
분류: ipv4, ipv6
네트워크에서 호스트를 고유하게 식별하는 기호는 IP 주소입니다.
mac은 호스트를 식별하는 고유한 기호입니다.
규약
정의: 양 당사자가 합의한 커뮤니케이션 규칙
범주: 일반 프로토콜, 산업 프로토콜, 맞춤형 프로토콜
포트 번호
호스트에서 애플리케이션 프로세스를 구분하는 데 사용
바이트 순서
멀티바이트 정수를 저장하는 CPU 호스트의 방식입니다. (호스트마다 저장 방법이 다름)
분류: 빅 엔디안, 리틀 엔디안
네트워크 전송 과정에서 정보 전송을 용이하게 하기 위해 빅 엔디안 순서가 일률적으로 사용됩니다. (즉, 호스트가 네트워크 통신을 수행할 때 호스트 바이트 시퀀스를 네트워크 바이트 시퀀스로 변환한 다음 네트워크 바이트를 수신한 후 자체 호스트 바이트 시퀀스로 변환합니다.)
TCP 모델
서버 생성 단계:
소켓 생성 및 열기(socket), IP 주소 및 포트 번호 바인딩(bind), 대기 큐 생성(listen), 대기 및 연결 설정(accept), 메시지 송수신 및 소켓 닫기
클라이언트 생성 단계:
소켓 생성 및 열기, IP 주소 및 포트 번호 바인딩(bind), 서버에 연결(three-way handshake가 발생하는 시점), 데이터 송수신 및 소켓 닫기
둘 사이의 연결 시에는 3방향 핸드셰이크가 발생하고, 연결 해제 시에는 4방향 핸드셰이크가 발생합니다.
UDP 모델
서버 생성 단계
클라이언트 생성 단계
입출력 모델
차단 IO 기능: 가장 단순하고 가장 일반적으로 사용되며 가장 비효율적입니다.
Non-blocking IO 기능: I/O 작업에서 프로세스가 차단되는 것을 방지하고 폴링이 필요합니다.
IO 멀티플렉싱: 여러 I/O를 동시에 제어할 수 있습니다.
신호 기반 IO: 비동기 통신 모델
서버 모델
사이클 서버
가짜 다대일입니다.
동시 서버
다중 프로세스/다중 스레드
io 다중화
데이터베이스SQLITE
특정 조직 관계로 데이터를 저장하는 데 사용되는 파일(데이터베이스는 여러 테이블을 생성할 수 있음)
SQL 문