1. IEEE 802 시리즈
MAC계층가 LLC 계층 ?
LAN 환경에서 계층 2(데이터링크 계층)기능을 MAC과 LLC 계층으로 분리
- LLC : 계층 2 기능 수행
- MAC : LAN의 물리적 특징을 반영하여 전송효율을 높이기 위함
1. MAC 계층
LAN 종류에 따라 특성이 구분됨
- 이더넷
공유버스 구조 지원, 충돌현상 발생
충돌감지 기능 필요
충돌 현상 발생시 호스트는 이를 감지하고 일정 시점이 지난 후 재전송
CSMA/CD 방식 사용
- 토큰링
토큰을 사용해서 데이터 전송 시점을 제어 → 충돌 발생 X
2. LLC 계층
LAN 환경의 데이터링크 계층 기능을 수행
LAN 종류에 따라 MAC 계층의 설계 형태가 영향을 받는것 처럼 LLC계층도 LAN 의 특성에 부분적으로 영향을 받음
이더넷의 LLC와 토큰링의 LLC는 약간 다를 수 있음
IEEE802 시리즈의 구조를 알아보고 MAC계층의 구성요소를 하나하나 짚어보자.
1. CSMA/CD
: MA(Mulitiple Access) : 다수 호스트가 하나의 공유 매체에 연결됨
CS(Carrier Sense) : 호스트는 공유매체의 사용가능 여부를 신호감지로 확인
CD(Collsion Detection) : 공유 매체에서 데이터 충돌 여부 확인
데이터를 전송할 경우 충돌이 발생할 경우 다시 보내야 한다. 무언가 보내 고자 할때 전송로를 누군가 사용하고 있는지 확인해 보고 없으면 데이터를 보낸다. 혹시나 다른 곳에서도 동시에 데이터를 전송할 경우에는 충돌이 발생한다. 데이터를 보내고 나면 항상 확인을 하고 충돌이 났을경우 random 한 시간간격을 두고 재전송을 한다.
기능
- 충돌 감지 기능이 필수요구
- 충돌 감지 후, 재전송 기능으로 오류 복구
- 공유 매체의 길이가 길수록 전송 지연이 증가, 충돌 가능성 ↑
공유 매체에서의 충돌 해결
- 충돌 허용 방식 : CSMA/CD
- 충돌 회피 방식 : 전송 시간대를 달리하는 타임 슬롯 방식
2. 토큰버스
: 이더넷과 토큰링의 특징을 합친 형태, 물리적으로는 버스형태지만 논리적으로는 링형태
물리적으로 연결된구조는 버스형태이지만 토큰을 전달하는 순서는 링형을 띄고 있다.
프레임 구조
3. 토큰링
: 물리적으로 링 구조 지원
동작방식 - 대기모드, 전송모드
대기모드
- 입력단으로 들어온 데이터를 바로 출력단으로 보냄
- 호스트가 다운되거나 기타 장애가 발생하도 네트워크에 영향을 주지않기 위함
전송모드
- 토큰을 확보해 데이터를 전송 할 수 있는 권한을 보유한 상태
- 호스트가 중계기능을 수행하며, 출력단을 통해 데이터를 전송 할 수 있음
2. 이더넷(IEEE 802.3x)
고전적인 연결방식
- 트랜시버 : 데이터 송수신장치. 신호 감지/충돌 감지 기능을 수행
- 리피터 : 두 케이블을 연결하는 장치로 증폭 기능을 수행
케이블의 최대 길이를 일정하게 제한 하는데 , 이는 케이블의 거리가 너무 길면 신호 감쇄 현상에 의해 오류가 발생할 가능성이 높아지기 때문이다. 케이블이 연결되는 호스트간의 거리 간격도 일정범위 이내로는 연결 할 수 없도록 되어 있다.
프레임 ?
데이터 링크 계층에서는 전송 데이터를 프레임이라는 작은 단위로 나누어 처리함.
전송 프레임에는 상위 계층에서 보낸 전송 데이터에 오류 확인을 위한 체크섬+ 송수신호스트의 주소+ 제어코드 포함
프레임은 내부 정보를 표현하는 방식에 따라 '문자프레임'과 '비트프레임'으로 구분
문자프레임
: 프레임의 내용이 문자로만 구성됨
프레임의 시작과 끝에 특수문자 사용 (시작 DLE/STX , 끝 DLE/ETX )
DLE 문자가 포함되면 혼선이 발생한다. 거기서 사용하는게 문자 스터핑
문자스터핑 : 프레임의 전송 데이터 중 DLE 문자가 포함되면서 발생하는 혼란을 예방하는 방법
송신호스트측에서는 데이터에 DLE 문자가 있으면 강제로 DLE 문자를 추가한다. 한번더 DLE 문자를 생성
수신호스트측에서는 DEL 문자가 두번있으면 DEL 문자를 삭제한다.
비트프레임
: 프레임의 시작과 끝을 구분하기 위하여 플래그(01111110) 사용
비트 스터핑 : 데이터에 1이 연속5번 나오면 0을 추가해 구분
송신호스트 측에서는 데이터에 1이 연속해서 5번 발생하면 0을추가
수신호스트는 데이터에 1이 연속해서 5번이어지면 0을 제거
이더넷 프레임
: IEEE 표준화에 맞게 프레임도 표준화덴 프레임을 발표함.
MAC 프레임 = MAC 헤더 + LLC 프레임 + MAC 트레일러
LLC 프레임 : LLC 계층이 MAC 계층에게 전송하도록 요청한 데이터
구조
MAC 헤더 |
Preamble : 수신 호스트가 송신 호스트의 클록 동기를 맞추는 용도 start Delimiter : 프레임의 시작위치 Destination Address : 수신호스트의 MAC 주소 Source Address : 송신호스트의 MAC 주소 Length : data 필드에 포함된 가변길이의 전송 데이터 크기 |
LLC 프레임 |
DATA : LLC 계층에서 보내진 LLC 프레임을 보관 |
LLC 트레일러 |
Pad Checksum : 데이터 변형 오류를 감지하는 기능 |
IEEE 802.3 표준안의 문제점은 트래픽이 심할때 특정 호스트가 오랫동안 프레임을 전송하지 못할 염려가 있다는것과 프레임의 우선순위가 규정되어 있지않아 중요도를 표현하기 어렵다는 점이다. 이러한 문제점을 해결하기 위해 호스트가 순서를 정해 차례로 프레임을 전송하는 기능이 필요한데, 링구조의 통신망이 이를 지원한다.
토큰버스 프레임
LLC 프레임을 물리계층을 통해 수신호스트에 전달하려면 토큰버스 프로토콜에서 정의한 프레임에 맞게 토큰버스 프레임을 만들어줘야함.
MAC 프레임 = MAC헤더 + LLC프레임 + MAC트레일러
MAC 헤더 |
Preamble : 수신호스트가 송신호스트의 클록 동기를 맞추는 용도 Start Delimiter : 프레임의 시작 위치 구분 Frame Control : 데이터 프레임과 제어프레임 구분 Destination Address : 수신호스트의 MAC 주소 Source Address : 송신호스트의 MAC 주소 |
LLC 프레임 |
DATA = LLC 프레임 보관 (캡슐화) 좌우에 토큰버스 프레임의 헤더와 트레일러의 정보 수신호스트는 헤더를 떼어내고 LLC 프레임의 정보만 보내줌 |
LLC 트레일러 |
Checksum : 데이터 변형 오류 감지 End Delimiter : 프레임의 끝 위치 구분 |
3. 오류검출
수신측에서 받은 데이터는 송신측에서 보낸 데이터와 동일해야 정상이다. 하지만 다양한 원인으로 데이터에 오류가 발생 할 수 있다. 때문에 신뢰 할 수 있는 네트워크 통신을 하기위해 오류의 검출과 수정이 필요하다.
오류 복구방법에는 오류 복구 코드를 이용해 수신호스트 스스로 오류를 복구하는 순방향 오류 복구 방법과 오류 검출 코드를 이용해 수신 호스트가 송신 호스트에게 오류를 통지하는 역방향 오류 복구가 있다.
단일 비트오류 : 데이터 단위중 하나의 비트만 변경하는 오류
다중 비트오류 : 데이터 단위중 두개 이상의 비연속적인 비트를 변경하는 오류
집단 오류 : 데이터 단위중 두개 또는 그 이상의 연속적인 비트를 변경하는 오류
오류를 검출하는 방법중에는 데이터에 비트를 하나 붙여서 전송해 수신측에서 데이터 전송중 발생한 오류를 검출 할 수 있는 패리티 비트 검사 방식이 있다 .
패리티 비트 검사 방식
전송 과정에서 홀수개의 비트가 깨지면 오류 검출 가능
전송 과정에서 짝수개의 비트가 깨지면 오류 검출 불가능
패리티 비트의 값은 데이터 코드 내에 있는 1의 수를 계산함으로써 결정된다. 검출률이 50%정도 밖에 안되지만 방법이 간단하고 1차적인 검사정도의 효과는 있기 때문에 사용함.
홀수 패리티 방식 (Odd parity)
전체 비트에서 1의 갯수가 홀수가 되게, 데이터비트에서는 1의 갯수가 짝수
짝수 패리티 방식 (Even parity)
전체 비트에서 1의 갯수가 짝수가 되게, 데이터 비트에서는 1의 갯수가 홀수
문자를 블록으로 전송하면 오류 확률이 높아지는데 오류 검출 능력을 향상 시키려 문자 블록에 수평, 수직으로 패리티 검사를 하는 방법이 있다. 이것이 블록 합 검사이다.
블록 합 검사
수평, 수직방향 모두에 패리티 비트를 지정
행 단위 패리티에 열 단위의 오류 검사를 수행하는 열 패리티 문자를 추가 하여 이중으로 오류 검출
한 데이터에서 짝수개의 오류가 발생하더라도 오류를 검출 할 수 있다.
순환중복검사
오류를 검출할때 다항식 코드를 사용한다.
오류가 없을때는 계속 발생하지 않다가 오류가 발생하면 그 주위에 집중적으로 오류를 발생시키는 집단오류를 검출하는 능력이 탁월하고, 구현이 단순하다.
송신호스트에서 전송데이터 에 체크섬을 붙여 수신자에게 전송한다
수신호스트는 전송데이터+체크섬을 다항식으로 나누어 결과를 확인한다 .
(나머지= 0 → 오류 x , 나머지 != 0 → 오류)
[ 데이터 + 체크섬 ] % (xor로 다항식을 나눠준다)
체크섬 값을 구하기 위해서는
데이터 + (다항식-1자리수) 만큼 0을 붙여준다.
붙여준 0의 개수만큼의 자리에 나머지가 나온값이 checksum 값이다.
checksum을 산출하면 데이터에 뒤에 붙여 다항식과 나눠준다. 나누어 떨어지면 오류가 없는것
프로토콜 프레임
- 정보 프레임 : I 프레임
상위 계층이 전송 요구한 데이터를 송신하는 용도
- 긍정 응답 프레임 : ACK 프레임
전송 데이터가 올바르게 도착했음을 알리는 용도
- 부정응답 프레임 : NAK 프레임
전송 데이터가 깨져서 도착했음을 알리는 용도
데이터를 송신한 호스트는 원래의 데이털르 재전송 하여 오류 복구
긍정응답 프레임의 분실 경우 : 순서번호를 입력하여 구분
부정응답 프레임의 분실 경우 : 타임아웃기능으로 오류 복구
슬라이딩 윈도우 프로토콜
흐름제어 기법중 정지-대기 흐름제어 기법의 비효율 적인 부분을 개선 ACK프레임을 수신하지 않더라도 여러개의 프레임을 연속적으로 전송
(정지-대기 흐름제어 기법의 비효율성 : 한 데이터프레임을 전송 → ACK프레임을 받으면 다음 프레임 전송 → EOT 프레임 전송되면 종료 )
- 양방향 통신지원
- 오류 제어와 흐름제어 기능을 모두 지원
- 윈도우라는 프레임 관리
- 전송된 데이터는 영역 해제
- ACK 프레임이 반송되는 만큼 영역 확장
1. 전송측은 프레임 관리를 위해 각 프레임의 모듈러에 의한 번호체계가 부여된다.
0 1 2 3 4 5 6 7 8 9 |
2. 전송측 윈도우 준비
[0 1 2 3 4] 5 6 7 8 9 |
3. 전송한 만큼 윈도우 프레임이 줄어듬
0 1 [2 3 4] 5 6 7 8 9 → 0과 1을 전송했을 경우 |
4. ACK 프레임을 수신측으로 부터 전달받게 되면 받은 만큼 확장된다.
0 1 [2 3 4 5 6] 7 8 9 |
예 )
GBn(Go-Back-n)ARQ 기법
: 전송된 프레임이 손상되면 확인된 마지막 프레임 이후로 보내진 프레임을 재전송 하는기법이다.
재전송의 경우
1. NAK 프레임이 왔을경우
2. 전송데이터 프레임의 분실
3. 지정된 타임아웃내의 ACK 프레임 분실
재전송을 하게 되면 n 번째 데이터만 재전송 하는것이 아니고 n부터 그 이후의 모든 데이터를 재전송 하게 된다.
선택적 재전송 기법
: GBn 방식과는 다르게 마지막프레임 후 전송되있던 프레임을 버리지않고 손상된 프레임만 선택적으로 재전송 한후 전송 진행.
피기배킹
: 정보 프레임이 응답프레임까지 수행
- 정보프레임 = 정보프레임 + 응답프레임
- 2개의 순서번호 : 전송 데이터용 순서번호 , 응답용 순서번호
장점 : 응답프레임의 전송횟수가 줄어서 효율 개선
표기방법 I(m, n)
- m : 정보 프레임에서 사용하는 전송 데이터의 순서번호
- n : 응답 프레임에서 사용하는 응답 순서번호
'Kitri_NCS3기 보안과정 > Network' 카테고리의 다른 글
170410 라우터 와 정적경로설정(Static) (0) | 2017.04.10 |
---|---|
170406 네트워크 기초(IP 프로토콜) (0) | 2017.04.06 |
170404 네트워크 기초 ( 교환 시스템, 인터네트워킹 ) (0) | 2017.04.04 |
170404 네트워크 기초( 계층구조 , OSI 참조모델, TCP/IP ) (1) | 2017.04.04 |
170404 네트워크 기초 (통신방식, 네트워크 형태) (0) | 2017.04.04 |