[네트워크] OSI 7계층

Narcoker·2023년 5월 29일
0

네트워크

목록 보기
1/12

OSI 7계층

OSI(Open Systems Interconnection Reference Model)란

초기 여러 정보 통신 업체 장비들은 자신의 업체 장비들끼리만 연결되어 호환성이 없었다.
이를 연결하기 위해 나온 개념

국제표준화기구(ISO)에서 개발한 모델로,
컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다.

모델은 프로토콜을 기능별로 나눈 것이다.
각 계층은 하위 계층의 기능만을 이용하고, 상위 계층에게 기능을 제공한다.

'프로토콜 스택' 혹은 '스택'은 이러한 계층들로 구성되는 프로토콜 시스템이 구현된 시스템을 가리키는데,
프로토콜 스택은 하드웨어나 소프트웨어 혹은 둘의 혼합으로 구현될 수 있다.

일반적으로 하위 계층들은 하드웨어로, 상위 계층들은 소프트웨어로 구현된다.

계층 분리로 얻을 수 있는 이점

통신이 일어나는 과정을 단계별로 알 수 있고,
특정한 곳에 이상이 생기면 그 단계만 확인하고 수정할 수 있기 때문이다.

물리 계층(Physical layer)

네트워크의 기본 네트워크 하드웨어 전송 기술을 이룬다.
단기 데이터 전기적인 신호로 변환 해서 주고 받는 기능을 진행하는 공간이다.

사용 장비에는 리피터, 케이블, 허브 등이 있다.

전송 단위는 Bit이다.

포인트 투 포인트(Point to Point) 간 신뢰성있는 전송을 보장하기 위한 계층이다.

포인트 투 포인트란,
통신 시스템에서 두 개의 노드 또는 장치 사이에 직접적인 연결을 가리키는 용어.

포인트 투 포인트 통신은 하나의 송신자와 하나의 수신자 간에 통신이 이루어지는 방식을 의미한다.
이는 일반적으로 1:1 통신이라고도 한다.

컴퓨터와 터미널 간에 지속적인 대화와 빠른 응답이 필요하는 경우나
컴퓨터 시스템이 다른 대형 컴퓨터 에 연결되어 터미널처럼 사용되는 경우에 주로 사용한다.

CRC 기반의 오류 제어와 흐름 제어가 필요하다.

CRC(Cyclic Redundancy Check)

데이터 전송 중 발생할 수 있는 오류를 감지하는데 사용되는 오류 제어 기법이다.

송신 측이 임의의 다항식을 사용하여 CRC 계산을 수행하여 생성된 체크섬을 데이터에 추가한다.
수신 측은 수신된 데이터와 체크섬을 사용하여 CRC 계산을 수행하고 체크섬과 비교하여
일치여부를 확인한다. 일치하지 않는다면 오류가 발생했다는 뜻이다.

흐름제어

수신 측의 상태에 따라 송신 측의 데이터 전송 속도를 조절하는 것을 말한다.
슬라이딩 기법, Stop and Wait 등이 있다.

Mac 를 통해 통신한다.
Frame에 Mac 주소를 부여하고 에러 검출, 재전송, 흐름제어를 진행한다.

데이터 링크 계층의 가장 잘 알려진 예는 이더넷이다.

사용 장비에는 브릿지 스위치 등이 있다.

데이터 전송 단위는 Frame이다.

네트워크 계층(Network layer)

노드 경로를 찾아주는 역할을 하는 계층으로
라우터를 통해 이동할 경로를 선택하여 IP 주소를 지정하고 경로에 따라 데이터를 전달한다.

네트워크 계층은 라우팅, 흐름 제어, 세그멘테이션(segmentation/desegmentation),
오류 제어, 인터네트워킹(Internetworking) 등을 수행한다.

  • 흐름제어 : 두 컴퓨터 간의 전송 속도를 맞추어 주는 것
  • 세그멘테이션 : 위에서 받은 데이터를 특정 사이즈로 나누는 기능 → 완전한 전송이 되지 않아도 일부를 볼 수 있고 데이터 손실률도 줄일 수 있음
  • 오류제어 : 오류가 생긴 데이터를 다시 보내주는 것
  • 인터네트워킹 : 독립적으로 움직이는 개개의 네트워크 간의 접속 의미

데이터 전송 단위는 Datagram(Packet)이다.

전송 계층(Transport layer)

양 끝단(End to end)의 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 해 주어,
상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해준다.
시퀀스 넘버 기반의 오류 제어 방식을 사용한다.

전송 계층은 특정 연결의 유효성을 제어하고,
일부 프로토콜은 상태 개념이 있고(stateful), 연결 기반(connection oriented)이다.
이는 전송 계층이 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들을 다시 전송한다는 것을 뜻한다.

가장 잘 알려진 전송 계층의 예는 TCP, UDP이다.

데이터 전송 단위는 Segment이다.

세션 계층(Session layer)

양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다.
동시 송수신 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(Full Duplex)의 통신과
함께, 체크 포인팅과 유휴, 종료, 다시 시작 과정 등을 수행한다.

이 계층은 TCP/IP 세션을 만들고 없애는 책임을 진다.

표현 계층(Presentation layer)

코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을
응용 계층으로부터 덜어 준다.

MIME 인코딩이나 암호화, 포장, 압축 등의 동작이 이 계층에서 이루어진다.

사용 예시로 JPEG, MPEG 등이 있다.

응용 계층(Application layer)

응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다.
사용자 인터페이스, 전자우편, 데이터베이스 관리 등의 서비스를 제공한다.

사용 예시로는 HTTP, FTP, DNS 등이 있다.

profile
열정, 끈기, 집념의 Frontend Developer

0개의 댓글