Ethernet 3
3. 이더넷의 기술적 사항

- MAC 계층 구성
- MAC driver (ODI/NDIS/Packet)
- MAC controller
- 송수신용 frame buffer (shared local memory)
- MAC 계층 기능
- MAC Frame 구성
- Carrier Sense 감지
- Collision Detection 감지
- Collision 감지시 jam 신호 송신
- CRC 검사 및 생성
- 재전송동작
- MAC Frame 에서 DATA 부분 추출
(1) CSMA/CD
<CSMA/CD Parameters>
- bit time
- cable 상에서 1 bit 가 송신되는 시간 (1
bit time)
- 10 Mbps : 1bit/10 Mhz = 0.1 us (= 100
ns) (us는 microsecond 임)
- slot time (=collision window)
- Preamble의 첫 bit이 송신된 시간부터 충돌사실이
감지되어 전송을 중지 할수 있는 충분한 시간을 말한다.
- 4개의 repeater로 연결된 2.5 Km 의 Ethernet
에서 slot time : 512 bit time (=51.2 us)
- slot time 은 Frame의 최소길이를 규정한다.
규정하지 않을 경우 MAC 에서 처리해야할
재전송이 상위계층으로 책임이 옮겨 져 응용계층작업이 느려지는데,
이것을 방지하기 위함이다. (최소
MAC 재전송 시간은 IFG 시간인 9.6 us이다.)
- 최악의 경우인 slot time 동안에 충돌사실을
송신node에서 알때까지, 이 frame의 송신이 완료되지 않도록
보장하는 최소 Frame 길이 규정 (64 bytes = 512 bits)
- InterFrameGap(IFG) time
- 송신을 무사히 완료한 DTE라 할지라도 다음
Frame을 연속적으로 전송하지 못 하고 96 bit time (= 9.6 us)
대기후 다시 전송가능
- 채널 독점현상 방지 (IFG 로 인해, 같은
조건에서 idle을 감지하여 송신시도)
- backoff algorithm
- 충돌이 일어나고jam 이 발생한후 채널 idle
- 재전송 간격을 truncated binary exponential
backoff 로 결정
- Random하게 결정된 정수값 r slot time만큼
대기후 재전송
- Jamming size ( 32 bits의 random 한 bit열
(실제 32개의 '1'))
- 충돌현상의 발생을 강제로 알리기 위한
신호
- 적은 bit의 충돌시 감쇄가 생겨 제대로
충돌을 알리지 못하는 경우를 방지
< CSMA/CD 방식 >
- 송신측
- MAC Frame 준비후 carrier 검사
- busy : idle할때까지 carrier를 계속
검사
- idle : interframe gap 시간인 9.6
us 대기후 전송
- 전송중 충돌 감지
- Preamble / SFD 부분 전송중 충돌 :
이 부분의 송신을 완료한후 jam 신호송신
- 나머지 전송중 충돌 : 즉시 전송을
중지한 뒤 jam 신호를 3.2 us 동안 송신
- 재전송 시도
- 총전송횟수가 16회 초과 : 상위계층에
재전송시도 초과오류를 보고
- 이하 : backoff time 동안 대기한후
재전송 시도
- 수신측
- 수신 비트열로부터 SFD 부분을 감지하여,
그이후 영역부터 DATA 까지 NIC의 shared memory (수신버퍼)에
byte 단위로 저장하면서, 프레임의 길이, DA, CRC의 계산을
동시에 수행
- Frame의 최대/최소 길이에 어긋나거나
- DA가 자신의 주소가 아닌경우
- FCS 가 틀린경우, Frame을 버린다.
- 정상적으로 완료
- MAC driver는 Type을 참조하여, 적합한
상위계층으로 정보영역만을 전달
(2) Frame 구성
- DIX 2.0 Ethernet Frame Format
- IEEE 802.3 Frame Format
- Preamble
- 송신측과 수신측간의 송/수신 속도를 일치시키기
위한 bit synchronization
- 10101010이 7회 연속 반복되는 56비트로
구성
- SFD (Start of Frame Delimiter)
- frame비트열에서 byte 단위를 식별하는
byte동기
- 정상적인 프레임의 내용이 시작된다는 사실을
알려주는 frame 동기
- 10101011의 8비트로 구성
- Preamble 및 SFD는 모두 MAC controller
chip에서 만들어진다.
- DA (Destination Address)
- Block ID (OUI = Organizationally Unique
Identifier)
- NIC 제조회사를 식별하는 code
- 송신시 각 byte 의 LSB 부터 송신
- LSB : 0 - 하나의 목적지 스테이션 ( Address
Resolution 된 경우)
- LSB : 1 - Multicast Address
- 모든 bits 가 1 : Broadcast (ARP,RARP에
사용)
- Promiscuous Mode : 각 스테이션은 Frame의
DA 에 상관없이 모든 종류의 Frame를 수신할수 있도록 설정가능
( Network Analyzer)
- SA (Source Address)
- NIC 의 ROM에 자신의 Ethernet address
기록
- MAC controller 가 초기화될 때, ROM으로
부터 주소를 읽어 내부의 register에 저장하고 있다가, frame의
송신시 이 값을 읽어 SA영역에 자동 삽입
5. Type 또는 Length

1. DIX 2.0 의 Type : 상위계층
protocol 표시 2. IEEE 802.3 의 Length : DATA
(Pad포함) 영역의 길이 3. 두가지
Frame 형식을 Autodetect 하기 위해 기준설정 1.
DIX 2.0 Type : 0x0600 이상 2.
IEEE 802.3 : 0x0600 미만
Type (Length) |
Protocol |
|
Type (Length) |
Protocol |
0000 - 05dc |
IEEE 802.3 길이 영역 |
|
0806 |
ARP |
0600 |
XNS IDP |
|
8035 |
RARP |
0800 |
IP |
|
8137 |
Netware IPX |
0805 |
X.25 PLP |
|
8191 |
NetBIOS |
Data와 Pad
Data가 최소길이제한인 46bytes보다 작을때, 그 차이만큼
Pad추가 (0으로 채워짐)
CRC ( Cyclic Redundancy Check =
FCS )
1. Preamble과 SFD 제외
2. DA + SA + Length + DATA(Pad) 영역의 계산
3. MAC controller는 Frame을 송신하면서 동시에
CRC 계산한후 DATA 뒤에 추가 4. 수신쪽 MAC
controller 도 수신하면서 동시에 CRC 계산한후 수신된 CRC 가 일치하는
지를 검사하고, 틀리면 버린다.
< 수신된 MAC Frame의 Demultiplexing
>
- DSAP 의 값에 따라, LLC의 정보영역을 어느
상위 protocol로 보낼지를 결정
DSAP |
Protocol |
|
DSAP |
Protocol |
06 |
IP |
|
E0 |
Netware IPX |
42 |
BPDU |
|
F0 |
NetBIOS |
7E |
X.25 PLP |
|
FF |
Global SAP |
80 |
XNS |
|
AA |
IEEE SNAP |
- 문제점 발생
- DSAP 의 크기가 1byte 이고, 이중에서 7
bits만 사용할수 있으므로, 지원 protocol의 수가 120여개 밖에
안된다.
- IEEE 802.2 SNAP 출현 (SubNetwork Access Protocol)
- DIX 2.0 Frame 의 Type 의 갯수만큼 protocol을
지원하기 위해 만듬
- OUI (3 bytes) : NIC 제조회사를 식별하는code
(현재는 대부분 0x000000)
- PID (Protocol Identifier) - 실제적으로
상위 protocol을 지정하는 부분으로 DIX 2.0 Frame의 Type 영역과
같은 역할
- IEEE 802.3 Demultiplexing 정리 (상위의 protocol로
전달하기위한 방법)
- 수신된 Ethernet Frame의 Type(Length)
값 확인
-> 값이 0x0600 이상이면, DIX 2.0 Type 으로
인식
- Type(Length)값이 0x0600 미만이면, IEEE
802.3 Length 로 인식
- 802.2 LLC 확인
- LLC 의 DSAP 가 0xAA 이면, 다시 SNAP 확인
-> SNAP 의 OUI 값이 0x0080C2 이면, PID 에 따라 MAC
Bridge에서 사용
- SNAP의 OUI 값이 0x000000이면, SNAP PID를
확인하여 해당 protocol로 Demultiplexing (DIX 2.0 Type 의
값과 같다)
|