프로토콜
프로토콜이란?
프로토콜은 통신 시스템이 데이터를 교환하기 위해 사용하는 [통신 규칙]
OSI 7계층 모델에서는 각 계층에서 수행되는 프로토콜이 서로 독립적이라고 간주
계층 1에는 계층 1끼리 통신할 수 있는 프로토콜이 존재,
데이터 단위
네트워크 프로토콜을 사용해 데이터를 교환할 때는 먼저 데이터를 특정 형태로 규격화 하는 작업이 필요, 데이터를 프로토콜에 맞춰 묶어준다.
OSI 7계층 모델의 각 계층에서 규격화된 데이터는 고유 명칭이 있으며, 계층에 상관없이 사용할 때는 통칭하여 PDU라고 부른다.
OSI 7 Layer
특징이 다른 여러 호스트를 서로 연결해 통신하려면 연결 방식을 표준화해야 한다. 국제 표준화 단체(ISO)에서 OSI(Open System Interconnection) 7계층 모델을 제안했고, 네트워크에 연결된 시스템이 갖추어야 할 기능을 상세히 정의함
*호스트 => 통상, 네트워크상에 접속되어 통신가능한 노드를 의미
OSI 7계층 모델에 따르면, 네트워크에 연결된 호스트는 7개 계층으로 모듈화된 통신 기능을 갖추어야 한다. 일반 사용자는 OSI 7계층 맨 위에 있는 응용 계층을 통해 데이터의 송수신을 요청하며, 이 요청은 하위 계층으로 순차적으로 전달되어 맨 아래에 있는 물리 계층을 통해 상대 호스트에 전송 된다.
즉, 데이터를 송수신하는 최종 주체는 송수신 호스트 양쪽에 위치한 응용계층이고, 하부의 계층은 데이터 전송에 필요한 기능만 나누어 처리 함. (응용계층 하부의 계층들의 기본 역할은 신뢰성 있는 데이터 전송 보장)
7계층 모델의 각 계층은 고유 기능을 수행하며, 하위 계층이 바로 위 계층에 서비스를 제공하는 형식으로 동작한다.
1. 물리계층
물리적으로 네트워크를 연결하는 계층
ex) 랜선, 케이블, LAN카드(네트워크 카드) 등
2. 데이터 링크 계층
데이터 링크 계층은 두 포인트(Point to Point) 간 신뢰성 있는 전송을 보장하기 위한 계층으로, CRC 기반의 오류 제어 및 흐름 제어가 필요하다. 데이터 링크 계층은 네트워크 위의 개체들 간 데이터를 전달하고, 물리 계층에서 발생할 수 있는 오류를 찾아내며 수정하는데 필요한 기능적, 절차적 수단을 제공한다.
일반적으로 오류제어는 송신자가 원 데이터를 재전송 하는 방법으로 처리함.
*CRC(순환 중복 검사) => 네트워크 등을 통하여 데이터를 전송할 때 전송된 데이터에 오류가 있는지를 확인하기 위한 [체크값]을 결정하는 방식을 말한다.
데이터 링크 계층은 MAC계층과 LLC 계층으로 나뉜다.
(1) MAC(Medium Access Control) 계층
MAC 계층에서는 각 장치에 할당된 고유한 MAC 주소를 관리하고, 데이터를 물리적인 매체를 통해 전송하기 위한 제어를 수행한다.
직접적으로 네트워크 매체에 접근해 데이터를 전송하고, 충돌 관리와 주소 할당 등의 기능을 수행해 네트워크의 효율성과 신뢰성을 높임
상세 설명
MAC 계층은 전송 선로의 물리적 특성을 반영하므로 LAN 종류에 따라 특성이 구분된다. LAN 환경을 위한 MAC 계층은 종류가 다양한데, 공유 버스 방식을 지원하는 이더넷과 링 구조를 지원하는 토큰 링 방식이 대표적이다.
MAC주소 - 사람의 이름처럼 네트워크 카드마다 붙는 고유한 이름
데이터 링크 계층에서는 상호 통신을 위해 MAC주소를 할당 받는다.
프레임 - 데이터 링크 계층에서는 전송 데이터를 프레임(Frame)이라는 작은 단위로 나누어 처리한다.
- 프로엠 내용에 구체적으로 어떤 정보가 포함되는지는 프로토콜의 용도에 따라 다양하게 정의할 수 있다. 일반적으로 프레임은 내부 정보를 표현하는 방식에 따라 문자 프레임과 비트 프레임으로 구분된다.
이더넷 - CSMA/CD 방식의 LAN환경에 관해 규정한 표준안
슬라이딩 윈도우 프로토콜 -> 실제 통신 환경에서는 대부분 양방향으로 통신이 이루어진다. 슬라이딩 윈도우 프로토콜은 두 호스트 간의 데이터 전송을 위한 일반적인 통신 프로토콜로, 오류 제어와 흐름 제어 기능을 함께 지원한다. (데이터 검증이 필요하기 때문에 전송오류를 검출하는 슬라이딩 윈도우 프로콜을 사용함, 토큰 링, 토큰 버스구조는 송신 호스트가 수신 호스트의 도움 없이 전송 오류 검출과 재전송을 할 수 있어서 불필요함)
절차 예시
프레임을 보낼때 송신 호스트는 프레임의 순서번호, 오류 검출 코드 등을 프레임에 표기한 후에 정해진 순서번호에 따라 순차적으로 송신
- 정보 프레임을 받은 수신 호스트는 송신 호스트에 응답 프레임을 회신해야하는데 일반적으로 응답 프레임의 내용에 포함되는 순서 번호는 정상적으로 수신한 프레임의 번호가 아니라, 다음에 수신하기를 기대하는 프레임 번호를 표기, 따라서 긍정 응답 프레임에 기록된 순서 번호 이전까지의 프레임은 모두 정상적으로 수신했다는 의미가 된다.
- 송신 호스트는 송신한 정보 프레임을 자신의 내부 버퍼에 유지해야하며, 이를 송신 윈도우라고 한다. 송신 윈도우에서 대기하는 정보 프레임은 송신 호스트가 수신 호스트에게 프레임 전송을 완료했지만, 아직 호스트에게 긍정 응답을 받지 못한 프레임
* 윈도우 = 버퍼
(슬라이딩 윈도우 프로토콜로 버퍼의 크기를 알려주면 송신자가 수신자가 수신 가능한 만큼 데이터를 전달 함) 이러한 TCP프로토콜의 특성을 흐름제어라고 함
- 수신 호스트는 수신한 정보 프레임을 보관하기 위해 내부 버퍼인 수신 윈도우를 유지할 수 있다. 수신 윈도우에는 개념적으로 수신을 기대하는 프레임의 순서 번호가 들어가기 때문에 프로토콜의 동작 방식에 따라 크기가 달라질 수 있다.
+ 선택적 재전송 방식 : 프레임의 도착이 비순서적으로 이루어져도 처리가 가능하기 때문에 수신 윈도우의 크기가 송신 윈도우의 크기와 동일함
+ 고백 N(Go-Back-N) 방식에서는 수신 호스트가 항상 이전에 수신한 프레임 바로 다음 프레임만 기다리기 때문에 수신 윈도우의 크기가 1이면 충분하다.
CSMA/CD 란?
CSMA/CD
(다중접근채널) 방식을 이용하여 공유 매체에 프레임을 전송하는 방식에서는 데이터 충돌 가능성이 항상 존재 하므로 공유버스에 데이터가 전송중인지 확인해야함 확인 후 전송을 할때는 모든 호스트에 데이터가 전송 되지만 수신할 이유가 없으므로 목적지인 호스트만 데이터를 수신함
토큰 링
마찬가지로 토큰을 획득한 호스트만 데이터를 전송 가능
대기모드, 전송모드로 구분되어 있으며, 대기모드일 경우 입력단으로 들어온 비트를 출력단으로 즉시 내보냄, 링 네트워크를 유지하는 역할만 수행한다.
프레임을 전송 한 후 링을 한 바퀴 돈 후 송신 호스트에게 다시 되돌아 오도록 설계되어 있음. 프레임의 목적지 주소가 동일한 호스트가 해당 프레임을 수신했다고 프레임 내부의 특정 위치에 표시하고 송신 호스트는 되돌아온 프레임의 특정 위치 값을 확인함으로써 프레임이 올바르게 전송되었는지 확인할 수 있음
토큰버스
물리적으로는 버스구조로 연결되지만 논리적 데이터 전달은 링 구조. 프레임을 전송하는 방식이 호스트 사이에 순차적으로 이루어 지도록 Token이라는 개념을 사용함 Token을 받은 사용자만 데이터 프레임을 전송할 수 있다. (토큰링과 버스 방식의 장점을 포함하는 방식, 토큰을 만들고 우선순위를 지정할 때 좋은 메모리를 사용해야 하기 때문에 사용자 부담이 큰 통신방식)
(2) LLC(Logical Link Control)계층
주로 상위 네트워크 계층과 데이터 링크 계층 사이의 인터페이스 역할을 함
- 논리적 링크 제어 : 데이터의 흐름을 제어하고, 논리적인 연결을 설정 및 해제하는 기능을 수행
- 다중 프로토콜 지원 : 다양한 네트워크 프로토콜을 지원하며, 상위 계층의 여러 응용 프로그램이 데이터 링크 계층을 통해 효율적으로 통신할 수 있도록 함
- 프레임 동기화 : 상위 계층에서 받은 데이터를 프레임으로 분할하거나 결합하여 하위 계층으로 전달
LLC는 네트워크 통신의 논리적인 측면을 다루며, 여러 네트워크 프로토콜을 지원하여 상위 계층과의 효율적인 데이터 전송을 담당
데이터링크 계층의 대표적인 네트워크 장비 => 스위치
스위치는 데이터를 프레임으로 분할하고 전송하며, 네트워크의 여러 장치 간에 데이터를 라우팅하고 전달하는 역할을 한다. (데이터 링크 계층에서 동작하며, LLC 계층의 역할 중 일부를 수행하는 장비)