프로그래밍/소켓 프로그래밍 입문 44

TCP 상태 다이어그램과 상태전이

TCP(Transmission Control Protocol)는 연결 기반(Connection-Oriented) 프로토콜로, 데이터의 안정적 전송과 패킷 순서를 보장하는 특징을 가집니다. 이를 위해 TCP는 상태 다이어그램과 상태 전이를 통해 연결 및 종료 과정을 엄격히 관리합니다. 아래에서는 TCP 상태 다이어그램과 상태 전이에 대해 상세히 설명합니다.1. TCP의 주요 특징연결 지향(Connection-Oriented):3-Way Handshake를 통해 연결을 설정.연결이 완료된 후 데이터 전송 가능.연결 종료 시도 시 정해진 프로세스를 따름.신뢰성 보장:데이터 손실 시 커널 수준에서 재전송(Retransmission) 요청.패킷 순서 유지 및 데이터 중복 방지.UDP와의 차이점:UDP는 연결 개념..

소켓의 본질: 소켓은 파일이다.

소켓(Socket)은 네트워크 프로그래밍에서 중요한 개념이지만, 본질적으로 소켓은 파일입니다. 이 관점에서 소켓의 작동 원리와 프로그래밍 방식을 이해하면 소켓을 더 직관적으로 다룰 수 있습니다. 아래에서 소켓의 본질과 그 작동 방식을 정리합니다. 1. 소켓과 파일의 관계소켓은 파일이다.파일은 운영체제의 커널 영역에 존재하는 요소로, 추상화된 인터페이스를 제공합니다.소켓은 파일 중에서도 프로토콜 스택의 추상화된 인터페이스를 의미합니다.예: TCP, UDP 같은 프로토콜에 대한 파일.파일과 소켓의 공통점:프로세스는 파일과 소켓 모두에 대해 다음과 같은 작업을 수행할 수 있습니다:열기(Open)쓰기(Write)읽기(Read)닫기(Close)파일에 데이터를 쓰면 디스크에 저장되듯, 소켓에 데이터를 쓰면 네트워크..

작업자 스레드 동기화

1. 작업자 스레드와 메인 스레드의 흐름메인 스레드(T1): 프로그램의 주요 실행 흐름을 담당.작업자 스레드(T2): 메인 스레드에서 생성되어 독립적인 흐름으로 작업 수행.메인 스레드는 작업자 스레드의 진행 상황을 즉시 알 수 없으므로, 동기화 기법이 필요합니다. 2. 동기화에 필요한 이벤트(Event) 오브젝트이벤트의 개념이벤트(Event): 스레드 간 신호를 주고받기 위한 동기화 오브젝트.상태:Set: 이벤트가 트리거된 상태.Reset: 이벤트가 비활성화된 상태.이벤트 생성:CreateEvent 함수를 사용해 생성.이름은 필요 시 설정 가능 (프로세스 간 공유 자원에만 필요).3. 이벤트를 이용한 동기화 흐름스레드 역할동작 설명메인 스레드1. 작업자 스레드 생성. 2. WaitForSingleObje..

Win32 Thread에 관하여

Win32 스레드란?스레드는 윈도우 운영체제에서 실행의 기본 단위입니다. 스레드는 CPU를 소모하는 개별적인 작업 흐름이며, 하나 이상의 스레드가 모여 프로세스를 구성합니다. 이 글에서는 Win32 스레드의 구조, 생성 방식, 동기화 방법 및 상태 관리를 살펴봅니다. 1. 스레드와 프로세스의 개념개념설명스레드실행의 단위. 독립적인 실행 흐름과 스택을 가짐.프로세스하나 이상의 스레드로 구성된 집합체. 가상 메모리와 권한을 할당받음.프로세스의 특징운영체제는 새로운 프로세스를 생성하면서 가상 메모리 공간과 권한을 할당.프로세스는 권한 단위로 통제되며, 실행 가능한 주소 공간과 자원을 공유.스레드의 특징프로세스 내에서 생성되며, 프로세스의 가상 메모리 공간을 공유.각 스레드는 독립적인 실행 흐름과 Thread ..