리눅스 네트워크 프로그래밍

네트워크 기반

네트워크 아키텍처

정의: 네트워크의 계층화된 모델이며 각 계층 모델에서 사용하는 프로토콜 모음입니다.

분류: 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 문

Guess you like

Origin blog.csdn.net/qq_54704926/article/details/126917798