ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2. Windows Socket API(WSA, Winsock)
    개발/서버 네트워크 2023. 8. 3. 15:30

    Windows App과 TCP/IP 사이를 연결한다

    • Windows TCP/IP 와 응용 프로그램 사이의 통신 방식을 정의API

    Network Socket

    Winsock을 이용한 통신 과정을 나타낸 그림
    이것도 소켓

    연결 / send(), recv() / close()

     

    • 컴퓨터 네트워크를 경유하는 프로세스 사이 통신의 종착점(Endpoint)
      • 인터넷을 통해 데이터를 전송하는 데 사용할 수 있는 연결 지점을 식별하는 데 사용.
      • 소켓은 네트워크 속 프로세스들 사이에, 데이터를 교환하고 연결하기 위한 약속.
      • 네트워크 통신을 위한 프로그램이 소켓을 생성하고, 소켓을 통해 데이터를 교환한다.
    • TCP/IP가 인터넷의 표준으로 자리 잡으면서, 주로 인터넷 소켓을 가리킨다.
      • 인터넷 소켓은 전송 프로토콜(TCP/UDP), IP 주소, 포트 번호 세 가지로 구별된다.
      • 이외에 데이터그램 소켓, 스트림 소켓 등이 있다.
    • Unix에서는 별도 API 없이 소켓을 파일 디스크립터(정수)로 관리한다.
      • 응용 프로그램에서 직접 사용할 수 있다.
      Windows에서는 커널 오브젝트로 분류되므로 OS의 HANDLE을 이용해 제어해야 한다.
      • 커널 오브젝트: OS가 리소스를 관리하기 위한 데이터를 저장하는 메모리 블록
      • 그래서 Winsock 에서는 Unix 와 호환을 위해 SOCKET 타입을 정수로 재정의했다.
    • SOCKET 타입
      • af: address family. 주소 지정 체계 AF_INET이 IPv4이다.
      • type: 소켓의 타입. SOCK_STREAM(TCP)와 SOCK_DGRAM(UDP)가 대표.
      • protocol: 프로토콜 번호. ICMP, IGMP, TCP, UDP 등...

    socket() 함수로 SOCKET 타입 객체를 얻을 수 있다.

    '개발 > 서버 네트워크' 카테고리의 다른 글

    5. I/O Completion Ports (IOCP)  (0) 2023.08.03
    4. OverLapped I/O  (0) 2023.08.03
    3. 동기, 비동기 통신  (0) 2023.08.03
    1. TCP/IP  (0) 2023.08.03
    AWS 학습자료 링크 모음  (0) 2023.08.03
Designed by Tistory.