K 개발자

이더넷 본문

OS/네트워크

이더넷

ddingz 2021. 7. 28. 17:33

이더넷과 신호 감지 기능

공유 버스 구조에서 호스트 간의 프레임 충돌을 방지하려면 프레임을 전송하기 전에 다른 호스트가 공유 버스를 사용하고 있는지 확인해야 한다.
이는 전송 선로에 흐르는 신호를 감지하는 기능으로 구현할 수 있다.
전송 매체의 신호를 감지해 프레임의 전송 여부를 결정하는 프로토콜을 신호 감지Carrier Sense 프로토콜이라 한다.
신호 감지 프로토콜에서는 선로의 전달 지연이 성능에 영향을 많이 준다.

1-persistent CSMA

이 방식은 일반 신호 감지 프로토콜처럼 프레임을 전송하기 전에 전송 채널이 사용 중인지 확인한다.
다른 호스트에서 채널을 사용 중이라고 판단하면 유휴 상태가 될 때까지 대기한다.
그러다가 임의의 순간에 채널이 유휴 상태로 변경되면 확률 1의 조건으로 프레임을 무조건 전송하기 때문에 1-persistent CSMA라 한다.
둘 이상의 호스트에서 동시에 전송 채널을 유휴 상태로 판단하면 프레임 전송 과정에서 충돌이 발생할 수 있다.
충돌이 발생하면 임의의 시간 동안 대기한 후에 전송 채널을 감지하는 과정을 다시 반복한다.

Non-persistent CSMA

Non-persistent CSMA 방식에서는 전송 채널의 신호를 감지해 채널이 사용 중이라고 판단하면 더는 채널의 유휴 상태를 확인하지 않는다.
대신 임의의 시간 동안 기다린 후에 다시 채널 감지를 시작하기 때문에 1-persistent 방식보다 충돌이 발생할 확률을 줄일 수 있다.

p-persistent CSMA

p-persistent CSMA 방식은 슬롯 채널 방식에서 많이 사용한다.
채널이 유휴 상태이면 p의 확률로 프레임을 전송하고, 채널이 사용 중이면 다음 슬롯을 기다린 후 앞의 과정을 반복한다.

CSMA/CD

CSMA 방식은 기본적으로 둘 이상의 호스트에서 동시에 채널의 유휴 상태를 확인할 가능성이 있다.
따라서 여러 호스트가 동시에 채널을 사용할 수 있다고 판단할 수 있으며, 이런 상황이 자주 발생하면 프레임 전송 과정에서 충돌이 발생할 가능성도 커진다.
공유 버스에서 충돌이 발생하면 해당 프레임의 내용이 깨지고, 각 호스트에서 전송한 프레임의 내용이 변형되므로 프레임을 더 전송하는 것이 의미가 없다.
따라서 향상된 방식인 CSMA/CD에서는 충돌 감지Collision Detection 기능을 사용해 충돌 여부를 확인한다.


프레임 구조

상위 계층인 LLC에서 내려온 프레임을 상대 호스트에 전송하려면 MAC 계층에서 정의된 프레임 구조에 맞게 포장해야 한다.
MAC 계층 프로토콜에 정의된 MAC 헤더와 트레일러 정보를 추가한 것을 MAC 프레임MAC Frame이라 하며, 이더넷 프로토콜에서는 이더넷 프레임Ethernet Frame이라 한다.
MAC 프레임은 LLC 계층에서 보낸 모든 정보를 전송 데이터로 취급하며, 데이터 앞에는 헤더가, 뒤에는 트레일러가 위치한다.

이더넷 프레임의 구조

  • Preamble(프리엠블) : 7바이트 크기로, 수신 호스트가 송신 호스트의 클록과 동기를 맞출 수 있도록 시간 여유를 제공하는 것이 목적이다.
  • Start Delimiter(시작 구분자) : 프레임이 시작된다는 의미로 사용된다.
  • Source Address/Destination Address(송신 호스트 주소/수신 호스트 주소) : MAC 계층에서는 호스트를 구분하는 고유의 MAC 주소를 사용한다.
  • Length/Type : 필드 값이 1,500 이하이면 Data 필드의 데이터 크기를 의미하는 Length로 해석하고, 그렇지 않으면 Type으로 해석한다.
  • Length(길이) : Data 필드에 포함된 가변 길이의 전송 데이터 크기를 나타낸다.
  • Type(종류) : 이더넷 프레임에 캡슐화된 상위 프로토콜의 패킷 종류를 구분한다.
  • Checksum(체크섬) : 데이터 전송 과정에서 데이터 변형 오류의 발생 여부를 수신 호스트가 확인할 수 있도록 송신 호스트가 값을 기록해준다.

LLC 프레임 캡슐화

이더넷 프레임의 Data 필드

네트워크 계층에서 전송을 요구한 패킷은 LLC 계층으로 내려오면서, LLC 헤더 정보를 추가해 LLC 프레임이 된다.
LLC 프레임은 다시 MAC 계층으로 내려오는데, 이 과정에서 MAC 헤더와 MAC 트레일러 정보를 추가한다.
이때 LLC 계층에서 보낸 LLC 헤더와 LLC 데이터는 MAC 계층의 데이터로 취급되기 때문에 MAC 프레임의 Data 필드에 기록된다.


허브와 스위치

허브와 스위치

CSMA/CD 방식에서 트랜시버를 이용해 전송 케이블에 호스트를 연결하는 방식은 더 이상 사용하지 않는다.
대신 허브라는 박스 형태의 장비에 잭을 사용해 호스트를 연결하기 때문에 LAN 케이블의 구성이 이전보다 간단해졌다.

허브

허브Hub 구조에서는 박스 형태의 장비에 호스트를 연결하는 다수의 포트를 지원하므로, 각 호스트는 외형상 허브에 스타형 구조로 연결된다.
그러나 내부의 동작 원리는 버스형 구조를 지원하기 때문에 임의의 호스트에서 전송한 프레임을 허브에 연결된 모든 호스트에 전달한다.
허브의 내부 동작은 공유 버스 방식으로 이루어지므로 여러 호스트가 동시에 프레임을 전송하면 충돌이 발생할 수 있다.
허브 구조의 LAN에서는 전체 전송 용량이 각 호스트를 연결하는 전송 선로 용량의 제한을 받는다.
따라서 허브의 최대 전송 용량은 100Mbps로 제한된다.

스위치

스위치 허브Switch Hub는 일반 허브와 형태가 동일하지만, 성능 면에서 장점이 있다.
중앙에 위치한 허브에 스위치 기능이 있어 임의의 호스트로부터 수신한 프레임을 모든 호스트에 전송하지 않고 해당 프레임의 목적지로 지정한 호스트에만 전송한다.
따라서 이들 사이에 프레임 전송이 진행되고 있어도, 다른 호스트끼리 프레임을 전송할 수 있다.
따라서 전체 전송 용량이 증가하는 효과가 생긴다.

'OS > 네트워크' 카테고리의 다른 글

슬라이딩 윈도우 프로토콜  (0) 2021.07.30
데이터 링크 계층 프로토콜의 기초  (0) 2021.07.29
MAC 계층과 IEEE 802 시리즈  (0) 2021.07.23
다항 코드  (0) 2021.07.21
프레임  (0) 2021.07.21
Comments