프로그래밍 공부
카테고리
작성일
2024. 7. 25. 17:02
작성자
WDmil
728x90

정의

소켓(Socket)은 OS커널에 구현되어 있는 프로토콜 요소에 대한 추상화된 인터페이스 이다.

장치 파일의 일종 으로 이해할 수 있다.

일반파일에 대한 개념이 대부분 적용된다.

 

소켓과 파일의 유사성

소켓 = 파일이다 라고 생각하면 된다.

 

소켓은 파일과 같은 방식으로 취급될 수 있다. 소켓은 프로세스를 주체로 하여 다음과 같은 작업을 수행할 수 있다.

일반적으로 우리가 파일에 사용하는 행위들인 열기, 쓰기, 생성, 삭제 등을 할 수 있다.

 

이러한 대상체 파일에 TCP소켓에 대한 추상화된 인터페이스를 제공하면, 이를 TCP소켓이라고 할 수 있다.

이때, TCP상에서는 파일과 다르게 쓰기와 읽기를 다음과 같이 표현한다.

 

Write -> Send

Read -> Receive

 

데이터 단위와 스트림

소켓에서 데이터를 Send와 Receive하는 과정에서 정의되는 단위를 데이터단위, 스트림 이라고 표현하는데, 이 설명은 다음과 같다.

 

계층별 데이터 단위

  • L4 : Segment
  • L3 : Packet

스트림과 세그멘테이션

 

네트워크상에서 데이터를 보낼 때 Steam과 Sagmentation으로 구분할 수 있는데, 이는 다음과 같이 이해하면 된다.

  • 정보 한조각 = 패킷

  • 조각단위 가 여러개 길게 묶여있는것 = 스트림
    여러개의 세그먼트로 구성된 데이터 흐름을 의미

  • Segmentation 세그멘테이션 : 데이터의 긴 열을 일정단위로 자르는걸 의미한다.
  • Sagmentation 세그먼트 : 그러한 잘려진 조각을 의미한다.

이러한 한개한개 나뉘어진 세그먼트를 잘 포장해서 네트워크로 보내는것 이 패킷이라고 한다.

 

세그먼트 와 패킷의 차이

1. 세그먼트(Segment)

  • 정의: 세그먼트는 전송 계층(Layer 4)에서 다루는 데이터 단위

  • 내용물: 애플리케이션 계층(Layer 7)에서 전달된 데이터를 포함하고 있으며,
    전송 계층의 헤더(예: TCP 헤더, UDP 헤더)가 추가

  • 비유: 세그먼트는 택배 상자 안에 넣을 물건 묶음과 같다. 이 묶음은 아직 주소나 배송 정보가 없는 상태

2. 패킷(Packet)

  • 정의: 패킷은 네트워크 계층(Layer 3)에서 다루는 데이터 단위

  • 내용물: 세그먼트에 네트워크 계층의 헤더(IP 헤더)가 추가된 것.
    IP 헤더는 발신지와 목적지 IP 주소 등 네트워크 경로를 결정하는 데 필요한 정보를 포함.

  • 비유: 패킷은 IP 주소가 첨부된 택배 상자와 같다.
    이 상자는 발신지와 목적지 주소가 명확히 기재되어 있어 네트워크를 통해 올바른 경로로 전달될 수 있다.
728x90

'Win32서버' 카테고리의 다른 글

Win32 스레드  (3) 2024.07.22