CSAPP/11장 3

[CSAPP] 11장 네트워크 프로그래밍(Network Programming) 11.4

11.4 소켓 인터페이스(Socket Interface)1. 소켓(socket)네트워크 소켓은 프로세스 간 또는 호스트 간 데이터 송수신을 위한 소프트웨어 구조로,커널 관점에서는 패킷의 입·출력을 중개하는 통신의 종단점(endpoint)애플리케이션 관점에서는 read()/write() 가능한 파일 디스크립터(fd)라고 볼 수 있습니다.– 도메인(domain): AF_INET(IPv4), AF_INET6(IPv6), AF_UNIX(로컬) 등을 지정– 타입(type): SOCK_STREAM(연결 지향/TCP), SOCK_DGRAM(비연결 지향/UDP) 등– 프로토콜(protocol): 보통 0으로 두면 타입에 따라 기본 프로토콜(TCP, UDP)을 자동 선택합니다.비유: 소켓은 ‘전화기’, 커널은 ‘전화 교..

CSAPP/11장 2025.05.03

소켓

1. 소켓(Socket)이란?네트워크 소켓은 프로세스가 네트워크 상에서 데이터를 주고받기 위한 소프트웨어 구조로, IP 주소·포트 번호·전송 프로토콜의 조합으로 식별됩니다.이러한 소켓은 운영체제의 소켓 API(대표적으로 Berkeley Sockets)로 생성·조작되며, UNIX 계열에서는 파일 디스크립터와 동일하게 취급됩니다.비유하자면소켓을 전기 플러그(소켓)에, 포트를 플러그 구멍에, IP 주소를 건물 주소에 비유할 수 있습니다.한 건물(IP) 내 특정 방(포트)을 통해 전기를 공급(데이터 송수신)하는 것처럼, 소켓을 통해 네트워크 연결이 이루어집니다.2. 소켓의 주요 특징2.1 전송 방식스트림 소켓 (TCP): 연결 지향(connection-oriented)으로 순서 보장·오류 제어를 제공데이터그램 ..

CSAPP/11장 2025.05.02

[CSAPP] 11장 네트워크 프로그래밍(Network Programming) 11.1 ~ 11.3

1. 클라이언트 - 서버 프로그래밍 모델클라이언트-서버 모델은 분산 애플리케이션 구조로, 클라이언트(서비스 요청자)와 서버(서비스 제공자)가 네트워크를 통해 메시지를 교환하는 형태입니다.클라이언트는 서버에 요청(request)을 보내고, 서버는 요청을 처리한 후 응답(response)을 반환합니다.클라이언트와 서버는 물리적 호스트가 아니라 프로세스 단위로 구분되며, 같은 호스트 내 여러 프로세스가 동시에 동작할 수 있습니다.전체 흐름도 : 요청 전송 → 서버 처리 → 응답 전송 → 클라이언트 처리요청 전송클라이언트가 필요한 서비스를 얻기 위해 서버에 요청(request)을 보냅니다. 예를 들어 웹 브라우저가 HTML 파일을 받기 위해 HTTP GET 메시지를 전송합니다.서버 처리서버는 요청을 수신하여 해..

CSAPP/11장 2025.05.02