[네트워크]Protocol

이권민·2025년 12월 28일

목차

  1. 네트워크 구성도
  2. Protocol
  3. OSI 7계층
  4. TCP/IP
  5. Encapsulation

네트워크 구성도

네트워크는 크게 받는 쪽(클라이언트) 과 주는 쪽(서버/데이터센터) 으로 구분

홈 네트워크(클라이언트)

  • 인터넷 -케이블-> 네트워크 장비(모뎀) -케이블-> 공유기(Router) -케이블/매체-> 단말(노트북 등)

모뎀: ISP(통신사) 신호를 디지털 신호로 변환(변조, 복조. 주로 1계층.)

  • ONT(Optical Network Terminal): 광신호를 디지털 신호로 변환

공유기(Router)

  • 라우팅(내부망 <-> 외부망. IP주소 기반.3계층)
  • NAT: 사설IP(단말) <-> 공인IP(공유기) 변환. 3~4계층.
  • DHCP(IP주소,게이트웨이,DNS등 자동으로 임대. 7계층) 수행.
  • 방화벽 기능(3,4,7계층)

단말: 실제 애플리케이션 실행 주체

데이터 센터 네트워크(서버)

데이터 센터는 대량 트래픽 + 고가용성(서비스 중단없이) + 서버 간 통신(MSA, 분산시스템 등)이 핵심

  • 높은 통신량 수용(초고속 네트워크. 10G ~ 400G), 장애를 대비한 이중화(Redundancy) 필요

3계층 구조(코어-분배-액세스)

  • Access: 서버, PC가 직접 연결. 말단

  • Distribution: Access를 묶음, 정책, VLAN, 라우팅 일부 처리

  • Core: 네트워크의 중심, 모든 트래픽이 여기로 모임 (백본)

  • North-South 트래픽: 외부 인터넷과 서버 간의 통신 (전통적인 트래픽)

서버 간 통신인데도 항상 Core까지 올라갔다가 내려와야 함, 서버 수 ↑ → Core 트래픽 폭증. 병목/복잡성이 증가.
-> 수직적 구조보다 수평적으로 서버끼리 빠르게, 균등하게 연결되는 구조 필요

Scale-out: 서버를 더 강하게(Scale-up) 만드는 게 아니라, 서버 대수를 늘려 처리량을 올리는 방식

  • 가상화/컨테이너/클라우드에 특화.

  • 네트워크는 이런 확장을 감당해야 하므로 높은 대역폭 + 단순한 확장 구조가 중요

  • East-West 트래픽: 서버와 서버, 서비스와 서비스 간의 통신

Spine–Leaf 구조

모든 Leaf는 모든 Spine에 연결된다. Leaf끼리는 직접 연결하지 않는다

  • Leaf (ToR, Top of Rack) 스위치

    • 서버 랙(Rack) 단위로 붙는 스위치. 해당 랙의 서버통신 담당.

    • 서버 랙(Rack): 서버를 수직으로 장착하는 표준화된 프레임. 보통 전원, 냉각, 네트워크를 랙 단위로 관리. 물리적.

    • 보통 10G Base-T(구리선,랜선으로 10Gbps까지 지원하는 이더넷), 10GBASE-SR/LR(광 케이블 기반), Ethernet 포트_이더넷 프레임 송수신용 인터페이스 사용

  • Spine 스위치

    • Leaf 스위치들을 서로 연결하는 백본(네트워크의 중심이 되는 고속 통신 경로). 중계 담당.

    • 40G / 100G / 400G등 고대역폭

  • 어떤 서버든 “Leaf → Spine → Leaf”로 일정한 홉 수로 도달

  • Leaf만 추가해도 서버를 늘릴 수 있어 Scale-out(수평 확장, 가상화, 높은 대역폭) 에 최적화된 구조

  • leaf 스위치는 2~3계층, Spine 스위치는 데이터 설계에 따라 2~3계층.

  • 로드밸런서: 해당 구조내에서 서비스 트래픽(클라이언트 <-> 서버) 분산

    • 4계층: IP, PORT, TCP/UDP 헤더 단위 분산, 빠름, 데이터 미확인 ex) NLB(Network Load Balancer)

    • 7계층: HTTP Header, Cookie, URL, Payload 기반 라우팅, 정교한 라우팅 가능, 콘텐츠 기반 분산 ex) ALB(Application Load Balancer)

3계층 구조에서 서버 A → B

A → Access → Distribution → Core → Distribution → Access → B
(홉 수 많음, 경로 길어짐)


Spine–Leaf에서 서버 A → B
A → Leaf → Spine → Leaf → B
(항상 동일한 홉 수)

Protocol

Protocol = 네트워크 통신 규약

  • 서로 다른 장비와 시스템이 통신하려면 약속된 규칙이 필요

물리적 프로토콜: 비트를 어떤 신호로, 어떤 규칙으로 구성할 지 ex) Ethernet

논리적 프로토콜: 어디로 보낼지(IP), 어떻게 신뢰성 있게 보낼지(TCP) ex) TCP/IP

애플리케이션 프로토콜: HTTP, FTP, SMTP 등

프로토콜이 필요한 이유

  • 과거: 자원이 한정 → 이진수 기반 통신. 서로 다른 네트워크간 통신을 위해 규악 필요.

  • 현재: 애플리케이션 레벨 → 문자열, 구조화된 데이터(JSON 등)

프로토콜 스택: 이 복잡성을 관리하기 위해 계층별 역할 분담이 필요. 계층별로 역할을 나눠 협업.

ex) TCP/IP

  • HTTP: 요청/응답의 형식

  • TCP: 유실 없게, 순서 보장

  • IP: 목적지까지 라우팅

  • Ethernet: 같은 네트워크에서 프레임 전달

OSI 7계층

설계/학습을 위한 이론적 참조 모델(Reference Model), 실제 구현은 대부분 TCP/IP 기반

  • 1~4 데이터플로(하위)계층, 네트워크 엔지니어, 5~7 어플리케이션(상위)계층, 애플리케이션 개발자

  • 각 계층마다 PDU(Protocol Data Unit) 존재

1계층_물리 계층 (Physical). PDU=Bits

  • 물리적 연결, 전기신호 들어오면 깔끔하게 재생성(리피터)해 내보냄.

  • 주소개념x, 모든 포트에 같은 전기신호 전송(허브)

  • 허브, 리피터, 케이블, 커넥터, 트랜시버, 탭

2계층_데이터 링크 계층 (Data Link). PDU=Frames

  • 전기신호 -> 식별가능한 데이터 형태(프레임). 주소정보 정의(MAC주소)

  • MAC 주소(NIC에 부여된 고유 식별자, 같은 네트워크에서만 의미있음) 기반 통신.

  • 네트워크 인터페이스 카드(NIC): 각 단말, 서버에 붙어있는 네트워크 장치. 프레임 생성 or 전기신호 프레임으로 변환하고 해석. 고유 MAC주소 가짐

    • 네트워크 카드, 랜카드, PNI(물리 네트워크 인터페이스), 이더넷 카드, 네트워크 어뎁터 등 으로도 부름

    • 오류 탐지(CRC): 데이터의 무결성 검사, 검증값(FCS) 계산. (오류 탐지만ㅋ)

  • 스위치: MAC 주소를 학습해서 필요한 포트로만 전달. MAC Address Table 유지. 트래픽 효율 업.(공유기에 포함) <-> 허브

  • 흐름 제어(Flow Control): 로컬수준에서 수신 처리 속도, 송신 속도로 인한 프레임 유실 방지.

    • ex) 802.3x PAUSE Frame <-> 4계층 TCP의 혼잡제어

같은 네트워크 사이에서의 통신

송신
1. 상위 계층(IP)에서 데이터 내려옴
2. NIC가 Ethernet 프레임 생성
3. 목적지 MAC 설정
4. FCS(CRC) 계산
5. 1계층 신호로 변환하여 전송

스위치
1. 스위치 포트에서 신호 수신
2. 프레임 해석 (L2)
3. 목적지 MAC 확인
4. MAC Address Table 조회
5. 해당 포트로 프레임 전달

수신
1계층 신호로 변환하여 전송
1. 케이블에서 전기신호 수신 (1계층)
2. NIC가 비트를 프레임으로 변환 (2계층)
3. NIC가 목적지 MAC 확인
4. CRC로 오류 탐지
5. 맞으면 → 상위 계층(IP)으로 전달

3계층_네트워크 계층 (Network). PDU=Packets

  • IP 주소 사용 (논리적 주소, 변경 가능), 다른 네트워크까지 전달.

  • 네트워크 주소(172.30) + 호스트 주소(0.1) 구조

    • 172.31.0.1
  • 라우터: 서로 다른 네트워크 간 최적 경로로 패킷 전달. 라우터 -> 라우팅 테이블 -> 다음 홉 선택 ...
    <-> 스위치: 같은 네트워크

  • ARP: IP 주소를 알고 있을 때 물리적인 MAC 주소를 알아내기 위해 사용

다른 네트워크 사이에서의 통신

송신
1. 상위 계층(IP)에서 데이터 내려옴
   목적지 IP = 다른 네트워크의 IP
2. 네트워크 계층에서 판단
   - 이 IP는 내 네트워크가 아님 → 게이트웨이(라우터)로 보내야 함
3. ARP를 통해 게이트웨이의 MAC 주소 확인
   - 목적지 MAC = 라우터 MAC
4. NIC가 Ethernet 프레임 생성
   - 출발지 MAC = 내 NIC MAC
   - 목적지 MAC = 라우터 MAC
5. FCS(CRC) 계산
6. 1계층 신호로 변환하여 전송

스위치 (출발지 쪽 LAN)
1. 스위치 포트에서 신호 수신
2. 프레임 해석 (L2)
3. 목적지 MAC 확인 (라우터 MAC)
4. MAC Address Table 조회
5. 라우터가 연결된 포트로 프레임 전달

라우터 (네트워크 경계, L3)
1. 라우터 포트에서 신호 수신
2. 프레임 해석 (L2)
3. 목적지 MAC == 라우터 MAC → 수신 OK
4. Ethernet 헤더 제거
   - (기존 MAC 정보는 여기서 폐기)
5. IP 헤더 확인 (L3)
   - 목적지 IP 기준으로 라우팅 테이블 조회
   - 다음 홉 결정
   
라우터 → 다음 네트워크로 재전송(MAC 주소 바뀜, IP주소는 유지)
6. 다음 홉의 MAC 주소를 ARP로 확인
7. 새로운 Ethernet 프레임 생성
   - 출발지 MAC = 라우터 MAC
   - 목적지 MAC = 다음 홉(또는 최종 서버) MAC
8. FCS(CRC) 계산
9. 1계층 신호로 변환하여 전송

(중간에 스위치가 또 있다면)
스위치
1. 신호 수신
2. 프레임 해석
3. 목적지 MAC 확인
4. MAC 테이블 조회
5. 해당 포트로 전달

수신
1. 케이블에서 전기신호 수신 (1계층)
2. NIC가 비트를 프레임으로 변환 (2계층)
3. NIC가 목적지 MAC 확인
4. CRC로 오류 탐지
5. 맞으면 → 상위 계층(IP)으로 전달

4계층_전송 계층 (Transport). PDU=Segments

  • (TCP 기준) 데이터 송,수신 신뢰성: 유실 방지, 순서 보장

  • 프로세스 <-> 프로세스 단위 통신

  • 포트 번호로 프로세스 식별 (ex. 80, 443, 3306. 집 안의 방 번호) <-> MAC주소(NIC. 집주소)

  • 시퀀스 번호(Sequence Number): TCP는 데이터를 조각내서 보내며, 각 조각에 보내는 순서_번호를 붙임. 송신측

  • ACK 번호(Acknowledgement Number): 다음에 받고싶은 시퀀스 번호. 수신측 상태보고. HTTP 요청 단위가 아니라 TCP 세그먼트 단위로 교환

  • L4 로드밸런서: IP/Port 기반으로 트래픽 분산, 서버 선택. 보안정책 수립. 패킷 통과 or 차단 (TCP/UDP 레벨)

  • 방화벽: 포트 기반 접근 제어를 많이 수행 ex) 22번(SSH)은 특정 IP만 허용

    • L7 로드밸런서/방화벽도 존재

5계층_세션 계층 (Session). PDU=Data

  • 응용 프로세스 간 연결 생성 / 종료/ 복구

  • 누가 로그인 상태인지, 연결이 살아있는지 같은 상태를 관리하거나, 일정 시간 응답 없으면 끊고 다시 맺는 정책 사용

  • 재전송은 TCP가 많이 담당하지만, 애플리케이션 레벨에서도 재시도(리트라이)를 구현

6계층_표현 계층 (Presentation). PDU=Data

  • 데이터 형식 통일

  • 인코딩 / 디코딩

  • 암호화, 압축

  • MIME: Content-Type

  • TLS 암호화: 전송 중 데이터가 도청/변조되지 않게 보호, 대칭키를 안전하게 합의하기 위해 핸드셰이크 수행 ex)HTTPS의 S

    • TLS는 TCP 위에서 동작. OSI 관점에서는 6계층으로 설명

7계층_응용 계층 (Application). PDU=Data

  • 사용자가 직접 사용하는 프로토콜

    • HTTP: 웹 요청/응답

    • FTP: 파일 전송

    • SMTP: 이메일 전송

    • TELNET: 원격 터미널암호화X, 데이터 평문(요즘은 보안상 SSH 사용이 일반적암호화)

TCP/IP

OSI 7계층을 실제 구현 관점에서 단순화한 모델. 실용성에 중점, 4계층으로 구분

TCP/IP 계층OSI 계층
Application5~7
Transport4
Internet3
Network Access1~2

Encapsulation

데이터를 전송할 때, 각 계층(2~4계층)의 Header를 붙여서 하위 계층으로 전달해주는 것

Encapsulation: 7계층 -> 1계층. 보낼 때

Decapsulation: 1계층 -> 7계층. 받을 때

  • 패킷 기반 네트워크: 데이터를 패킷 단위로 쪼개서 보냄, 받아서 결합.

  • 2~4계층에서 헤더를 하나씩 추가(비트 단위). 해당 계층 정보 + 상위 프로토콜 지시자 작성.

계층 별 캡슐화 구조

  • OSI 7계층
    • transport layer: 세그먼트, 4계층 헤더 + 상위 데이터
      • TCP 헤더: 포트, 시퀀스/ACK
    • Network layer: 패킷, 3계층 헤더 + 상위데이터
      • IP 헤더: 출발지/목적지 IP
    • Data Link Layer: 프레임, 2계층 헤더 + 상위데이터 + FCS(오류검출용, FrameTrailer 영역)
      • Ethernet 헤더: 출발지/목적지 MAC, EtherType

상위 프로토콜 지시자: 동작하는 계층보다 한 계층 위의 정보

  • Port Number: 어떤 프로세스로 보낼지 (4계층)

    • TCP 20,21 : FTP
    • TCP 22 : SSH
    • TCP 80 : HTTP
    • TCP 443 : HTTPS
  • 프로토콜 번호 (3계층)

    • 1 : ICMP
    • 2 : IGMP
    • 6 : TCP
    • 17 : UDP
  • EtherType: 상위 프로토콜 종류(2계층) ex) IPv4인지, IPv6인지

    • 0x0800 : IPv4
    • 0x86DD : IPv6
    • 0x0806 : ARP
1. (7계층) HTTP 요청 생성
2. (6계층) TLS 암호화, 데이터 인코딩
3. (5계층) TLS 세션 유지, Keep-Alive
4. (4계층) TCP 세그먼트 생성  
   - 출발지 포트: 임시 포트  
   - 목적지 포트: 443  
   - 시퀀스 번호, ACK 번호
5. (3계층) IP 헤더 추가, 라우팅, NAT
6. (2계층) MAC 주소 기반 프레임 생성 (목적지: 공유기 MAC)
7. (1계층) 전기/무선 신호로 전송

각각 독립적인 네트워크 통신이며, 각 통신마다 OSI 7계층 캡슐화 과정이 반복
1. DNS 조회 - 도메인(example.com)을 IP 주소로 변환

(7) DNS 요청 메시지 생성
(6) (필요 시) 인코딩
(5) 세션
(4) UDP 또는 TCP 세그먼트 생성 (보통 UDP 53)
(3) IP 헤더 추가
(2) MAC 프레임 생성
(1) 전기/무선 신호 전송

2. TCP 3-way handshake - SYN → SYN-ACK → ACK - 서버와 신뢰성 있는 연결 수립 

(4) TCP 세그먼트 (SYN, 시퀀스 번호)
(3) IP
(2) MAC
(1) 신호

3. TLS handshake (HTTPS) - 인증서 검증 - 대칭키 합의 - 이후 통신 암호화 

(7) TLS 메시지
(6) 암호화/표현
(5) 세션
(4) TCP
(3) IP
(2) MAC
(1) 신호
TCP 연결 위에서 TLS가 시작
여러번 왕복

4. HTTP 요청/응답 - GET / POST 요청 전송 - 서버 응답 수신

(7) HTTP 요청 (GET /)
(6) TLS로 암호화
(5) 세션 유지
(4) TCP 세그먼트 (시퀀스/ACK)
(3) IP
(2) MAC
(1) 신호

MTU: 네트워크가 허용하는 최대 패킷 크기 ex) 이더넷 MTU 1500 bytes

MSS: TCP 레벨에서 허용하는 한번에 보낼 수 있는 데이터 크기

  • 보통 MSS = MTU - (IP 헤더 + TCP 헤더)

데이터가 MTU보다 크면 한 번에 전송할 수 없기 때문에 조각 (Fragmentation) 되어 전달

  • 성능 저하를 막기 위해 실무에서는 MTU/MSS 값을 조정해 Fragmentation을 최소화

    • IPv4에서는 MTU를 초과한 패킷이 중간 라우터에서 Fragmentation될 수 있지만, 현대 네트워크에서는 Fragmentation을 피하는 설계를 선호

    • IPv6에서는 중간 라우터 Fragmentation이 허용되지 않으며(성능 저하와 오류 가능성 문제), 경로 상에서 허용되는 최대 MTU를 탐색하고(PMTUD), 송신 측에서 크기를 조절

profile
이것저것이것 개발자

0개의 댓글