■ Data Link Layer
- 물리 계층을 이용하여 디지털 정보 전송
- Frame 단위로 데이터 송수신
- 공유 통신 매체 관리
■ Data Link Layer 추가적 내용
- 물리 계층이 정상적으로 동작하는데 필요한 기본적인 소프트웨어 기능을 지원한다.
- 인접 노드 간 : 물리적(전기적)으로 연결된 이라고 생각하자.
- 데이터 전송을 책임짐 : 단순히 보내는 것으로 끝이 아님. 데이터 전송 중의 오류, 오류 수정 등, 데이터 전송 과정의 모든 것들을 포함해서 책임진다는 뜻으로 해석하자.
■ 최종 목적지까지의 전송은 책임지지 않음
- 물리 계층이 서로 연결돼 있는, 전기적으로 연결되어 있는 경우까지만 말함.(LAN 정도의 범위)
- 즉, LAN - 게이트웨이 - WAN - LAN 으로 이어지는 범위로의 전송의 경우는 책임지지 않음.
- 위의 그림으로 이해보자. PC2에서 PC3는 책임져줌. 왜냐? LAN이라는 범위 내에서 허브를 통하는것은 물리적 연결이 되어 있으니까.
- 그러나 PC2 - Hub - G.W(먼곳으로 가정) - PC1 의 전송은 책임지지 않음. 최종목적지까지 WAN 구간과 같은 먼 구간을 넘어가게 되니까.
■ Frame
- 데이터의 전송 단위
- 전송의 시작과 끝을 확인하는 동기화 필요
■ Frame 추가 내용
- 바이트 들의 묶음
- 데이터링크 계층에서 데이터의 묶음을 부를 때는 [프레임]이라고 기억하자.
■ 그림 설명
- 위의 주황색은 1계층, 아래는 2계층(데이터링크 계층)이다. 즉 아래 그림은 헤더가 붙은 모습이라 생각하면 된다.
■ MAC Address
NIC 등에 주어진 고유 번호
Data Link Layer에서 송수신을 위해 사용하는 식별 번호
계층 구조가 아님 (반대로 3계층의 IP는 계층구조다!)
■ 데이터링크 계층의 기본 기능
- 오류를 확인하고 때론 수정함 : 때론은 반드시 오류를 수정한다는 것이 아님.
- 전송 매체 공유를 관리함 : 예를 들면 철도가 있다. 철도의 선이 하나라면, 양쪽으로 오는 철도에 대한 제어와 관리가 필요하다. 기본적으로 이러한 관리는 물리계층에서 한다. 그러나 그 이상의 소프트웨어적인 관리가 필요한경우도 있다. 이럴 경우 [데이터링크 계층]에서 한다라는 뜻이다.
■ 멀티플렉싱
- 예를들면 4차선의 도로가 있다. 그런데 차선이 좁아지면, 자동차끼리 안부딫치게 관리가 필요하다. 이를 담당하는 것이 멀티플렉싱이라고 생각하면 된다.
- 소프트웨어적으로 우선순위, 순서를 지정해서 데이터 충돌을 방지한다고 생각하자.
- 하나의 선으로 모아줬다가 풀어주는 것
- 충돌 회피 or 감소를 위한 방법 제공 : 데이터의 충돌을 확인하고 복구
■ 디 멀티플렉싱
- 멀티플렉싱의 반대라고 생각하자.
- 분산시키는 것
■ 전송 확인은 선택 사항임을 잊지말자!
- check sum : 오류 검출이라고 생각하자.
■ 추가내용. 다음 3계층에서 배울 내용이다.
- 흐름제어 : 제대로 받았니? 응받았어. 다음꺼 보내줘.
- 오류 확인 그리고 알림 : 어? 이 데이터 못받았어. 똑똑! 나 뭔가 못받았어.
- 재전송 : 알았어. 다시 보내줄게.
- 참고로 이 기능들은 2계층에서도 할 수 있다. 그러나 만약 못하면 다음 3계층에서 수행한다.
■ 이더넷에서 사용하는 프레임의 구조
■ 2계층은 도착지 안 책임진다며? 근데 왜 2계층 헤더(출발지, 목적지 맥주소)를 쓰는거야? 그리고 맥주소는 왜 써?
- Dest. IP / Source IP는 LAN을 벗어난 WAN과 같은 넓은 곳, 확장된 범위로 나갈 때 알기 위한 주소라고 생각하자.
- 그리고 MAC주소는 물리적으로 연결된, 즉 허브에 연결된 기계들끼리(위보다 좁은 범위) 알기 위한 주소라고 생각하자.
- 결론 : 맥주소는, 물리적으로 연결되어 있는 디바이스 간의 데이터를 주고받기 위해 사용하는 것.
- 그래서 2계층이 맥주소로 할 수 있는 범위 내의 데이터 전송은 책임지지만, 그 이상(IP를 통해 나가야하는 아주 먼, 최종목적지)은 책임지지 않는다.
■ 정리
- 데이터 링크 레이어는 맥주소를 이용해 물리적 연결된 디바이스 끼리의 데이터 전송은 책임짐 (좁은 범위까지만)
- 그러나 그 이상, WAN과 같이 멀리 나가야한다면, 책임 안짐. 대신 3계층(네트워크 계층)에서 책임져줌!
■ 맥주소
- 3계층에서 사용하는 IP는 길찾기에 특화! 라우터를 효과적으로 사용할 수 있다.
- 그러나 2계층의 맥주소는 길찾기에 특화가 된 것이 아니다. 한마디로 조금만 멀리 나가면, 길을 구분을 못한다.
- 그래서 맥주소는 물리적으로 연결되어 있는 디바이스 간의 데이터를 주고 받을 때만 사용한다.
- 즉, 우리 집 안에 있는 기기 정도를 찾아가는데만 쓸 뿐, 그 이상 나가는 용도의 주소가 아니다!
■ 데이터 링크 레이어는 둘로 나눌 수 있다.
- Logical Link control Sublayer
- Media Access control Sublayer
■ Logical Link control Sublayer
- 멀티플렉싱(Mux)과 디 멀티플렉싱(De Mux)의 역할을 함
- 경우에 따라서 오류 수정도 해줌
- 왜 Logical? : 멀티플렉싱 >> 디 멀티플렉싱으로 가는 연결이 그때그떄 다르기 때문.
■ 이 기능은 권고 사항 같은 것이다. 반드시가 아님!
■ Media Access control Sublayer
- 미디어( 선 이라고 생각하자)를 동시에 접속하지 못하도록 함. 이는 1계층에서 하던 기능임. 하지만 2계층에서 일부 소프트웨어적으로 담당하기도 함. 이 때 Media Access control sublayer가 하게 됨.
■ Media Access contorl sublayer가 소프트웨어적으로 뭘 해주는가?
- 프레임(데이터 묶음)의 대기 관리 혹은 스케쥴 관리
- 위의 2가지 방식이 있다.
- 다수의 패킷을 전송하는 방식이다.
■ VLAN 가상랜
- 가상 네트워크를 만들 때 사용
■ Frame Synchronization 프레임 동기화
- 바이트들이 모여있는 프레임을 동기화
- 데이터가 a에서 b로 가는데, 그게 어디서 어디까지를 한 묶음으로 봐야하는가? 이거를 처리해주는 것
- 예를 들면, 선은 하나다. 여러 앱 혹은 디바이스가 동시에 접근한다고 가정하자. 그럼 프레임의 처음과 끝을 분명히 확인해줄 수 있어야 한다. 미디어를 공유하고 있기 때문에 모든 미디어를 공유하는 디바이스들의 소프트웨어들이 서로 합의를 봐야한다. 그 합의를 보는 4가지 방법이다.
■ 4가지 방법
- Time based : 프레임 사이에 정해진 시간 간격을 둠
- Character counting : 데이터를 주고받는 양을 카운팅.
- byte stuffing : 시작과 끝을 특정문자열(바이트)로 표기
- bit stuffing : 시작과 끝을 비트열로 표기
■ 맥주소는 계층적이지 않다
■ 맥주소는 계층적인 구조에 맞지 않다
■ 반대로 IP주소는 계층적이다. a b c 등의 클래스로 나눠져있다
■ 데이터링크 계층의 대표적인 예 : 이더넷, 토큰링
■ 학습정리
1. Data Link Layer
- 물리 계층을 사용하여 Network 계층에 서비스를 제공
- 동일 구역 내의 통신을 책임짐
- 데이터 오류 처리는 선택 사항
2. Logical Link Control Sublayer
- 멀티 플렉싱을 통해 미디어 공유
- 주소를 이용한 연결과 송수신 관리
3. Media Access Control Sublayer
- 다수 노드 간 통신 매체 공유 관리
- Frame 동기화 관리
'컴퓨터공학 > 컴퓨터네트워크' 카테고리의 다른 글
11. 전송 계층 (0) | 2024.07.07 |
---|---|
10. 네트워크 계층 (0) | 2024.07.06 |
8. 물리 계층 (0) | 2024.07.05 |
7. OSI 7 계층 개요 (0) | 2024.07.05 |
6. 인터넷의 기본 동작 원리 (0) | 2024.06.12 |