= 다른 시스템의 프로세스와 IPC
를 함
IPC
란? (Inter-Process Commnication)IP
통해 컴퓨터를 식별IP
란?
- 컴퓨터가 네트워크 상에서 통신을 하고 싶음
- 자신이 누구인지 식별할 수 있는 수단이 있어야함
- 이 “식별 수단”이 IP주소 임
→ IP 주소는 겹치지 않고 고유해야함
“IP 주소가 부족할 수 있지 않나?”
→ 사설 IP 주소를 사용해 공인 IP 주소로 바꾸는 기술이 나옴
ex) NAT
, 서브네팅
, IPv6
포트 번호
로 식별[203.230.7.2:80]
[서버 프로세스가 동작 중인 컴퓨터의 IP 주소 : 서버 프로세스가 부여 받은 포트 번호]
[203.230.7.2:80]
의 뜻
→ 203.230.7.2의 IP 주소를 가진 컴퓨터의 80번 포트의 프로세스
데이터를 보내려는 서버 프로세스에서 소켓을 열고 데이터를 준비함
서버 프로세스는 운영체제 시스템 콜을 사용하여 소켓에 데이터 쓰기(write)를 요청함
시스템 콜을 통해 데이터가 소켓에서 나온 후, 네트워크 스택이 데이터를 가공하고 헤더 정보를 추가하여 패킷을 생성
패킷은 NIC로 전송되고, NIC는 데이터를 물리적으로 전송하기 위해 Ethernet Frame 등의 형태로 패킷을 변환하고 외부로 전송한다.
외부로부터 데이터가 도착하면 NIC가 데이터를 수신하고 인터럽트를 이용해 운영체제에 알림
인터럽트를 받은 운영체제는 시스템 콜을 통해 NIC 드라이버를 호출하여 수신된 데이터를 가져옴
데이터가 들어온 후, 네트워크 스택이 패킷을 처리하고, 필요한 경우 오류 검사 및 복구를 수행
처리된 데이터는 네트워크 스택을 통해 소켓으로 전달됨
소켓을 통해 수신 대상이 되는 서버 프로세스에 데이터가 도달하고, 이를 처리함
사용자 프로세스와 운영체제 간의 인터페이스 역할
- 데이터 송신, 수신과 같은 중요한 작업을 요청하고 처리함
하드웨어 이벤트(데이터 수신, 디바이스 상태 변경…)를 운영체제에 알리는 역할
- 운영체제는 이를 처리하여 시스템 콜을 실행하거나 디바이스 관리 등의 작업을 수행함