728x90
OSI 7 계층
- 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다.
계층을 나눈 이유
- 통신이 일어나는 과정을 단계별로 파악할 수 있기 때문이다.
- 흐름을 한눈에 알아보기 쉽고, 이해하기 쉽고, 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있다.
계층 단계
1계층 - 물리계층(Physical Layer)
- 주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송하게 된다.
- 통신단위는 비트이며 이것은 1과 0으로 나타내어지는, 전기적으로 on,off상태를 의미한다.
- 단지 데이터를 전달만 할뿐 전송하려는(또는 받으려는)데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경을 쓰지 않는다. 단지 데이터 전기적인 신호로 변환해서 주고받는 기능만 할 뿐이다. 이 계층에 속하는 대표적인 장비는 통신 케이블, 리피터, 허브등이 있다.
- 케이블, 리피터, 허브를 통해 데이터를 전송한다
2계층 - 데이터 링크계층(DataLink Layer)
- 물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 한다.
- 따라서 통신에서의 오류도 찾아주고 재전송도 하는 기능을 가지고 있다.
- 맥 주소를 가지고 통신한다.
- MAC 주소(Media Access Control address) : 네트워크 세그먼트의 데이터 링크 계층에서 통신을 위한 네트워크 인터페이스에 할당된 고유 식별자이다.
- 단 하나의 고유한 주소를 부여해서 통신을 할 수 있도록 만든 일종의 하드웨어 주소다.
- 영구적이고 전역적인 고유 식별을 위해 고안되었지만 현대의 대부분의 하드웨어의 MAC 주소를 변경할 수 있다. MAC 주소를 변경하는 일은 네트워크 가상화에서 필수적이다. 보안 취약점을 활용하는 과정에도 사용할 수 있는데, 이를 MAC 스푸핑(MAC spoofing)이라고 한다.
- 데이터 링크계층에서 전송되는 단위를 프레임이라고 하고, 대표적인 장비로는 브릿지, 스위치 등이 있다. → 브릿지나 스윗치를 통해 맥주소를 가지고 물리계층에서 받은 정보를 전달한다.
- 데이터 링크 계층은 포인트 투 포인트(Point-to-Point) 간 신뢰성있는 전송을 보장하기 위한 계층으로 CRC 기반의 오류 제어와 흐름 제어가 필요하다. 네트워크 위의 개체들 간 데이터를 전달하고, 물리 계층에서 발생할 수 있는 오류를 찾아 내고, 수정하는 데 필요한 기능적, 절차적 수단을 제공한다.
- CRC(cyclic redundancy check) 순환 중복 검사 : 네트워크 등을 통해 데이터를 전송할 때 전송된 데이터에 오류가 있는지를 확인하기 위한 체크값을 결정하는 방식. 데이터를 전송하기 전에 주어진 데이터의 값에 따라 CRC 값을 계산하여 데이터에 붙여 전송하고, 데이터 전송이 끝난 후 받은 데이터의 값으로 다시 CRC 값을 계산하게 된다. 이어서 두 값을 비교하고, 이 두값이 다르면 데이터 전송 과정에서 잡음 등에 의해 오류가 덧붙여 전송된 것임을 알 수 있다.
- 데이터 링크 계층의 가장 잘 알려진 예는 이더넷이다.
- 네트워크 브릿지나 스위치 등이 이 계층에서 동작하며, 직접 이어진 곳에만 연결할 수 있다.
- 프레임에 주소를 부여(MAC - 물리적주소), 에러검출/재전송/흐름제어를 한다.
3계층 - 네트워크 계층(Network Layer)
- 가장 중요한 기능은 라우팅이다.
- 라우팅 : 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능
- 여기에 사용되는 프로토콜의 종류도 다양하고, 라우팅하는 기술도 다양하다.
- 경로를 선택하고 주소를 정하고 경로에 따라 패킷을 전달해주는 것이 이 계층의 역할이다.
- 패킷(Packet) : 패킷 또는 네트워크 패킷은 네트워크를 통해 전송되는 형식화된 데이터 덩어리. 즉, 컴퓨터 네트워크에서 데이터를 주고받을 때 정해 놓은 규칙이다.
- 정보를 보낼 때 특정 형태에 맞추어 보내는것을 의미한다.
- 대표적인 장비는 라우터이다.
- 네트워크 계층은 여러개의 노드를 거칠때마다 경로를 찾아주는 역할을 하는 계층으로 다양한 길이의 데이터를 네트워크들을 통해 전달하고, 그 과정에서 전송 계층이 요구하는 서비스 품질을 제공하기 위한 기능적, 절차적 수단을 제공한다.
- 라우팅, 흐름 제어, 세그멘테이션, 오류 제어, 인터네트워킹 등을 수행한다.
- 데이터를 연결하는 다른 네트워크를 통해 전달함으로써 인터넷이 가능하게 만드는 계층이다.
- 논리적인 주소 구조(IP), 곧 네트워크 관리자가 직접 주소를 할당하는 구조를 가지며, 계층적(hierachical)이다.
- 서브네트워크의 최상위 계층으로 경로를 설정하고, 청구 정보를 관리한다. 개방형 시스템들의 사이에서 네트워크 연결을 설정, 유지, 해제하는 기능을 부여하고, 전송계층 사이에 네트워크 서비스 데이터 유닛(NSDU : Network Service Data Unit)을 교환하는 기능을 제공한다.
- 주소부여(IP), 경로설정(Route)
IP계층
- TCP/IP 상에서 IP 계층이란 네트워크의 주소(IP 주소)를 정의하고, IP 패킷의 전달 및 라우팅을 담당하는 계층이다.
- OSI 7계층모델의 관점에서 보면 IP 계층은 네트워크 계층에 해당한다.
- 패킷을 목적지까지 전달하는 역할 및 그에 수반되는 기타 역할을 한다.
- IP계층에서는 그 하위계층인 데이터링크 계층의 하드웨어적인 특성에 관계없이 독립적인 역할을 수행한다.
- IP계층 상에 있는 주요 프로토콜
- 패킷의 전달을 책임지는 IP
- 패킷 전달 에러의 보고 및 진단을 위한 ICMP
- 복잡한 네트워크에서 인터네트워킹을 위한 경로를 찾게해주는 라우팅 프로토콜
IP 프로토콜
- TCP/IP 기반의 인터넷 망을 통하여 데이타그램의 전달을 담당하는 프로토콜
- 주요 기능
- IP 계층에서 IP패킷의 라우팅 대상이 된다.
- IP 주소 지정
- 주요 특징
- 신뢰성(에러제어) 및 흐름제어 기능이 전혀없다. → Best-Effort Service
- 비연결성데이터그램 방식으로 전달되는 프로토콜 → Connectionless
- 패킷의 완전한 전달(소실, 중복, 지연, 순서바뀜이 없음)을 보장하지 않는다 → Unreliable
- IP 패킷 헤더 내 수신 및 발신 주소를 포함한다 - IPv4, IPv6 , IP주소
- IP 헤더 내 바이트 전달 순서 : 최상위 바이트(MSB)를 먼저 보낸다. → Big-endian
- 경우에 따라, 단편화가 필요하다. → IP 단편화 참조
- TCP, UDP, ICMP, IGMP 등이 IP 데이타그램에 실려서 전송된다.
4계층 - 전송 계층(Transport Layer)
- 통신을 활성화기 위한 계층이다. 보통 TCP 프로토콜을 이용하며, 포트를 열어서 응용프로그램들이 전송을 할 수 있게 한다. 만약 데이터가 왔다면 4계층에서 해당 데이터를 화나로 합쳐서 5계층에 던져 준다.
- 단대단 오류제어 및 흐름제어. 이 계층까지는 물리적인 계층에 속한다.(TCP/UDP 프로토콜을 사용한다.)
- 단대단(end-to-end) : 망을 경유한 양 끝 단말간의 종단간 통신을 말한다.
- 양 끝단(end to end)의 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 해 주어, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해준다.
- 시퀀스 넘버 기반의 오류 제어 방식을 사용한다.
- 전송 계층은 특정 연결의 유효성을 제어하고, 일부 프로토콜은 상태 개념이 있고(stateful), 연결 기반(connection oriented)이다. 이는 전송 계층이 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들을 다시 전송한다는 것을 뜻한다.
- 패킷 생성 및 전송
TCP 프로토콜(Transmission Control Protocol)
- OSI 계층모델의 전송 계층(4계층)에 해당한다.
- 양종단 호스트 내 프로세스 상호 간에 신뢰적인 연결지향성 서비스를 제공한다.
- IP의 비신뢰적인 최선형 서비스에다가 신뢰적인 연결지향성 서비스를 제공하게된다.
- 신뢰적인 전송을 보장함으로써, 어플리케이션 구현이 한층 쉬워진다.
- 특징
- 신뢰성 있다(Reliable)
- 패킷 손실, 중복, 순서바뀜 등이 없도록 보장한다.
- TCP 하위계층인 IP 계층의 신뢰성 없는 서비스에 대해 다방면으로 신뢰성을 제공한다.
- 연결지향적(Connection-oriented)
- 연결 관리를 위한 연결설정 및 연결해제가 필요하다.
- 신뢰성 있다(Reliable)
UDP 프로토콜(User Datagram Protocol)
- 전송 계층의 통신 프로토콜의 하나(TCP와 대비된다)
- 신뢰성이 낮은 프로토콜로써 완정성을 보증하지 않으나, 가상회선을 굳이 확립할 필요가 없고 유연하며 효율적 응용의 데이타 전송에 사용된다.
- 특징
- 비연결성이고, 신뢰성이 없으며, 순서화되지 않은 Datagram 서비스를 제공한다.
- 확인응답 없음
- 순서제어 없음
- 흐름제어 없음
- 오류제어 거의 없다 - UDP를 사용하는 프로그램 쪽에서 오류제어 기능을 스스로 갖추어야 한다.
- 실시간 응용 및 멀티캐스팅 가능
- 빠른 요청과 응답이 필요한 실시간 응용에 적합하다.
- 여러 다수 지점에 전송 가능하다.(1:多)
- 헤더가 단순하다
- UDP는 TCP 처럼 16비트의 포트 번호를 사용하나, 헤더는 고정크기의 8바이트(TCP는 20바이트 사용) 만 사용한다. 즉, 헤더 처리에 많은 시간과 노력을 요하지 않는다.
- 비연결성이고, 신뢰성이 없으며, 순서화되지 않은 Datagram 서비스를 제공한다.
5계층 - 세션 계층(Session Layer)
- 데이터가 통신하기 위한 논리적인 연결을 말한다.
- 세션 설정, 유지, 종료, 전송 중단시 복구 등의 기능이 있다.
- 세션 계층은 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다.
- 동시 송수신 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(Full duplex)의 통신과 함께, 체크 포인팅과 유휴, 종료, 다시 시작 과정등을 수행한다.
- 이 계층은 TCP/IP 세션을 만들고 없애는 책임을 진다.
- 통신하는 사용자들을 동시화하고 오류복구 명령들을 일괄적으로 다룬다.
- 통신을 하기 위한 세션을 확립/유지/중단 한다.
6계층 - 표현 계층(Presentation Layer)
- 데이터 표현이 상이한 응용 프로세스의 독립성을 제공하고, 암호화 한다.
- 표현 계층은 코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어준다. MIME 인코딩이나 암호화등의 동작이 이 계층에서 이루어진다.
- EBCDIC로 인코딩된 문서 파일을 ASCII로 인코딩된 파일로 바꿔 주는 것
- 해당 데이터가 TEXT인지, 그림인지 구분하는것이 표현 계층의 몫이다.
- 사용자의 명령어를 완성 및 결과 표현. 포장/압축/암호화
7계층 - 응용 계층(Application Layer)
- 최종 목적지로서 HTTP, FTP,SMTP, POP3, IMAP, TELNET 등과 같은 프로토콜이 있다.
- 해당 통신 패킷들은 방금 나열한 프로토콜에 의해 모두 처리되며 우리가 사용하는 브라우저나, 메일 프로그램은 프로토콜을 보다 쉽게 사용하게 해주는 응용 프로그램이다. 한마디로 모든 통신의 양 끝단은 HTTP와 같은 프로토콜이지 응용프로그램이 아니다.
- 응용 계층은 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다.
- 일반적인 응용 서비스는 관련된 응용 프로세스들 사이의 전환을 제공한다.
- 네트워크 소프트웨어 UI 부분, 사용자의 입출력(I/O)부분
HTTP 프로토콜(HyperText Transfer Protocol)
- 웹 상에서 웹서버 및 웹브라우저 상호 간의 데이터 전송을 위한 응용 계층 프로토콜
- 처음에는, www 상의 하이퍼텍스트 형태의 문서를 전달하는데 주로 이용했다.
- 현재에는, 이미지,비디오,음성 등 거의 모든 형식의 데이터를 전송 가능하다.
- 요청 및 응답의 구조
- 동작형태가 클라이언트/서버 모델로 동작
- 메세지 교환 형태의 프로토콜
- 클라이언트와 서버 간에 ‘HTTP 메세지’를 주고받으며 통신한다
- HTTP의 응답 및 요청 메세지를 구성
- HTTP 메세지 내 헤더 항목들
- 트랜잭션 중심의 비연결성 프로토콜
- 종단간 연결이 없다(Connectionless)
- 이전의 상태를 유지하지 않는다(stateless)
- 전송계층 프로토콜 및 사용 포트 번호
- 전송 계층 프로토콜 : TCP
- 사용 포트 번호 : 80번
TCP/IP Layer
- TCP/IP 프로토콜 통신 과정에 초점을 맞추어 OSI 7계층을 좀 더 단순화 시킨 계층을 의미한다.
- TCP/IP 4계층은, 애플리케이션 계층, 전송 계층, 인터넷 계층, 네트워크 접근 계층으로 이루어져 있다.
- 데이터 전송 시 ,데이터는 상위 계층에서 하위 계층으로 이동하고, 계층 이동마다 필요한 정보(헤더)가 추가된다. - 캡슐화 라고 한다.
- 데이터 수신 시, 데이터는 하위 계층에서 상위 계층으로 이동하고, 계층 이동마다 추가된 헤더를 읽고 알맞은 행동을 취한 후, 헤더를 제거한다. - 역캡슐화 라고한다.
1계층 - 네트워크 액세스 계층
- 데이터를 전기신호로 변환한 뒤, 물리적 주소인 MAC를 사용해, 알맞은 기기로 데이터를 전달하는 계층이다.
- 프로토콜로는 Ethernet, Wi-Fi, PPP, Token Ring과 같은 프로토콜이 사용된다.
2계층 - 인터넷 계층
- 패킷을 최종 목적지까지 라우팅하는 계층이다.
- 프로토콜로는 IP, ARP, ICMP, RARP, OSPF가 사용된다.
3계층 - 전송 계층
- 통신 노드 간 신뢰성 있는 데이터 전송을 보장하는 계층이다.
- 역캡슐화 과정에서, 포트 번호를 사용해 데이터를 정확한 애플리케이션에 전달하는 역할도 한다.
- 네트워크 액세스 계층과 인터넷 계층을 통해, 데이터가 목적지 기기까지 정상적으로 도착했다면, 전송 계층은 포트 번호를 사용해, 데이터를 목적지 기기 내 적절한 애플리케이션으로 전달한다.
- 프로토콜로는 TCP, UDP, RTP, RTCP가 있다.
4계층 - 애플리케이션 계층
- 사용자와 가장 가까운 계층으로, 사용자-소프트웨어 간 소통을 담당하는 계층이다.
- 애플리케이션을 실행하기 위한 데이터 형식이 작성된다.
- 프로토콜로는 HTTP, HTTPS, FTP, SSH, TELNET, DNS, SMTP가 있다.
728x90
'Computer > 서버 & 네트워크' 카테고리의 다른 글
HTTP(Hyper Text Transfer Protocol) (0) | 2024.02.25 |
---|---|
웹 서버 (0) | 2024.02.25 |
파일 식별자File Descriptor(FD) (0) | 2024.02.25 |
소켓/소켓 API (0) | 2024.02.25 |
클라이언트 - 서버 모델 (0) | 2024.02.24 |