1. 이더넷
•
물리 계층과 데이터 링크 계층의 핵심은 LAN 내의 호스트들이 올바르게 정보를 주고받을 수 있도록 하는데 있다.
◦
LAN → 가까운 지역을 연결한 근거리 통신망
◦
WAN → 먼 지역을 연결하는 광역 통신망
•
이를 가능하게 하는 기술이 바로 이더넷(Ethernet)
◦
LAN 내의 호스트들이 올바르게 정보를 주고받기 위해 물리 계층은 신호를 전송하고, 데이터 링크 계층은 프레임의 전달과 오류 수정 작업을 수행한다.
이더넷 표준
•
초기에는 여러 회사가 각자 다른 방식으로 네트워크 기술을 개발
◦
같은 네트워크 환경에서도 서로 다른 장비들이 데이터를 주고 받지 못하는 문제 발생
◦
예: 회사 A에서 만든 컴퓨터와 회사 B에서 만든 프린터가 같은 케이블로 연결되어도 통신 X
•
서로 다른 제조사의 장비라도 같은 표준을 사용하면 문제없이 통신이 가능하기 때문에 이더넷 표준이라는 것이 등장
•
이더넷 표준별 속도와 명칭 정리
이더넷 표준 | 알려진 이름 | 속도 |
IEEE 802.3 | 이더넷 | 10Mbps |
IEEE 802.3u | 고속 이더넷 | 100Mbps |
IEEE 802.3z 또는 302.3ab | 기가비트 이더넷 | 1000Mbps |
IEEE 802.3ae | 10기가비트 이더넷 | 10Gbps |
IEEE 802.3ba | 100기가비트 이더넷 | 100Gbps |
•
이더넷은 IEEE 802.3이라는 이름으로 국제 표준화된 기술
•
네트워크 속도가 점점 빨라지고 새로운 기술이 나오더라도, 기존 표준을 기반으로 확장되는 방식
◦
예: IEEE 802.3(10Mbps) → IEEE 802.3u(100Mbps) → IEEE 802.3ba(100Gbps)
•
일반적으로 개발자 입장에서 특정 이더넷 표준을 자세히 들여다 봐야 하는 상황은 많지 않지만, 다음 2가지 사항은 기억해 두는 것이 좋다.
1.
오늘날의 (유선)LAN 대부분이 이더넷 표준을 따르기 때문에 대다수의 LAN 장비들이 특정 이더넷 표준을 따른다.
2.
이더넷 표준이 달라지면 통신 매체의 종류를 비롯한 신호 송수신 방법, 나아가 최대 지원 속도도 달라질 수 있다.
•
네트워크 장비들을 검색해 보면 ‘특정 이더넷 표준을 지원한다’라는 안내 만구를 어렵지 않게 찾아볼 수 있다.
◦
최신 이더넷 표준을 준수하는 네트워크 장비는 일반적으로 최대 지원 속도가 빠른 경우가 많다.
이더넷 프레임
•
이더넷 프레임은 이더넷 기반의 네트워크에서 주고받는 프레임을 의미한다.
◦
프레임 = 이더넷 프레임
1.
프리앰블
•
송수신지 동기화를 위해 사용되는 8바이트(64비트) 크기의 정보
•
7바이트의 10101010이라는 값을 가지고, 마지막 바이트는 10101011이라는 값을 가진다.
•
수신지 입장에서는 이 프리앰블 비트를 통해 현재의 이더넷 프레임이 수신되고 있다는 사실을 알아차린다.
2.
송수신지 MAC 주소
•
송신지와 수신지를 특정할 수 있는 6바이트(48비트) 길이의 물리적 주소
•
다음과 같이 콜론(:)으로 구분된 12자리 16진수로 구성
◦
ab:cd:ab:cd:00:01
•
MAC 주소는 네트워크 인터페이스마다 하나씩 부여되는 주소
◦
네트워크 인터페이스: 네트워크를 향하는 통로, 연결 매체와의 연결 지점을 의미
◦
보통 NIC라는 장치가 네트워크 인터페이스를 담당
3.
타입/길이
•
명시된 크기가 1500 이하(16진수 05DC)이면 이 필드는 프레임의 크기를 의미
•
1536 이상(16진수 0600)이면 타입을 의미
◦
타입은 캡슐화된 상위 계층의 정보를 의미
◦
예를 들어 IP(IPv4)가 캡슐화된 정보를 운반한다면 타입에는 16진수 0800이 명시되고, ARP 프로토콜이 캡슐화된 정보를 운반한다면 16진수 0806이 명시된다.
4.
데이터
•
데이터 필드에는 페이로드, 즉 상위 계층으로 전달하거나 전달받을 데이터가 명시된다.
•
중요한 점은 데이터 필드에 포함될 수 있는 데이터의 최대 크기가 1500바이트 이하로 제한되어 있으며, 이보다 큰 데이터를 보낼 경우에는 여러 패킷으로 나뉘어 보내진다.
◦
이 크기를 MTU라고 부른다.
5.
FCS
•
FCS는 트레일러이다.
◦
FCS = Frame Check Sequence
•
프레임의 오류가 있는지의 여부를 확인하기 위한 필드
•
CRC라는 오류 검츌용 값이 명시된다.
◦
CRC = Cyclic Redundancy Check
◦
송시지에서 전송할 데이터와 더불어 전송할 데이터에 대한 CRC 값을 계산하여 보내면 수신지에서는 전달받은 데이터에 대한 CRC 값을 계산해, 그 값을 전달받은 CRC 값과 대조한다.
◦
두 값이 같을 경우 프레임에 오류가 없다고 판단
2. 네트워크 인터페이스: NIC
•
NIC = Network Interface Controller
•
네트워크 상에서 노드와 통신 매체가 연결되는 지점을 네트워크 인터페이스라고 한다.
•
네트워크 인터페이스는 노드와 네트워크 사이의 통로
•
네트워크 인터페이스마다 물리적 주소라고 불리는 MAC 주소가 부여되고, NIC라는 하드웨어가 네트워크 인터페이스의 역할을 담당하는 것이 일반적이다.
◦
NIC = 네트워크 인터페이스 카드, 네트워크 어댑터, LAN 카드, 네트워크 카드, 이더넷 카드
•
통신 매체의 신호를 호스트가 이해하는 프레임으로 변환하거나 호스트가 이해하는 프레임을 통신 매체의 신호로 변환하는 역할을 수행
•
때로는 MAC 주소를 토대로 잘못 전송된 패킷이 없는지 확인하는 역할도 수행
•
NIC를 작동시키는 시스템 콜이 호출되면 커널 모드로 전환된 뒤에 송수신이 수행되고, 입출력이 완료되면 인터럽트를 통해 CPU에게 작업을 알리게 된다.
•
NIC는 여느 입출력장치와 마찬가지로 각각의 성능이 다르다.
•
즉, NIC의 지원 속도가 저마다 다르고, 이는 네트워크의 속도에 큰 영향을 끼친다.
3. 허브와 스위치
•
허브와 스위치는 물리 계층과 데이터 링크 계층의 중간 노드이다.
물리 계층의 허브
•
허브는 물리 계층의 대표적인 네트워크 장비
•
여러 대의 호스트를 연결하는 장치
•
허브 = 리피터 허브, 이더넷 허브
•
허브에서 케이블의 커넥터를 포트(port)라고 한다.
•
허브에는 2가지 중요한 특징이 있다.
1.
전달받은 신호를 모든 포트로 내보낸다.
2.
반이중 모드로 통신한다.
반이중 모드(half duplex): 한 번에 한 방향으로만 전송할 수 있는 통신 방식
반이중 모드
전이중 모드
•
허브는 반이중 모드로 통신하기 때문에 어느 한 호스트가 허브를 향해 정보를 전달하면 다른 호스트는 정보를 전송할 수 없다.
◦
만일 허브를 향해 동시에 메시지를 보내면 충돌이라는 문제가 발생하며 충돌이 발생할 수 있는 영역을 콜리전 도메인이라고 한다.
충돌(collision): 두 대 이상의 호스트가 동시에 데이터를 전송하려고 할 때 발생하는 현상
콜리전 도메인(collision domain): 충돌이 발생할 수 있는 영역
◦
앞서 허브는 전달받은 신호를 모든 포트로 내보내는 동시에 반이중 모드로 통신하므로 허브에서 충돌이 발생할 수 있는 영역은 ‘허브에 연결된 모든 호스트’가 된다.
데이터 링크 계층의 스위치
•
스위치는 허브의 한계를 보완하기 위한 네트워크 장비
•
스위치는 허브와 달리 전달받은 신호를 목적지 호스트가 연결된 포트로만 내보내고, 전이중 모드를 지원하므로 허브와 비교해 콜리전 도메인이 좁다.
전이중 모드(full duplex): 동시에 양방향으로 데이터를 전송할 수 있는 통신 방식
MAC 주소 테이블
•
스위치가 전달받은 신호를 원하는 포트에만 내보낼 수 있는 이유는 스위치의 MAC 주소 학습 기능 덕분이다.
•
스위치는 데이터 링크 계층에 속한 장비이므로 MAC 주소를 이해할 수 있다.
•
스위치는 프레임 속 MAC 주소를 토대로 현재 어떤 포트에 어떤 MAC 주소를 가진 호스트가 연결되어 있는지 파악하고, 대응 관계를 테이블의 형태로 메모리에 저장한다.
포트 | MAC 주소 |
1번 | ab:cd:ab:cd:00:01 |
2번 | |
3번 | ab:cd:ab:cd:00:03 |
4번 | |
5번 |
•
이를 MAC 주소 테이블이라고 한다.
VLAN
•
VLAN(Virtual LAN)은 가상의 LAN을 의미한다.
•
이 기능은 대표적으로 같은 스위치에 연결된 모든 호스트를 하나의 네트워크로 간주하고 싶지 않을 때, 여러 논리적인 네트워크로 나누고 싶을 때 사용된다.
•
다음과 같이 스위치에 연결된 호스트를 A~I를 2개의 논리적인 네트워크(VLAN)로 나누는 경우를 예로 들 수 있다.
•
호스트 A~D와 호스트 E~I는 서로 다른 VLAN에 속해 있으므로 서로 다른 네트워크로 간주된다.
•
브로드캐스트 도메인도 겹치지 않아 VLAN1의 브로드캐스트 메시지가 VLAN2에 도달하지 않는다.
•
호스트 A~D와 호스트 E~I가 서로 통신을 주고 받으려면 네트워크 계층 이상의 장비가 필요하다.