6장 시스템을 연결하는 네트워크 구조
2023. 3. 15. 19:04
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비트 표기
'책 > 그림으로 공부하는 IT 인프라 구조' 카테고리의 다른 글
8장 성능 향상을 위한 인프라 구조 (0) | 2023.03.17 |
---|---|
7장 무정지를 위한 인프라 구조 (0) | 2023.03.16 |
5장 인프라를 지탱하는 응용 이론 (0) | 2023.03.14 |
4장 인프라를 지탱하는 기본 이론 (0) | 2023.03.13 |
3장 3계층형 시스템을 살펴보자 (0) | 2023.03.13 |