OSI 7 Layer, TCP/IP Model 소개
우선 OSI의 Full Name은 Open System Interconnetion이다. 즉, 시스템 상호 연결에 있어서 개방되어 있는 모델을 의미한다. TCP/IP (Transmisson Control Protocol) 모델도 뒤에서 말하겠지만 모두 서로 다른 네트워크 프로톨콜이 상호 작용하고, 함께 작동하여 네트워크 서비스를 제공하는 방식을 이해하는 방식이다. 다만 OSI 참조모델은 컴퓨터와 컴퓨터 사이의 데이터 전송을 분류한 모델이고, 각 계층은 다른 계층에 대해 알 필요가 없이 자신의 계층에서 캡슐화와 은닉을 가능하게 한 모델이다. 그리고 TCP/IP 모델은 우리가 범용적으로 사용하는 TCP 프로토콜과 IP 프로토콜을 OSI 7 Layer 형식에 맞추어 더 추상화한 모델이다.
차이점
개발 주체 | Layer | 상호 운용성과 신뢰성 | 사용 | |
OSI 모델 | 국제 표준화 기구(ISO) | 7 Layer | OSI 모델은 다양한 통신 시스템과 표준 프로토콜의 상호 운용성을 강조한다. | OSI 모델은 널리 알려져있고 가르치고 있지만, 이론적인 모델에 가깝다. 따라서 실제 실세계에서 완전한 형태로 사용되는 경우는 많지 않다. |
TCP/IP 모델 | 미국 국방부(DoD) | 4 Layer | TCP/IP 모델은 패킷 전송이 불안정할 수 있다고 가정하므로, TCP 또는 기타 신뢰할 수 있는 프로토콜이 필요하다. | 오늘날 인터넷과 대부분의 상용 네트워크에서 널리 사용된다. |
이 외에도 다음과 같은 서로 다른 특징을 가진다.
- 개발 및 사용
- TCP/IP 모델은 더 일찍 개발되었으며, 표준 프로토콜을 기반으로 한다. 인터넷에서 사용되는 모델이며, 실제 사용 사례를 기반으로 한다.
- OSI 모델은 네트워크 프로토콜을 이해하고, 설명하기 위한 추상적인 모델이라는 의도로 TCP/IP 모델 이후에 개발되었다. 이 모델은 학계와 이론적 네트워크 설계에 널리 사용된다.
- 접근 방식
- TCP/IP 모델은 실용적인 접근 방식으로 만들어졌다. 즉, 미국 국방부의 네트워킹 요구 사항을 해결하기 개발되었다.
- OSI 모델은 학문적 접근 방식으로 만들어졌다. 이미 사용중인 것을 기반으로 한 것이 아니라 네트워크 시스템이 해야할 일을 설명하기 위해 개발되었다.
- 유연성
- TCP/IP 모델이 OSI 모델보다 더 유연한 것으로 간주된다.
- TCP/IP 모델의 프로토콜은 모델 자체는 변경되지 않은 채로 수정 및 업데이트할 수 있다.
- OSI 모델의 계층은 엄격하게 정의되어 있으며, 모델의 특성을 변경하지 않고는 수정하거나 재배치할 수 없다.
- 참조 모델
- OSI 모델은 보다 포괄적인 모델이며, 더 나은 모듈화 및 계층 분리를 제공한다. 따라서 모든 실제 구현에 직접적으로 매핑되지는 않더라도, 네트워킹 시스템에서 발생할 수 있는 복잡한 상호 작용을 이해하기 위한 교육에서 참조 모델로 자주 사용된다.
- 채택
- TCP/IP는 전세계적으로 통용되는 모델이며, 따라서 전세계 수많은 네트워킹 시스템에서 구현되었다.
- OSI 모델은 널리 인식되고 교육되고 있지만, 완전한 형태로 실제 채택된 사례는 많지 않다.
따라서 두 모델 모두 장단점이 있고, 두 모델 중 하나를 선택하는 것은 네트워킹 개념을 이론적으로 이해하는 것이 목표인지(OSI 모델), 아니면 실제로 이해하는 것이 목표인지(TCP/IP 모델)에 따라서 달라진다.
OSI 7 Layer 각 계층별 프로토콜과 기능
OSI 7 Layer에서 PDU(Process Data Unit)이란 각 계층에서 전송되는 단위를 의미한다.
그럼 각 계층별 PDU에는 무엇이 있는지 알아보자.
- 1계층 : Bits
- 2계층 : Frames
- 3계층 : Packets
- 4계층 : Segments
- 5~7 계층 : Data
이러한 각 계층별 프로토콜의 기능에는 다음과 같은 기능들이 있다.
- 분할 : 큰 용량의 데이터를 전송하기 위해 데이터를 나눔
- 재조립 : 분할된 데이터를 사용하기 위해 재조립함
- 캡슐화 : 각 계층을 거칠때마다 각 계층의 헤더가 계층별로 붙어 캡슐화를 진행함
- 순서 제어 : 전송되는 데이터의 순서를 조율하고, 이를 통해 데이터 중복되거나 유실되는지 체크함
- 흐름 제어 : 전송되는 데이터의 양과 전송률을 제한함
- 오류 제어 : 데이터가 올바르게 수신되었는지 에러 검출 코드를 통해 체크함
OSI L1- Physical Layer
데이터 전달의 역할을 하는 계층으로, 전기적, 기계적 특성을 이용해 통신 케이블로 전기적 신호를 전송한다. 따라서 Bit 단위의 PDU를 사용하고, 1(On) / 0(Off)의 encoding 전압 및 케이블 사양 핀의 수 등을 정의한 계층이다. 이러한 1 계층의 장비로는 Cable, Repeater, Hub 등이 있다.
OSI L2 - Data Link Layer
물리적인 연결을 통한 인접한 두 장치의 신뢰성있는 정보를 담당하는 계층으로, 정보의 오류와 흐름을 관리하여 안정된 정보를 전달한다. 따라서 Frame 단위의 PDU를 가지며, MAC 주소와 제어 정보를 전송하고, 헤더를 통해 캡슐화 또는 캡슐화를 해제한다. 이러한 2계층의 프로토콜로는 IEEE802.2(LLC), IEEE802.3(CSMA/CD), IEEE802.5(Token Ring) 등이 있다. 그리고 장비로는 Bridge, Switch 등이 있다.
OSI L3 - Network Layer
중계 노드를 통해 전송하는 경우에 어떻게 전송할 것인가를 규정하는 계층으로, 데이터를 목적지까지 가장 안전하고 빠르게 전달한다는 목적을 가진다. 이 계층은 Packet 단위의 PDU를 가지고, Packet에는 목적지까지 경로를 설정한다. 이러한 3계층의 프로토콜에는 IP(Internet Protocol), OSFP(Octal Small Formfactor Pluggable). BGP(Border Gate Protocol) 등이 있다. 장비로는 Router, Switch 등이 있다.
OSI L4 - Transport Layer
End-to-End 간 신뢰성있고, 정확한 데이터를 전송을 담당하는 계층으로, Segment 단위의 PDU를 가진다. 그리고 종단간의 에러 복구와 흐름제어를 담당하며, 헤더를 통해 캡슐화 및 캡슐화 해제를 한다. 이러한 4계층의 프로토콜에는 TCP(Transmission Control Protocol)과 UDP(User Data Protocol) 등이 있으며, 장비로는 L4 Switch 가 있다.
OSI L5 - Session Layer
통신장치 간에 상호작용 및 동기화를 제공하고, 연결 세션에서의 데이터 교환 및 에러 발생시의 복구를 관리한다. 즉, 논리적인 연결을 담당한다. 마찬가지로 헤더를 통해 캡슐화 및 캡슐화를 해제한다. NetBIOSI(Network Basic Input/Output System), SSH, Appletalk 등의 서비스가 있다.
OSI L6- Presentation Layer
데이터의 표현을 담당하는 계층으로, 전송하는 데이터의 인코딩, 디코딩, 암호화, 코드 변화 등을 담당한다. 마찬가지로 헤더를 통해 캡슐화 및 캡슐화 해제를 하며, 방식으로는 ASCII, JPEG, MPEG 등이 있다.
OSI L7 - Application Layer
사용자와 가장 밀접한 계층으로 Interface 역할을 한다. 즉, 응용 프로세스간의 정보 교환을 하는 계층으로, 전자메일, 인터넷 서비스, 동영상 어플리케이션 등의 어플리케이션이 있다.
TCP/IP 4 Layer
ARPANET이 개발된 이후, 현재의 인터넷으로 발전해나가는 과정에서 대부분의 데이터 통신이 TCP와 IP 기반으로 이루어졌기 때문에 인터넷 프로토콜 그 자체를 표현하는 용어이다. 따라서 TCP/IP는 현재 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 프로토콜의 모음이라고 볼 수 있다.
TCP/IP L1 - Network Access Layer
물리주소 MAC을 사용하며, 프로토콜로 Ethernet, Token Ring, Frame Relay, ATM, PPP 등이 있다.
TCP/IP L2 - Internet Layer
OSI 7계층의 네트워크 계층에 해당하고, 통신 노드간의 IP 패킷을 전송하는 기능과 라우팅 기능을 담당한다. 프로토콜로는 IP, ICMP, IGMP, RARP, OSPF, BGP 등이 있다.
TCP/IP L3 - Transport Layer
OSI 7계층의 전송 계층에 해당하고, 통신 노드간의 연결을 제어하고, 신뢰성있는 데이터를 전송한다. 프로토콜로는 TCP, UDP 등이 있다.
TCP/IP L4 - Application Layer
OSI 7계층의 세션 계층, 표현 계층, 응용 계층에 해당하고, TCP/UDP 기반의 응용 프로그램을 구현할 때 사용한다. 프로토콜로는 HTTP, FTP, SMTP, DNS, RIP, SNMP 등이 있다.
TCP/IP 모델을 통한 실제 네트워크 과정 도식화
그럼 이제 TCP/IP 모델을 통해 실제 네트워크 과정을 도식화하면서 네트워크 흐름을 이해해보자.
- 주소를 주소창에 입력한다.
- 해당 주소의 아이피주소를 DNS 서버에 입력한다.
- 해당 주소의 아이피주소를 DNS 서버가 클라이언트에게 전달해준다.
- 어플리케이션 Layer에서 전송계층으로 데이터를 전달한다.
- 전송계층에서 통신하기 쉽게 HTTP 메시지를 패킷으로 분해한다.
- 분해된 데이터를 판별하기 위해 일련번호를 부여한다.
- 인터넷 계층으로 데이터를 전달한다.
- 인터넷 Layer에서 상대가 어디있는지 인터넷을 통해 찾아다니며 이동한다.
- 전송계층에서 도착한 패킷을 일련번호를 보고 조립한다.
- 어플리케이션 Layer로 데이터를 전달한다.
- 어플리케이션 Layer에서 전달받은 데이터를 서버에 전달한다.
그럼 클라이언트의 어플리케이션 계층에서부터 하나씩 분석해보자.
우선 우리가 주소창을 입력할 때 사용되는 http는 전송 프로토콜이라는 것을 알아야한다. 즉, 내가 http라는 어플리케이션 프로토콜을 이용해서 도착지에 데이터를 보내겠다는 뜻이며, 요청과 동시에 표현 계층으로 이동한다.
그러면 표현계층에서는 데이터 가공을 담당하는데, 만약 https 보안 프로토콜을 사용한다고 하면 어플리케이션의 데이터를 암호화하거나 바이너리로 들어온 데이터들을 JPG, PNG 등 확장자에 맞추어 우리가 볼 수 있는 형식으로 변경해준다.
그렇게 세션계층으로 넘어온 데이터는 데이터의 무결성이나 신뢰성을 확인하는 단계를 거치는데, 이 단계에서는 네트워크 계층을 위해 데이터를 끊어주거나 확인해준다고 이해하면 된다.
이렇게 어플리케이션 Layer에서 데이터를 받은 전송계층은 TCP 프로토콜을 이용하여 세션 데이터로부터 적당한 크기로 받은 데이터를 잘게 쪼갠 후에 일련변호를 부여한다. 다만, UDP도 이 계층에 속하지만 TCP와 다른 점은 데이터의 순서를 분할하고, 일련번호를 부여하지 않기 때문에 순차성 및 안정성을 보장하긴 힘들지만 속도가 상당히 빠르다.
그렇게 데이터를 받은 인터넷 레이어에서는 IP 프로토콜을 통해 라우터들을 이동하면서 목적지로 전달된다.
인터넷 레이어로부터 패킷은 데이터링크 계층으로 이동하고, 이 계층의 대표적인 프로토콜이 이더넷, 브릿지, 스위치 같은 장비가 해당된다. 그리고 물리 계층으로 가는데 랜선, 허브와 같은 장치가 있고, 이는 게이트웨이를 통해 상대 서버로 이동하게 된다.
인용
https://easyitwanner.tistory.com/373
https://velog.io/@inyong_pang/OSI-7-%EA%B3%84%EC%B8%B5%EA%B3%BC-TCPIP-%EA%B3%84%EC%B8%B5
'컴퓨터 사이언스 > Network' 카테고리의 다른 글
Bridge, Switch (0) | 2023.11.17 |
---|---|
Load Balancing (0) | 2023.11.17 |
Ajax 정리 (0) | 2023.05.26 |
동기 통신과 비동기 통신 (0) | 2023.05.06 |
HTTP 헤더 중 X-Requested-With에 대해 (0) | 2023.04.25 |