대외활동/UMC 5th

Ch01. 서버란 무엇인가(소켓&멀티 프로세스)

oxdjww 2023. 9. 18. 16:52
728x90
반응형

Ch01. 서버란 무엇인가

Overview

client - server 간 데이터의 송수신 방식 및 과정 이해

서버의 정의

client에 대한 응답을 주는 개체
즉, 서버란 OS에 의해 동작하는 프로세스이며, 클라이언트의 역할을 하는 프로세스와 소켓을 통해 IPC를 수행하는 개체

Knowledge

About System Call


응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다.
이렇게 커널에 접근하여 운영체제의 커널이 제공하는 서비스를 이용하여 응용 프로그램의 요청을 수행한다.
Ref

About Process & Thread


Process : 운영체제로부터 자원을 할당받은 작업(task)의 단위
Thread : process가 할당받은 자원을 이용하는 실행 흐름의 단위
Ref

About TCP/IP Model


L4 : Application Layer
L3 : Transport Layer
L2 : Internet Layer
L1 : Link(Network Interface) Layer
Ref


About TCP & UDP


TCP : Transmission Control Protocol
UDP : User Datagram Protocol
Ref


IP Address & Port Number

IP address : 네트워크 상에서 통신 시에, 자신을 식별할 수 있는 고유한 정보
IP address의 부족함을 해결하기 위한 기술

  • NAT
  • 서브네팅
  • IPv6

이 네트워크 상의 통신은 컴퓨터와 컴퓨터가 통신을 하는 것은 맞지만, 구체적으로는 컴퓨터 내의 한 process와 다른 컴퓨터 내의 process가 통신을 하는 것이다.
그러므로 통신을 할 때 process를 구분하기 위한 식별자가 필요한데, 이것이 바로 port number이다.
다음과 같은 형식을 사용한다.

["수신할 프로세스가 동작하고 있는 컴퓨터의 ip address":"수신한 프로세스가 부여받은 port number"]


Data Transmission Process

데이터를 어떻게 송신할까?


일반적으로 TCP/IP 모델을 기준으로, user level에서 application끼리 데이터를 주고받는 상황을 가정할 것이다.

application layer에서 user data를 아래 계층인 transport layer로 보내고, 이 때 data가 encapsulate되고, application header가 붙으며 application data가 된다.
- 나중에 수신할 때 decapsulate되며 어느 process에 이 data가 할당되는지 파악할 수 있다.


transport layer에서는 application data가 encapsulate되고, tcp header가 붙으며 tcp segment(udp의 경우 datagram이라고도 함)가 된다.
- 나중에 수신할 때 decapsulate되며 packet이 어느 port number로 할당되어야 하는지 파악할 수 있다.


internet layer에서는 tcp segment가 encapsulate되고, ip header가 붙으며 ip packet이 된다.
- 나중에 수신할 때 decapsulate되며 ip header를 통해 어느 ip address로 routing될지 결정한다.


link layer에서는 ethernet header를 붙이며 ethernet 통신 간 패킷을 forward할 수 있는 식별자로 사용한다.
- 나중에 수신할 때 ethernet기반 통신에서 어느 host로 가야할지 알 수 있다.


Socket

TCP Socket


연결 지향, 신뢰성 있는 데이터 송수신 담당

UDP Socket


비연결 지향

Socket Programming Practice



socket_programming_github.io



감사합니다.

728x90
반응형