알아볼 내용
- 프로토콜
- 네트워크 참조 모델
- 캡슐화와 역캡슐화
- PDU
- 트래픽과 네트워크 성능 지표
프로토콜 (Protocol): 노드 간에 정보를 올바르게 주고받기 위한 합의된 규칙이나 방법
- 프로토콜의 필요성
- 현대 인터넷은 대부분 ‘패킷 교환’ 방식
- 보내는 정보를 수신자가 이해할 수 있어야 함
- header에 있는 정보를 네트워크 장비가 이해할 수 있어야 함
- 여러 개의 네트워크 장비가 필요하면 그 장비들간의 언어도 서로 통해야 함
- 서로 다른 통신 장치들이 정보를 주고 받으려면 프로토콜이 통해야함
- 일반적으로는 그 과정 가운데 ‘여러 프로토콜’을 함께 사용
- 현대 인터넷은 대부분 ‘패킷 교환’ 방식
- 각 프로토콜에는 각각의 목적과 특징 존재
- 예시 : IP, ARP, HTTPS, HTTP, TCP, UDP
- IP : 패킷을 수신지까지 전달하기 위해 사용되는 프로토콜
- ARP : 192.168.1.1과 같은 형태의 IP 주소를 A1:B2:C3:D4:E5:F6과 같은 형태의 MAC 주소로 대응하기 위해 사용되는 프로토콜
- HTTPS : HTTP에 비해 보안상 더 안전한 프로토콜
- TCP : UDP에 비해 일반적으로 느리지만 신뢰성이 높은 프로토콜
- 프로토콜마다 패킷의 헤더 내용이 달라질 수 있음 (심지어 없을수도 있음)
- 예시 : IP, ARP, HTTPS, HTTP, TCP, UDP
네트워크 참조 모델 (Network Reference Model): 통신이 일어나는 각 과정을 계층으로 나눈 구조
- 통신 과정을 계층화할 때의 장점
- 네트워크 구성 및 설계가 용이
- 각 계층이 수행해야할 역할이 정해져있어서, 계층 목적에 맞게 프로토콜과 네트워크 장비를 구성 가능
- 물론 칼로 자르듯 명확히 구분되지 않을 수 있지만 좋은 가이드가 됨
- 네트워크 문제 진단과 해결이 용이
- 문제의 원인을 계층별로 진단하기 쉬움
- 네트워크 구성 및 설계가 용이
OSI 모델 (OSI 7계층, 이론적으로 기술한 ‘이상적 설계’)
- 물리 계층 (physical layer)
- 가장 근원적인 1과 0으로 표현되는 비트 신호 주고 받는 계층
- 데이터 링크 계층 (data link layer)
- 네트워크 내 주변 장치 간의 정보를 올바르게 주고받기 위한 계층
- 많은 LAN 기술이 녹아 있는 계층
- 물리 계층을 통해 주고받는 정보에 오류 없는지 확인
- MAC 주소라는 주소 체계를 통해 네트워크 내 송수신지 특정
- 전송 과정에서 발생하는 충돌 문제 해결
- 네트워크 계층 (network layer)
- 메시지를 (다른 네트워크에 속한) 수신지까지 전달하는 계층으로 인터넷을 가능하게 하는 계층
- IP주소라는 주소 체계를 통해 통신하고자 하는 수신지 호스트와 네트워크를 식별하고, 수신지 도달 위한 최적의 경로를 결정
- 전송 계층 (transport layer)
- 신뢰성 있고 안정성 있는 전송을 해야할 때 필요한 계층
- 패킷이 정상적으로 보내졌는대, 유실된 정보 없는지, 여러 개 패킷 간 순서 바뀐 것이 없는지 등 확인 필요
- 패킷의 흐름 제어, 전송 오류 점검 등을 통해 신뢰성 있고 안정적인 전송 유도
- ‘포트’라는 정보를 통해 실행 중인 응용 프로그램 식별
- 신뢰성 있고 안정성 있는 전송을 해야할 때 필요한 계층
- 세션 계층 (session layer)
- 통신을 주고받는 호스트의 응용 프로그램 간 연결 상태인 ‘세션’을 관리 하기 위해 존재하는 계층
- 연결 상태 생성 / 유지 / 끊는 역할 담당
- 표현 계층 (presentation layer)
- 번역기처럼 문자를 코드로 변환하거나, 압축 / 암호화 작업 이루어지는 계층
- 응용 계층 (application layer)
- 사용자가 이용할 응용 프로그램에 다양한 네트워크 서비스 제공하는 계층
- 웹 브라우저 프로그램에 웹 페이지를 제공
- 이메일 클라이언트 프로그램에 송수신된 이메일을 제공
- 다양한 서비스가 제공될 수 있기 때문에 타 계층에 비해 응용 계층에 속하는 프로토콜이 많음
- 사용자가 이용할 응용 프로그램에 다양한 네트워크 서비스 제공하는 계층
TCP/IP 모델 (TCP/IP 4계층, 인터넷 프로토콜 스위트, TCP/IP 프로토콜 스택1, 이론보단 구현 중심)
- TCP, IP는 오늘날 네트워크 구현의 핵심이 되는 프로토콜
- TCP (Transmission Control Protocol) : 전송 제어 프로토콜. 신뢰성 있고 연결 지향적인 데이터 전송을 제공하는 프로토콜
- IP (Internet Protocol) : 인터넷 프로토콜. 패킷을 수신지까지 전달하는 역할을 하는 프로토콜
- 네트워크 액세스 계층 (링크 계층, 네트워크 인터페이스 계층)
- OSI 모델의 데이터 링크 계층과 유사
- 원래는 OSI 모델의 물리 계층이 여기에는 따로 없다고 보는 견해가 있었지만, 최근에는 물리 계층을 추가해 TCP/IP 모델을 5계층으로 보는 것이 많음 (이 책도 마찬가지)
- 인터넷 계층
- OSI 모델의 네트워크 계층과 유사
- 전송 계층
- OSI 모델의 전송 계층과 유사
- 응용 계층
- OSI 모델의 세션, 표현, 응용 계층을 합친 것과 유사
단지 가이드라인일 뿐!
네트워크 참조 모델은 모든 프로토콜과 네트워크 장비가 반드시 지켜야 하는 엄격한 규칙이나 법규가 아니고 ‘가이드라인’
- 새로운 프로토콜, 네트워크 장비가 특정 계층에 완벽히 대응되지 않음
- TCP/IP 모델만 보더라도 계층별 명칭과 구성, 계층 수를 다르게 표현하는 경우 많음
OSI 모델과 TCP/IP 모델 간 비교도 정확히 하는 것은 의미 없음
- 전자는 이론적 설계를 위한 참조에 가깝고, 후자는 실용적 구현을 위한 참조에 가까움
캡슐화와 역캡슐화
- 네트워크 참조 모델에 따르면,
- 송신지 입장 : 메시지는 가장 높은 계층 → 가장 낮은 계층 이동
- 수신지 입장 : 메시지는 가장 낮은 계층 → 가장 높은 계층 이동
- 캡슐화 (encapsulation): 송신 과정에서 바로 위의 계층으로부터 받은 패킷에 헤더 및 트레일러를 추가해 나가는 과정
- 역캡슐화 (decapsulation): 수신 과정에서 캡슐화를 통해 붙였던 헤더 및 트레일러를 각 계층에서 확인한 뒤 제거하는 과정
PDU (Protocol Data Unit) : 각 계층에서 송수신되는 메시지의 단위
- 현재 계층의 PDU = 상위 계층에서 전달 받은 데이터 + 현재 계층의 프로토콜 헤더 (및 트레일러)
- 주로 전송 계층 이하의 메시지를 구분하기 위해 사용
- 그 이상은 그냥 data 혹은 메시지로 지칭
- OSI 각 계층에서의 PDU
- 응용 계층 / 표현 계층 / 세션 계층 : 데이터 (data)
- 전송 계층 : 세그먼트 in TCP 프로토콜, 데이터그램 in UDP 프로토콜
- 네트워크 계층 : 패킷 (혼동 방지 위해 IP 패킷이라 호칭)
- 데이터 링크 계층 : 프레임 (frame)
- 물리 계층 : 비트 (bit)
트래픽과 네트워크 성능 지표
- 트래픽 (traffic) : 네트워크 내의 정보량
- 라우터 (네트워크 장비)에 트래픽이 몰린다, 서버 (호스트)의 트래픽을 분산한다 …
- 과부하 (overhead) : 특정 노드에 트래픽이 몰리는 것
- 네트워크 성능 지표
- 처리율 (throughput) : 단위 시간당 실제 전송되는 정보량
- bps (bit/s), Mbps (Mbit/s), Gbps (Gbit/s), pps(p/s)2
- 대역폭 (bandwidth) : 단위 시간 동안 통신 매체를 통해 송수신할 수 있는 최대 정보량
- 단위는 throughput과 동일
- 도로의 너비가 넓은 개념
- 패킷 손실 (packet loss) : 높은 트래픽 혹은 네트워크 장애로 전체 패킷 중 유실된 패킷의 비율
ping <수신지 주소>
:ctrl + c
로 실행 멈추면 packet loss 확인 가능
- 처리율 (throughput) : 단위 시간당 실제 전송되는 정보량