youngseo's TECH blog

[네트워크] OSI 모델과 TCP/IP 프로토콜 본문

CS/네트워크

[네트워크] OSI 모델과 TCP/IP 프로토콜

jeonyoungseo 2023. 3. 31. 20:24

먼저 이 둘에 대해 알아보기 전에 패킷, 그리고 프로토콜에 대해서 알아보자.

패킷?
패킷은 네트워크에 접속되어 있는 컴퓨터끼리 통신을 통해 주고받는 데이터 단위를 의미한다.

이후 배우게 되겠지만 IP패킷의 구성은 다음과 같은 모습이다.

프로토콜?
교수님 말씀에 의하면 "아, 나는 그 사람과 프로토콜이 좀 안 통해" 라는 말을 자주 쓴다고 한다.(..?)
암튼 프로토콜이란 서로 떨어져 있는 컴퓨터끼리 통신을 수행하기 위한 약속을 말하며, 일종의 통신 규약이다.

프로토콜에는 아래와 같은 사항들이 들어간다.
구문 -- 데이터의 구조나 형식  ex. 서브넷 마스크 
의미 -- 비트들의 영역별 의미
타이밍 -- 언제 데이터를 전송할지, 얼마나 빨리 전송할지?

OSI 모델에서 계층구조, 계층 간 인터페이스, 각 계층의 기능

OSI 모델의 가장 큰 특징은 기능들이 구분되어 있다는 것이다. 또한, 각 계층은 바로 아래 계층의 서비스를 요구한다. 제3 계층은 제 2계층에서 제공하는 서비스를 이용하고, 제 4계층에게 서비스를 제공하는 형태이다. 계층 간에는 interface가 존재하여 한 계층이 바로 위 계층에게 제공해야 하는 정보와 서비스를 정의한다.

각 계층에 대해 더 자세히 알아보자!

제 1계층, 물리

인터페이스와 매체의 물리적인 특성에 대해 다룬다. 
개별 비트들을 한 노드에서 다음 노드로 전달해야 하는 책임을 가진다.

비트의 표현, 데이터 전송률, 비트의 동기화, 회선 구성, 물리적 접속 상태, 전송 모드 등에 절차들과 기능들을 규정한다.

제 2계층, 데이터 링크층

네트워크층에게 물리층의 오류가 없다는 것을 알려주는 역할을 한다.
프레임 구성, 물리 주소 지정, 흐름 제어/오류 제어/접근 제어 등의 절차들과 기능들을 규정한다.

제 3계층, 네트워크층

각 패킷이 발신지에서 목적지까지 갈 수 있도록 책임진다.
논리 주소(패킷에 송신자-수신자 사이 논리 주소를 포함하는 헤더를 더함) 지정, 경로(라우터, 스위치) 지정 등의 절차들과 기능들을 규정한다.

제 4계층, 전송층

전체 메시지의 프로세스-대-프로세스 전달을 책임진다.
발신지-목적지 레벨에서 세부적인 관계(프로세스)도 신경쓰고, 다양한 제어를 책임진다.
서비스 지점 주소 지정(헤더에 port 주소가 포함됨), 분할과 재조립, 연결 제어/흐름 제어/오류 제어 등을 담당한다.

제 5계층, 세션층

통신 시스템 간 상호 대화를 설정/유지/동기화 한다.
대화 제어 - 두 시스템이 대화하는 것을 허용한다. 두 프로세스 간 통신 허용!
동기화 - 데이터 스트림에 확인점을 추가하는 것을 허용한다. 만약 100단위씩 확인점을 추가한다면, 523쪽 전송 중 문제가 생겼을 때 시스템이 복구된 후 501부터 523까지만 재전송하면 된다.!

제 6계층, 표현층

두 시스템 간 교환되는 정보의 구문(syntax)과 의미(semantic)와 관련 있다.
변환 - 송신자의 표현층은 송신자 의존 형식을, 수신자 표현층은 수신자 의존 형식으로 변경한다.
암호화 - 송신자가 원래의 정보를 다른 형식으로 변환하고 변환된 메시지를 네트워크를 통해 보낸다.
압축 - 텍스트/오디오/비디오 같은 멀티미디어 전송 시 압축하여 보낸다.

제 7계층, 응용 계층

전자 우편, 원격 파일 접속과 전송, 공유된 DB 관리, 분산된 정보 서비스 등 서비스를 제공하고 사용자 인터페이스를 제공한다.
네트워크 가상 터미널, 파일 전송/접근/관리, 전자우편 서비스, 디렉토리 서비스

 

TCP/IP 포로토콜에서의 각 계층의 기능

간단하게 각 계층에서 사용되는 프로토콜을 요약하면 다음과 같다.

위 그림을 잘 보면, TCP/IP 프로토콜 그룹에는 세션과 표현층이 빠져 있는 것을 볼 수 있다. 이 이유는 간단히 예기하면, TCP/IP는 OSI 모델과는 조금 달리, 각 모듈이 독립적이지 않고, 시스템의 요구에 따라 혼합되고 대응될 수 있도록 설계되어 있다. 따라서 7,6,5가 계층 하나로 묶여 있다.

제 1계층, 물리

물리층의 통신 단위는 비트이다. 물리층의 책임은 비트의 전달을 추가하여 OSI 모델 물리층의 책임과 일치한다.

제 2계층, 데이터 링크층

데이터 링크의 통신 단위는 프레임이라는 패킷이다. 네트워크층으로부터 받은 데이터에 헤더가 더해지고 트레일러가 더해져 캡슐화된 패킷을 의미한다. 
이 헤더 안에는 프레임의 발신지와 목적지가 포함되어 있는데, 목적지 주소는 프레임의 정확한 수신자를 규정하는 데에 필요하고, 발신지는 프로토콜에 의해 요구될 수 있는 가능한 응답이나 확인응답을 위해 필요하다. 
즉, 물리층 사이의 이동을 위해 서로 다른 형식의 프레임들이 끼워 맞추어지는 과정이라고 보면 된다.

제 3계층, 네트워크층

여기서 IP(인터넷 프로토콜)를 지원하며, 통신단위는 데이터그램이다.
IP는 3개의 지원 프로토콜(ARP, ICMP, IGMP)을 포함한다.

IP
IP는 각기 개별적으로 전송되는 데이터그램(datagram)이라는 패킷 형태로 데이터를 전송한다. 데이터그램은 서로 다른 경로로 전달될 수 있어 순서대로 도착하지 않거나 중복되어 도착할 수 있다. IP는 경로를 기록하지 않고, 일단 목적지에 도착한 데이터그램을 재전송하지도 않는다는 약점이 있다. 하지만 사용자가 주어진 응용에 필요한 기능을 자유롭게 추가할 수 있는 전송기능을 제공하여 최대한의 효율성을 제공한다는 장점이 있다.

ARP 
IP 주소를 물리적인 주소로 변환해준다. LAN과 같은 물리적인 네트워크에서 링크상의 각 장치는 네트워크 인터페이스 카드(NIC)의 물리 주소인 로컬 주소에 의해 구분된다. ARP는 인터넷 주소를 알고 있을 때 노드의 물리주소를 찾는 데 사용된다.

ICMP
송신자에게 데이터그램의 문제점을 알려주기 위해 호스트와 게이트웨이가 사용하는 메커니즘으로 조회와 오류보고 메시지를 보낸다.

제 4계층, 전송층

3개의 프로토콜 TCP, UDP, SCTP을 갖는다. 이 셋 모두 하나의 프로세스에서 다른 프로세스로 메시지를 전달하는 기능을 갖는 전송 레벨 프로토콜이다. 통신 단위는 세그먼트, 사용자 데이터그램, 패킷이며 종단-대-종단 통신이 이루어진다.
UDP(사용자 데이터그램 프로토콜)
포트 주소, 검사합 오류 제어, 상위 계층으로부터 받은 데이터의 길이 정보만 추가한다.
TCP(전송 제어 프로토콜)
신뢰성 있는 스트림 전송 프로토콜. 각 전송의 송신 종단에서 TCP는 데이터 스트림 세그먼트라는 작은 단위로 나눈다. 각 세그먼트는 수신된 세그먼트에 대한 확인응답 번호와 함께 수신 후에 순서를 맞추기 위한 순서 번호를 포함하고 있다.
SCTP(스트림 제어 전송 프로토콜)
UDP와 TCP의 장점을 결합한 전송 제어 프로토콜

제 5계층, 응용계층

사용자가 사설 인터넷이나 글로벌 인터넷에 접근하는 것을 허용한다. 전자 우편, 파일 전송, WWW 등 많은 프로토콜이 규정되어 있다. 통신 단위는 메시지이며 종단-대-종단으로 통신된다.

 

TCP/IP 프로토콜의 4가지 주소

TCP/IP에서는 계층과 관련한 주소를 지정하여 사용한다. 이에 대해 간단히 알아보자!

물리 주소=링크 주소
LAN이나 WAN에서 정의된 노드의 주소이다. 이는 데이터 링크층에 의해 사용되는 프레임에 포함된다.
이 주소의 크기와 형식은 네트워크에 따라 다양하다.
ex) 07:01:02:01:2C:4B

논리 주소=IP주소
현재 인터넷에 연결된 호스트를 유일하게 식별할 수 있는 32비트 주소체계를 사용한다. 인터넷 상의 두 호스트는 동일한 IP 주소를 사용할 수 없다.
ex) 192.168.123.132

포트 주소
프로세스에 할당된 레이블을 의미하며, 주소 길이는 16비트이다.
ex) :80 은 웹사이트 포트를 주로 의미한다.

응용 지정 주소
사용자에게게 친근한 주소를 사용하며, 이들 주소는 보내는 컴퓨터에 의해 대응되는 포트와 논리 주소로 변경된다.
ex) www.amazon.com