이 글은 강민철님의 혼자 공부하는 네트워크(인프런) 강의를 수강하고 개인적으로 정리한 내용입니다.
들어가기에 앞서
3장 물리 계층과 데이터 링크 계층, 4장 네트워크 계층은 개발자와는 상관이 없는 지식이 아닐까? 생각할 수 있다.
물론 과거에는 네트워크 엔지니어 직무에게만 요구되던 지식은 맞다. (직무별로 네트워크 참조 모델을 구분하던 시절이 있었다.)
하지만 현재 우리는 네트워크(인프라)를 코드로 다루는 시대에 살고 있다.
따라서, 개발자도 인프라를 다룰 수 있기에 인프라를 다루는 역량이 점점 더 요구되고 있다.
해당 내용을 인지하고 3, 4장을 공부해야 한다.
이더넷이란?
유선 LAN 환경에서 가장 대중적으로 사용되는 기술
이더넷에는 다양한 통신 매체의 규격 / 송수신되는 프레임 형태 / 프레임을 주고 받는 방법이 정의되어 있다.
유선 LAN 환경은 대부분 이더넷으로 구성된다는 말은
- 물리 계층에서는 사용되는 케이블은 이더넷 규격을 따른다는 것을 의미하고
- 데이터 링크 계층에서 주고받는 프레임은 이더넷 프레임의 형식을 따르는 것을 의미한다.
이더넷은 두 계층에 걸쳐있는데, 이는 데이터를 신뢰성있게 전송하기 위해 물리적 전송과 논리적 주소 지정을 모두 다루어야 하기 때문이다.
물리 계층에서는 다양한 통신 매체(케이블)를, 데이터 링크 계층 관련해서는 이더넷 프레임 형식을 알아본다.
통신 매체 관련 이더넷 (물리 계층)
통신 매체를 표기할 때는 아래와 같이 표기한다.
[전송 속도]BASE-[추가 특성]
ex) 10BASE-T, 100GBASE-LR4, 1000BASE-LX 등
1) 전송 속도
숫자만 표기되어 있으면 Mbps
숫자 + G이면 Gbps
2) BASE
base band의 약자로 변조 타입을 의미
변조 타입 : 비트 신호로 변환된 데이터를 통신 매체로 전송하는 방법
3) 추가 특성
- 전송 가능 최대 거리, 물리 계층 인코딩 방색, 레인 수, 통신 매체의 종류 등
추가 특성 표기 | 케이블 종류 |
C | 동축 케이블 |
T | 트위스티드 페어 케이블 |
S | 단파장 광섬유 케이블 |
L | 장파장 광섬유 케이블 |
이더넷 프레임 (데이터 링크 계층)
프레임 = 데이터 링크 계층에서 주고 받는 데이터 단위
이더넷 프레임 = 이더넷 네트워크에서 주고 받는 데이터 단위
이더넷 프레임의 구성은 아래와 같다.
1) 헤더 - 프리앰블, 수신지 MAC 주소, 송신지 MAC 주소, 타입/길이
2) 페이로드 - 데이터
3) 트레일러 - FCS
1. 헤더
(1) 프리앰블
이더넷 프레임의 시작을 알리는 8바이트 크기의 정보
송수신지 간의 동기화를 위해 사용
- 첫 7바이트는 10101010 / 마지막 바이트는 10101011의 값을 가진다.
- 이렇게 정해진 비트열을 전송받는 경우, 이더넷 프레임을 송신받는다는 정보를 알 수 있다.
(2) 송, 수신지 MAC 주소
MAC 주소란
물리적 주소 (일반적으로 고유하고 변경되지 않음)
네트워크 인터페이스마다 부여되는 6바이트 길이의 주소 (제조사 id + 고유 주소)
(3) 타입 / 길이
필드의 크기가 1500 이하 : 프레임의 크기
필드의 크기가 1536 이상 : 타입
타입이란
이더 타입
어떤 정보를 캡슐화했는지를 나타냄
대표적으로 상위 계층에서 사용된 프로토콜을 명시 (0800 => IPv4, 86DD => IPv6)
2. 데이터
상위 계층에서 전달받거나 전달해야 할 내용
크기 : 최소 46 바이트 ~ 최대 1500 바이트 (46바이트보다 작으면 크기 맞추기용 데이터인 패딩이 0으로 채워짐)
3. FCS (Frame Check Sequence)
오류 검출용 정보
수신한 이더넷 프레임에 오류가 있는지 확인하기 위한 필드
CRC(cyclic redundancy check)라는 오류 검출용 값이 명시됨
송신지 : 전체 필드를 기반으로 CRC 값을 계산해서 FCS에 명시
수신지 : 전달받은 데이터를 기반으로 CRC를 다시 계산해서 기존의 CRC값과 비교해서 손상 여부를 확인
정리
- 이더넷이란 유선 LAN 환경에서 가장 대중적으로 사용되는 기술이다.
- 이더넷 프로토콜은 물리 계층, 데이터 링크 계층 2가지의 계층에 걸쳐있는데, 물리 계층은 이더넷 케이블로 실제 물리적 신호를 전달하고, 데이터 링크 계층에서는 이더넷 프레임으로 데이터를 주고 받는다.
- 통신 매체를 표기할 때는 전송 속도]BASE-[추가 특성]와 같은 형태로 표기한다.
- 이더넷 프레임은 헤더, 페이로드, 트레일러로 구성되어 있다. 트레일러 내부의 FCS로 오류를 검출한다.
물리 계층과 데이터 링크 계층의 장비
물리 계층 : 허브, 케이블(트위스티드 페어 케이블, 광섬유 케이블)
데이터 링크 계층 : 스위치, NIC
허브 - 반이중 통신, CSMA/CD
스위치 - 전이중 통신, VLAN
물리 계층과 데이터 링크 계층의 차이 : 주소 개념의 유무
물리 계층 : 주소 개념이 없어서 송수신 정보에 대한 판단을 할 수 없다.
데이터 링크 계층 : MAC 주소를 기반으로 데이터를 주고받기 때문에 송수신 정보를 알고 있다.
허브 - 물리 계층의 대표적인 네트워크 장비
허브의 전송 특징
1. 받은 정보를 어떠한 조작과 판단없이 모든 포트로 다시 내보낸다.
예를 들어 A에 대한 신호를 전달받으면 다른 포트인 B, C, D에 A에서 받은 신호를 그대로 다시 내보낸다는 것이다.
이는 불필요한 트래픽을 야기할 수 있다.
2. 반이중 모드로 통신한다.
반이중 모드는 1차선 도로처럼 송수신을 번갈아가며 하는 방식을 말한다.
이로 인해 A와 B가 동시에 신호를 송신하면 다른 모든 포트에 신호를 보내야 하므로 충돌할 가능성이 있다.
충돌이 발생가능한 영역을 콜리전 도메인이라고 하는데, 전체 포트에 연결된 호스트가 콜리전 도메인에 속하게 된다.
콜리전 도메인을 줄이려면?
1) CSMA/CD(프로토콜)를 사용
2) 다른 장비(스위치)를 사용
CSMA/CD
반이중 이더넷 네트워크에서 충돌을 방지하는 대표적인 프로토콜
1) 캐리어를 감지한다. (다른 호스트가 누가 보내고 있는지 확인)
2) 충돌이 발생하면 잼 신호를 보낸다.
3) 임의의 랜덤 시간 이후에 다시 전송한다.
허브의 충돌 문제 해결
허브가 사용한 CSMA/CD는 충돌을 방지하기 위한 프로토콜이지만, 사실 근본적인 해결 방법은 아니다.
이를 해결하기 위한 방법은 전달받은 신호를 수신지 호스트가 연결된 포트로만 내보내면 된다.
하지만, 이를 위해서는 주소 개념을 알아야 하는데, 이를 위한 장비가 바로 데이터 링크 계층의 스위치이다.
스위치 - 데이터 링크 계층의 대표적인 네트워크 장비
스위치의 주요 기능
1) MAC 주소 학습
- 특정 포트와 해당 포트에 연결된 호스트의 MAC 주소의 관계를 기억한다.
(예를 들어 A 포트에 연결된 MAC 주소는 ab:cd:ac:cd:00:01)
- 포트별로 콜리전 도메인이 감소하여 충돌할 위험이 감소한다.
- MAC 주소를 저장하기 위해 스위치 포트와 연결된 호스트 간의 연관 관계를 나타내는 MAC 주소 테이블을 메모리에 저장하고 있다.
MAC 주소 테이블의 생성 과정
위와 같은 상황에서 호스트 A => 호스트 C로 데이터를 전송한다면?
호스트 A가 1번 포트로 신호를 전송하고, 스위치는 A로 부터 받은 신호를 통해 MAC 주소를 학습한다.
MAC 주소 테이블에는 A의 송신지 MAC 주소(이더넷 프레임 내부)를 기반으로 테이블이 채워지며, MAC 주소 테이블은 아래와 같다.
포트 | MAC 주소 |
1번 | ab:cd:ab:cd:00:01 (호스트 A의 MAC 주소) |
2번 | |
3번 | |
4번 |
1) 플러딩
이때, 호스트 C가 연결된 스위치가 몇 번인지는 알지못한다.
따라서 허브처럼 모든 포트에게 신호를 다 보내는데 이를 플러딩이라고 한다.
호스트 B와 D는 수신지 MAC주소와 달라서 프레임을 폐기하지만
호스트 C는 신호를 수신지 MAC 주소가 자신의 MAC 주소와 동일하기 때문에 신호를 수신하고 응답 프레임을 스위치에 전송한다.
그리고 응답 프레임의 송신지를 보고 3번 포트와 연결된 호스트 C의 MAC 주소도 학습한다.
만약 호스트 A와 C가 또다시 신호를 주고 받을 때에는 플러딩을 할 필요가 없다.
2) 포워딩과 필터링
호스트 A가 C에게 프레임을 다시 전송하면
스위치는 호스트 B나 C에 연결된 포트로는 보내지 않도록 필터링하고, 호스트 C가 연결된 포트로 포워딩한다.
3) 에이징
만약 MAC 주소 테이블에 등록된 포트에서 일정 시간동안 프레임을 받지 못하면 해당 항목은 삭제한다.
2) VLAN
한 대의 스위치로 가상의 LAN을 만드는 방법
- 불필요한 트래픽을 줄이고, 성능 저하를 방지한다.
- 한 대의 물리적인 스위치라고 해도, 마치 여러 대의 스위치가 있는 듯이 동작하는 LAN (물리적으로는 같으나, 논리적으로 분리한다)
- 같은 네트워크가 아니라 다른 네트워크로 간주된다.
VLAN의 종류
1) 포트 기반 (정적 VLAN)
- 포트마다 특정 VLAN을 할당하는 방식
- 호스트 A, B는 같은 LAN에 속함
- C는 A, B와는 다른 LAN에 속함
2) MAC 기반 (동적 VLAN)
- MAC 주소에 따라 VLAN을 결정하는 방식
정리
- 물리 계층의 대표적인 장비는 허브이고, 데이터 링크 계층의 대표적인 장비는 스위치이다.
- 각 계층의 차이는 주소 개념의 유무이며, 물리 계층에서 사용되는 허브는 주소 개념을 모르고 데이터 링크 계층에서 사용되는 주소를 학습한다.
- 허브의 전송 방식은 2가지 특징이 있는데, 전송받은 신호를 모든 포트에 그대로 전송한다는 것이고, 반이중 모드로 통신한다는 것이다.
- 허브는 콜리전 도메인(충돌이 발생하는 범위)을 줄이기 위해서 CSMA/CD라는 방식을 사용하기도 한다.
- CSMA/CD는 스위치에서 충돌이 발생하는 근본적인 원인을 해결하지 못한다. 하지만 데이터 링크 계층에서 사용되는 스위치는 MAC 주소 학습 기능과 VLAN으로 근본적으로 충돌이 발생하는 원인을 해결한다.
- MAC 주소를 학습할 때는 MAC 주소 테이블에 포트 번호와 MAC 주소를 매칭하여 저장한다.
- VLAN은 하나의 스위치를 여러개의 논리적인 LAN으로 분리한다. 분리할 때는 포트를 기반으로 하거나 MAC 주소를 기반으로 분리한다.
마무리
섹션 3에서는 OSI 7계층 중에서 물리 계층과 데이터 링크 계층의 차이와, 각 계층을 대표하는 네트워크 장비인 허브와 스위치에 대해서 알 수 있었다.
'💻 CS > 🫧 네트워크' 카테고리의 다른 글
[혼자 공부하는 네트워크] (6) 응용 계층 (0) | 2025.01.25 |
---|---|
[혼자 공부하는 네트워크] (5) 전송 계층 (0) | 2025.01.23 |
[혼자 공부하는 네트워크] (4) 네트워크 계층 (0) | 2025.01.21 |
[혼자 공부하는 네트워크] (2) 컴퓨터 네트워크 시작하기 (0) | 2025.01.17 |
[혼자 공부하는 네트워크] (1) 목차 (1) | 2025.01.16 |