티스토리 뷰
OSI 7계층에서 두 번째 계층인 데이터 링크 계층은 다음의 역할을 수행합니다.
1. 인접한 네트워크 노드들끼리 데이터를 전송하는 역할
2. 물리계층에서 발생하는 오류를 감지하고 수정하는 역할
데이터 링크 계층의 대표적인 프로토콜은 이더넷이며, 대표적인 장비는 스위치가 있습니다. 자주 사용되는 이더넷은 세컨드 버전입니다. 이더넷은 MAC 통신과 프로토콜 형식을 정의합니다.
이더넷 프레임의 구조는 다음과 같습니다.
프레엠블(Preamble): 실제 이더넷에 포함되지는 않으나, 이더넷 프레임의 시작과 동기화를 담당합니다.
목적지 주소: 목적지 MAC 주소입니다.
출발지 주소: 출발지 MAC 주소입니다.
타입: 캡슐화된 패킷의 프로토콜을 정의합니다.
데이터: 상위 계층의 데이터입니다. 46~1500바이트 크기이며, 46바이트보다 작은 경우 뒤에 패딩이 붙습니다.
FCS: 트레일러 부분으로 에러를 체크합니다.
데이터 링크 계층은 2개의 층으로 나누어서 구성됩니다.
1. MAC 계층: 물리적인 부분이며, 매체 간의 연결 방식을 제어합니다. 물리계층과 연결되어 있습니다.
2. LLC 계층: 논리적인 부분이며, 프레임을 만듭니다. 네트워크 계층과 연결되어 있습니다.
데이터 링크 계층의 기능은 다음과 같습니다.
1. 프레임 생성 기능
2. 회선 제어 기능
3. 흐름 제어 기능
4. 오류 제어 기능
각 기능에 대해 하나씩 살펴보도록 합시다.
1. 프레임 생성 기능
데이터를 캡슐화시켜 프레임 단위로 만들고, 앞에 헤더, 뒤에는 트레일러를 추가합니다. 헤더에는 목적지, 출발지 주소 및 데이터 내용을 정의하는 부분입니다. 트레일러는 비트 에러를 감지하는 부분입니다.
2. 회선 제어 기능
컴퓨터 2대가 통신하는 경우, 각 컴퓨터 신호간의 충돌이 발생하지 않도록 데이터 링크 계층에서 회선을 제어합니다. 회선을 제어하는 방식으로는 다음의 방식들이 존재합니다.
- ENQ/ACK 기법: 송신측에서 Enquiry를 보내어 데이터가 필요한지 물어보면, 수신측은 Acknowledge를 보냅니다. ACK이 송신측에 전달되면, 데이터를 수신측에 보내고 수신측은 다시 잘 받았다는 신호로 ACK을 보냅니다. 그럼 송신측은 EOT(End of Transmission)를 보내어 송수신을 종료합니다. 1대1 전송 기법입니다.
- Polling 기법: 1대다 전송 기법으로, 셀렉트(Select) 모드와 폴(Poll) 모드가 있습니다. 셀렉트 모드는 송신측이 수신측을 선택해서 전송하며, 폴 모드는 송신측이 먼저 수신측에게 데이터 수신 여부를 확인한 이후에 전송하게 됩니다.
다음은 셀렉트 모드의 예시입니다. 먼저 Select를 보내면, 수신측 두 곳에서 ACK을 보냅니다. 이후 송신측은 데이터를 보내게 됩니다. 송신측이 여러 수신측 중에서 선택해서 데이터를 보냅니다.
다음은 폴 모드의 예시입니다. 송신측이 여러 수신측에 Poll을 보내는데, PC2는 거부하고, PC3는 ACK을 보내는 상황입니다. 따라서 송신측은 PC3에게만 데이터를 전송합니다.
3. 흐름 제어 기능
컴퓨터마다 성능과 네트워크 환경이 다르기 때문에 데이터를 주고 받을 때 속도 차이가 있을 수 있습니다. 데이터 링크에서는 이러한 속도 차이를 해결하기 위해서 흐름을 제어합니다. 흐름을 제어하는 기법으로는 다음의 두 가지 기법이 있습니다.
- Stop & Wait: 말그대로 데이터를 보내고, ACK 응답을 받을 때까지 기다리는 방식입니다. 비효율적입니다. 만약 ACK 응답을 받지 않는 경우는 프레임이 소멸되는 등의 에러가 발생한 경우입니다. 이럴 때는 유휴 시간(Idle Time) 경과 후 프레임을 다시 보내게 됩니다. 프레임을 다시 보낼 때, 수신측은 시퀀스 넘버를 통해 중복된 프레임인지 확인하게 됩니다.
- Sliding Window: 여러 프레임을 한꺼번에 보낼 수 있으며, ACK 응답이 필요하지 않아 효율적입니다. 윈도우 크기는 송신측과 수신측의 프레임이 저장되는 버퍼의 크기를 말합니다.
4. 오류 제어 기능
전송 도중에 네트워크 상의 문제나 전기적인 문제로 프레임이 소멸되는 등의 오류가 발생할 수 있습니다. 데이터 링크 계층은 전송 중에 오류나 손실이 발생하면, 이를 탐지하여 수정할 수 있도록 합니다. 프레임이 손상되어 재전송이 수행되는 과정을 Automatic Repeat Request(ARQ)라고 칭합니다.
오류 제어 기법으로는 다음의 세 가지 기법이 있습니다.
- Stop & Wait ARQ: 프레임이 손상되어 수신측에서 NAK을 전송하거나, 주어진 시간에 수신측이 ACK 응답을 보내지 않을 때, 송신측에서 프레임을 재전송합니다.
- Go Back n ARQ: 송신측이 여러 프레임을 한꺼번에 전송합니다. 프레임 1~3을 한 번에 보낸다는 가정하에, 만약 프레임 2번에 문제가 있는 경우, 모든 프레임을 폐기처리하고 NAK 응답을 보냅니다. 송신측은 다시 프레임 1~3을 보냅니다.
- Selective Repeat ARQ: 위의 Go Back n ARQ 방식의 문제점을 보완한 방식입니다. 프레임 1~3을 한꺼번에 보낼 때, 문제가 생긴 프레임에 대해서만 NAK 응답을 보냅니다. 손상된 프레임만 선별해서 다시 전송합니다.
'Network' 카테고리의 다른 글
와이파이 Wi-Fi (0) | 2021.07.08 |
---|---|
UTP 케이블 (0) | 2021.07.08 |
물리계층의 단위와 성능 (0) | 2021.07.08 |
물리계층 장비 및 케이블 종류 (0) | 2021.07.08 |
물리 계층의 역할 및 시그널링의 종류 (0) | 2021.07.05 |
- Total
- Today
- Yesterday
- Bmi Calculator
- 자바스크립트 배열
- 인텐트
- ToDo List 앱 만들기
- lazy init
- findViewById
- 안드로이드 어댑터
- 2021년 사건사고
- 2019년 사건사고
- 안드로이드 스튜디오 에러
- view binding
- 탭레이아웃
- 리스트뷰
- tabLayout
- addView
- 미제사건
- 선형 레이아웃
- 대한민국 미제사건
- 애드뷰
- 상대적 레이아웃
- 리사이클러뷰
- notifyDataSetChanged
- RecyclerView
- 안드로이드 앱 만들기
- 2007년 사건사고
- 메소드 오버라이딩
- android adapter
- bmi 계산기 만들기
- 뷰 바인딩
- 안드로이드 프로젝트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |