OSI 7Layer(7계층) 1~4계층
OSI 7Layer(Open Systems Interconnection Reference Model)은 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다.
목적
프로토콜을 기능별로 나눈 것이다. 각 계층은 하위 계층의 기능만을 이용하고, 상위 계층에게 기능을 제공한다. '프로토콜 스택' 혹은 '스택'은 이러한 계층들로 구성되는 프로토콜 시스템이 구현된 시스템을 가르키는데, 프로토콜 스택은 하드웨어나 소프트웨어 혹은 둘의 혼합으로 구현될 수 있다. 일반적으로 하위 계층들은 하드웨어로 상위 계층들은 소프트웨어로 구현된다.
1. Physical(물리) 계층
물리 계층은 어떤 하나의 네트워크에서 기본 네트워크 하드웨어 전송기술들로 구성된다. 네트워크의 높은 수준의 기능의 논리 데이터 구조를 기초로 하는 필수 계층이다. 다양한 특징의 하드웨어 기술이 접목되어 있기에 OSI 아키텍처에서 가장 복잡한 계층으로 간주된다.
단위(PDU)
Bit를 사용한다.
프로토콜
10BASE-T, 100BASE-TX, ISDN, wired, wireless, RS-232, DSL, Twinax
장비
네트워크 어댑터, 리피터, 네트워크 허브, 모뎀 등등
2. Datalink(데이터 링크) 계층
포인트 투 포인트(Point to Point) 간 신뢰성 있는 전송을 보장하기 위한 계층으로 CRC 기반의 오류 제어와 흐름 제어가 필요하다. 네트워크 위의 개체들 간 데이터를 전달하고, 물리 계층에서 발생할 수 있는 오류를 찾아 내고, 수정하는데 필요한 기능적, 절차적 수단을 제공한다. 주소 값은 물리적으로 할당 받는데, 이는 네트워크 카드가 만들어질 때부터 MAC Address가 정해져 있다. 주소 체계는 계층이 없는 단일 구조이다.
주소 할당 : 물리 계층으로부터 받은 신호들이 네트워크상의 장치에 올바르게 안착할 수 있게 한다.
오류 감지 : 신호가 전달되는 동안 오류가 포함되는지를 감지한다. 오류가 감지되면 데이터 링크 계층은 해당 데이터를 폐기한다
단위(PDU)
Frame
프로토콜
Ethernet, Token Ring, AppleTalk, ATM, MAC, HDLC, FDDI, LLC, ALC
장비
브리지, 스위치
3. Network(네트워크) 계층
여러개의 노드를 거칠 때마다 경로를 찾아주는 역할을 하는 계층으로 다양한 길이의 데이터를 네트워크들을 통해 전달하고, 그 과정에서 전송 계층이 요구하는 서비스 품질(Qos)을 제공하기 위한 기능적, 절차적 수단을 제공한다. 네트워크 계층은 라우팅, 흐름 제어, 세그멘테이션, 오류 제어, 인터네트워킹 등을 수행한다. 라우터가 이 계층에서 동작하고 L3 스위치 또한 동작한다. 데이터를 연결하는 다른 네트워크를 통해 전달함으로써 인터넷이 가능하게 하는 계층이다. 논리적 주소(IP), 네트워크 관리자가 직접 주소를 할당하는 구조를 가지며, 계층적이다.
서브네트의 최상위 계층으로 경로를 서정하고, 청구 정보를 과리한다. 개방형 시스템들의 사이엥서 네트워크 연결을 설정, 유지, 해제하는 기능을 부여하고, 전송 계층 사이에 네트워크 서비스 데이터 유닛(NSDU)을 교환하는 기능을 제공한다.
연결 모델 : 비연결 지향 통신
호스트 주소 할당 : 네트워크 내 모든 호스트는 고유 주소를 갖추어야 한다.
메세지 포워딩
단위(PDU)
Packet
프로토콜
IP, IPX, IPSec, ICMP, ARP, NetBEUI, RIP, BGP, DDP, PLP
장비
라우터, L3 스위치
4. Transport(전송) 계층
양 끝단(End to end)의 사용자들이 신뢰성 있는 데이터를 주고 받을 수 있도록 해 주어, 상취 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해준다. 시퀀스 넘버 기반의 오류 제어 방식을 사용한다. 전송 계층은 특정 연결의 유효성을 제어하고, 일부 프로토콜은 상태 개념(stateful)이 있고, 연결 기반(Connection oriented)이다. 이는 전송 계층이 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들을 다시 전송한다는 것을 뜻한다. 가장 잘 알려진 전송 계층의 예는 TCP이다. 종단간 통신을 다루는 최하위 계층으로 종단간 신뢰성 있고 효율적인 데이터를 전송하며, 기능은 오류검출 및 복구와 흐름제어, 중복 검사 등을 수행한다.
TCP(Transmission Control Protocol)
양종단 호스트 내 프로세스 상호간에 신뢰적인 연결지향성 서비스를 제공
-IP의 비신뢰적인 최선형 서비스에 신뢰적인 연결지향성 서비스를 제공하게됨
-신뢰적인 전송을 보장함으로써, 어플리케이션 구현이 한츤 쉬워지게 됨
1. 신뢰성
패킷 손실, 중복, 순서 바뀜 등이 없도록 보장한다.
TCP 하위 계층인 IP 계층의 신뢰성 없는 서비스에 대해 다방면으로 신뢰성 제공
2. 연결지향적
같은 전송계층의 UDP는 비연결성인 것과는 달리, TCP는 연결지향적이다.
느슨한 연결(Loosly Connected)을 갖으므로 강한 연결을 의미하는 가상회선이라는 표현 보다는 연결지향적이라고 한다.
연결 관리를 위한 연결 설정 및 연결 해제 필요
양간단 어플리케이션/프로세스는 TCP가 제고하는 연결성 회선을 통하여 서로 통신
UDP(User Datagram Protocol)
전송 계층의 통신 프로토콜의 하나
-신뢰성이 낮은 프로토콜로써 완전성을 보증하지 않는다.
-가상회선을 굳이 확립할 필요가 없고 유연하며 효율적 응용의 데이터 전송에 사용
1. 비연결성, 신뢰성이 없고, 순서화되지 않은 Datagram 서비스 제공
-메세지가 제대로 도착했는지 확인하지 않는다.
-수신된 메세지의 순서를 맞추지 않는다.
-흐름 제어를 위한 피드백을 제공하지 않는다.
-검사합을 제외한 특별한 오류 검출 및 제어가 없다.
UDP를 사용하는 프로그램 쪽에서 오류제어 기능을 스스로 갖추어야한다.
-데이터그램 지향의 전송계층용 프로토콜
-비연결접속 상태에서 통신
2. 실시간 응용 및 멀티캐스팅 가능
-빠른 요청과 응답이 필요한 실시간 응용에 적합
-여러 다수 지점에 전송 가능
3. 헤더가 단순함
-UDP는 TCP처럼 16비트의 포트번호를 사용하나 헤더는 고정크기의 8바이트만 사용한다.