콰이엇의 개발기록

1. 네트워크 시작하기

by 콰이엇
고재성, 이상훈 저자님의 “IT 엔지니어를 위한 네트워크 입문” 책을 학습하고 정리한 글입니다.

 

 1. 네트워크 구성도

1-1. 홈 네트워크

✍🏻 홈 네트워크 구성 요소 : 단말, 네트워크 장비, 케이블

  • 무선 연결 : 무선 랜 카드, 무선 신호 전송 매체(공기)
  • 유선 연결 : 유선 랜 카드, 랜 케이블(랜선)

 

1-2. 데이터 센터 네트워크

✍🏻 안정적이고 빠른 대용량 서비스 제공을 목표로 구성

  • 안정적인 서비스 제공을 위한 다양한 이중화 기술
  • 많은 서버와 서비스가 한 네트워크에 연결되어 있어 높은 통신량을 수용
    (10G ~ 400G 고속 이더넷 기술)

✍🏻 데이터 센터 구성

과거 데이터 센터 네트워크 구성과 현재 데이터 센터 네트워크 구성의 변화

가상화 기술과 높은 대역폭을 요구하는 스케일 아웃(Scale-Out) 기반의 애플리케이션과 서비스 등장으로 2계층 구성인 스파인-리프(Spine-Leaf) 구조로 데이터 센터 네트워크가 변화

서버 간 통신이 늘어나는 최근 트래픽 경향을 지원하기 위해 제안됨

 

2. 프로토콜

📌 통신 프로토콜

컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계 (위키)

  • 물리적 측면 : 데이터 전송 매체, 신호 규약, 회선 규격 등. 이더넷이 널리 쓰임
  • 논리적 측면 : 장치들끼리 통신하기 위한 프로토콜 규격. TCP/IP가 널리 쓰임

 

✍🏻 한정된 자원으로 통신하기 위해 최대한 적은 데이터를 이용한 효율적인 프로토콜을 정의하고 사용

네트워크 서비스 초기, 적은 컴퓨팅 자원매우 느린 네트워크 속도를 이용해 최대한 효율적으로 통신하기 위해 대부분 프로토콜이 문자 기반이 아닌 2진수 비트(bit) 기반

 

애플리케이션 프로토콜은 비트 기반이 아닌 문자 기반 프로토콜을 많이 사용 (HTTP, SMTP 등)

  • HTTP 프로토콜 헤더 : 문자로 정의되어 있어 헤더 정의가 자유롭고 확장이 가능하다
  • TCP/IP 프로토콜 스택 : TCP와 IP는 별도 계층에서 동작하는 프로토콜이지만 함께 사용하는 프로토콜 묶음

 

3. OSI 7계층과 TCP/IP

3-1. OSI 7계층

네트워크 동작을 나누어 이해하고 개발하기 위한 주요 레퍼런스 모델

  • 1~4계층 : 데이터 플로 계층 (Data Flow Layer) / 하위 계층 (Lower Layer)
    데이터를 상대방에게 잘 전달하는 역할
    네트워크 개발자 관점으로 데이터를 잘 올려 보내는 데 집중
  • 5~7계층 : 애플리케이션 계층 (Application Layer) / 상위 계층 (Upper Layer)
    애플리케이션 개발자들이 고려해야 할 영역
    애플리케이션 개발자 관점으로 데이터를 내려 보내는 데 집중

 

3-2. TCP/IP 프로토콜 스택

✍🏻 TCP/IP 프로토콜은 이론보다 실용성에 중점을 둔 프로토콜

개발된 것은 오래전이지만, 기술 발전을 거쳐 값싸고 성능이 우수한 TCP/IP와 이더넷이 되었음

 

4. OSI 7계층별 이해하기

4-1. 1계층 (피지컬 계층)

📌 물리 계층, 물리적 연결과 관련된 정보를 정의

전기 신호를 그대로 잘 전달하는 것이 목적

전기신호가 1계층 장비에 들어오면 이 전기 신호를 재생성하여 내보냄

주소의 개념이 없으므로 전기 신호가 들어온 포트를 제외하고 모든 포트에 같은 전기 신호를 전송

  • 허브(Hub), 리피터(Repeater) : 네트워크 통신을 중재하는 네트워크 장비
  • 케이블(Cable), 커넥터(Connector) : 케이블 본체를 구성하는 요소
  • 트랜시버(Tranceiver) : 컴퓨터의 랜카드와 케이블을 연결하는 장비
  • 탭(TAP) : 네트워크 모니터링과 패킷 분석을 위해 전기 신호를 다른 장비로 복제

 

4-2. 2계층 (데이터링크 계층)

📌 데이터 링크 계층, 전기 신호를 모아 우리가 알아볼 수 있는 데이터 형태로 처리

주소 정보를 정의하고 정확한 주소로 통신이 되도록 하는 목적

출발지와 도착지 주소를 확인하고 내게 보낸 것이 맞는지,

또는 내가 처리해야 하는지에 대해 검사 후 데이터 처리 수행

주소 체계가 생기면서 여러 통신이 한꺼번에 이루어지는 것을 구분하기 위한 기능이 주로 정의

  • 한 명과 통신하는 것이 아니라 동시에 여러 명과 통신할 수 있다는 것
  • 플로 컨트롤 (Flow Control) : 무작정 데이터를 던지지 않고 받는 사람이 현재 데이터를 받을 수 있는지 확인 작업을 거침
  • NIC (Network Interface Card) : 고유의 MAC 주소를 가지는 네트워크 연결을 위한 카드
  • 스위치 (Switch) : 단말이 어떤 MAC 주소인지, 연결된 포트는 어느 것인지 주소 습득(Address Learning) 과정을 통해 단말들이 통신할 때 포트를 적절히 필터링하고 정확한 포트로 포워딩
    적절한 필터링과 포워딩 기능으로 통신이 필요한 포트만 사용하고 네트워크 전체에 불필요한 처리가 감소되어 효율성 향상
    이더넷 기반 네트워크가 급증하는 계기

 

4-3. 3계층 (네트워크 계층)

📌 네트워크 계층, IP 주소와 같은 논리적인 주소가 정의

데이터 통신을 위한 두 가지 주소 : 2계층의 물리적인 MAC 주소, 3계층의 논리적인 IP 주소

  • IP 주소는 사용자가 환경에 맞게 변경해 사용할 수 있고, 네트워크 주소 부분과 호스트 주소 부분으로 나뉨
  • 3계층을 이해할 수 있는 장비나 단말은 네트워크 주소 정보를 이용해 자신이 속한 네트워크와 원격지 네트워크로 구분할 수 있고, 원격지 네트워크로 가려면 어디로 가야 하는지 경로를 지정하는 능력이 있음
  • 라우터 (Router) : 3계층에서 정의한 IP 주소를 이해하여 최적의 경로를 찾고 해당 경로로 패킷을 전송하는 역할

 

4-4. 4계층 (트랜스포트 계층)

📌 데이터 정상 전송 여부를 확인하는 역할

패킷 네트워크는 데이터를 분할해 패킷에 실어보내다 보니 중간에 패킷이 유실되거나 순서가 바뀌는 경우 발생

이 문제를 해결하기 위해 패킷이 유실되거나 순서가 바뀌었을 때 바로잡아 주는 역할

  • 시퀀스 번호 (Sequence Number) : 패킷의 순서를 명시한 것
  • ACK 번호 (Acknowledgement Number) : 패킷의 응답 번호를 지칭하는 것
  • 포트 번호 (Port Number) : 장치 내 많은 애플리케이션을 구분하는 것
  • 로드 밸런서, 방화벽 : 애플리케이션 구분자(포트 번호)와 시퀀스, ACK 번호를 이용해 부하를 분산하거나 보안 정책을 수립해 패킷을 통과, 차단하는 기능을 수행

 

4-5. 5계층 (세션 계층)

📌 양 끝단의 응용 프로세스가 연결, 유지, 종료를 담당하는 역할

TCP/IP 세션을 만들고 없애는 책임을 가져 세션을 관리하는 것이 주 역할

에러로 중단된 통신에 대한 에러 복구와 재전송도 수행

 

4-6. 6계층 (프레젠테이션 계층)

📌 표현 방식이 다른 애플리케이션이나 시스템 간의 통신을 돕기 위해 통일된 구문 형식으로 변환하는 역할

일종의 번역기나 변환기 역할을 수행하는 계층

사용자 시스템의 응용 계층에서 데이터의 형식상 차이를 다루는 부담을 덜어줌

MIME 인코딩, 암호화, 압축, 코드 변환 등의 동작이 일어남

 

4-7. 7계층 (애플리케이션 계층)

📌 애플리케이션 프로세스를 정의하고 애플리케이션 서비스를 수행

네트워크 소프트웨어의 UI 부분이나 사용자 입출력 부분을 정의하는 역할

  • 대표적 프로토콜 : FTP, SMTP, HTTP, TELNET 등

 

5. 인캡슐레이션과 디캡슐레이션

✍🏻 데이터는 상위 계층 → 하위 계층, 하위 계층 → 상위 계층으로 전달되고, 헤더 정보는 각 계층끼리 전달

 

5-1. 인캡슐레이션

✍🏻 애플리케이션에서 데이터를 데이터 플로 계층으로 내려보내면서 패킷을 데이터에 넣을 수 있도록 분할하는 과정

네트워크 상황에 따라 적절한 크기로 데이터를 쪼개고, 4계층부터 네트워크 전송을 위한 정보를 헤더에 붙임

데이터 플로 계층에서만 3개의 헤더 정보(4계층, 3계층, 2계층에서 각각 자신이 필요한 정보를 추가, 비트 단위)가 추가 됨

 

5-2. 디캡슐레이션

✍🏻 받은 전기 신호를 데이터 형태로 만들어 각 계층에 맞는 헤더 정보를 확인하며 상위 계층으로 전달하는 과정

각 계층의 헤더 정보를 확인해 정보의 목적지가 맞다면 상위 계층으로 전달하여 데이터를 애플리케이션으로 전달

 

5-3. 헤더의 정보

  1. 현재 계층에서 정의하는 정보
    OSI 7계층의 각 계층에서의 목적에 맞는 정보들이 포함
    - 4계층 해더 : 데이터를 잘 분할하고 잘 조립하도록 데이터 패킷 순서빠진 패킷 정보 확인
    - 3계층 헤더 : 논리적 주소인 출발지, 도착지 IP 주소 정보 확인
    - 2계층 헤더 : 물리적 주소인 출발지, 도착지 MAC 주소 정보 확인
  2. 상위 프로토콜 지시자
    프로토콜 스택은 상위 계층으로 올라갈수록 종류가 많아, 디캡슐레이션 과정에서 어떤 상위 프로토콜로 올려보내주어야 할지 결정할 수 없기 때문

✍🏻 계층별 프로토콜 지시자

  • 4계층 : 포트 번호 (Port Number)
  • 3계층 : 프로토콜 번호 (Protocol Number)
  • 2계층 : 이더 타입 (Ether Type)

⇒ 상위 프로토콜 지시자 정보를 이용해 구분하므로 동작하는 계층보다 한 계층 위의 정보를 기록하게 됨

 

📌 MSS (Maximum Segment Size)

4계층에서 가질 수 있는 최대 데이터 값 (일반적으로 추가되는 옵션 헤더 제외 1,460바이트)

📌 MTU (Maximum Transmission Unit)

2계층에서 가질 수 있는 최대 데이터 값 (일반적으로 1,500바이트)

 

참고자료

  • 책 - IT 엔지니어를 위한 네트워크 입문 (고재성/이상훈, 2020년 10월)

'컴퓨터과학 > 네트워크' 카테고리의 다른 글

2. 네트워크 연결과 구성 요소  (1) 2024.10.14

블로그의 정보

콰이엇의 개발기록

콰이엇

활동하기