데이터 링크 계층을 알기 위해서는 LLC와 MAC계층, 프레임을 알 필요가 있다.
LLC는 오류 검사, 흐름 제어를 위한 데이터 링크 계층의 일부이고,
MAC계층은 물리적으로 데이터를 보내기 위한 데이터 링크 계층의 일부이다.
우선 프레임이다.
1. 프레임
프레임은 데이터 링크 계층으로 분할된 패킷이 ARP를 통해 MAC주소를 포함하여 만들어진 데이터의 단위이다.
프레임은
1-1. 정보 프레임
1-2. ACK 프레임(긍정 응답 프레임)
1-3. NAK 프레임(부정 응답 프레임)
이 3가지가 있다.
현대에는 TCP/IP 프로토콜 프레임을 많이 사용한다.
2. LLC 계층(오류, 흐름제어)
LLC 계층에서는 오류 검사, 흐름 제어를 한다.
우선, LCC계층이 무엇을 하는지 알아보기 위해 오류, 흐름 제어가 필요한 이유를 하나씩 추가하며 단계적으로 알아보겠다.
2-1. 오류, 흐름제어가 없는 프로토콜
우선 오류, 흐름 제어가 필요 없는 프로토콜이다.
위가 없기 위해서는
-단방향 통신
-전송 오류가 없는 물리 매체
-무한개의 수신 버퍼
하지만, 이는 많이 어렵다.
2-2. 오류 제어가 없는 프로토콜
오류제어가 필요 없는 프로토콜이다.
-단방향 통신
-전송 오류가 없는 물리 매체
무한개의 수신 버퍼가 빠졌으니, 송신 호스트의 데이터 송신이 너무 빨라지면, 버퍼 부족으로 프레임 분실 오류가 발생할 수 있다.
즉, 무한개의 수신 버퍼가 아닌 이상(모든 버퍼는 무한개가 아니다.) 흐름 제어가 필요하다.
2-3. 오류 제어, 흐름 제어가 필요한 프로토콜
-단방향 통신
3개 중 2개가 빠졌다.
전송 오류가 있는 물리 매체이니,
만일, 프레임이 전송되다 분실됬다.
오류 제어가 없으면, 송신 호스트는 무한하게 ACK를 기다리고, 수신 호스트는 프레임을 무한하게 기다리게 된다.
즉, 오류 제어와 흐름 제어가 필요한 프로토콜이다.
이때, 오류 제어로는 타임 아웃 기능, 혹은 ACK/NAK 프레임 기능이 필요하다.
2-3-1. 오류제어의 NAK이 없는 경우
일정 시간 내에 ACK가 오지 않을 시 재전송한다.
하지만, 만일 수신 호스트는 제대로 프레임을 받았는데, ACK가 송신 호스트에 가는 도중 분실 됬다면,
일정 시간내에 ACK가 오지 않았으니 재전송한다.
이는, 중복된 프레임이 가게 된 것이므로, 타임아웃만으로는 허술하다.
그렇기 때문에, 시퀀스 번호를 통해 중복된 프레임을 처리해야 한다.
2-3-2. 오류제어의 NAK이 있는 경우
NAK은 프레임이 변형되었을 시 보낸다.
즉, 타임아웃보다 빠르게 처리할 수 있게 되는 것이다.
3.LLC계층(슬라이딩 윈도우 프로토콜-흐름제어)
슬라이딩 윈도우 프로토콜을 알기 전에 알아둘 것이 있다.
-순서 번호: 정보 프레임에 프레임별로 고유하게 부여되는 순서 번호.(패킷 분할 시 생성. 0~최댓값.)
-윈도우: 수신 호스트가 연속으로 수신할 수 있는 정보 프레임.(순서 번호의 최대값보다 작은 크기이다.)
이제 슬라이딩 윈도우 프로토콜을 알아보자.
3-1. 슬라이딩 윈도우 프로토콜의 연속형 전송
->9개의 순서번호를 가진 프레임들이 있고, 송신, 수신 호스트에는 3의 크기를 가진 윈도우가 있다.
->송신 호스트는 0~2까지를 보낸다.
->수신 호스트는 ACK(3)를 보낸다.
->슬라이딩 윈도우 프로토콜은 0,1,2를 ACK했음을 알고, 윈도우를 3~5로 이동시킨다.
->위를 반복한다.
이를 연속형 전송이라 하는데, 만일 4의 순서 번호를 가진 프레임이 수신 호스트로 송신될 때, 오류가 발생했다고 하자.
이때, 이 오류를 제어하기 위한 2가지의 다른 방법이 있다.
3-1-1. 고백 N 방식
이 방식은 연속형 전송을 멈추지 않고 일단 다 보낸다.
그 후에 오류 난 부분(4)부터 다 버리고 4부터 다시 전송한다.
3-1-2선택적 재전송 방식
고백 N방식의 문제점을 해결하기 위해 나온 방식이다.
우선, 오류나기 전의 순서 번호만 ACK를 보낸후 오류 시 NAK를 보내고 오류난 프레임만 재전송받고 나머지 순서 번호의 ACK를 보낸다.
이렇게 되면, 윈도우의 맨 마지막에는 재전송된 순서번호가 들어가기 때문에 프레임의 도착 순서가 섞일 수 있다.
3-2. 슬라이딩 윈도우 프로토콜의 피기배킹
ACK와 NAK를 쓰지 않고, 현재 프레임 순서번호와 수신된 순서번호를 포함시켜 보낸다.
정보프레임과 응답프레임이 동시에 있어야 쓸 수 있지만, 정보프레임이 생길 예정일 시 응답 프레임의 회신을 잠시 늦춰 피기배킹 방식으로 전송할 수 있다.
'네트워크' 카테고리의 다른 글
데이터 전송 (0) | 2023.11.06 |
---|---|
라우팅 시스템, 네트워크의 구조 (0) | 2023.11.06 |