본문 바로가기

Developer/Network

Network - 프로토콜, OSI 7계층 TCP/IP, 캡슐화

<네트워크 구성도>

(1) 홈 네트워크

인터넷 <-> 모뎀 <-> 공유기 사이에는 랜 카드, 랜 케이블(랜선)이 필요.

공유기 <-> 노트북, 컴퓨터 사이에는 무선 신호를 보낼 수 있는 매체(공기) 가 필요.

 

(2) 데이터 센터 네트워크

데이터 센터 네트워크는 안정적이고 빠른 대용량 서비스 제공이 목표 -> 이중화 기술이 필요 및 높은 통신량 수용 -> 고속 이더넷

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

  • 스파인-리프?
    • 서버 간 톹신이 늘어나는 트래픽 경향 지원
    • 일반 서버에 10G Base-T 이더넷 포트가 기본 제공되어 TOR(Top of Rack) 스위치와 연결되고
    • 리프 스위치는 TOR스위치는 스파인(Spine) 스위치와 40G, 100G로 연결되는 추세
    • 요즘은 400G 네트워크도 표준화되어 더 높은 데역폭을 사용하는 데이터센터에 사용되고 있다.

 

<프로토콜>

네트워크 통신 규약

어떤 표준 협회나 워킹 그룹이 만들었는지, 어떤 회사에서 사용하는지에 따라 특징이 달라지고, 다양한 프로토콜이 존재

최근에는 여러 프로토콜 기술이 이더넷-TCP/IP 기반 프로토콜로 변경

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

비트 기반 프로토콜?

  • 기존에는 비트 기반으로 프로토콜이 만들어져있었기 때문에 매우 치밀하게 서로간의 약속을 정의했다.
  • 몇 번째 전기 신호는 보내는 사람 주소, 몇 번째 전기 신호는 받는 사람 주소 등등..

문자 기반 프로토콜?

  • 애플리케이션 레벨의 프로토콜은 문자 기반 프로토콜들이 많이 사용되고 있고,
  • HTTP, SMTP가 대표 프로토콜
  • 문자 자체를 이용해 헤더와 헤더 값, 데이터를 표현하고 전송한다.
  • 효율성은 비트 기반 프로토콜보다 떨어지지만 다양한 확장 가능

 

<OSI 7계층>

(1) OSI 7계층

  • 1~4 계층 : 데이터 플로 계층 (Data Flow Layer) / 하위 계층 (Lower Layer)
  • 5~7 계층 : 애플리케이션 계층 (Application Layer) / 상위 계층 (Upper Layer)

애플리케이션 개발자는 하향식 (Top-Down), 네트워크 엔지니어는 상향식 (Bottom-Up) 형식으로 네트워크 인식

 

(2) TCP/IP 프로토콜 스택

 

<OSI 7계층별 이해하기>

(1) 1계층 (L1, Physical)

전기 신호 전달에 초점이 맞추어져 있다.

1계층에서는 들어온 전기 신호를 그대로 잘 전달하는 것이 목적이므로 전기 신호가 1계층 장비에 들어오면, 이 전기 신호를 재생성 해서 내보냄

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

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

(2) 2계층 (L2, Data Link)

전기 신호를 모아 우리가 알아볼 수 있는 데이터 형태로 처리.

정확한 주소로 통신이 되도록 하는 데 초점이 맞추어져 있다. -> 출발지와 도착지 주소 확인 후 데이터 처리

전기 신호를 모아 데이터 형태로 처리하므로 데이터에 대한 에러 탐지 가능.

플로 컨트롤(Flow Control) 가능 : 주소 체계가 생긴다는 의미는 한 명과 통신하는 것이 아니라 동시에 여러 명과 통신할 수 있다는 것이므로 무작정 데이터를 던지는 것이 아니라 받는 사람이 현재 데이터를 받을 수 있는지 확인하는 작업부터 해야한다.

 

2계층에서 동작하는 네트워크 구성 요소 : 네트워크 인터페이스 카드, 스위치

2계층에는 MAC 주소 체계가 있다. (네트워크 인터페이스 카드, 스위치 등)

NIC와 스위치 모두 MAC 주소를 이해할 수 있고 스위치는 MAC 주소를 보고 통신해야 할 포트를 지정해 내보내는 능력이 있다.

 

네트워크 인터페이스 카드 동작 방식

  1. 전기 신호를 데이터 형태로 만든다.
  2. 목적지 MAC 주소와 출발지 MAC 주소를 확인한다.
  3. 네트워크 인터페이스 카드의 MAC 주소를 확인한다.
  4. 목적지 MAC 주소와 네트워크 인터페이스 카드가 갖고 있는 MAC 주소가 맞으면 데이터를 처리하고 다르면 데이터를 폐기한다.

입력되는 전기 신호를 데이터 형태로 만들고 데이터에서 도착지 MAC 주소를 확인한 후 자신에게 들어오는 전기 신호가 맞는지 확인한다.

자신에게 들어오는 전기 신호가 아니면 버리고, 자신에게 들어오는 전기 신호가 맞으면 이 데이터를 상위 계층에서 처리할 수 있도록 메모리에 적재한다.

 

스위치 동작 방식

스위치 MAC 주소 테이블에 MAC A의 주소는 포트1, B의 주소는 포트 2일 때의 동작 방식이다.

단말(Terminal)이 어떤 MAC 주소인지, 연결된 포트는 어떤 것인지 주소 습득(Address Learning) 과정에서 알 수 있다.

주소 습득 데이터를 기반으로 단말이 통신할 때 포트를 필터링하고, 정확한 포트로 포워딩 한다.

스위치의 적절한 필터링과 포워딩 기능으로 통신이 필요한 포트만 사용하고 네트워크 전체에 불필요한 처리가 감소하면서 이더넷 네트워크 효율성이 크게 향상되었고 이더넷 기반 네트워크가 급증하는 계기가 되었다.

 

 

(3) 3계층 (L3, Network)

IP주소와 같은 논리 주소 정의됨.

3계층을 이해할 수 잇는 장비나 단말(ex. 라우터 : IP주소 체계를 이해하고 최적의 경로를 찾아 패킷을 포워딩한다.)은 네트워크 주소 정보를 이용해 자신이 속한 네트워크와 원격지 네트워크를 구분할 수 있고, 원격지 네트워크를 가려면 어디로 가야 하는지 경로를 지정하는 능력이 있음.

  • IP주소 : 172.31.0.1172.31 : 네트워크 주소 부분0.1 : 호스트 주소 부분

(4) 4계층(L4, Transport)

데이터를 잘 쪼개 보내고 받는 역할을 중점적으로 고려함.

실제 데이터들이 정상적으로 잘 보내지도록 확인하는 역할
패킷 네트워크에서 패킷이 유실되거나 순서가 바뀌었을 때 바로잡아주는 역할 (패킷을 분할할 때, 패킷 헤더에 보내는 순서와 받는 순서를 적어 통신)

  • 시퀀스 번호 : 패킷에 보내는 순서
  • ACK 번호 : 받는 순서
  • 포트 번호

4계층에서 동작하는 장비

  • 로드 밸런서 
  • 방화벽

(5) 5계층(L5, Session)

양 끝단의 응용 프로세스가 연결을 성립하도록 도와주고 연결이 안정적으로 유지되도록 관리하고 작업 완료 후 연결 끊는 역할

세션 관리 -> TCP/IP 세션을 만들고 없애는 책임

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

 

(6) 6계층(L6, Presentation)

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

  • MIME 인코딩
  • 안호화
  • 압축
  • 코드 변환

 

(7) 7계층 (L7, Application)

애플리케이션 프로세스 정의 및 서비스 수행

소프트웨어의 UI 부분이나 사용자 입.출력 부분 정의

대표적인 프로토콜로는 FTP, SMTP, HTTP, TELNET 이 있다.

 

 

 

계층별 주요 프로토콜 및 장비

계층 주요 프로토콜 장비
애플리케이션 계층 HTTP, SMP, SMTP, STUN,TFTP, TELNET ADC, NGFW, WAF
프레젠테이션 계층 TLS, AFP, SSH  
세션 계층 L2TP, PPTP, NFS, RPC, RTCP, SIP, SSH  
트랜스포트 계층 TCP, UTP, SCTP, DCCP, AH, AEP 로드 밸런서, 방화벽
네트워크 계층 APP, IPv4, IPv6, NAT, IPSec, VRRP, 라우팅 프로토콜 라우터, L3 스위치
데이터링크 계층 IEEE 802.2, FDDI 스위치, 브릿지, 네트워크 카드
피지컬 계층 RS-232, RS-449, V.35, S 등의 케이블 케이블, 허브, 탭(TAP)

 

 

<인캡슐레이션과 디캡슐레이션>

인캡슐레이션 : 애플리케이션에서 데이터를 데이터 플로 계층(1~4계층)으로 내보내려면 패킷에 데이터를 넣을 수 있도록 분할

  • 네트워크 상황을 고려해 적절한 크기로 데이터를 쪼개고, 4계층부터 네트워크 전송을 위한 정보를 헤더에 붙여넣는다.
  • 헤더 정보는 4계층, 3계층, 2계층에서 각자 자신이 필요한 정보를 비트 단위로 씀

디캡슐레이션 : 데이터를 받는 과정

  • 받은 전기 신호를 데이터 형태로 만들어 2계층으로 올려보낸 후, 2계층 헤더 정보 중 목적지가 자신이 아니면 패킷을 버림 -> 랜카드가 이 역할을 수행
  • 위의 계층으로 올려보낼 때는 헤어 정보는 벗겨내고 올려보냄

 

인캡슐레이션에는 1. 현재 계층에서 정의하는 정보, 2. 상위 프로토콜 지시자 정보가 반드시 포함 되어야함

  1. 현재 계층에서 정의하는 정보
    1. 4계층 : 큰 데이터를 잘 분할하고 받는 쪽에서 잘 조립하는 것.
      • 패킷의 순서를 정하고 패킷의 순서가 맞는지, 빠진 패킷은 없는지 점검
      • TCP에서는 시퀀스(Sequence), 애크(ACKnowledgement) 번호 필드로 데이터 표현
    2. 3계층 : 논리적인 주소인 출발지, 도착지 IP주소를 헤더에 적음
    3. 2계층 : MAC 주소 정의 및 출발지, 도착지 MAC 주소 정보 적음
  2. 상위 프로토콜 지시자 정보
    1. 프로토콜 스택은 상위 계층으로 올라갈수록 종류가 많아짐
      • 3계층 프로토콜인 IP는 4계층에서는 TCP/UDP로 나뉘고, 그 상위계층에서는 FTP, HTTP, SMTP, POP3 등으로 나뉨
    2. 인캡슐레이션 과정에서는 상위 프로토콜이 많아도 문제가 없지만, 티캡슐레이션하는 목적지 쪽에서는 헤더에 아무런 정보가 없으면, 어떤 상위 프로토콜로 올려보내 주어야할지 결정할 수 있다.

<Well Known Port>

포트번호 서비스
TCP 20,21 FTP(File Transfer Protocol)
TCP 22 SSH(Secure Shell)
TCP 23 TELNET(Telnet Terminal)
TCP 25 SMTP(Simple Mail Transport Protocol)
TCP 49 TACACS
TCP 53/ UDP 53 DNS(Domain Name Service)
UDP 67,68 BOOTP(Bootstrap Protocol)
TCP 80/ UDP 80 HTTP(Hyper Text Transfer Protocol)
UDP 123 NTP(Network Time Protocol)
UDP 161, 162 SNMP(Simple Network Management Protocol
TCP 443 HTTPS
TCP 445/ UDP 445 Microsoft-DS

 

 

참조 : IT 엔지니어를 위한 네트워크 입문 - 고재성, 이상훈

www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9791165213183&orderClick=JAj

 

IT 엔지니어를 위한 네트워크 입문 - 교보문고

클라우드/데브옵스 시대에 알아야 할 인프라 지식 서버실이 있고, 서버 관리자가 따로 있었던 시대를 지나 클라우드 서비스가 보편화되었다. 클라우드 서비스로 넘어오면서 개발자가 직접 서버

www.kyobobook.co.kr