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

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

💡 tl;dr


  • OSI 7계층과 TCP/IP 4계층
  • 계층별 특징 파악



OSI 모델과 TCP/IP 계층 모델 비교


OSI 7 layers


  • Open System Interconnection Reference Model의 약자
  • 국제표준화기구(ISO)에서 프로토콜과 통신을 계층으로 나누어 설명하기 위해 개발한 모델
    • TCP/IP 모델과의 시장 점유 싸움에서 밀려 현대 인터넷에 사용되지 않는다.
  • Layered Architecture를 따르는 거대한 네트워크 시스템 구조를 설명하는 것
  • 이 모델은 프로토콜을 기능별로 나눈 것이다.
  • 각 계층은 하위 계층의 기능만을 이용 가능하고 상위 계층에게 기능을 제공한다.
  • 일반적으로 하위 계층들은 하드웨어로, 상위 계층들은 소프트웨어로 구현되어 있다.
  • 계층이 높을 수록 사람(User)과 가깝고, 낮은 계층일수록 기계와 가깝다.



1계층 / 물리 계층 (Physical)


  • 물리 계층은 네트워크의 하드웨어 전송 기술로 구성
  • 고수준의 논리 데이터 구조가 기초로 요구되는 필수 계층
  • 다양한 특징의 하드웨어 기술이 접목되어 있어 OSI 아키텍처에서 가장 복잡한 계층으로 간주


신호로 변환하여 전송하는 계층

  • 모든 파일과 프로그램은 01의 나열
  • 통신이란 간단히 컴퓨터 끼리 01을 주고 받는 것
  • 컴퓨터는 01의 나열을 아날로그 신호로 바꿔 전선으로 전송 (encoding)
  • 아날로그 신호가 들어오면 이를 01의 나열로 해석 (decoding)
  • 물리적으로 연결된 두 컴퓨터가 01의 나열을 주고받을 수 있게 해주는 것은 모듈(module)
  • 이러한 모듈(함수와 같은 역할을 하는 회로)은 하드웨어적(PHY 칩)으로 구현


시스템의 전기적, 물리적 표현

  • 케이블 종류,(802.11 무선 시스템에서와 같은) 무선 주파수 링크는 물론 핀 배치, 전압, 물리 요건 등이 포함
  • 전기적, 기계적 특성을 이용하여, 통신 케이블로 전기적 신호(에너지)를 전송 / 전송 단위 : bit
  • 단지 데이터 전달 역할만을 하고, 알고리즘이나 오류 제어기능은 존재하지 않는다


사용 장비

  • Hub, Repeater, Cable


프로토콜

  • Ethernet.RS-232C




  • 데이터 링크 계층은 포인트 투 포인트(ex: 컴퓨터 to 컴퓨터)간 신뢰성있는 전송을 보장하기 위한 계층
  • 동일한 네트워크 내에서의 전송을 담당 (이더넷)
  • 에러검출/재전송/흐름제어
  • 프레임에 주소부여(MAC - 물리적주소)


전송 신뢰성 보장

  • 오류없이 한 장치에서 다른 장치로 프레임(Frame, 비트의 모음)을 전달하는 역할
  • 물리 계층에서 발생할 수 있는 오류를 찾아 내고, 이를 수정하는데 필요한 기능 및 절차적 수단을 제공
  • 이를 위해 CRC(Cyclic Redundancy Check) 기반의 오류 제어와 흐름 제어가 필요
  • 오류가 있다면 해당 데이터를 폐기한다


여러 대의 컴퓨터 간의 통신

  • 1계층에 속하는 기술 만으로는 여러 대의 컴퓨터가 통신하도록 만들 수 없다.
  • 여러 컴퓨터에서 동시에 데이터를 전송 받았을 때 그 출처를 알기 힘들다.
  • 그래서 데이터에 특정 비트열을 추가(encode)해서 보내는데, 이를 framing(프레이밍)이라 하고, encode 된 데이터를 frame이라 한다.
  • 여러 데이터를 받고 그 데이터 안에 포함된 특정한 비트열 MAC 주소를 인식하여 어떤 컴퓨터에서 전송된 데이터인지 구별할 수 있다.


하드웨어적 구현

  • Data-link Layer 기술은 랜카드(네트워크 카드)에 구현되어 있다.
  • 즉, 1계층과 동일하게 하드웨어적 구현으로 되어있다.
  • 네트워크 카드가 만들어질 때부터 맥 주소(MAC address)가 정해진다.


사용 장비

  • Bridge, Switch


프로토콜

  • MAC, PPP, HDLC, Frame-Relay, FDDI, ATM, etc…



3계층 / 네트워크 계층 (Network)


  • 서로 다른 두 네트워크 간의 데이터 전송을 담당
  • 주소부여(IP)
  • 경로설정(Route)
  • 운영체제 커널에 소프트웨어적으로 구현


논리적 주소 부여 (IP)

  • 각 컴퓨터들이 갖는 고유한 논리적 주소(IP) 부여
  • 네트워크 관리자가 직접 주소를 할당하는 구조
  • 주소는 계층적(hierarchical) 구조를 갖는다.
  • 전송 계층 사이에 네트워크 서비스 데이터 유닛(NSDU)을 교환하는 기능을 제공


네트워크 경로 설정

  • 데이터(패킷,Packet)를 목적지까지 가장 안전하고 빠르게 전달하는 것 - 라우팅
  • 연결되어 있는 수 많은 라우터들 속에서 IP 주소를 이용해서 길을 찾고(routing) 목적지 까지의 경로상 바로 다음 라우터에게 데이터를 넘겨 주는 것(forwarding)을 도착할때까지 반복.
  • 이러한 라우팅을 통해 인터넷이 가능하고, 전 세계의 컴퓨터와 통신이 가능해짐.


사용 장비

  • Router


프로토콜

  • IP, ICMP, IGMP



4계층 / 전송 계층 (Transport)


  • Port 번호를 사용하여 최종 도착지인 프로세스까지 데이터가 도달하게 하는 모듈.
  • 서비스를 구분하고 데이터의 전송 방식을 담당하는 계층
  • 보낼 데이터(단위:Segment)의 용량과 속도, 목적지 등을 처리
  • 종단간(ent-to-end) 통신을 다루는 최하위 계층으로, 종단 간에 신뢰성 있고 효율적인 데이터 전송이 가능하게 하여 상위 계층들이 데이터 전달의 유효성이나 효율성에 대한 고민에서 자유롭게 해준다.
  • 종단 간의 에러 복구와 흐름 제어 담당 (TCP/UDP)
  • 운영체제 커널에 소프트웨어적으로 구현


연결 지향적 프로토콜

  • 일부 프로토콜은 상태(stateful) 저장 및 연결 지향적(connection-oriented)인데, 이는 전송 계층이 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들을 다시 전송한다는 것을 뜻한다.
  • 대표적으로 TCP핸드 셰이크 프로세스를 사용하여 발신자와 수신자 간의 연결을 설정한다.


세그멘테이션


세그멘테이션

  • 상위 계층 데이터를 세그먼트 단위로 나누는 것
  • 전체 데이터를 분할하여 전체 데이터가 100% 전송되기 전까지 기다려야할 대기시간을 줄여준다.
    • 유튜브 영상 버퍼링이 짧은 이유
  • 연결이 중간에 끊겼을때 발생하는 손실율을 줄일 수 있다.


사용 장비

  • Gateway


프로토콜

  • TCP, UDP, ARP



5계층 / 세션 계층 (Session)


  • 응용 프로세스 간의 통신을 관리하기 위한 방법을 제공하는 계층.
  • 세션을 열고 닫는(상호작용 및 동기화) 메커니즘 제공
  • 운영체제에 의해 통신을 하기 위한 세션을 확립/유지/중단/복구
  • 현대의 TCP/IP update 모델에서는 응용 프로그램 계층으로 통합됨


세션 (Session)

  1. 두 대의 기기, 컴퓨터 또는 서버 간에 대화(Message)를 위한 논리적 연결
    • 세션의 설정 및 조율, 프로세스 연결 해제 및 종료 등의 기능 필요
  2. 프로세스들 사이에 메시지 교환을 통해 서로를 인식한 이후부터 통신을 마칠 때까지의 시간


사용 장비

  • NetBIOS (세션 내 연결관리 및 에러감지, 복구 수행)


프로토콜

  • SSH, TLS



6계층 / 표현 계층 (Presentation)


  • 데이터(Message)의 변환 작업을 하는 계층
  • 코드 간의 번역을 담당하여 응용 계층의 부담을 덜어줌
  • 현대의 TCP/IP update 모델에서는 응용 프로그램 계층으로 통합됨


데이터 변환


데이터 변환 과정


  • 데이터 표현의 차이를 변환(번역)해줌
    • 데이터 표현 차이 : ASCII, JPEG, MPEG 등의 번역
  • 전송하는 데이터의 인코딩, 디코딩, 암호화, 코드 변환 등을 수행


프로토콜

  • ASCII, MPEG, JPEG, MIDI, EBCDIC



7계층 / 응용 계층 (Application)


  • OSI 7계층 모델 최상위 계층으로, 사용자가 네트워크 자원에 접근하는 방법 제공
  • 최종적으로 사용자가 볼 수 있는 유일한 계층이며 직접적으로 사용자와 상호작용한다.
  • 모든 네트워크 활동의 기반이 되는 인터페이스 제공
    • 네트워크 소프트웨어 UI
    • 사용자의 입출력(I/O)


프로토콜

  • DHCP, DNS, FTP, HTTP, SMTP, Telnet



암기 방법



알프스터널돌파


[ ] - Application - 응용 계층 (7계층)

[ ] - Presentation - 표현 계층 (6계층)

[ ] - Session - 세션 계층 (5계층)

[ ] - Transport - 전송 계층 (4계층)

[ ] - Network - 네트워크 계층 (3계층)

[ ] - Data Link - 데이터 링크 계층 (2계층)

[ ] - Physical - 물리 계층 (1계층)



TCP/IP 4 layers


  • TCP/IP는 현재의 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 프로토콜의 모음이다.
  • OSI 참조 모델을 기반으로 상업적이고 실무적으로 이용될 수 있도록 단순화된 모델
    • 네트워크 전송 시 데이터 표준을 정리한 것이 OSI 7 계층
    • 이 이론을 사용하는 인터넷 표준이 TCP/IP 4계층
  • 버전의 구분에 따라 4~5계층으로 나뉜다. (updated Ver. : 5계층)
  • 인터넷 프로토콜 스위트(Internet Protocol Suite)라고도 불린다.
  • 패킷 통신 방식의 인터넷 프로토콜인 IP와 전송 조절 프로토콜인 TCP로 이루어져 있다.
  • IP는 패킷 전달 여부를 보증하지 않고, 패킷을 보낸 순서와 받는 순서가 다를 수 있다.
  • TCPIP 위에서 동작하는 프로토콜로, 데이터의 전달 및 순서를 보장한다.
  • HTTP, FTP, SMTPTCP를 기반으로 한 많은 애플리케이션 프로토콜들이 IP 위에서 동작하기 때문에, 묶어서 TCP/IP라고 부른다.



1계층 / 네트워크 연결 계층 (Network Access)


  • OSI 7 Layer의 데이터 링크 계층(2계층), 물리 계층(1계층)의 결합으로 설명되기도 한다.
  • TCP/IP의 계층들은 운용 범위(애플리케이션, 호스트 대 호스트, 네트워크, 링크)의 설명이지, 운용 절차, 데이터 시맨틱, 네트워크 기술의 세부 규정은 아니다.

  • OS의 하드웨어적인 요소(네트워크 카드, 디바이스 드라이버 등)와 관련되는 모든 것을 지원하는 계층

  • 물리적으로 데이터가 네트워크를 통해 어떻게 전송되는지 정의
    • 논리주소(IP 등)가 아닌 물리주소(MAC 등)를 참조해 전송
  • 에러검출 / 패킷의 프레임화(이더넷 프레임) 담당
  • 프레임(Frame) 단위의 데이터 구성


사용 장비

  • LAN 장비, LAN 드라이버


프로토콜

  • Ehternet(이더넷), Token Ring, PPP



2계층 / 인터넷 (Internet)


  • OSI 7 Layer의 네트워크 계층에 해당
  • 3계층인 전송 계층으로부터 넘겨받은 데이터에 논리적인 주소인 IP를 할당하여 전송
    • 출발지와 목적지 IP가 담겨있는 IP 패킷 생성
    • 데이터 전송을 위한 주소 지정
  • 통신 노드 간의 IP 패킷을 전송하는 기능 및 라우팅 기능 담당


IP 프로토콜

  • 데이터에 출발지 IP, 목적지 IP 정보를 담은 IP 패킷을 부여
  • 덕분에 원하는 컴퓨터로 라우팅을 반복하여 데이터 전송
  • 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 전송
  • 비신뢰성 : 중간에 사라지거나(패킷 소실), 전달 순서를 보장하지 않음
  • 프로그램 구분 : 같은 IP를 사용하는 서버에서 애플리케이션 구분 불가
  • 우편을 보내는 것에 비유


프로토콜

  • IP, ARP, RARP, ICMP, OSPF



3계층 / 전송 계층 (Transport)


  • OSI 7 Layer의 전송계층에 해당
  • 통신 노드 간의 연결을 제어하고, 자료의 송수신을 담당
  • 세그먼트 (Segment)단위의 데이타 구성
  • 네트워크 양단의 송수신 호스트 사이에서 신뢰성 있는 전송기능을 제공


TCP (Transmission Control Protocol)

  • 전송 계층에서 사용되는 프로토콜
  • 연결 지향적 양방향 통신(3 way handshake) 프로토콜
  • 데이터의 순차 전송 보장
  • 흐름 제어 (Flow Control)
  • 혼잡 제어 (Congestion Control)
  • 오류 감지 (Error Detection)


UDP (User Datagram Protocol)

  • 하얀 도화지에 비유 (기능이 거의 없음)
  • TCP에 비해 단순하고 전송속도가 빠르다.
  • IP와 거의 같지만 PORT와 체크섬 정도가 추가되었다.
    • 애플리케이션에서 추가 작업 필요
  • 데이터 전달 보증 X
  • 순차 전송(순서 보장) X
  • 흐름 제어 X
  • 혼잡 제어 X
  • Connectionless (3 way handshake X)
  • 오류 감지 (Error Detection)
  • 비교적 데이터의 신뢰성이 중요하지 않을 때 사용 (영상 스트리밍 등)


프로토콜

  • TCP, UDP



4계층 / 응용 계층 (Application)


  • OSI 7 Layer에서 세션, 프레젠테이션, 애플리케이션 계층에 해당(5, 6, 7계층)
  • 응용프로그램의 UI(User Interface) 담당
  • 사용자와 가장 가까운 계층으로 사용자가 소프트웨어 application과 소통할 수 있게 해준다
  • TCP/IP 기반의 응용 프로그램을 구분할 때 사용한다.


TCP/IP 소켓 프로그래밍

  • 운영체제의 Transport Layer에서 제공하는 API를 활용해서 통신 가능한 프로그램을 만드는 것
  • 네트워크 프로그래밍이라고도 불림
  • 소켓 프로그래밍 만으로도 클라이언트, 서버 프로그램을 따로 만들어서 동작 시킬 수 있다.
    • 누구나 자신만의 application layer 인코더 디코더를 만들 수 있음
    • 암호화, 압축, 인코딩, 디코딩, 통신회선 구축


프로토콜

  • 파일 전송, 이메일, FTP, HTTP, SSH, Telnet, DNS, SMTP 등



암기 방법


[ 나이따 ~! ]

Network Access - 네트워크 연결 계층 (1계층)

Internet - 인터넷 계층 (2계층)

Transport - 전송 계층 (3계층)

Application - 응용 계층 (4계층)



OSI 모델 vs TCP/IP 모델


  • 두 모델 모두 계층형이다.
  • TCP/IP 프로토콜은 OSI 모델보다 먼저 개발되었고, OSI 모델의 계층과 정확히 일치하진 않는다.
  • TCP/IP 프로토콜 그룹에는 세션(Session)과 표현(Presentation)이 없다.
  • OSI 7 Layer가 더 잘 맞는 경우는 SSL이나 TLS를 설명할 때다.
    • 보통 SSL이나 TLSTCP의 상위에, HTTPSFTP, 그 밖에 stunnel이나 VPN 위에서 동작하는 애플리케이션 보다는 하위에 있는 세션 계층 프로토콜로 쓰인다.
  • TCP/IP는 인터넷 개발 이후 계속 표준화되어 신뢰성이 우수하다
  • OSI 7 Layer는 표준이 되기는 하지만 실제적으로 구현되는 예가 거의 없어 신뢰성이 저하되어있다.
  • OSI 7 Layer는 장비 개발과 통신의 표준으로 사용되나 실질적인 통신 자체는 TCP/IP를 따른다.



계층 모형


  • 각 계층은 담당하는 위치마다 처리 역할을 구분해 진행함으로써 서로 간의 간섭을 최소화하여 사용 편리성을 높인다.
  • 다른 제조사 장비 간 통신이 가능하도록 호환성을 보장하여 경제적 손실을 줄인다.
  • 문제 해결 용이 : 문제 발생시 계층별 확인이 가능하다.
  • 다른 계층끼리 전달 과정을 알 필요가 없어, 데이터의 캡슐화은닉이 가능하다.



참고



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

https://sklubmk.github.io/2021/08/03/05507539566a/

Author

Jinki Kim

Posted on

2021-08-03

Updated on

2021-08-06

Licensed under

댓글