인터넷 모델 구조
현재 인터넷은 OSI 모델이 아닌 TCP/IP 모델을 따른다.
OSI 7 계층(Layer)
1984년 국제표준화기구(ISO)에서 개발한 모델로 네트워크 프로토콜 디자인과 통신 과정을 7개의 계층으로 구분해 만든 "표준 규격"이다.
초창기의 네트워크는 각 컴퓨터마다 시스템이 달랐기 때문에 하드웨어와 소프트웨어의 논리적인 변경 없이 통신할 수 있는 표준 모델이 나왔다.
특징
- 통신이 일어나는 과정을 7단계로 크게 구분하여, 단계 별로 파악가능
- OSI(Open System Interconnection) : 개발형 시스템은 누구나 참조 및 부가적인 추가 가능하다.
- 컴퓨팅 장치나 네트워킹 장치를 만들 때 이 모델을 참조해서 모든 통신 장치를 만든다.
- 각 계층은 독립적인 모듈로 구성되어 있으며, 상하 계급 구조를 가짐
- 상위 계층의 프로토콜이 제대로 동작하기 위해서는 하위 모든 게층에 문제가 없어야 한다.
- 물리 계층 : 하드웨어 , 데이터링크 계층: 하드웨어 + 소프트웨어, 3 계층부터는 소프트웨어로 구성
OSI 7 Layer의 필요성
- 표준 규격 : 네트워크 구성 요소를 표준화함으로써 서로 다른 통신 장치와의 상호 호환 가능
- 계층 별 모듈화 된 것이 하나로 조립 / 융합된 구조 : 유지관리의 수월성
- 설계가 간단해지고, 통신이 일어나는 흐름을 한 눈에 알아보기 쉬움
OSI 계층
PDU(Process Data Unit) : 각 계층에서 전송되는 단위
1계층에서 PDU가 Bit라고 생각하기 쉽지만 PDU라고 하지 않고 여기서 Bit는 단지 전기 신호의 흐름이다.
PDU는 2계층 - 프레임(Frame) / 3계층 - 패킷(Packet) / 4계층 - 세그먼트(Segment) 이다.
1계층 : 물리 계층(Physical Layer)
물리 계층(1 계층)은 OSI 모델의 최하위 계층에 속하며, 상위 계층(데이터 링크)에서 전송된 데이터를 물리적인 전송 매체(허브, 라우터, 케이블 등)를 통해 다른 시스템에 전기적 신호를 전송하는 역할을 한다(기계어를 전기적 신호로 바꿔 와이어에 실어주는 것).
- 최하위 계층, 물리적인 전송 매체를 통해서 상위 계층인 데이터 링크 계층으로부터 전달된 비트 스트림을 상대측 물리 계층으로 전달하는 기능을 수행한다.
- 데이터만 전달하고, 전송받으려는 데이터가 무엇인지, 어떤 에러가 있는지 전혀 신경 쓰지 않음
- 전송 단위(PDU) : 비트(1 - 전기적으로 On, 0 - 전기적으로 Off) - 전기 신호의 흐름
- 장비 : 통신 케이블, 허브 등
- 프로토콜 : Modem, Cable, Fiber, RS-232C
- 정리 : 1 Layer(물리 계층) - 데이터를 전기적인 신호로 변환해서 주고받는 기능만 수행
2 계층 : 데이터 링크 계층(Data Link Layer)
데이터 링크 계층은 네트워크 기기들 사이의 데이터 전송을 하는 역할을 한다. 시스템 간의 오류 없는 데이터 전송을 위해 패킷(Packet)을 프레임(Frame)으로 구성하여 물리 계층(1계층)으로 전송한다.
네트워크 계층(3 계층)에서 정보를 받아 주소와 제어 정보를 받아 주소와 제어 정보를 헤더와 테일에 추가한다.
- 물리적인 네트워크 사이에 데이터 전송을 담당하는 계층
- Point to Point 간 신뢰성 있는(안전한) 전송을 보장하기 위한 계층
- 물리 계층(1 layer)을 통해 송수신되는 데이터의 전송 오류를 감지하는 기능을 제공, 오류 감지 시 재전송
- MAC(맥) 주소를 가지고 통신
- 전송 단위(PDU) : 프레임(Frame)
- 장비 : 브리지, 스위치 등
- 프로토콜 : 이더넷, MAC, PPP, ATM, LAN, Wifi
※ MAC Address : 컴퓨터 간 데이터를 전송하기 위한 컴퓨터의 물리적 주소
MAC vs IP
- IP 주소 간의 통신은 각 라우터에서 일어나는 MAC 주소와 MAC 주소 통신의 연속적인 과정이다.
- 예) 한국에 이쓴 주소로 편지를 보낼 때, IP는 시작점과 끝점에 해당하는 주소라면, MAC 주소는 편지가 거쳐가는 중간 거점들(바로 옆에 물리적으로 연결되어 있는 노드와 통신 시 사용되는 주소)
3 계층 : 네트워크 계층(Network Layer)
기기에서 데이터그램(Datagram)이 가는 경로를 설정해주는 역할을 한다. 라우팅 알고리즘을 사용하여 최적의 경로를 선택하고 송신 측으로부터 수신 측으로 전송한다.
이때, 전송되는 데이터는 패킷(Packet) 단위로 분할하여 전송한 후 다시 합쳐진다. 데이터 링크 계층(2 계층)이 노드 대 노드 전달을 감독한다면, 네트워크 계층(3 계층)은 각 패킷이 목적지까지 성공적이고 효과적으로 전달되도록 한다.
- 목적지 네트워크 주소(IP)를 정하고, 그에 따른 경로(Route)를 선택하고, 경로에 따라 패킷을 전달해 주는 역할
- 데이터를 목적지까지 가장 안전하고 빠른 경로로 전달하는 기능(라우팅)이 가장 중요 - 프로토콜, 라우팅 기술 등
- 여러 개의 노드(node)를 거칠 때마다 경로를 찾아주는 역할을 하는 계층
- 다양한 길이의 데이터를 네트워크에 전달하고, 그 과정에서 전송 계층(4 Layer)이 요구하는 서비스 품질(QoS)을 제공하기 위한 기능적, 절차적 수단 제공
- 전송 단위(PDU) : 패킷(Packet)
- 장비 : 라우터, L3 스위치
- 프로토콜 : IP, ICMP 등
4 계층 : 전송 계층(Transport Layer)
발신지에서 목적지(End-to End)간 제어와 에러를 관리한다. 패킷(Packet)의 전송이 유효한지 확인하고 전송에 실패된 패킷을 다시 보내는 것과 같은 신뢰성 있는 통신을 보장하며, 헤드에는 세그먼트(Segment)가 포함된다.
주소 설정, 오류 및 흐름 제어, 다중화를 수행한다.
- EndPoint의 사용자들이 신뢰성 있는 데이터를 주고받게 해주는 역할
- 오류 검출 및 복구, 흐름 제어와 중복 검사 등을 수행
- 패킷 생성 및 전송 : 패킷들의 전송이 유효한 지 확인하고 전송 실패한 패킷들을 다시 전송
- 헤더에 포트 번호가 포함되어 있음, 포트 번호 : 디바이스에 있는 여러 프로세스 중 자기가 가야할 프로세스를 구분하기 위해 필요한 번호
- 전송 단위(PDU) : 세그먼트(Segment)
- 장비 : 게이트웨이(GateWay), L4 스위치
- 프로토콜 : TCP, UDP, ARP, RTP
- TCP
- 대부분 TCP 사용
- 신뢰적인 전송 보장(패킷 손실, 중복, 순서 바뀜 등이 없도록 보장) - ACK 사용
- IP가 처리할 수 있도록 데이터를 여러 개의 패킷으로 나누고, 도착지에서 완전한 데이터로 패킷을 재조립
- 데이터 전송 단위 : 세그먼트
- UDP
- 비연결성, 비신뢰성 서비스
- TCP와 다르게 패킷을 나누고 재조립하는 과정 없이, 수신지에서 제대로 받는지 상관하지 않고, 데이터를 보내기만 한다(에러와 그에 따른 재전송, 대체는 애플리케이션에서 처리해야 함).
- 속도가 빠르다(Real Time 서비스에 좋음)
- 데이터 전송 단위 : 블록 형태의 다이어그램
- TCP
5 계층 : 세션 계층(Session Layer)
통신 세션을 구성하는 계층으로, 포트(Port) 번호를 기반으로 연결한다. 통신 장치 간의 상호 작용을 설정하고 유지하며 동기화한다.
동시 송수신(Duplex), 반이중(Half-Duplex), 전이중(Full-Duplex) 방식의 통신과 함께 체크 포인팅과 종료, 다시 시작 과정을 수행한다.
- Session(세션) : 클라이언트와 웹 서버 간 네트워크 연결이 지속 유지되고 있는 상태(사용자가 브라우저를 열어 서버에 접속한 뒤 접속을 종료할 시점까지를 의미
- 네트워크 상 양쪽 연결을 관리하고 연결을 지속시켜주는 계층
- 세션 생성, 유지, 종료, 전송 중단 시 복구 기능 수행(OS가 세션 계층으로 이 역할 수행)
- TCP/IP 세션을 만들고 없애는 역할
- 통신하는 사용자들을 동기화하고 오류 복구 명령들을 일관적으로 다룬다.
- 프로토콜 : NetBIOS, SSH, TLS
6 계층 : 표현 계층(Presentation Layer)
송신 측과 수신 측 사이에서 데이터의 형식(png, jpg 등)을 정해준다. 받은 데이터를 코드 변환, 구문 검색, 인코딩 - 디코딩 및 암호화, 압축의 과정을 통해 올바른 표준 방식으로 변환해준다.
- 응용 계층(7 Layer)으로부터 전달받거나 전송하는 데이터의 인코딩 - 디코딩 및 암호화 등이 이루어지는 계층
- 코드 간의 번역을 담당하며 데이터의 형식상 차이를 다루는 부담을 응용 계층(7 Layer)로 부터 덜어준다
- 프로토콜 : JPG, MPEG, SMB, AFP
7 계층 : 응용 계층(Application Layer)
사용자와 바로 연결되어 있으며 응용 SW를 도와주는 계층, 사용자로부터 정보를 입력받아 하위 계층으로 전달하고 하위 계층에서 전송한 데이터를 사용자에게 전달한다.
파일 전송, DB, 메일 전송 등 여러 가지 응용 서비스를 네트워크에 연결해주는 역할을 한다.
- 응용 프로세스와 직접 관계하여 일반적으로 응용 서비스를 네트워크에 연결 및 수행하는 역할
- 사용자와 직접 접하는 유일한 계층
- 사용자로부터 정보를 입력받아 하위 계층으로 전달하고, 하위 계층에서 전송한 데이터를 사용자에게 전달
- UI 부분, I/O 부분
- 대표적인 프로토콜 : HTTP, DNS, Telnet, FTP 등
OSI 모델 전체 통신 Flow
- 전송 시 7 계층에서 1 계층으로 각각의 층마다 인식할 수 있어야 하는 헤더를 붙임(캡슐화)
- 수신 시 1 계층에서 7 계층으로 헤더를 떼어냄(디캡슐화)
- 출발지에서 데이터가 전송될 때 헤더가 추가되는데 2계층에서만 오류 제어를 위해 꼬리 부분에 추가 됨
- 물리 계층에서 1, 0 의 신호가 되어 전송매체(동축 케이블, 광섬유 등)을 통해 전송
TCP / IP 계층
OSI 7 계층보다 먼저 나온 규격이나 현재 더 많이 활용된다.
1 계층 - 네트워크 액세스 계층(Network Access Layer)
- OSI 7 계층의 물리계층(1)과 데이터 링크 계층(2)에 해당
- TCP/IP 패킷을 네트워크 매체로 전달하는 것과 네트워크 매체에서 TCP/IP 패킷을 받아들이는 과정을 담당
- 에러 검출 기능(Detection errors), 패킷의 프레임화(Fraimg packets)
- 네트워크 접근 방법, 프레임 포맷, 매체에 대해 독립적으로 동작하도록 설계
- 물리적인 주소로 MAC을 사용
- LAN, 패킷망 등에 사용
2 계층 - 인터넷 계층(Internet Layer)
- OSI 7 계층의 네트워크 게층(3)에 해당
- 어드레싱(Addressing), 패키징(Packaging), 라우팅(Routing) 기능을 제공
- 네트워크 상 최종 목적지까지 정확하게 연결되도록 연결성을 제공하게 됨
- 프로토콜 종류 : IP, ARP, RARP
3 계층 - 전송 계층(Transport Layer)
- OSI 7 계층의 전송 계층(4)에 해당
- IP와 Port를 이용하여 프로세스와 통신
- 애플리케이션 계층의 세션과 데이터그램(Datagram) 통신 서비스 제공
- 통신 노드 간의 연결을 제어하고, 신뢰성 있는 데이터 전송을 담당한다.
- 프로토콜 종류 : TCP, UDP
4 계층 - 응용 계층(Application Layer)
- OSI 7 계층의 세션 계층(5), 표현 계층(6), 응용 계층(7)에 해당
- 프로그램(브라우저)가 직접 인터랙트하는 레어어, 데이터를 처음으로 받는 곳
- 다른 계층의 서비스에 접근할 수 있게 하는 애플리케이션을 제공
- 애플리케이션들이 데이터를 교환하기 위해 사용하는 프로토콜을 정의
- HTTP, SMTP 등의 프로토콜을 가진다
- TCP / UDP 기반의 응용 프로그램을 구현할 때 사용한다
- 프로토콜 종류 - FTP, HTTP, SSH
'항해 99' 카테고리의 다른 글
TCP / UDP (0) | 2024.05.01 |
---|---|
Database Transation (0) | 2024.04.30 |
WIL - 12 (0) | 2024.04.28 |
멀티 프로세스 & 멀티 스레드 (1) | 2024.04.26 |
프로세스, 스레드 (0) | 2024.04.25 |