[CS 기초] 네트워크

Sohyeon Bak·2022년 6월 8일
0

개발 책

목록 보기
7/18
post-thumbnail

'성공과 실패를 결정하는 1%의 네트워크 원리' 책을 바탕으로 정리한 내용입니다.

04. 프로토콜 스택에 메시지 송신을 의뢰한다.

데이터 송·수신 동작 개요

IP 주소를 찾은 후 웹 서버에 메세지를 송신하도록 OS의 프로토콜 스택에 의로를 한다.
HTTP 메세지는 디지털 데이터이므로 디지털 데이터를 송신하도록 의뢰 한다.

  • 소켓 라이브러리를 이용한 송·수신 동작(OS 내부의 프로토콜 스텍으로 진행)
    1. 소켓을 만든다.
    2. 서버 측의 소켓에 파이프를 연결한다.
    3. 데이터를 송·수신 한다.
    4. 파이프를 분리하여 소켓을 말소시킨다.

소켓의 작성 단계

  1. 소켓 라이브러리의 소켓이라는 프로그램 부품만 호출
  2. 소켓 내부로 제어가 넘어가 소켓을 만드는 동작을 실행
  3. 이것이 끝나면 어플리케이션에 제어가 돌아온다
  4. 소켓이 생기면 디스크립터가 돌아오고 클라이언트는 이것을 받아서 메모리에 기록

    디스크립터

    소켓을 식별하기 위해 사용된다.
    다양한 송수신 동작에서 어느 소켓을 열어야할 지 구분시켜주는 구분자 역할

파이프를 연결하는 접속 단계

클라이언트 소켓을 서버츨 소켓에 연결하도록 프로토콜 스택에 의뢰.
소켓 라이브러리 connect 프로그램 부품을 호출해 동작을 실행

  • connect 호출 시 지정 값
    • 디스크립터 : 어플리케이션이 소켓을 식별하는 것
    • IP주소, 포트번호 : 클라이언트와 서비스의 상대 소켓을 식별하는것

메세지를 주고받는 송·수신 단계

소켓에 데이터를 넣으면 상대 소켓에 데이터가 도착한다.
어플리케이션은 소켓을 직접 다룰 수 있어서 소켓 라이브러리를 통해 프로토콜 스택에 의뢰한다.

  • write 프로토콜 부품
    • 디스크립터와 송신 데이터를 지정
    • 프로토콜 스택이 송신 데이터를 서버에서 송신
    • 소켓은 연결되어 있기 때문에 지정 된 곳으로 데이터 송신
    • 엑세스 대상의 서버에 도착한 데이터 내용을 조사해 적절한 응답 메세지 전송

연결끊기 단계에서 송·수신이 종료된다

  • 응답메세지가 완료되면 서버측에서 close를 호출해 연결을 끊는다
  • 클라이언트 측에 전달되어 소켓 연결을 끊는다
  • 브라우저가 read로 수신 동작을 의뢰할 때 데이터를 전달하는 대신 연결이 끊긴 것을 브라우저에게 통지해준다
profile
정리하고 기억하는 곳

0개의 댓글