Ethernet 프로토콜의 정의

LAN은 회사나 캠퍼스 같은 지리적으로 좁은 공간을 위해 설계된 네트워크이다. LAN 환경에는 Ethernet, FDDI, 토큰 링, 토큰 버스 등의 여러 기술이 있다. 그 중, Ethernet은 1976년 Xerox의 PARC에서 만들어진 프로토콜로  물리계층에서 동작하며 가장 일반적으로 사용되는 LAN 표준 프로토콜이다. Ethernet 프로토콜은 CSMA/CD 방식으로 동작한다. Ethernet은 꾸준히 발전하여 표준 Ethernet (10Mbps), Fast Ethernet (100Mbps), Gigabit Ethernet (1Gbps), Ten-Gigabit Ethernet (10Gbps)의 4세대를 거쳤다. 

 

 

Ethernet 프레임의 구조

 

1. Preamble

Ethernet 프레임의 첫번째 필드로, 0과 1이 번갈아 나타나는 7Bytes가 포함되어 수신 시스템에 다가오는 프레임이 있음을 알리고 입력 타이밍을 동기화할 수 있다. 물리계층에 추가되는 필드로 공식적인 Ethernet 프레임의 부분은 아니다.

 

2. SFD (Start Frame Delimeter)

프레임의 시작을 알리는 1Byte의 필드이다. 동기화를 위한 마지막 기회임을 경고하기 위해 사용된다. SFD의 마지막 2bits는 11로 수신자에게 다음 필드는 목적지 주소임을 알린다. 

 

3. Destination address

목적지의 물리적 주소를 정의하는 6Bytes의 필드이다. 

 

4. Source address

출발지의 물리적 주소를 정의하는 6Bytes의 필드이다.

 

5. Length or Type

프레임이 전달하는 데이터의 유형이나 길이를 정의하는 필드이다. 원래 Ethernet은 MAC 프레임을 사용하여 상위 계층 프로토콜을 정의하기 위해 Type 필드를 사용했고, IEEE 표준은 Data 필드의 바이트 수를 정의하기 위해 이를 Length 필드로 사용했다.

 

6. Data and Padding

상위 계층 프로토콜로부터 캡슐화된 데이터를 전달하는 필드이다. 상위 계층의 데이터 길이는 최소 46Bytes ~ 최대 1500Bytes의 길이를 가진다. 

 

7. CRC (Cyclic Redundancy Check)

오류 검사를 위한 필드이다. 전송된 데이터에 오류가 있는지를 검사하기 위한 오류 감지 정보가 포함된다.

 

 

Ethernet 프레임의 최소, 최대 길이 제한

CSMA/CD의 올바른 동작을 위해서는 이더넷 프레임은 최소 64Bytes (512bits) 이상이어야 한다. 이더넷 프레임의 헤더와 트레일러를 18Bytes (Preamble 7Bytes, SFD 1Byte, 목적지 주소 6Bytes, 출발지 주소 6Bytes, Length or Type 2Bytes, CRC 4Bytes) 로 계산하면 64Bytes - 18Bytes = 46Bytes가 된다. 따라서 Data의 길이가 46Bytes에 미치지 못한다면 Padding을 추가하여 최소 조건을 맞출 수 있다.

 

- 이더넷이 처음 설계되었을 때, 메모리의 가격은 매우 높았다. 길이 제한을 통해 버퍼의 크기를 줄여 비용적 부담을 줄였다.

- 최대 길이의 제한을 둠으로써, 공유 매체를 독점하는 것을 방지할 수 있다.

위와 같은 이유로 Ethernet 프레임은 길이 제한을 가지게 되었다.

 

 

CSMA/CD를 위한 프레임 길이 제한

프레임의 마지막 bit를 보내기 전에 송신 스테이션은 충돌을 감지하고 충돌이 있다면 전송을 중단해야 한다. 전체 프레임이 전송된 후에는 스테이션이 프레임의 사본을 더 이상 보관하지 않고 충돌 감지를 위해 회선을 모니터링하지 않기 때문이다. 따라서 충돌 여부를 감지하는 동안 프레임을 계속 전송하고 있어야 충돌이 일어나더라도 재전송할 수 있기 때문에 최소 64Bytes의 프레임 길이 제한을 가지고 있는 것이다.

 

예를 들어 설명해보자. 두 개의 스테이션이 최대 거리만큼 떨어져 있을 때, 첫번째 신호가 두번째 스테이션에 도달할 때까지 Tp의 시간이 소요되고, 충돌 신호가 첫번째 스테이션에 도달하는데 TP의 시간이 소요된다고 가정하자. 첫번째 스테이션이 2Tp 시간 이후에도 여전히 전송 중이어야 프레임의 재전송이 가능하다. 10Base5는 최대 전송 거리가 500m이고, 4개의 리피터를 사용하면 최대 2500m이다. 또한 500m 당 2.8usec가 필요하므로 2500m 전송에는 2.8 X 5 = 14usec 시간이 소요된다. 리피터는 3usec만큼의 지연 시간이 발생할 수 있으므로 총 12usec의 지연시간이 추가적으로 발생할 수 있다.  앞서 말했듯이 2Tp 시간 이후에도 전송되는 중이어야 하므로 14 X 2 = 28usec 시간 + 12 X 2 = 24usec = 총 52usec의 시간이 소요된다. 10Base5는 10Mbps 속도를 가지므로 1bit를 보내는데 0.1usec의 시간이 소모되는데, 최소 52usec 동안 데이터를 전송할 수 있는 프레임의 길이를 가져야 하므로 512bits (64Bytes) 이상의 길이를 가져야 한다. 하지만, 모든 프레임의 길이 제한이 64Bytes인 것은 아니다. 10Base5일 때, 64Bytes의 길이 제한을 가지는 것이다.  

 

 

Ethernet 프레임의 전달 방식 구분

생성된 패킷은 한 스테이션에서만 나오므로 출발지 주소는 항상 Unicast 주소이다. 하지만, 목적지 주소는 Unicst, Multicast, Broadcast일 수 있다. 목적지 주소의 bit 값을 비교하여  Destination address가 Unicast 인지, Multicast 인지, Broadcast인지 구별할 수 있다. 

 

 

1. Unicast

목적지 주소의 첫번째 Byte의 최하위 bit가 0이면 Unicast 주소이다.

 

2. Multicast

목적지 주소의 첫번째 Byte의 최하위 bit가 0이 아니면  Multicast 주소이다.

 

3. Broadcast 

목적지 주소의 48번째 bit의 값이 1이면 Broadcast 주소이다.

 

 

 

 

 

 

공부하면서 정리한 내용을 글로 작성하였습니다.

혹시나 잘못된 내용이 있다면 댓글로 알려주시면 감사하겠습니다 :)

COMMENT