이더넷이란?
이더넷은 전세계에서 가장 널리 쓰이는 네트워크 통신 규격이다.
우리 컴퓨터에 탑재되어있는 네트워크 인터페이스는 대부분 이더넷 규격을 사용한다.
링크계층에서 전송하게되는 링크 계층 프레임 중 하나로 볼 수 있다. 하지만 대부분의 네트워크 규격이 이더넷이므로 링크 계층 프레임 == 이더넷 프레임 이라 생각해도 될 것같다.
이더넷 프레임의 구조
이더넷 프레임은 링크 계층 프레임이므로 네트워크 계층의 데이터그램을 캡슐화 한다. 일반적으로 네트워크 계층에서 IP 프로토콜을 주로 쓰기 때문에 이더넷 프레임이 IP 데이터그램을 캡슐화 한다고 이해하면 된다.
데이터 필드(46~1500 비트)
IP 데이터그램을 운반하는 필드이다. 이더넷의 최대 전송단위(MTU, maximum transfer unit)는 1500 바이트이다. 그리므로 데이터 그램의 크기가 1500바이트를 넘으면 데이터 그램을 단편화 해야한다. 여기서 주의할 점은 이더넷의 데이터필드는 최소 전송 단위가 존재한다는 점이다. 데이터 필드는 최소 46 바이트의 크기를 가져야 하며, 만약 IP 데이터그램이 46바이트보다 작으면 데이터 필드를 임의로 채워서 46바이트로 만들어야 함을 의미한다. -> 따라서 네트워크 계층에서는 임의로 채워진 부분을 제거하기 위해서 IP데이터 그램 헤더(20바이트)에 있는 길이 필드를 사용하게 된다.
목적지 주소(6바이트)
목적지 어댑터의 MAC주소를 포함한다.
수신 어댑터는 자신의 MAC주소가 포함된 이더넷 프레임을 받거나, MAC브로드캐스트 주소를 가진 이더넷 프레임을 받으면, 프레임의 데이터 필드 내용을 네트워크 계층으로 전달한다.
출발지 주소(6바이트)
이더넷 프레임을 랜으로 전송해주는 어댑터의 MAC주소를 포함한다.
타입 필드(2바이트)
이더넷으로 하여금 네트워크 계층 프로토콜을 다중화하도록 허용한다. 네트워크 계층에서 IP 프로토콜 말고도 다른 프로토콜을 사용할 수 있다는 것을 알아야 한다. 타입 필드를 통해서 어댑터는 어떤 네트워크 계층 프로토콜로 데이터 필드의 내용을 전달할지 결정한다.
순환중복검사(CRC)(4바이트)
수신어댑터로 하여금 프레임에 오류가 생겼는지 검출할 수 있게 한다.
프리앰블(8바이트)
이더넷 프레임은 8바이트의 프리앰블로 시작한다. 이는 수신 어댑터를 깨우고 수신자의 클록을 송신자의 클록과 동기화 시켜주는 역할을 한다. 송신 어댑터는 이더넷 랜의 종류에 따라서 1Mbps , 100Mbps등의 다양한 속도로 전송하려고 한다. 하지만 완벽하게 속도를 맞추기란 힘들기 때문에 수신 어댑터는 클록을 단순히 프리앰블의 첫 7바이트에 있는 비트값에 맞춤으로써 송신 어댑터와의 클록을 동기화 할 수 있다.
프리앰블의 8번째 비트는 수신 어댑터로 하여금 '중요한 것'이 오고 있음을 알려준다.
이더넷 기술의 특징
모든 이더넷 기술은 네트워크 계층에게 비연결형 서비스를 제공해준다. 즉, 수신 어댑터가 송신어댑터와 '핸드셰이킹'을 하지 않고 이더넷 프레임에 데이터그램을 캡슐화해서 그 프레임을 랜으로 전송한다. 이와 같은 링크 계층 비연결형 서비스는 IP의 네트워크 계층 데이터 그램 서비스 및 UDP의 트랜스포트 계층 비연결형 서비스와 유사하다.
따라서 이더넷규격을 통해 전송된 프레임은 CRC 검사에서 성공하든 실패하든 송신 어댑터는 어떠한 확인응답도 받지못한다.
만약 잃어버린 이더넷 프레임 때문에 손실된 데이터 그램이 존재하는 경우 애플리케이션은 어떻게 이를 알 수 있을까? 이는 트랜스포트 계층에서 TCP연결을 수행하는지, UDP 연결을 수행하는지에 따라서 갈리게 된다.
'CS > Network' 카테고리의 다른 글
[Network] 가상 근거리 네트워크(VLAN) (0) | 2021.11.06 |
---|---|
[Network] 링크 계층 스위치 (0) | 2021.11.05 |
[Network] 링크 계층 주소체계와 ARP (0) | 2021.11.04 |
[Network] 네트워크 계층 : OpenFlow 프로토콜 (0) | 2021.10.08 |
[Network] 네트워크 계층 : SDN(Software-Defined Networking) (0) | 2021.10.08 |