I can do it!!

He can do! She can do! why cannot me? i can do it!

개발/보안

[FastCampus] 네트워크 개론_데이터 링크 계층과 스위치

gogoriver 2021. 1. 4. 23:24

해당 글의 내용은 FASTCAMPUS의 네트워크 개론 강의를 수강 및 정리한 내용입니다.

데이터 링크 계층의
역할과 기능
1. 데이터 링크 계층이란?
역할>
: OSI 7 Layer의 2계층으로 인접한 네트워크 노드끼리 데이터를 전송하는 기능과 절차를 제공
: 물리계층에서 발생할 수 있는 오류를 감지하고 수정
: 대표적인 프로토콜로 이더넷이 있으며 장비로는 스위치가 있음

구성>
- 2개의 부 계층으로 구성
MAC(Media Access Control)
: 물리적인 부분으로 매체간의 연결방식을 제어하고 1계층과 연결
LLC(Logical Link Control)
: 논리적인 부분으로 Frame을 만들고 3계층과 연결

=> 데이터 링크 계층은 LLC와 MAC으로 구성되어 있고 Frame 단위로 통신한다
=> 상위 계층은 Packet 단위로 통신한다

- MAC 주소
: 확인방법) cmd > ipconfig/all 또는 네트워크 설정에서 확인

: 48bit로 6자리로 구성, 16진수로 표현
: 앞에 3자리는 OUI(제조사 식별 코드)
: 나머지 3자리는 제조사 내 일련번호

2. 주요 기능
Framing, 회선제어, 흐름제어, 오류제어 등이 있다.
① Framing

: 데이터그램을 캡슐화하여 프레임 단위로 만들고 헤더와 트레이러를 추가
* 헤더 : 목적지, 출발지 주소 그리고 데이터 내용을 정의
* 트레일러 : 비트 에러를 감지

② 회선제어
: 신호간의 충돌이 발생하지 않도록 제어
- ENQ/ACK 방법

: 전용 전송 링크 1:1

* ENQ ) 데이터 전송에서 상대국의 응답을 구하는 전송제어 부호.
* ACK ) 송신 측에 대하여 수신 측에서 긍정적 응답으로 보내지는 전송 제어용 캐릭터
* EOT ) end of transmission character 전송 종료 문자

- Polling 방법 (1: 多)
: ENQ/ACK 방법과 다르게 다양한 PC들에게 동일한 패킷을 동시에 보낼 수 있다.

> 2가지 모드
- Select 보드 : 송신자가 나머지 수신자들을 선택하여 전송
- Poll모드 : 수신자에게 데이터 수신 여부를 확인하여 응답을 확인하고 전송 - multipoint

 흐름제어
: 송신자와 수신자의 데이터를 처리하는 속도 차이를 해결하기 위한 제어
: Feedback 방식의 Flow Control이며 상위 계층은 Rate 기반
- STOP & WAIT

BUT!
단점> Frame을 전달하고 ACK이 회선 문제로 응답하지 않는 경우(패킷이 가다가 loss되는 경우)
해결책> Time Out Interval : ACK이 오지 않으면 일정시간 후 다시 보낸다


단점
> Frame을 재전송하게 되면 Duplicate frame 문제가 발생될 수 있음
해결책> Sequence number(1bit)를 사용하여 동일 frame인지 구분하여 상위 계층으로 전달


* 좀 더 개선된 방식
=========================================================
- Sliding window


: 위 기능보다 개선된 방식
: ACK 응답 없이 여러 개의 프레임이 연속적으로 전송 가능
: Window Size 는 전송과 수신측의 데이터가 저장되는 버퍼의 크기

④ 오류 제어
: 전송 중에 오류나 손실 발생 시 수신측은 에러를 탐지 및 재전송
: ARQ(Automatic Repeat Request) : 프레임 손상 시 재전송이 수행되는 과정
- stop & wait ARQ
: flow control에 ARQ가 추가

- GO BACK N ARQ
: 여러개 FRAME을 그룹으로 보낼 수 있다.
: 그러나 비효율적(345중 3번이 문제이면 345 다 한꺼번에 버린다)

- Selective Repeat ARQ
: 손상된 Frame만 선별해서 재전송

3. 이더넷 프레임 구조
Ethernet v2
: 데이터 링크 계층에서 MAC 통신과 프로토콜의 형식을 정의


스위치와 ARP 1. L2 스위치

① 스위치
: 2계층의 대표적인 장비로 MAC주소 기반 통신
: 허브의 단점을 보완
- Half Duplex => Full duplex
- 1 Collision Domain -> 포트별 Collision Domain

* 라우팅 기능이 있는 스위치 =  L3 스위치라고 부른다

동작방식>
목적지 주소를 MAC 주소 테이블에서 확인하여 연결된 포트로 프레임 전달
1) Learning
: 출발지 주소가 MAC 주소 테이블에 없으면 해당 주소를 저장

- 4개의 PC는 스위치의 각 포트에 연결되고 프레임이 스위치에 전달
- 스위치는 해당 포트로 유입된 프레임을 보고 MAC 주소를 테이블에 저장
=> 연결된 PC의 정보는 다 저장함

2) Flooding - Broadcasting
: 목적지 주소가 MAC 주소 테이블에 없으면 전체 포트로 전달

- PC1은 목적지가 aa:bb:cc:dd:ee:05 주소로 프레임 전달
- 스위치는 해당 주소가 MAC Table에 없으면 에라 모르겠다 전체 포트로 전달

3) Forwarding
: 목적지 주소가 MAC 주소 테이블에 있으면 해당 포트로 전달

- pc1은 목적지 aa:bb:cc:dd:ee:05 주소로 프레임 전달
- 스위치는 해당 주소가 MAC Table에 존재하므로 해당 프레임을 pc5로 전달


4) Filtering - Collision Domain
: 출발지와 목적지가 같은 네트워크 영역이면 다른 네트워크로 전달하지 않음
: Collision Domian을 나누는 것
: 효율적 통신이 가능

- pc1은 목적지 aa:bb:cc:dd:ee:02 주소로 프레임 전달
- 스위치는 해당 주소가 동일 네트워크 영역임을 확인하여 다른 포트로 전달하지 않음

5) Aging
: Mac 주소 테이블의 각 주소는 일정 시간 이후에 삭제
: 스위치의 MAC 주소 테이블은 시간이 지나면 삭제
삭제 이유>
(1) 저장 공간의 효율적 사용
(2) 해당 포트에 연결된 PC가 다른 포트로 옮겨진 경우도 발생
- 기본 300초 저장 다시 프레임이 발생되면 다시 카운트
====================================================
(정리)


2. ARP

역할>
Address Resolution Protocol
: IP주소를 통해서 MAC 주소를 알려주는 프로토콜
: 컴퓨터 A가 컴퓨터 B에게 IP 통신을 시도하고 통신을 수행하기 위해 목적지 MAC 주소를 알아야 한다
: 목적지 IP에 해당되는 MAC 주소를 알려주는 역할

동작과정>

* CMD 창에 arp -a로 ARP Cache Table 실행

ARP 헤더 구조>

스패닝트리
프로토콜과 루핑
1. Looping

정의>
: 같은 네트워크 대역 대에서 스위치에 연결된 경로가 2개 이상인 경우 발생
: PC가 브로드캐스팅 패킷을 스위치들에게 전달하고 전달 받은 스위치들은 Flooding함
: 스위치들끼리 Flooding된 프레임이 서로 계속 전달되어 네트워크에 문제를 일으킴 

구조>

이러한 문제점이 발생하는 것이 Looping이다
Looping == Broad casting Storm

2. STP
STP(Spanning Tree Protocol) : 스패팅 트리 프로토콜
: 자동으로 트리 알고리즘에 사용되는 프로토콜 -> STP
: Looping의 문제점을 해결
: IEEE 802.1d에 명시됨

1) Bridge ID
: 스위치의 우선순위
: 0~65535로 설정됨
: 낮을수록 우선순위가 높음

2) Path Cost
: 링크의 속도
: 1000/링크 속도로 계산 -> 작을수록 우선순위가 높다 
: but 1Gbps속도가 나오면서 계산법이 적합하지 않게됨 -> IEEE에서 각 대역폭 별 숫자를 정의


요소>

- BPDU(Bridge Protocol Data Unit)
: 스패닝 트리 프로토콜에 의해 스위치간 서로 주고받는 제어 프레임

1) Configuration BPDU (구성 BPDU)
: 루트 브리지에 의해 생성
포함된 주요 정보↓

2) TCN(Topology Change Notification) BPDU (구성변화 BPDU)
: 망 구성변화시 통지 (== 네트워크 내 구성 변경시 통보한다고 이해하기)
- 우선순위 ) 낮은 숫자가 더 높은 우선순위를 가짐
- 아래를 보고 선출함

* 루트 포트 계산 다시 공부하기



상태변화>
: 스위치의 포트는 스패닝 트리 프로토콜 안에서 5가지 상태로 표현됨

1) Disabled
: shut down된 상태
: 데이터 전송 불가, MAC 학습 불가, BPDU 송수신 불가
2) Blocking
: 부팅하거나 DIsabled상태를 up했을 때 첫번째 거치는 단계
: BPDU만 송수신
3) Listening - 15초
: Blocking 포트가 루트 또는 데지그네이티드 포트로 선정되는 단계
: BPDU만 송수신
4) Learnign - 15초
: 리스닝 상태에서 특정 시간이 흐른 후 러닝 상태가 됨
: MAC학습 시작, BPDU만 송수신
5) Forwarding
: 러닝 상태에서 특정 시간이 흐른 후 포워딩 상태가 됨
: 데이터 전송 시작, BPDU 송수신


3. RSTP & MST

RSTP (Rapid Spanning Tree Protocol)
: 빠른 STP이당
: STP는 포워딩 상태까지 30~50초 걸림 BUT RSTP는 이 컨버전스 타임을 1-2초 내외로 단축
: Learning & Listening 단계가 없음

MSP( Multiple Spanning Tree)
: 네트워크 그룹이 많아지면 STP or RSTP BPDU 프레임이 많아지고 스위치 부하 발생
: 여러 개의 STP 그룹들을 묶어서 효율적으로 관리
==============================================================


VLAN 1. VLAN
VLAN(Virtual Local Area Network)
: 물리적 구성이 아닌 논리적인 가상의 LAN을 구성하는 기술
: 불필요한 데이터 차단 ~ 브로드캐스트 도메인 별로 나누어 관리

장점)

관리의 용이성과 보안 -> 호스트의 물리적 이동 없이 LAN 그룹 변경이 가능
비용의 절감 -> LAN 추가시 물리적 스위치 구매 필요 없음
종류)
① Port 기반 VLAN
: 여러개의 VLAN을 설정하고 각각의 LAN에 물리적인 포트를 지정
: VLAN 변경이 필요한 호스트는 물리적인 포트 또는 스위치의 VLAN 설정을 변경


② MAC주소 기반 VLAN
: 각 호스트 또는 네트워크 장비의 MAC주소를 각각의 VALN에 정의
: 호스트가 이동되어도 VLAN 변경 필요 X, 신규 호스트 연결시 설정 변경 필요


③ IP주소 기반 VLAN
: IP주소 서브넷 기반으로 VLAN을 나누는 방법
- IP(Internet Protocol) : 3계층에서 사용하는 프로토콜
- 서브넷 : IP주소의 네트워크 영역의 크기를 나눈 것


2. Trunk
정의>
물리적 스위치간 VLAN연결 시 하나의 물리적 연결로 VLAN그룹들 공유

- 트렁크 프로토콜
: 이더넷 프레임에 식별용 VLAN ID를 삽입하여 데이터를 구분하여 통신 및 제어 가능
: 802.1q를 따름

VLAN Tagging : VLAN ID 정보 (tag를 다 달아놓음)



3. VLAN 구성

VLAN 설계>
① VLAN 그룹 정의
② VLAN 구성방법 정의
: 포트, MAC주소, IP주소
: MAC 또는 IP주소 방식의 경우 미리 사전 조사 필요
③ 트렁크 포트 정의
: 대역폭 확인
: 허가(Tagged)할 프레임 정의. 정의되지 않은 Tag는 통신 불가

VLAN 설정>

=====================================================
정리

 


출처

네이버 백과(ENQ , ACK, EOT )

정보통신 기술용어 해석   http://www.ktword.co.kr/abbr_view.php?m_temp1=2403

 

BPDU [정보통신기술용어해설]

 

www.ktword.co.kr