[CS지식] 2-2. TCP/IP 4계층 모델 & 2-3. 네트워크 기기

김zunyange·2023년 5월 24일
0

CS Note

목록 보기
8/13
post-thumbnail

2-1 네트워크의 기초에 대해 👈
2-2에서는 TCP/IP 4계층 모델에 대해 알아보고, 2-3인 OSI 7계층 중 4개의 네트워크 기기 몇 가지에 대해서도 정리해보았다.

2-2. TCP/IP 4계층

네트워크 모델에는 대표적인 모델이 두 가지가 있는데, 그건 바로 OSI 7계층 모델과 TCP/IP 모델이다.

🌐 OSI 7계층

✔️ 네트워킹 시스템에서 일어나는 일들을 시각적으로 쉽게 설명할 수 있다.
✔️ 네트워크 관리자는 문제 원인의 범위를 좁혀 해결하는데 도움을 준다.

OSI(Open System Interconnection) 7계층은 국제표준화기구(ISO)에서 개발한 모델로, 네트워크 프로토콜 디자인과 데이터 통신을 계층으로 나눠 표준화한 것이다.

이렇게 계층을 나눈 이유는 통신이 일어나는 과정을 단계별로 파악하기 용이하며, 특정 계층에서 문제가 발생할 시 해당 계층만 다루면 되기 때문이다.

🌐 TCP/IP 4계층

OSI 7계층이 네트워크 전송의 데이터 표준을 정립했다면, TCP/IP 4계층은 이를 실제로 사용하는 인터넷 표준을 제공한다.

TCP/IP = IP(인터넷 프로토콜) + TCP(전송 조절 프로토콜)
TCP(상위계층) : 메세지나 파일을 작은 패킷으로 나누거나 재조립하여 송수신에 반영하는 일을 담당
IP(하위계층) : 각 패킷의 주소 부분들을 처리하여 패킷들이 목적지로 정확히 송수신되도록 함

앞 장에서 말한 패킷 통신은, 데이터를 작은 단위로 나누어 전송하기 때문에, 순서가 뒤섞이거나 내용이 유실될 수 있다는 단점이 있다.
따라서, 이러한 문제를 해결하기 위해 TCP 라는 프로토콜이 존재한다.

TCP는 꼼꼼하게 보내는 것이 목적이기 때문에 IP 보다 패킷 전송 속도는 느리지만, 패킷 전달 여부를 보증하고, 패킷을 송신 순서대로 받게 해준다.
즉, 목적지에 도착한 패킷들을 순서대로 정렬하고, 손상되거나 손실된 패킷이 있다면, 출발지에 재요청하는 방식으로 진행된다.

TCP - IP

송신자가 수신자에게 IP 를 사용하여 최대한 빠르게 패킷을 전송하면 TCP 를 활용해 패킷을 정상적으로 수신 받는다.
이렇게 복수의 프로토콜 집합을 프로토콜 스택(Protocol Stack) 혹은 프로토콜 스위트(Protocol Suite)라고 부르며, 서로 다른 프로토콜 스택끼리는 통신 할 수 없다.

2-2-1. 계층 구조

TCP/IP 4계층은 인터넷이 발전되면서 표준화되어 신뢰성이 우수한 반면, OSI 7계층은 실질적인 구현 예시가 없어 신뢰성이 저하되었다. 또한 OSI 7계층은 장비 개발과 통신 자체를 어떠한 방식으로 표준을 잡을지에 관련해 사용되는 반면, TCP/IP 4계층은 실질적인 통신 자체에서 많이 사용된다.
👀 그렇다면 본격적으로 TCP/IP 4계층의 구조를 알아보자!

(1) 응용 프로그램 계층 (Application)

애플리케이션 계층은 HTTP, HTTPS, FTP, SSH, Telnet, DNS, SMTP 등 응용 프로그램이 사용되는 프로토콜 계층이며 웹 서비스, 이메일 등 서비스를 실질적으로 사람들에게 제공한다.

  • 다른 계층의 서비스에 접근할 수 있게 하는 어플리케이션을 제공
  • 애플리케이션들이 데이터를 교환하기 위해 사용하는 프로토콜을 정의
  • TCP/IP 네트워크를 사용하거나 관리하는 것을 도와주는 프로토콜
  • 사용자와 가장 가까운 계층으로, 사용자-소프트웨어 간 소통을 담당하는 계층
  • 애플리케이션을 실행하기 위한 데이터 형식이 작성됨

(2) 전송 계층 (Transport)

전송 계층은 송신자와 수신자를 연결하는 통신 서비스를 제공하며 애플리케이션과 인터넷 계층 사이의 데이터가 전달될 때 중계 역할을 한다. 대표적으로 TCP와 UDP 가 있다.

  • 데이터의 송수신을 담당
  • TCP/UDP에 대한 구분을 하고 데이터에 대한 제어 정보가 여기에 포함
  • 통신 노드 간 신뢰성 있는 데이터 전송을 보장하는 계층
  • 역캡슐화 과정에서, 포트 번호를 사용해 데이터를 정확한 애플리케이션에 전달하는 역할
  • 네트워크 액세스 계층과 인터넷 계층을 통해, 데이터가 목적지 기기까지 정상적으로 도착했다면, 전송 계층은 포트 번호를 사용해, 데이터를 목적지 기기 내 적절한 에플리케이션으로 전달함

(3) 인터넷 계층 (Internet)

인터넷 계층은 장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용되는 계층이다. IP, ARP, ICMP 등이 있으며, 패킷을 수신해야 할 상대의 주소를 지정하여 데이터를 전달한다. 상대방이 제대로 받았는지에 대해 보장하지 않는 비연결형적인 특징을 가지고 있다.

  • 어드레싱(addressing), 패키징(packaging), 라우팅(routing) 기능을 제공
    *라우팅 : 어떤 네트워크 안에서 통신 데이터를 보낼 때 최적의 경로를 선택하는 과정
  • 논리적 주소인 IP를 이용한 노드간 전송과 라우팅 기능을 처리
  • 네트워크상 최종 목적지까지 정확하게 연결되도록 연결성을 제공

(4) 링크(네트워크 접근) 계층 (Network Interface, Network Access)

링크 계층은 전선, 광섬유, 무선 등으로 실질적으로 데이터를 전달하며 장치 간에 신호를 주고받는 ‘규칙’을 정하는 계층이다.
이를 물리 계층과 데이터 링크 계층으로 나누기도 하는데 물리 계층은 무선 LAN과 유선 LAN을 통해 0과 1로 이루어진 데이터를 보내는 계층을 말하며, 데이터 링크 계층은 ‘이더넷 프레임’을 통해 에러 확인, 흐름 제어, 접근 제어를 담당하는 계층을 말한다.

  • TCP/IP 패킷을 네트워크 매체로 전달하는 것과 네트워크 매체에서 TCP/IP 패킷을 받아들이는 과정을 담당
  • 에러 검출 기능과 패킷의 프레임화 기능을 수행
  • 네트워크 접근 방법, 프레임 포맷, 매체에 대해 독립적으로 동작하도록 설계됨
  • 흐름 제어(Flow Control)는 Header(MAC)에서, 에러 제어(Error Control)는 Tailer(CRC)에서 수행
  • 데이터를 전기신호로 변환한 뒤, 물리적 주소인 MAC 주소를 사용해, 알맞은 기기로 데이터를 전달하는 계층
  • Ethernet, Wi-Fi, PPP, Token Ring 과 같은 프로토콜이 사용됨

계층 간 데이터 송수신 과정

데이터 전송 시, 데이터는 상위 계층에서 하위 계층으로 이동하는데, 상위 계층의 헤더와 데이터를 -> 하위 계층의 데이터 부분에 포함시키고 -> 해당 계층의 헤더를 추가한다. 이를, 캡슐화 라고 한다.

그렇다면 역캡슐화(비캡슐화)는?
하위 계층에서 상위 계층으로 이동하며, 계층 이동 마다 추가된 헤더를 읽고 알맞은 행동을 취한 후 헤더를 제거하는 과정이다.

계층 별로 추가되는 헤더와 캡슐화/비캡슐화 과정을 그림으로 그려보았다.

캡슐화 : 애플리케이션 계층의 데이터가 전송 계층으로 전달되면서 '세그먼트' 또는 '데이터그램화'되며 TCP(L4) 헤더가 붙여지게 된다. 그리고 인터넷 계층으로 가면서 IP(L3) 헤더가 붙여지게 되며 ‘패킷’화가 되고, 이후 링크 계층으로 전달되면서 프레임 헤더와 프레임 트레일러가 붙어 ‘프레임’화가 된다.

비캡슐화 : 캡슐화된 데이터를 받게 되면 링크 계층에서부터 타고 올라오면서 프레임화된 데이터는 다시 패킷화를 거쳐 세그먼트, 데이터그램화를 거쳐 메시지화가 되는 비캡슐화 과정이 일어난다. 그 이후 최종적으로 사용자에게 애플리케이션의 PDU인 메시지로 전달된다.

2-2-2. PDU (Protocol Data Unit)

네트워크의 어떠한 계층에서 계층으로 데이터가 전달될 때 한 덩어리의 단위를 PDU라고 한다.

PDU = 제어 관련 정보들이 포함된 '헤더' + 데이터를 의미하는 '페이로드'

계층마다 부르는 PDU의 명칭은 다르다. 예를 들어 비캡슐화 과정에서 최종 단계에서 사용자에게 애플리케이션의 PDU인 메시지로 전달된다고 설명했듯이, 애플리케이션 계층은 '메시지'를 기반으로 데이터를 전달하는데, HTTP 의 헤더가 문자열인 것을 예로 들 수 있다.

애플리케이션 계층 : 메시지
전송 계층 : 세그먼트(TCP), 데이터그램(UDP)
인터넷 계층 : 패킷
링크 계층 : 프레임(데이터 링크 계층), 비트(물리 계층)

참고로 PDU 중 아래 계층인 비트로 송수신하는 것이 모든 PDU 중 가장 빠르고 효율성이 높다. 하지만 애플리케이션 계층에서는 문자열을 기반으로 송수신을 하는데, 그 이유는 헤더에 authorization 값 등 다른 값들을 넣는 확장이 쉽기 때문이다.

2-3. 네트워크 기기

네트워크는 여러 개의 네트워크 기기를 기반으로 구축된다.

(1) 네트워크 기기의 처리 범위

네트워크 기기는 계층별로 처리 범위를 나눌 수 있다. 물리 계층을 처리할 수 있는 기기와 데이터 링크 계층을 처리할 수 있는 기기 등이 있다. 그리고 상위 계층을 처리하는 기기는 하위 계층을 처리할 수 있지만 그 반대는 불가하다.
위의 4계층 중 전송 계층을 제외한 3개의 계층을 처리하는 기기에 대해 알아보자.

애플리케이션 계층 : L7 스위치
인터넷 계층 : 라우터, L3 스위치
데이터 링크 계층 : 브리지, L2 스위치
물리 계층 : NIC, 리피터, AP

예를 들어 L7 스위치는 애플리케이션 계층을 처리하는 기기로, 그 밑의 모든 계층의 프로토콜을 처리할 수 있다. 하지만 AP는 물리 계층밖에 처리하지 못한다.

(2) 애플리케이션 계층을 처리하는 기기

: L7 스위치

L7 스위치란?
여러 장비를 연결하고 데이터 통신을 중재하며 목적지가 연결된 포트로만 전기 신호를 보내 데이터를 전송하는 통신 네트워크 장비

L7 애플리케이션의 데이터에서 얻을 수 있는 정보는 IP, 포트 정보, URL 정보, 쿠키, 페이로드 정보 등 다양한 형태가 존재한다. 일반적으로 L4 스위치가 1024번까지의 포트만을 인식하는 데 비해, L7 스위치는 그 이외의 포트 번호에 대해서도 인식이 가능해 고정된 포트 번호를 사용하지 않고 동적으로 포트 번호를 바꾸는 바이러스와 같은 프로그램을 감지할 수 있다.

L7스위치는 기존 어플리케이션 레벨의 트래픽 관리 기능 이외에 트래픽의 내용을 분석해 불필요한 외부 데이터를 걸러내 주는 필터링 기능을 탑재하고 있다고도 한다.

(3) 인터넷 계층을 처리하는 기기

: 라우터, L3 스위치

📡 라우터

라우터는 라우팅을 하는 장비이며, 라우팅은 다른 네트워크에 존재하는 장치끼리 서로 데이터를 주고받을 때 패킷 소모를 최소화하고 경로를 최적화하여 최소 경로로 패킷을 전달한다.

공유기를 떠올리자. 라우터는 여러 개의 네트워크를 연결, 분할, 구분시켜주는 역할을 한다.

즉, 라우터란?
이름 그대로 네트워크와 네트워크 간의 경로(Route) 를 설정하고 가장 빠른 길로 트래픽을 이끌어주는 네트워크 장비

또한 라우터의 대표적인 기능은 네트워크와 네트워크를 연결하는 것이지만, NAT(Network Address Translation), 방화벽, VPN(Virtual Private Network), QoS(Quality of Service) 등 다양한 부가 기능을 함께 제공하기도 한다.

📡 L3 스위치

L3 스위치가 라우터 역할을 하기도 한다.

L3 스위치란?
라우터는 소프트웨어 기반의 라우팅과 하드웨어 기반의 라우팅을 하는 것으로 나눠지고, 하드웨어 기반의 라우팅을 담당하는 장치가 L3 스위치다.

(4) 데이터 링크 계층을 처리하는 기기

: L2 스위치, 브리지

📡 L2 스위치

L2 스위치란?
장치들의 MAC 주소를 MAC 주소 테이블을 통해 관리하며, 연결된 장치로부터 패킷이 왔을 때 패킷 전송을 담당

  • 패킷이 왔을 때 그것의 목적지가 어디인지를 보고 그 목적지로 보내주는 역할만 한다.
  • IP 주소를 이해하지 못하므로 IP 주소를 기반으로 라우팅이 불가능하다.
  • 단순히 패킷의 MAC 주소를 읽어 스위칭하는 역할을 한다.
  • 목적지가 MAC 주소 테이블에 없다면 전체 포트에 전달하고 MAC 주소 테이블의 주소는 일정 시간 이후 삭제하는 기능도 있다.
    *MAC 주소 : 네트워크 장비(랜카드)에 부여된 고유한 주소

인터넷 계층을 처리하는 기기 중 L3 스위치와 비교하면 아래 표와 같다.

구분L2 스위치L3 스위치
참조 테이블MAC 주소 테이블라우팅 테이블
참조 PDU이더넷 프레임IP 패킷
참조 주소MAC 주소IP 주소

📡 브리지 (Bridge)

우리가 아는 '허브'라고 생각하면 된다.

브리지란?
두 개의 근거리 통신망(LAN)을 상호 접속할 수 있도록 하는 통신망 연결 장치로, 포트와 포트 사이의 다리 역할을 하며 장치에서 받아온 MAC 주소를 MAC 주소 테이블로 관리함

브리지는 통신망 범위를 확장하고 서로 다른 LAN 로 이루어진 ‘하나의’ 통신망을 구축할 때 쓰인다.

(5) 물리 계층을 처리하는 기기

: NIC, 리피터, AP

NIC

LAN 카드라고 하는 네트워크 인터페이스 카드(NIC, Network Interface Card)는 2대 이상의 컴퓨터 네트워크를 구성하는 데 사용하며, 네트워크와 빠른 속도로 데이터를 송수신할 수 있도록 컴퓨터 내에 설치하는 확장 카드이다.

각 LAN 카드에는 주민등록번호처럼 각각을 구분하기 위한 고유의 식별번호인 MAC 주소가 있다.

리피티 (Repeater)

들어오는 약해진 신호 정도를 증폭하여 다른 쪽으로 전달하는 장치를 말한다.
이를 통해 패킷이 더 멀리 갈 수 있다. 하지만 요즘은 광케이블이 리피터 기능을 지원하기 때문에 잘 쓰이지 않는 장치이다.

AP

AP(Access Point)는 패킷을 복사하는 기기이다.

AP에 유선 LAN을 연결한 후 다른 장치에서 무선 LAN 기술(와이파이 등)을 사용하여 무선 네트워크 연결을 할 수 있다.


📍 출처
주홍철, [면접을 위한 CS 전공지식 노트]
https://wooono.tistory.com/507
정보통신신문(http://www.koit.co.kr)
https://dev-splin.github.io/cs(computer%20science)/network/Network-OSI-Layer1-Physical/#%EC%9E%A5%EB%B9%84

📍 참고하면 좋을 사이트
그림으로 알아보는 네트워크
https://k-elon.tistory.com/36
🌏 네트워크 구조 이해::
[이해하기]OSI7계층 그리고 TCP/IP 4계층

profile
배움은 즐거워 ~(*ૂ❛ᴗ❛*ૂ)

0개의 댓글