날짜 : 2023-11-20 17:54
주제 :
개요
클라이언트-서버 프로그래밍 모델
- 요청 시작: 클라이언트는 서버에 연결을 시작하고, 서비스를 요청하는 메시지(요청)를 전송합니다.
- 서버 처리: 서버는 클라이언트의 요청을 받아들이고 이를 해석한 후, 요청된 작업을 수행합니다. 이 작업은 데이터베이스 조회, 파일 접근, 계산 수행 등이 될 수 있습니다.
- 응답 전송: 서버는 요청에 대한 결과를 클라이언트에게 보내는 응답 메시지로 처리 결과를 전달합니다.
- 클라이언트 처리: 클라이언트는 서버로부터의 응답을 받고, 이에 대한 처리를 수행합니다. 처리 후에는 추가 요청을 보낼 수도 있고, 작업을 종료할 수도 있습니다.
클라이언트 호스트가 데이터 바이트를 전송하는 방법
- 데이터 전송 요청: 클라이언트 애플리케이션은 커널에 데이터를 보내달라고 요청합니다. 이는 보통
send 또는 write 시스템 호출을 통해 수행됩니다.
- 데이터 캡슐화: 호스트의 네트워크 스택은 데이터를 IP 패킷으로 캡슐화하고, 이 패킷에는 목적지 호스트의 인터넷 주소가 포함됩니다. 또한, 이 패킷을 LAN 프레임에 싸서 전송합니다.
- 네트워크 전송: 프레임은 LAN 어댑터를 통해 네트워크로 전송됩니다.
- 라우팅: 라우터가 패킷을 수신하고, 목적지 주소를 기반으로 다음 목적지를 결정합니다. 라우터는 필요한 경우 새로운 LAN 프레임 헤더를 추가하고 해당 네트워크로 패킷을 전달합니다.
- 목적지 도착: 최종 목적지인 호스트 B에 도착하면, 프레임은 호스트 B의 네트워크 스택으로 전달됩니다.
- 데이터 추출: 호스트 B의 네트워크 스택은 프레임에서 데이터를 추출하고, 최종적으로 서버 애플리케이션이 읽을 수 있도록 가상 주소 공간으로 복사합니다.
프로그래머 관점의 인터넷
- 호스트의 집합은 32bit IP 주소 집합에 매핑 됩니다.
- IP주소의 집합은 인터넷 도메인 네임이라고 부르는 식별자의 집합에 매핑됩니다.
- 하나의 인터넷 호스트의 프로세스는 연결을 통해 다른 인터넷 호스트의 프로세스와 통신할 수 있습니다.
- IP 주소: 인터넷에 연결된 각 호스트는 고유한 IP 주소를 가집니다. 전통적으로 IPv4는 32비트 주소를 사용하여 호스트를 식별합니다. 이 주소는 일반적으로 점으로 구분된 십진수 형태(예: 192.168.0.1)로 표현됩니다.
- 도메인 이름: IP 주소는 기억하고 사용하기 어려울 수 있기 때문에, 인간이 읽을 수 있는 도메인 이름으로 매핑됩니다(예:
www.example.com). 이러한 이름은 도메인 이름 시스템(DNS)을 통해 해당 IP 주소로 변환됩니다.
- 프로세스 간 통신: 한 호스트의 프로세스는 소켓을 사용하여 인터넷을 통해 다른 호스트의 프로세스와 통신할 수 있습니다. 이 통신은 TCP(신뢰성 있는 연결 지향 프로토콜) 또는 UDP(비신뢰성 있는 연결 없는 프로토콜)를 통해 이루어질 수 있습니다.
IP주소
출처(참고문헌)
연결문서