Ethernet
이더넷은 가정이나 회사과 같은 로컬 환경 컴퓨터나 기타 장치를 네트워크에 연결하기 위해 개발된 통신 표준을 말합니다. OSI 1,2 계층에 속하며 단순한 구조와 저렴한 가격으로 유선 랜(Wired LAN)에서 많이 사용되는 기술입니다.
초기 이더넷은 버스형으로 하나의 네트워크 선을 공유해 사용하다보니 데이터의 충돌이 발생했고 이를 해결하기 위해서 이전에 살펴본 CSMA/CD 프로토콜을 표준으로 사용합니다. 등장한지는 오래되었지만, TCP/IP와 HTTP와 강하게 연결되어 현재로 건재하게 버티고 있습니다.
Physical topology
이더넷의 Physical topology(물리적인 배치)는 크게 두 가지 형태를 띄고 있습니다.
과거에는 bus topology를 사용했지만, 데이터 충돌의 문제로 현재는 오른쪽의 star topology 구조를 사용합니다.
가운데 스위치가 존재하고, 스위치가 호스트들을 연결하는 구조이기 때문에 충돌이 발생하지 않습니다.
여기서 라우터와 스위치를 간단히 다시 짚고 넘어가자면, 라우터는 네트워크 계층에 속해 컴퓨터를 외부 네트워크와 연결해주는 장치이고 스위치는 데이터 링크 계층에 속해 패킷을 LAN 내의 디바이스로 분배하는 장치입니다. 그래서 패킷이 인터넷에 이르기까지 일반적으로 거치는 경로를 기기 > 허브 > 스위치 > 라우터 > 인터넷 순으로 이해할 수 있습니다.
스위치는 자신과 연결된 MAC 주소를 저장한 table을 가지고 있어 MAC 주소를 이용해 host에게 전달할 수 있습니다.
이더넷 프레임 구조
이더넷 프레임은 위와 같은 구조를 가지고 있습니다.
각각을 정리해보면 아래와 같습니다.
- PREAMBLE
이더넷이라는 걸 알려주는 필드로 항상 7byte의 일정한 크기를 가집니다. 데이터를 받을 때 수신자가 데이터의 시작 부분을 찾아야 데이터를 구분할 수 있는데 이를 알려주는 필드입니다. - ADDRESS
수신 호스트의 MAC address가 저장되는 부분입니다 - Data
네트워크 계층에서 내려온 IP Packet을 저장하는 부분입니다. - CRC
에러 체크를 위한 필드입니다.
이더넷의 충돌 탐지 : Minimum Frame Size
이더넷의 Frame 최소 길이는 64byte로 고정되어 있습니다. 데이터가 1byte인 경우에도 padding byte를 삽입해 최소 길이를 맞추어야 합니다.
최소 프레임 길이가 왜 필요한지에 대한 의문이 생길 수 있습니다. 이것은 바로 이더넷에서 생기는 충돌을 탐지해 재전송을 하기 위함입니다.
우선, 이더넷은 TCP에서와는 달리 handshake 과정이 없고 (connectionless), 신뢰성이 없다는 특징(unreliable) 이 있습니다. TCP 에서는 ACK, NAK를 통해 신뢰성을 보장하지만, Ehternet은 ACK,NAK를 보내는 과정이 없습니다.
이것은 이더넷이 케이블로 직접 연결되어있기 때문에, 외부로부터 패킷의 유실과 같은 상황이 발생하지 않기 때문입니다. 그래서 충돌이 발생하지 않는 경우에는 100프로에 가깝게 Frame을 수신 호스트에 전달할 수 있고, 굳이 TCP와 같은 ACK가 필요하지 않습니다.
하지만 이렇다보니 충돌이 나는 경우에는 피드백이 없기 때문에, 이를 탐지하지 못하는 경우가 생길 수 있습니다. 이것을 Minimum Frame Size로 해결할 수 있습니다.
예를 들어, 노드 A와 E가 패킷을 주고 받는 상황을 생각해보겠습니다.
노드 A에서 노드 E로 패킷을 보내는 상황에서 A는 Channel이 비어있는것을 확인하고 Frame를 전송합니다.
그런데 노드 E에 도달하기 직전 E도 Channel이 비어있다고 판단하게 되고, Frame를 보내다 충돌이 발생하게 됩니다. 그럼 E는 전송을 중단하게 되고, Binary backoff를 수행하게 됩니다. A의 데이터도 충돌이 발생했기 때문에, 다시 Binary backoff를 수행하며 Frame을 재전송해야합니다.
하지만 충돌한 Frame이 다시 A로 돌아오기 전, A가 새로운 Frame을 전송하려고 한다면, TCP와는 달리 피드백이 없기 때문에 A 노드는 Collision이 없었다고 판단하게 되고 다음 Frame를 전송하게 되어, 이전에 보낸 Frame이 유실되는 상황이 생기게 됩니다.
이 문제는 Propagation delay로 인해서 생기는 것인데, Propagation delay는 빛의 속도이기 때문에 개선할 수가 없습니다. 대신 해당 Frame이 전부 보내질 때까지 최소한의 시간을 기다리기 위해서 Minimum Frame Size를 지정(64byte)해, 위와 같은 Proportion Delay로 인해 감지를 실패하는 상황을 방지하는 것입니다.
MAC Address
각 기기에 IP Address를 할당하기 전에 식별할 것이 필요한데, 그것이 바로 MAC 주소입니다. MAC 주소는 전세계에서 유일한 주소로, 물리적으로 연결된 Interface를 구분해줍니다.
MAC address는 48bit로 이루어져 있으며, 앞의 24bit는 제조사의 번호, 뒤의 24bit는 제조사의 고유 번호로 이루어집니다.
참고자료
[컴퓨터 네트워크 - 한양대학교 이석복 교수님]
http://www.kocw.net/home/cview.do?cid=6166c077e545b736
https://the-square-of-y.tistory.com/223
https://blog.naver.com/ds4ouj/222337311558
https://m.blog.naver.com/jchyuncorp/222033619668
Computer Networking _ A Top Down Approach, 7th
'CS > Network' 카테고리의 다른 글
[네트워크] Switch (0) | 2024.02.28 |
---|---|
[네트워크] ARP Protocol (0) | 2024.02.27 |
[네트워크] 데이터 링크 계층 : MAC Protocol (0) | 2024.02.26 |
[네트워크] 라우팅 알고리즘 (Routing Algorithms) (0) | 2024.02.23 |
[네트워크] IP 단편화&재조립, ICMP (0) | 2024.02.23 |