1계층 : 전기 · 기계적인 전송
OSI 참조 모델에서 1계층은 통신 매체에 데이터를 보내는 것과, 그 데이터가 지나는 것에 대한 순서와 규칙이라고 배웠다. 여기서 통신 매체란 케이블을 의미하고, 데이터는 케이블을 통해 신호의 형태로 흐른다. 즉, 케이블이 연결되어 있는 기기에 신호를 전달하는 것이 1계층의 역할이다.
통신 매체
통신 매체는 신호가 지나는 파이프 역할을 하는 것을 지칭하며, 케이블이 이를 담당하고 있다. 무선과 유선 방식이 있는데, 유선 방식은 케이블을 사용해 신호를 보냄으로써 수신처까지 데이터가 도달하는 방식으로, 이때 사용하는 케이블은 전기신호를 사용하는 동선과 광신호를 사용하는 광파이버가 있다.
동선 케이블 중 현재 자주 사용되는 것은 UTP(Unshielded Twist Pair Cable)이다. UTP는 두 개가 한 쌍인 동선 네 쌍으로 이루어져 있다. 비교적 굽히기 쉬운 편이라 배선하기 쉬워 LAN에서 일반적으로 사용된다. 광파이버 케이블의 경우 신호의 안정과 통신속도 면에서 뛰어나지만 굽히기 어렵다.
신호
컴퓨터와 통신 매체를 연결하는 장치가 인터페이스라고 배웠다. 인터페이스의 역할을 더 자세히 말하자면, 컴퓨터가 보내고 싶은 데이터(비트)를 케이블에 맞는 신호로 변환해서 케이블로 보내고, 케이블에서 보내온 신호를 컴퓨터에서 사용하는 데이터(비트)로 변환하는 장치이다.
컴퓨터에 사용하는 인터페이스로는 LAN용 케이블에 접속하기 위한 NIC(Network Interface Card)가 일반적이다. WAN의 경우 DCE(Data Circuit terminating Equipment: 회선종단기기)라는 별도의 신호 변환기를 이용한다.
앞에서 배웠듯이, 인터페이스는 비트를 신호로, 신호를 비트로 변환하는 기기이다.
신호에는 아날로그 신호와 디지털 신호가 존재한다. 아날로그 신호는 여러 전압 값을 가져 연속적으로 변화하고, 디지털 신호는 한정된 수의 전압 값만을 가진다. 주로 0과 1의 전압 값을 가진다.
신호의 형태와 전송방법에 따라 통신속도가 결정된다.
통신속도는 일반적으로 1초 동안 전해지는 비트 수로 표현된다(bps, bit per second).
때문에 통신속도를 위해서는 한 개의 신호를 되도록 짧게, 또 한 개의 신호로 되도록 많은 정보를 표현할 수록 좋다.
하지만 신호가 너무 짧아진다거나, 신호 하나로 너무 많은 것을 표현하려고 하면 수신자 측에서 신호를 바르게 식별하지 못할 가능성이 커진다.
이외에도 신호에 발생하는 문제는 여럿 있는데
- 신호의 감쇠
- 동선에는 저항이 있기 때문에 긴 케이블을 지나는 동안 신호의 진폭이 약해져서 읽을 수 없게 된다.
- 때문에 도중에 '약해진 신호를 본래 상태로 되돌리기' 위한 '증폭' 처리를 하는 기계(허브, 리피터)를 중간에 설치하여 문제를 해결한다.
- 노이즈 · 감쇠
- 전기신호가 어떤 원인에 의해 형태가 무너져서 신호의 진폭을 정확히 읽을 수 없게됨
- 근처에 큰 전원이 있다거나 고온 물체가 옆에 있다거나 신호를 보내는 또 다른 케이블이 근처에 존재하거나 번개나 무선 등 전자파가 발생하는 물체가 존재하는 등 여러 원인이 존재함
- 원인으로부터 케이블을 멀리 두거나 케이블에 특수 가공을 해서 신호가 망가지는 것을 막을 필요 존재
- 충돌
- 멀티액세스 네트워크에서 발생하는 문제
- 신호가 보내지고 있는 도중에 다른 신호를 보내는 경우에 발생함
- 전기신호가 뒤섞여서 신호의 진폭이 붕괴됨.
- 이를 해결하기 위해 두 가지 방법이 존재한다.
- 신호를 보내는 타이밍을 엇갈리게 하거나
- 신호가 지나는 길을 나눈다.
이러한 문제들을 해결하기 위한 방법을 알아보기 전에, 허브의 기능을 알아보자.
허브의 기능
허브의 기능은
- 신호를 증폭하고, 재생하는 기능
- 감쇠에 의해 붕괴된 신호를 본래의 형태로 증폭하고 재생함.
- 증폭만 하는 기계로는 리피터(Repeater)가 있음. 리피터는 케이블과 케이블 사이에 연결하는 기계로 허브처럼 케이블을 많이 연결할 수 없다.
- 복수의 기기를 연결해서 네트워크를 구축하는 기능
- 허브에 케이블을 연결함으로써 하나의 케이블에 연결되어 있는 것과 동일한 취급을 받음
- 이를 통해 허브에 연결되어 있는 기기끼리 신호를 주고받을 수 있게 됨
- 허브에 있는 포트 수보다 많은 컴퓨터가 있는 경우 허브와 허브를 연결하는 접속을 하여 연결할 수 있다. 이를 연속 접속(cascade connection)이라고 부른다.
으로 정리할 수 있다. 1번 기능을 통해서 우리는 신호의 감쇠 문제를 해결할 수 있다.
충돌 도메인
하지만 허브에는 한 가지 문제점이 있다. 허브는 수신한 포트 이외의 모든 포트에 수신한 신호를 송신(플러딩)하기 때문에 같은 허브에 연결되어 있는 2대 이상의 컴퓨터가 동시에 신호를 보낼 경우 충돌이 발생한다. 이처럼 신호를 송신하면 충돌이 발생할 가능성이 있는 범위를 충돌 도메인(Collision Domain)이라고 한다. 즉, 같은 허브로 연결되어 있는 컴퓨터는 같은 충돌 도메인 내에 있다고 할 수 있다.
2계층 : 데이터 전송 제어
때문에 데이터 전송을 제어하지 않으면 충돌이 발생하거나 잘못된 데이터를 송수신하여 통신에 문제가 생기거나, 통신이 비효율적으로 이뤄질 가능성이 생긴다. 따라서 2계층에서는 신호가 닿는 범위(세그먼트)에서 데이터를 어떻게 송수신할지, 데이터 전송에 관한 규정을 다룬다.
프레이밍과 신호의 동기
책의 1장에서 OSI 7계층 모델에서는, 각 계층을 지날 때마다 데이터 통신에 필요한 정보를 덧붙인다고 했다. 2계층에서는 이 작업을 프레이밍(Framing)이라고 한다. 이전에 배웠던 표현으로는 제어 데이터를 덧붙여서 캡슐화하는 작업이라 할 수 있다. 이렇게 캡슐화된 2계층 PDU는 프레임(Frame)이라고 부른다.
이렇게 프레이밍을 하게 되면 프레임의 가장 앞에는 프리앰블(Preamble)이 덧붙여지는데, 7byte 크기로(1010101), 수신 측에게 프레임이 도착함을 알리고, 이를 통해 비트를 읽는 타이밍을 맞춘다(비트 동기). 이는 비동기 방식으로 패킷 교환 방식에서는 프리앰블 방식을 일반적으로 사용한다.
또 다른 타이밍을 맞추는 방법으로 데이터를 송수신하지 않는 상태에서도 클록(Clock) 신호라고 부르는 '타이밍을 맞추는 신호'를 계속해서 보내는 방법도 있다. 이는 동기 통신이라고 부르는데, 항상 신호를 보내는 수고가 필요하기 때문에 주로 사용되지 않는다.
이더넷
2계층의 규격은 1계층에서 다루는 신호와 케이블에 따라 달라진다. LAN용과 WAN용으로 나눠진다. 3계층 이상의 계층에서는 LAN이나 WAN이나 동일한 규칙을 사용한다. 즉, 사용하는 케이블에 따라 사용하는 규칙이 다른 것은 2계층까지이다.
LAN의 경우 사실표준인 이더넷(Ethernet)이라는 규격을 사용한다. 이더넷은 네트워크에 연결된 각 기기들이 MAC 주소를 가지고, MAC 주소를 이용해 상호 간에 데이터를 주고받을 수 있도록 만들어진 것이다.
이더넷에 사용되는 주소인 MAC 주소(Media Access Control Address)는 인터페이스에 지정된 고정 주소이다. MAC 주소는 48비트 값으로, 4비트마다 16진수로 고쳐서 쓴다. MAC 주소의 선두 24비트는 인터페이스를 제조한 메이커 번호로, 벤더 코드(Vendor Code)라고 부른다. 후반의 24비트는 제조한 메이커가 붙인 번호(벤더 할당 코드)이다. 즉, 어느 메이커가 만든, 몇 번째 인터페이스라는 의미를 가진다.
지금까지 배운 내용을 요약하자면, 2계층에서 이더넷 규격을 따르는 경우, '이더넷 헤더'와 '이더넷 트레일러'를 데이터그램에 붙여서 '이더넷 프레임'으로 캡슐화하고, 이더넷 프레임이 신호가 되어서 케이블로 전달된다.
헤더에는 프리앰블, 수신처, 송신처의 MAC 주소, 페이로드의 내용을 식별하는 타입이 붙는다. 트레일러에는 에러를 체크하는 FCS(Frame Check Sequence)가 붙는다. FCS를 붙이면 신호가 전송되는 동안 문제가 생겨 0과 1을 반대로 읽었을 때, 에러가 발생했음을 체크할 수 있다. 하지만 기본적으로 통신 도중에는 에러를 고칠 수 없기 때문에 FCS를 통해 에러의 발생 유무를 알게 되면, 에러가 있었던 프레임을 파기한다. 그리고 파기 사실은 송신 측에 알리지 않는다.
페이로드란 헤더나 메타 데이터 등을 제외한, 보내고자 하는 데이터 그 자체를 의미한다.
주소와 캐스트
아래는 네트워크에서 사용하는 통신방법을 분류한 것이다.
- 유니캐스트(Unicast) : 1대 1 데이터 통신.
- 브로드캐스트(Broadcast) : 1대 전체, 네트워크에 연결된 모든 호스트에게 메시지를 보내는 데이터 통신
- 멀티캐스트(Multicast) : 1대 다수, 지정된 복수의 기기로 메시지를 보내는 데이터 통신
- 애니캐스트(Anycast) : 1대1 데이터 통신, 동일 그룹(동일 주소를 가지는) 호스트 중 가장 가까운 호스트에서 응답.
- 지오캐스트(Geocast) : 지리적 위치로 근거리로 식별되는 인근 지역 지리적 위치에 따른 네트워크의 대상 그룹에 트래픽 정보를 전달하는 것.
각각의 기기는 유니캐스트 주소를 한 개 이상 가지고 있다. 라우터와 같이 복수의 인터페이스를 가진 기기는 인터페이스마다 유니캐스트 주소를 가진다. 또한, 각 유니캐스트 주소는 유일하다. 반면 멀티캐스트는 '그룹 번호' 취급이기 때문에 같은 주소를 가진 기기가 여럿 존재할 수 있다.
이더넷 동작
이더넷 동작에 대해서 알아보자.
- 멀티액세스 네트워크에서는 허브를 사용하고, 허브는 플러딩을 한다.
- 플러딩이 이뤄지면, 수신 측에서는 수신한 프레임의 수신처 MAC 주소를 보고, 자기에게 온 것 외의 프레임은 모두 파기한다. 즉, 특정 수신처에만 도달하도록 하는 것이 아니라, 자기가 수신처가 아닌 데이터는 보지 않는 것이다.
- 때문에 플러딩으로 인해 충돌이 발생할 수 있다.
- 이를 방지하기 위해 이더넷에서는 신호를 보내는 타이밍을 겹치지 않도록 비켜나가게 함으로써 되도록 충돌이 일어나지 않도록 한다. 이를 위해서 CSMA/CD(Carrier Sense Multiple Access/Collision Detection)이라는 액세스 제어를 수행한다.
- 액세스 제어란 인터페이스에 연결되어 있는 케이블에 신호를 보내는 '액세스'를 '제어'하는 것을 의미한다. CS(신호 감지)는 '누군가가 송신 중이라면 송신하지 않는 것'이고, MA(다중 액세스) '아무도 송신하고 있지 않다면 송신할 수 있다'는 것이고, CD(충돌 검사)는 '송신 후 충돌이 일어나면 재수행하는 것'이다.
- 송신 후에 충돌이 일어나는 이유는, 여러 컴퓨터가 동시에 신호를 감지하여 각각이 아무도 송신하고 있지 않다고 판단해 각 컴퓨터가 동시에 송신할 수 있기 때문이다.
허브와 스위치
하지만 CSMA/CD를 사용해도 충돌 도메인 내에 있는 컴퓨터 수가 많으면, '2대 이상의 컴퓨터가 동시에 송신할 가능성'이 높아진다. 이는 송신-> 충돌->재송신-> 충돌의 과정을 반복하게 만들기 때문에, 효율적이지 못한 상태가 된다.
때문에 스위치(Switch)를 사용해서 신호가 지나는 길을 나누어 충돌을 방지한다. 여기서 방지하는 충돌이란 허브에서 발생하는 충돌을 의미한다.
(배경지식) 현재 LAN에서 사용되고 있는 UTP나 광파이버 케이블은 '송신 신호'와 '수신 신호'가 나뉘어 있다. 때문에 케이블 상에서는 수신 신호와 송신 신호가 동시에 지나가도 충돌이 발생하지 않는다. 즉, 충돌은 허브에서 발생한다. 허브는 동시에 2개 이상의 기기로부터 신호를 수신하면 그것을 나누어 보낼 수 없기 때문이다.
MAC 주소 필터링과 버퍼링
그래서 허브 대신 스위치를 통해 수신한 프레임을 따로 보낼 수 있도록 처리해서 충돌을 막는다. 이는 MAC 주소 필터링과 버퍼링을 통해 이뤄진다.
- MAC 주소 필터링(수신처가 다른 프레임이 동시에 스위치에 도달한 경우)
- MAC 주소 필터링은 학습과 스위칭이라는 동작으로 이루어져 있다.
- 학습은 수신한 프레임의 송신처 MAC 주소를 기록하여 수신한 포트와 MAC 주소를 연관 짓는 작업이다. 이것을 기록해놓은 대응표를 어드레스 테이블(Address Table)이라고 부른다.
- 프레임을 수신한 스위치는 수신처 MAC 주소를 보고 해당 MAC 주소가 있는 포트에만 프레임을 송신한다. 이는 이전 학습을 통해 기록된 어드레스 테이블에서 탐색하여 이뤄진다.
- 이를 통해 수신처가 다른 프레임이 동시에 스위치에 도달해도 충돌은 발생하지 않게 된다(허브처럼 반드시 플러딩을 하지 않기 때문이다.).
- (주의사항) 하지만, 주소를 학습하지 못해 어드레스 테이블을 만들지 못했거나, 어드레스 테이블에 수신처 MAC 주소에 대한 포트가 기록되어 있지 않다면, MAC 주소 필터링을 할 수 없다. 때문에 허브와 마찬가지로 플러딩을 하게 된다. 또한 브로드캐스트, 멀티캐스트에 대해서도 제어하지 않기 때문에 플러딩이 이뤄진다.
- 버퍼링(수신처가 같은 프레임이 동시에 스위치에 도달한 경우
- 버퍼링은 버퍼(Buffer)를 사용한 처리를 실행하는 것을 말한다. 버퍼는 일시적으로 데이터를 기록해 둘 수 있는 기억장치(메모리)다. 만약 수신처가 같은 프레임이 동시에 스위치에 도달하는 경우, 한 개는 송신하고, 나머지 한 개는 일시적으로 버퍼에 저장한다. 그리고 첫 번째 프레임의 송신이 끝나면 저장해두었던 프레임을 송신한다.
- (주의사항) 하지만, 버퍼에는 용량의 한계가 존재한다. 때문에, 버퍼의 용량이 부족할 정도로 프레임이 도달한 경우에는 백 프레셔(Back Pressure), 또는 IEEE802.3x라는 규격을 통해 송신을 조정한다. 즉, 버퍼가 부족할 것 같다 판단되면 송신을 중지한다. 스위치가 전이중 이더넷에 대응하면 IEEE802.3x를 사용하고, 그렇지 않으면 백 프레셔 방식을 사용한다.
하여 결론적으로 충돌 도메인은 스위치에 의해 분할된다. 이로써 데이터 통신의 효율이 높아진다.
전이중 이더넷
이렇게 스위치를 사용하면 충돌이 일어나지 않게 되기 때문에 굳이 반이중 통신인 CSMA/CD를 사용할 필요가 없어진다. 즉, 스위치를 사용한 경우에는 충돌을 없기 때문에 전이중 통신을 할 수 있게 된다. 이렇게 스위치를 사용해서 전이중 통신을 하는 경우를 전이중 이더넷이라 부른다.
관련된 글
- 2계층 PDU : 프레임
- CSMA/CD
- 이더넷 작동원리
- 2022.12.01 - [독서] - (하루 3분)네트워크 교실 1장 - 네트워크 기초 지식
- 2022.12.05 - [독서] - (하루 3분)네트워크 교실 3장 - IP 어드레싱
참고문헌
- 아미노 에이지. 2016. (하루 3분)네트워크 교실:인터넷 박사가 조교 넷군에게 알려주는 왕초보를 위한 네트워크 교실. 김현주 역. 서울:영진닷컴.
'독서 > (하루 3분)네트워크 교실' 카테고리의 다른 글
(하루 3분)네트워크 교실 5장 - 커넥션과 포트 번호 (0) | 2022.12.08 |
---|---|
(하루 3분)네트워크 교실 4장 - 라우팅 (0) | 2022.12.07 |
(하루 3분)네트워크 교실 3장 - IP 어드레싱 (0) | 2022.12.05 |
(하루 3분)네트워크 교실 1장 - 네트워크 기초 지식 (2) | 2022.12.01 |