본문 바로가기
네트워크

[네트워크] OSI 7계층과 TCP/IP 4계층

by bssub 2023. 10. 19.

1. "데이터가 전달되는 원리" , OSI 7계층 모델

OSI 모델은 국제 표준화 기구인 ISO에서 네트워크 통신이 일어나는 과정을 7단계로 나누어 정의한 네트워크 표준 모델이다. 다시 말해, 서로 다른 시스템 또는 장치간의 네트워크 통신을 나타낸 표준 규격이라고 할 수 있다

네트워크를 구성하기 위해서는 물리적인 장치에서부터 시작해서 애플리케이션까지 다양한 구성 요소들(Protocol, Library etc)이 필요하다. 이런 구성 요소들을 7계층으로 분리해서 표준화하면서 쉽게 네트워크 애플리케이션을 개발할 수 있는 환경을 제공하는 것이다.

 

OSI 모델의 특징 및 장점

- 컴퓨팅 장치나 네트워킹 장치를 만들 때 참조하여 통신 장치를 만든다.

- 데이터 흐름이 한눈에 보이며, 트러블 슈팅이 용이하다는 장점이 있다.

- 계층을 7단계로 구분하고 각 층별로 "표준화"를 했기 때문에 "서로 다른 제조사 시스템 간의 호환성 문제"를 해결할 수 있다. 

- 각 계층은 독립적인 모듈로 구성되어 있으며 상하 계급 구조를 갖고 있다.

ㄴ> Encapusulation/De-Encapsulation:
데이터 전달이 되기 위해서는, 상위 계층의 프로토콜이 제대로 동작하기 위해서는 하위의 모든 계층에 문제가 없어야한다.
-> 캡슐화와 비캡슐화에 대해선 밑에서 설명하겠다.

 

OSI 모델 VS TCP/IP 모델

OSI모델은 말그대로 표준 모델이다. '인터넷 연결을 할 때 이렇게 설계를 하면 통신이 정상적으로 작동을 할것이다'라는 권고안이기도 하다. 따르지 않아도 되지만 따르지 않는다면 정상적인 연결을 보장할 순 없다.

하지만 실무에서는 상업적이고 실무적인 이용의 이유로 대부분 TCP/IP 모델을 사용하고 있다. 

- TCP/IP는 인터넷 개발 이후 현업에서 계속 표준 모델로 사용하고 있다. , 수십년간 운용 경험에 의해 신뢰도가 높다고 할 수 있다.

- OSI는 가이드 역할로 충실하지만, 실제로 잘 사용하지 않기 때문에 예시가 거의 없어 신뢰도가 약한 모델이라고 볼 수 있다.

2. 각 계층의 기능

*PDU(Protocol Data Unit): 데이터 전송 단위*

1계층에서 PDU가 bit라고 생각되지만, PDU라고 하지 않는다. 단위라기보다, 그저 전기 신호(0,1)일 뿐이다.

프로토콜 데이터 단위이자, OSI 모델의 정보 처리 단위이다. 캡슐화 과정에서 PDU에 다양한 프로토콜에 의해 헤더와 푸터가 더해진다. 캡슐화가 완료되면 전기신호로 네트워크 장치를 통해 알맞는 목적지에 데이터가 전달이 된다.

각 계층마다 PDU 단위가 어떻게 되는지, 그 역할은 무엇인지 기억하면 네트워크 통신 흐름을 더 잘 이해할 수 있다.

1계층 - 물리 계층(Physical Layer)
: 데이터를 전기신호로 변환하여 단순 전달하는 계층

  • OSI 모델의 최하위 계층
  • 상위 계층에서 전송된 데이터를 물리적인 전송 매체(허브, 라우터, 케이블)을 통해 다른 시스템에 전기 신호를 전송
  • 단순히 데이터를 전달하는 역할
  • 전송받는 데이터가 무엇인지, 에러를 감지하는 등의 부가 확인 작업은 하지 않음
    (이미 그 과정을 거쳐서 데이터 캡슐화가 진행됐기에 그닥 필요하지 않기도 함)
  • PDU: 비트(bit)
  • 프로토콜: Modem, Cable, Fiber, RS-232C
  • 장비: 리피터(전기신호가 목적지까지 안전하게 전달되도록 전기신호를 유지해주는 역할), 통신 케이블, 허브 등

2계층 - 데이터 링크 계층(Data Link Layer)
: 프레임 순차 전송, 오류 감지(복구x), 흐름제어, MAC주소 지정

  • 네트워크 기기들 사이의 데이터 전송을 하는 역할
  • 물리적 계층을 통한 데이터 전송오류 감지, 오류 감지 시 재전송 요청
  • point to point 간 신뢰성 있는 전송을 보장하기 위한 계층(송수신 확인)
  • 3계층에서 정보를 받아 MAC 주소와 제어정보를 헤더와 푸터에 추가 => MAC 주소 지정 중요!
  • 패킷(3계층 PDU)을 프레임(2계층 PDU)으로 구성하여 "순차적"으로 물리계층으로 전송
  • PDU: 프레임(Frame)
  • 프로토콜: Ethernet, MAC, PPP, ATM, LAN, Wifi
  • 장비: 브릿지, 스위치 등

3계층 - 네트워크 계층(Network Layer)
: 패킷을 네트워크 간의 IP를 통해 데이터 전달, 경로 설정, 트래픽 제어 등의 역할

  • 목적지의 논리적 네트워크 주소(IP)를 정하고, 그에 따른 경로(Route) 선택, 경로에 따라 패킷 전달
  • 라우팅 알고리즘을 사용하여 최적의 경로 선택 후, 송신 측으로부터 수신 측으로 전송(패킷 이동 경로 지정)
  • 여러 노드(=네트워크 기기, 장비)를 거칠 때마다 경로를 찾아주는 역할
  • 다양한 길이의 데이터를 네트워크를 통해 전달하고 전송계층이 요구하는 서비스 품질을 제공하기 위한 기능적, 절차적 수단 제공
    -> 전송되는 데이터는 패킷 단위로 분할하여 전송한 후, 다시 합쳐짐.
더보기
2계층과 3계층의 차이:
2계층 - 네트워크 기기 간(Node<->Node) 데이터 전달 감독
3계층 - 각 패킷이 목적지까지 성공적이고 효과적으로 전달되도록 함.
  • PDU: 패킷(Packet)
  • 프로토콜: IP, ICMP, ARP, RARP
  • 장비: 라우터, L3 스위치

"MAC VS IP?"
=> 물리적 네트워크 세그먼트에서 식별 및 주소 지정 VS 네트워크에서의 통신에 사용

더보기
An IP (Internet Protocol) address is a numerical label assigned to each device connected to a computer network that uses the Internet Protocol for communication. An IP address serves two main functions: identifying the host or network interface, and providing the location of the host in the network.A MAC (Media Access Control) address is a unique identifier assigned to a network interface controller (NIC) for communications on the physical network segment. The MAC address is used for identification and addressing at the data link layer of a network.In short, an IP address is used for communication on a network, while a MAC address is used for identification and addressing on a physical network segment.

IP(논리적인 네트워크 주소):

1. 네트워크에 연결되는 장치(host or Network Interface)들을 식별하기 위한 주소 체계

2. 네트워크에서 호스트의 위치를 제공하는 역할

  • 네트워크 인터페이스는 고유의 번호를 부여 받으며 이를 통해 통신을 할 수 있다.(인터넷을 사용하기 위한 주소)
  • 특정 기기에 국한되지 않는다. 다시 말해, 유동적이고 논리적인 주소이기 때문에 소멸되지 않는다.
  • NAT기능으로 공인 IP를 사설 IP로 변환하여 사용하는데, 이는 한정적인 IP주소를 효율적으로 사용하며 사설 네트워크의 보안을 위해 사용되는 기술이다. 이처럼 동일한 IP를 PC 혹은 특정 네트워크에 사용할 수 있다.

MAC (물리적인 주소):

  • 2계층에서 지정되는 주소. LAN카드에 고정적으로 고유하게 할당되어 있는 주소로 변경이 불가능하다.
  • 다른 기기에서 중복해서 사용할 수 없으며, 물리적으로 등록이 되어 있기 때문에 전세계에서 고유한 주소이다.

4계층 - 전송 계층 (Transport Layer)
: 포트번호 설정, 오류 및 흐름 제어, 다중화, 데이터 분할 및 재조립, 투명한 데이터 전송(신뢰성) 

  • 출발지에서 목적지(END to END) 간 에러 제어, 흐름제어
  • 패킷(3계층 PDU)의 전송이 유효한지 확인, 전송 실패 패킷 있을 때 재전송하는 신뢰성 있는 통신 보장
  • 오류 검출 및 "복구", 흐름 제어와 중복 검사 수행
  • 헤더에 포트번호 포함:
    포트번호: 디바이스에 있는 여러 프로세스 중 자기가 가야할 프로세스를 구분하기 위해 포함됨
  • PDU: 세그먼트(Segement)
  • 프로토콜: TCP, UDP (중요한 내용이기에 별도의 게시물로 다룰 주제)
  • 장비: 게이트웨이, L4 스위치

5계층 - 세션 계층 (Session Layer)
: 호스트 간의 세션 관리하는 계층

세션: 클라이언트, 서버 간(통신 장치 간) 네트워크 연결이 지속, 유지되는 상태

  • 통신 장치 간의 세션을 구성하는 계층으로 포트번호를 기반으로 연결한다.
  • 네트워크 상에서 통신을 할 경우 양쪽 호스트 간에 최초 연결을 지속시켜주는 역할
  • 세션 생성, 유지, 종료, 전송 중단 시 복구 기능 수행(OS가 세션 계층으로 해당 역할 수행)
  • TCP/IP 세션을 만들고 없애는 역할
  • 통신하는 사용자 동기화, 오류 복구 명령 일괄 관리
  • 프로토콜: NetBIOS, SSH, TLS

6계층 - 표현 계층
: 데이터 암호화, 데이터 형식 지정, 압축 등의 작업 수행

  • 전송하는 데이터의 형식(png, jpg, git..) 지정
  • 세션 계층과 응용 계층 간의 다양한 데이터 형식을 일관되게 변환
  • 압축 기능 및 암호화, 복호화 기능 수행
  • 프로토콜: JPG, MPEG, SMB, AFP, PNG 등

7계층 - 응용 계층(Application Layer)
: 사용자가 네트워크에 접근할 수 있도록 서비스 제공

  • 응용 프로세스와 직접 관계하여 서비스를 사용자에게 제공하는 역할
    = 파일 전송, DB, 메일 전송 등 여러 응용 서비스를 네트워크에 연결해주는 역할
    ex) chrome, internet explorer..
  • 사용자로부터 정보를 입력받아 하위 계층으로 전달-> 하위 계층에서 전송한 데이터 사용자에게 전달
    = 클라이언트의 요청에 따라 서버가 응답
  • 프로토콜: DHCP, DNS, FTP, TFTP, HTTP, SMTP, SNMP, Telnet 등 

3. TCP/IP 모델

OSI 참조 모델은 말그대로 참조 모델일 뿐 실제 사용되는 인터넷 프로토콜은 을 7계층 구조를 완전히 따르지는 않는다. 인터넷 프로토콜 스택(Internet Protocol Stack)은 현재 대부분 TCP/IP를 따른다.

TCP/IP는 인터넷 프로토콜 중 가장 중요한 역할을 하는 TCP IP의 합성어로 데이터의 흐름 관리, 정확성 확인, 패킷의 목적지 보장을 담당한다. 데이터의 정확성 확인은 TCP가, 패킷을 목적지까지 전송하는 일은 IP가 담당한다.

더보기

TCP/IP의 4계층
TCP/IP는 OSI 참조 모델과 달리 표현계층, 세션계층을 응용계층에 다 포함시키고 있지만, 사실상 TCP/IP Model의 Application 계층 하나에서 Application, Presentatiom, Session 계층의 구현을 다 하고 있다고 이해하는 게 올바르다.

+ Data Encapusulation/De-Encapsulation?

데이터 전송 흐름 과정을 나타낸 그림

데이터 캡슐화는 사용자 데이터가 각 계층을 지나면서 하위 계층은 상위 계층으로부터 온 정보를 데이터로 취급하며, 자신의 계층 특성을 담은 제어정보(주소, 에러 제어 등)를 헤더화 시켜 붙이는 일련의 과정을 말한다.

데이터 전송 시, 캡슐화

응용계층부터 물리 계층까지 차례로 오며 "헤더"가 붙음.

각 계층이 다른 계층과 통신할 때 데이터에 특정 정보가 들어가 있는 머리말(헤더)와 꼬리말(푸터)를 추가하여 다른 계층으로 전달한다. 계층을 지날 때마다 "목적지 장비에 전달하기 위한 정보(편지)를 편지지에 감싼다"는 의미로 이해하면 쉽다.

데이터 확인 시, 역캡슐화

데이터 전송 출발지 장비에서 전달한 데이터를 받은 목적지 장비가 프로토콜의 헤더와 푸터를 분석하는 과정이다.

수신 측에서 물리계층부터 차례로 올라가면서 헤더를 떼내는 방식으로 데이터를 식별한다. 마지막 응용 계층에 도달하면 원본 데이터를 확인할 수 있다.

더보기

ex) 데이터가 목적지로 이동할 때, 네트워크 계층(3 Layer)에서 IP 헤더에 있는 프로토콜 정보를 이용해 데이터가 TCP인지 UDP인지 식별한 후 그에 따른 처리를 전송 계층(4 Layer)에서 수행한다.

(편지지의 목적지가 본인의 정보가 맞으면, 편지 내용을 확인할 수 있는 거고, 아니라면 다시 반송하는 것으로 이해하면 쉽다.)

 

 

이미지 출처, 참고 문서

https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=pst8627&logNo=221670903384

 

IT관련 용어 - [OSI 7계층] 이란? (OSI 7 Layer)

안녕하세요 탄탄이 입니다. 오늘은 컴퓨터 네트워크 통신을 이야기 할 때 항상 등장하는 OSI 7계층에 대...

blog.naver.com

https://backendcode.tistory.com/167

 

[네트워크] OSI 7 계층 (OSI 7 Layer)

이번에는 네트워크의 기본인 OSI 7 계층에 대해 정리할 것이다. 이번 글에서는 OSI 7 계층에 대해 다루고, 다음 글에서는 TCP/IP 4 계층에 대해 다루기 때문에 이어서 보면 이해하기 쉽다. 🖥️ 목차

backendcode.tistory.com

http://wiki.hash.kr/index.php/OSI_7_%EA%B3%84%EC%B8%B5

 

OSI 7 계층 - 해시넷

OSI 7 계층(OSI 7 Layer) OSI 7 계층(OSI 7 Layer)는 네트워크 프로토콜이 통신하는 구조를 7개의 계층으로 분리하여 각 계층간 상호 작동하는 방식을 정해 놓은 것 이다. 이는 ISO(국제표준화기구)에서 개

wiki.hash.kr

https://velog.io/@nellholic108/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-OSI-7-%EA%B3%84%EC%B8%B5

 

네트워크 OSI 7 계층

네트워크 관련 개념을 공부하던 중에 '데이터를 패킷으로 감싼다' 이런 개념이 많이 나왔습니다. 대략적으로 이해를 하고 있다가 스터디 중에 검색키워드를 알려주셔서이 부분에 대해서 조금

velog.io