[네트워크]-서버와 클라이언트가 프로세스로써 어떻게 데이터를 주고 받는가?

Shim31·2023년 9월 28일
0

Network

목록 보기
2/6

컴퓨터에서 동작하는 프로세스가 또 다른 컴퓨터의 프로세스와 통신을 함

= 다른 시스템의 프로세스와 IPC를 함

  • IPC란? (Inter-Process Commnication)

1. IP 통해 컴퓨터를 식별

  • IP란?

IP

  1. 컴퓨터가 네트워크 상에서 통신을 하고 싶음
  2. 자신이 누구인지 식별할 수 있는 수단이 있어야함
  3. 이 “식별 수단”이 IP주소 임

→ IP 주소는 겹치지 않고 고유해야함

IP 주소가 부족할 수 있지 않나?”

→ 사설 IP 주소를 사용해 공인 IP 주소로 바꾸는 기술이 나옴

ex) NAT , 서브네팅, IPv6


2. 해당 컴퓨터에서 어떤 프로세스로 데이터를 보낼지 포트 번호로 식별


데이터를 보낼 대상을 식별하는 형태

[203.230.7.2:80]

[서버 프로세스가 동작 중인 컴퓨터의 IP 주소 : 서버 프로세스가 부여 받은 포트 번호]

[203.230.7.2:80] 의 뜻

→ 203.230.7.2의 IP 주소를 가진 컴퓨터의 80번 포트의 프로세스


데이터 송신 과정

1. Application(데이터를 송신하려는 서버 프로세스) :

데이터를 보내려는 서버 프로세스에서 소켓을 열고 데이터를 준비함

2. Sockets:

서버 프로세스는 운영체제 시스템 콜을 사용하여 소켓에 데이터 쓰기(write)를 요청

3. 네트워크 스택(TCP/IP 스택 등..):

시스템 콜을 통해 데이터가 소켓에서 나온 후, 네트워크 스택이 데이터를 가공하고 헤더 정보를 추가하여 패킷을 생성

4. NIC(Network Interface Card):

패킷은 NIC로 전송되고, NIC는 데이터를 물리적으로 전송하기 위해 Ethernet Frame 등의 형태로 패킷을 변환하고 외부로 전송한다.


데이터 수신 과정

1. NIC(Network Interface Card):

외부로부터 데이터가 도착하면 NIC가 데이터를 수신하고 인터럽트를 이용해 운영체제에 알림

2. 운영체제:

인터럽트를 받은 운영체제는 시스템 콜을 통해 NIC 드라이버를 호출하여 수신된 데이터를 가져옴

3. 네트워크 스택:

데이터가 들어온 후, 네트워크 스택이 패킷을 처리하고, 필요한 경우 오류 검사 및 복구를 수행

4. Sockets:

처리된 데이터는 네트워크 스택을 통해 소켓으로 전달됨

5. Application (데이터를 수신하는 프로세스)

소켓을 통해 수신 대상이 되는 서버 프로세스에 데이터가 도달하고, 이를 처리함


시스템 콜과 인터럽트에 대해..

시스템 콜

사용자 프로세스와 운영체제 간의 인터페이스 역할

  • 데이터 송신, 수신과 같은 중요한 작업을 요청하고 처리함

인터럽트

하드웨어 이벤트(데이터 수신, 디바이스 상태 변경…)를 운영체제에 알리는 역할

  • 운영체제는 이를 처리하여 시스템 콜을 실행하거나 디바이스 관리 등의 작업을 수행함

0개의 댓글