프로그래밍 용어

네트워크와 OSI 7 계층

kark 2024. 11. 7. 16:51
728x90

네트워크란?

두 대 이상의 컴퓨터가 데이터를 주고받기 위해 연결된 시스템을 말합니다.

네트워크의 목적은 정보를 공유하고 자원을 효과적으로 사용하는것이 목적이며,

다양한 프로토콜을 통해 데이터가 안전하고 정확하게 전송될 수 있게 구성된다.

 

OSI(Open Systems Interconnection) 7

OSI 7 계층 모델은 네트워크 통신을 7개의 계층으로 나누어 설명하는 모델이다.

각 계층은 특정 역할을 담당하는 것이 목적이며, 상호 독립적이면서도

다른 계층과 상호작용한 이후 데이터를 전송하게 된다.

 

 

1. 물리 계층

가장 아래의 계층으로 전기 신호, 무선 신호 등을 물리적 형태로 전송되는 것을 담당한다.

컴퓨터가 데이터를 구성하는 0 과 1의 뭉쳐진 형태를 떠올리면 된다.

 

2. 데이터 링크 계층

데이터의 물리적 전송에서 발생할 수 있는 오류를 제어함으로 안정적인 전송을 목적으로 한다.

연결된 단말기 간의 신뢰성을 작업하는 구간이라고 생각하면 된다.

 

해당 구간에서는 물리계층에서 받은 데이터를 분할한 패킷에 고유 식별자를 부여한다.

MAC 주소를 확인한 데이터 전달 과정

 

 

3. 네트워크 계층

데이터 패킷을 목적지까지의 경로를 결정하는 라우팅 기능을 담당한다.

이때 목적지의 경로를 단순 선택하는 방식이 아닌 라우팅 알고리즘을 통해 시간적 측면에서의 최단 경로를 결정하게 된다.

 

https://kark.tistory.com/90

 

라우팅 알고리즘 - Routing

라우팅 알고리즘은 네트워크에서 데이터 패킷이 목적지까지 가장 효과적으로 전달될 수 있게 최적의 경로를 결정하는 알고리즘이다. 라우팅 알고리즘의 여러가지 방식1. 정적 라우팅과 동적

kark.tistory.com

 

4. 전송 계층

 

본격적인 데이터 전송을 담당하는 계층으로 데이터의 신뢰성과 흐름을 제어하며 오류 검출, 복구를 담당한다.

0과 1 로 이루어진 데이터만 가지고는 어떤 프로그램에 반영되어야 하는지 모른다.

이때 대상의 어떠한 포트로 해당 데이터가 들어가야하는지 결정된다.

여기서 대표적으로 TCP , UDP 2개의 프로토콜 방식으로 네트워킹 구조가 결정된다.

https://kark.tistory.com/89

 

TCP 와 UDP

TCP와 UDP 는 OSI 4계층(전송 계층) 에서 데이터를 전달하는 두 가지 주요 프로토콜이다. TCP Transmission Control ProtocolTCP는 신뢰성 있는 데이터 전송을 보장하는 프로토콜이다.데이터를 보내는 쪽과 받

kark.tistory.com

 

5. 세션 계층

두 장치간 통신 세션을 설정하고, 유지하며, 종료하는 역할을 한다.

예를들어 무전 통신시에 동시에 음성을 송출하게 되는 경우 서로 전달사항을 듣지못하고 소통 오류로 이어진다.

그러므로 한쪽에서 하고싶은 말이 끝나면 '오버' 라는 구호로 자신의 전달이 끝났음을 알리고,

상대방의 입장에서 '확인했음 오버'라는 말로 정상적으로 소통되는 시스템을 예로 들 수 있겠다.

 

6. 표현 계층

데이터를 그대로 보내버리게 될경우 보안상 문제가 생길 수 있다.

이러한 문제점을 보완하기 위한 계층이다. 데이터 형식을 암호화, 압축, 변환 같은 가공을 거쳐

보안의 취약점을 어느정도 해소 할 수 있다.

 

영화 '이미테이션 게임'에서 이처럼 가공된 데이터를 해석하려는 장면을 떠올리면 된다.

외부에서는 이 데이터를 해석하기위한 패턴을 파악하기 위해서는 하루 이상의 시간이 필요하지만

암호화 패턴은 24시간 기준으로 매번 바뀌게 된다. 그냥 생각나서 기입함

 

7. 응용 계층

받은 데이터를 어떻게 사용할지를 결정, 프로그램의 목적에 맞게 사용된다.

사용자와 네트워크 애플리케이션간 상호작용을 담당하며,

이 때 비로소 사용자에게 네트워크 서비스를 제공할 수 있게 된다.

 

OSI 의 장점

각 계층의 기능이 명확히 구분되어 있어, 네트워킹 소프트웨어 개발 시 일관된 규격을 유지할 수 있으며

OSI 특징을 숙지한 사람의 경우 이 구조를 쉽게 파악할 수 있다.

 

계층별 문제를 빠르게 파악할 수 있고, 각 계층이 독립적이므로 업그레이드, 교체에 보다 쉽게 대응할 수 있다.

'프로그래밍 용어' 카테고리의 다른 글

마이그레이션이란? Migration  (0) 2024.11.15
TCP 와 UDP  (1) 2024.11.07
객체지향(OOP) 4대 특징  (0) 2024.07.21
객체지향(OOP) - 객체란?  (0) 2024.07.21
매개변수(Parameter) 와 인자(Argument)의 차이  (0) 2024.07.15