OSI Model: The 7 Layers of Network Architecture – BMC Blogs
1. 물리 계층(Physical layer)
- 물리 계층에서는 주로 전기적·기계적 특성을 이용해 통신 테이블로 데이터를 송·수신합니다.
- 통신 단위는 Bit이며, 데이터를 주고 받기 위해 전기 신호(아날로그 신호)를 사용합니다.
- 0과 1의 나열을 아날로그 신호로 바꾸어 전선으로 흘려 보내고, (encoding)
- 아날로그 신호가 들어오면 0과 1의 나열로 해석하여 (decoding)
- 물리적으로 연결된 두 대의 컴퓨터가 0과 1의 나열을 주고 받을 수 있게 해줍니다.
- 단, 물리계층에서는 데이터를 전달할 뿐 데이터의 내용이나 오류 등에는 관여하지 않습니다.
2. 데이터 링크 계층(Data link layer)
프레임 구성, 물리 주소 지정(MAC 주소), 흐름 제어, 오류 제어
-
데이터 링크 계층은 동일한 네트워크에 있는 기기 간의 전송을 촉진하며, Point to Point 간 신뢰성 있는 전송을 보장하기 위한 계층입니다.
- 발생 가능한 오류를 찾아내고 수정하는데 필요한 기능적·절차적 수단을 제공하는 오류 제어 기능과
- 송·수신 측 간의 속도 차이를 해결해 버퍼에 걸리지 않도록 하는 흐름 제어 기능을 수행합니다.
-
데이터 링크 계층에서는 MAC 주소(Media Access Control Address)를 통해 통신하는데,
- 이는 상호 통신을 위해 네트워크 카드마다 물리적으로 할당받는 주소값입니다.
-
이 계층에서의 데이터 전송 단위는 Frame이며,
- 여기에 Header와 Trailer를 추가하는데,
- Header에는 출발지와 목적지의 MAC 주소, 데이터 내용을 정의하며
- Trailer에서는 비트 에러를 감지합니다.
-
cf. 데이터 링크 계층은 두 개의 하위 계층(논리적 링크 제어(LLC) , 매체 접근 제어(MAC))으로 나뉩니다.
3. 네트워크 계층(Network layer)
패킷 전달, 논리 주소 지정(IP), 라우팅
- 네트워크 계층은 서로 다른 네트워크 간의 데이터 전송을 촉진하며, 데이터를 목적지까지 가장 안전하고 빠르게 전달하기 위한 계층입니다.
- 네트워크 특성, 경로, 서비스 우선 순위 등 다양한 요소를 기반으로 최적의 물리 경로를 찾아 라우팅(routing)하며,
- 여러 개의 노드를 거칠 때마다 경로를 찾아주는 역할입니다.
- 추가로 흐름 제어, 세그멘테이션(segmentation/desegmentation), 오류 제어, 인터네트워킹(Internetworking) 등을 수행합니다.
- 이 계층은 논리적 주소를 담당하고 패킷(Packet)의 전달 경로를 결정하는데,
- 논리적인 주소 구조(IP), 곧 네트워크 관리자가 직접 주소를 할당하는 구조를 가지며,
- 상위 계층에서 받은 데이터에 목적지 호스트의 논리 주소를 Header에 추가하여 전송합니다.
- 즉, 수많은 네트워크들의 연결로 이루어지는 Internetwork 속에서 목적지 컴퓨터로 데이터를 전송하기 위해 IP 주소를 이용해 라우팅하고, 다음 라우터로 패킷을 전달하는(forwarding) 계층입니다.
4. 전송 계층(Transport layer)
세그먼트 분할·조립, 서비스 지점 주소 지정(Port), 연결 제어, 흐름 제어, 오류 제어
-
전송 계층은 양 끝단(End to end)의 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 하는 계층으로, 상위 계층에서 데이터 전달의 유효성이나 효율성을 생각하지 않도록 합니다.
- 오류 제어, 흐름 제어 및 정체 제어와 같은 메커니즘을 제공하여 데이터 패킷을 추적하고, 오류와 중복을 확인하고, 전송에 실패한 정보를 재전송합니다.
- 데이터 전송 단위는 Segment이며,
- 송신 시, 데이터 분할을 통해 각 세그먼트에 시퀀스 넘버를 부여하고
- 수신 시, 시퀀스 넘버에 따라 재조립하여 데이터의 무결성과 정확성을 검사합니다.
-
이 계층에서는 서비스 지점 주소를 지정하는데,
- 하나의 컴퓨터에서 동시에 실행되고 있는 프로세스들을 구분할 수 있는 주소값, 포트 번호를 사용하여
- 도착지 컴퓨터의 특정 프로세스에 응답하여 데이터가 전송되도록 보장합니다.
-
전송 프로토콜의 대표적인 예로는 TCP와 UDP가 있습니다.
- TCP(Transmission Control Protocol)는 연결형 프로토콜로, 신뢰성이 요구되는 App에서 사용합니다.
- 송신측과 수신측의 연결을 확인한 후 데이터를 전송하며,
- 수신자 응답을 받아 필요한 경우, 데이터를 재전송할 수 있습니다.
- UDP(User Datagram Protocol)는 비연결형 프로토콜로, 간단한 데이터를 빠른 속도로 전송하는 App에서 사용합니다.
- 송신측과 수신측의 연결을 거치지 않고 일방적으로 데이터를 전송하며,
- 수신측으로부터 응답을 따로 받지 않습니다.
5. 세션 계층(Session layer)
대화 제어, 체크포인트 동기화
- 세션 계층은 서버 간의 세션을 관리하여 데이터 통신을 조정하는 계층입니다.
- 세션은 프로세서들이 서로를 인식하고 데이터 송수신을 마칠 때까지의 시간을 의미하며,
- 이 계층은 모든 데이터를 전송할 수 있도록 세션을 개방한 후 리소스를 낭비하지 않기 위해 세션을 즉시 닫을 수 있도록 합니다.
- 프로세스 간의 상호 작용이나 대화 관리를 위해 전이중 방식(Full Duplex), 반이중 방식(half-duplex) 등을 사용합니다.
- 전이중 방식은 하나의 연결을 통해 데이터가 동시에 양방향으로 오고 갈 수 있는 방식이며,
- 반이중 방식은 데이터 토큰을 사용해 데이터 전달 권한을 확인하며, 전달에 대한 응답이 도착한 후 다른 전달을 수행하는 방식입니다.
- 데이터 전송을 체크 포인트와 동기화하는데,
- 데이터 전송 시, 체크 포인트를 설정하여 전송 도중 연결이 끊어지거나 충돌이 발생하면 마지막 체크 포인트에서 세션을 재개합니다.
6. 표현 계층(Presentation layer)
데이터 변환·암호화·압축
7. 응용 계층(Application layer)
- 응용 계층은 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행하는 계층입니다.
- 응용 계층은 소프트웨어가 사용자에게 의미 있는 데이터를 제공하기 위해 의존하는 프로토콜과 데이터를 조작하는 역할을 합니다.
- 사용자의 데이터와 직접 상호작용하며, 웹 브라우저 및 이메일 클라이언트와 같은 소프트웨어 애플리케이션이 통신을 돕는데,
- 여기서, 클라이언트 소프트웨어 애플리케이션은 응용 계층의 일부가 아니라는 점을 명확히 해야 합니다.
- 응용 계층의 프로토콜에는 HTTP, SMTP(이메일 통신을 위한 프로토콜) 등이 있습니다.
💡 About OSI 7 Layers
🚩 추가 개념