TCP/IP 4 계층 구조는 오늘날 인터넷을 포함한 대부분의 네트워크 시스템에서 실제로 사용되는 표준 모델이다.이 모델은 OSI 7 계층보다 단순하지만, 각 계층이 담당하는 역할은 분명하며 프로토콜 기반으로 동작한다.OSI 7계층은 네트워크 통신을 표준화한 모델로, 통신 시스템을 7단계로 나누어 설명한 것이다. 하지만 OSI 모델이 실무적으로 이용하기에는 복잡한 까닥 에 실제 인터넷에서는 이를 단순화한 TCP/IP 4 계층이 사용된다.1 계층. 네트워크 인터페이스 계층 (Network Interface Layer)1. 역할네트워크 인터페이스 계층은 데이터를 실제 네트워크 매체를 통해 송수신하는 역할을 한다.이 계층은 물리 계층과 데이터 링크 계층의 기능을 모두 포함하며, 프레임 단위로 데이터를 처리한다...
Web Server (웹 서버)정의웹 서버는 클라이언트(보통 웹 브라우저)의 HTTP 요청을 받아, 응답을 반환하는 서버 프로그램이다. 정적인 HTML 파일을 제공하거나, 동적인 요청을 CGI나 WAS로 전달하기도 한다.주요 기능HTTP 요청 수신 (GET, POST 등)정적 리소스 제공 (HTML, CSS, 이미지 등)동적 요청을 외부 프로그램이나 백엔드로 전달 (예: CGI, PHP, Node.js)MIME 타입에 따라 적절한 Content-Type 헤더 설정대표적인 웹 서버Apache HTTP ServerNginxMicrosoft IISPython의 http.server (간단 테스트용)CGI (Common Gateway Interface)정의CGI는 웹 서버와 외부 애플리케이션(주로 백엔드 스크립..
Datagram Socket (SOCK_DGRAM)과 Stream Socket (SOCK_STREAM)은 소켓 통신에서 사용되는 두 가지 주요 타입이며, 각각 UDP와 TCP 프로토콜에 대응된다.1. Stream Socket (SOCK_STREAM)프로토콜: TCP (Transmission Control Protocol)연결방식: 연결지향적 (Connection-oriented)데이터 전송 방식: 연속적인 바이트 스트림으로 데이터 전송신뢰성: 패킷 손실 없음, 순서 보장, 흐름제어, 혼잡 제어 제공용도: 웹 브라우징(HTTP), 메일(SMTP), 파일 전송(FTP), SSH 등동작 흐름 (3-way handshake)클라이언트가 connect() 호출 → SYN서버가 accept() → SYN-ACK클라..
socket, bind, listen, accept, connect, close는 C 언어나 시스템 프로그래밍에서 TCP/IP 네트워크 통신을 구현하기 위해 사용하는 시스템 콜이다.이 함수들을 이용하면 클라이언트-서버 통신 모델을 직접 구현할 수 있다.1. 전체 흐름 요약서버 측 순서int sockfd = socket(...); // ① 소켓 생성bind(sockfd, ...); // ② IP/포트 지정listen(sockfd, ...); // ③ 연결 대기 상태 진입int connfd = accept(sockfd); // ④ 클라이언트 연결 수락// read()/write()로 데이터 송수신close(connfd); // ⑤ 연결 ..
클라이언트-서버 모델(Client-Server Model)은 네트워크 기반의 통신 구조로, 클라이언트가 서비스를 요청하고 서버가 그 요청에 응답하는 구조이다. 현대의 대부분의 인터넷 서비스(웹, 메일, DB 등)가 이 모델을 기반으로 동작한다.1. 기본 구조 클라이언트(Client): 서비스를 요청하는 주체 (예: 웹 브라우저, 모바일 앱)서버(Server): 클라이언트의 요청을 받아 처리하고 응답하는 주체 (예: 웹 서버, DB 서버)2. 특징역할 분리: 클라이언트는 요청만, 서버는 처리만 담당한다.중앙 집중식: 서버에 데이터와 로직이 집중되어 관리가 용이하다.확장성: 여러 클라이언트가 하나의 서버 또는 서버 풀에 접속 가능하다.유지보수 용이: 서버만 수정하면 모든 클라이언트에게 효과가 반영된다.3. ..
파일 디스크립터(file descriptor)란, 운영체제에서 열린 파일이나 입출력 리소스를 식별하기 위한 정수형 식별자이다. 주로 유닉스 계열 시스템(Linux 포함)에서 사용되며, 커널이 열려 있는 파일(혹은 소켓, 파이프 등)을 추적하고 관리할 수 있도록 도와준다.1. 파일 디스크립터의 기본 개념프로세스가 open() 시스템 호출을 통해 파일을 열면, 커널은 파일에 대한 정보를 저장하고, 그에 대응하는 정수값(fd)을 반환한다.이 정수값을 통해 프로세스는 이후 read(), write(), close() 등의 시스템 호출에서 파일에 접근할 수 있다.2. 기본 파일 디스크립터 (표준 입출력)이름번호설명stdin0표준 입력 (keyboard)stdout1표준 출력 (screen)stderr2표준 오류 ..