6.1 네트워크

  • 서로 다른 장비 간 데이터를 교환할 때 기본적으로 네트워크를 경우하여 데이터를 송수신한다.
  • 실제 네트워크 구조를 구체적으로 도식화 할 수 있을까?
    • 네트워크 자체가 그 구조를 알지 못해도 사용할 수 있도록 돼 있기 때문에 어렵다.
  • 네트워크는 여러 구조들이 있지만 3계층형 시스템을 구성하는 경우는 대부분 TCP/IP 구조를 사용한다.
    • OS(주로 커널)가 이 TCP/IP를 사용해서 간단히 통신할 수 있는 구조를 제공한다.

6.2 계층 구조

  • 계층구조를 통해 데이터나 기능 호출 흐름에 따라 역할이 나누어진다.
    • 각 층은 자신이 담당하는 일만 책임진다.
    • 계층 구조를 나눔으로써 독립적으로 동작할 수 있다.
  • 단점으로는 작업 효율을 희생해야하는 점이다.
    • 작업 인계시 오버헤드가 발생한다.

6.3 프로토콜

  • 프로토콜은 영어로 사전에 정해놓은 순서를 의미한다.
    • 컴퓨터가 서로 소통하기 위해 정한 규약을 의미함
  • 통신을 위해 네트워크와 프로토콜을 뗄레야 뗄 수 없는 관계다.
  • TCP/IP와 같은 프로토콜을 제외하고, 어떤 장비라도 서로 통신을 하기 위해서는 프로토콜이 필요하다.
    • 마우스를 PC에 연결할 때 사용하는 USB에 대한 프로토콜도 존재한다.

6.4 TCP/IP를 이용하고 있는 현재의 네트워크

  • 네트워크에 여러 프로토콜이 있지만 현재 네트워크를 지탱하는 것은 TCP/IP 및 관련 프로토콜이다.
    • 이들 프로토콜 집합을 모아서 TCP/IP 프로토콜 스위트(Protocol Suite)라고 한다. = 프로토콜 집합을 의미
  • TCP/IP 프로토콜 스위트는 명칭 그대로 TCP와 IP의 두 가지 프로토콜을 주축으로 한 프로토콜 집합이다.

  • 이더넷 계층 : 레이어 2 or L2
  • IP 계층 : 레이어 3 or L3
  • 전송 계층(TCP 계층) : 레이어 4 or L4

6.5 [레이어 7] 애플리케이션 계층의 프로토콜 HTTP

  • 웹 시스템에서 가장 중요한 애플리케이션 계층 프로토콜은 HTTP이다.
  • 브라우저에 URL을 입력하여 요청이 웹 서버에 도달하면 응답으로 HTML 파일이 반환된다.
    • 클라이언트와 웹 서버는 HTTP를 통해서 요청과 응답을 주고 받는다.
  • Request와 Response에는 각종 정보가 담겨있다. (자세한 내용은 네트워크에 정리)
  • 애플리케이션 계층 프로토콜은 필요한 데이터를 소켓에 기록만 하며 통신은 모두 TCP/IP에 위임한다.
    • HTTP request를 넣는 곳이 소켓이다.
    • 소켓에 기록된 데이터는 다른 한쪽의 소켓으로 전달된다.
  • IP주소와 TCP 포트 두 가지 정보가 있다면 커널이 소켓을 만들 수 있다.
    • TCP를 사용하기 때문에 TCP를 사용한다는 것과 IP 주소 및 포트 번호 정보를 시스템 콜 경유로 커널에 전달한다.
    • 접속 대상 서버와의 연결이 시작된다.
    • 이때 상대방 서버에서도 소켓이 만들어지고, 상대 서버와의 사이에 가상 경로가 생성된다. (버추얼 서킷)

6.6 [레이어 4] 전송 계층 프로토콜 TCP

  • 소켓에 기록된 애플리케이션 데이터는 커널 내에서 통신 대상에게 전달하기 위한 준비를 시작한다.
    • 제일 먼저 임무를 수행하는 것이 전송 계층 프로토콜인 TCP다.
    • TCP(Transmission Control Protocol), 전송 제어 프롵콜이다.
  • TCP가 담당하는 것은 서버가 송신할 때와 서버가 수신한 후 애플리케이션에게 전달할 때이다.
    • 상대 서버까지 전송하는 부분은 하위 계층인 IP에 모두 위임한다.
  • TCP 주요 기능
    • 포트 번호를 이용해서 데이터 전송
    • 연결 생성
    • 데이터 보증과 재전송 제어
    • 흐름 제어와 폭주 제어
  • TCP는 데이터를 세그먼트라는 단위로 관리한다.
    • 애플리케이션 데이터에 TCP 헤더를 붙여 세그먼트를 만든다.
  • 상대 서버에 데이터가 도착했다고 해도 어떤 애플리케이션용 데이터인지 알 수 없다.
    • TCP에서 포트 번호를 사용해 어떤 애플리케이션에 데이터를 전달할지 판단한다.
  • TCP의 3 way handshake 원리는 네트워크 챕터에 따로 정리한다.

6.7 [레이어 3] 네트워크 계층의 프로토콜 IP

  • TCP 세그먼트가 만들어지면 다음은 IP 처리가 진행된다.
    • IP는 Internet Protocol를 의미한다.
    • 현재 IPv4 버전을 많이 사용하지만 최근엔 새로운 버전인 IPv6도 사용되고 있다.
  • IP의 역할
    • IP 주소를 이용해서 최종 목적지에 데이터 전송
    • 라우팅
  • IP 계층에서는 세그먼트를 받아 IP 헤더를 붙이고 IP 패킷을 생성한다.
    • 헤더에는 목적지 IP 주소 외에 저장하고 있는 데이터 길이, 프로토콜 종류, 헤더 체크섬 등이 기록된다.
  • 최종 목적지 서버까지 복수의 네트워크를 경유하여 데이터가 전송되는데, 이때 이요되는 것이 대상 서버를 나타내는 IP 주소이다.
  • IP 주소는 네트워크부와 호스트부로 나뉜다.
    • 네트워크 부는 어떤 네트워크인지, 호스트부는 해당 네트워크 내에 있는 컴퓨터(소유자)를 의미한다.

라우팅

  • 최종 목적지에 도착할 때까지 목적지를 알고 있는 라우터들이 라우팅을 진행한다.
    • 길을 알려준다는 의미이다.
  • IP 패킷을 받은 라우터는 해당 IP 패킷의 헤더에서 목적지를 확인해서 어디로 보내야 할지 확인한다.
    • 이 때 라우팅 테이블을 사용한다.

6.8 [레이어 2] 데이터 링크 계층의 프로토콜 이더넷

  • IP 패킷 생성 후 링크 계층의 처리가 진행된다.
    • 대표적인 프로토콜이 이더넷이다.
  • 이더넷을 포함한 링크 계층 프로토콜의 역할은 '동일 네트워크 내의 네트워크 장비까지 전달받은 데이터를 운반한다.'이다.
  • 이더넷 프레임은 전기 신호로 전송된다.
    • 때문에 이더넷 프로토콜에는 전기 신호의 특성과 관련된 제어 기능 등 다양한 기능이 포함돼 있다.
  • 이더넷 헤더에 MAC 주소를 목적지로 기입한다.
    • 통신용 하드웨어의 물리적 주소를 의미한다.
  • MAC 주소와 IP 주소의 차이
    • MAC 주소는 네트워크 통신을 하는 하드웨어에 할당된 주소 (물리 주소)
    • IPv4 주소는 32비트지만 MAC 주소는 48비트 표기

+ Recent posts