물리계층은 캡슐화가 완료된 데이터를 전기신호로 바꾸어주는 가장 하위 계층이다.
물리계층은 말 그대로 전기 신호를 비트열 데이터로 바꾸어주거나, 그 반대의 기능을 하는 계층이다.
어떤 데이터가 ‘전송’된다면, 물리계층의 역할은 그 데이터를 전기신호로 바꾸어서 보내는 역할을 하고,
어떤 데이터를 ‘송신’한다면, 들어온 전기신호를 0과 1의 비트열 데이터로 바꾸어 2계층에 올려보내는 것이 역할이다.
물리계층과 관련있는 물리 장비는 다음과 같다.
리피터는 신호 증폭기이다.
네트워크 데이터는 유/무선 장비들을 통해 전파되는데, 물리장비들은 자신들의 한계 전송거리가 존재한다 (현재는 케이블의 성능이 좋아져서 전송거리가 대폭 늘어났다고 한다).
리피터는 일그러진 전기신호륵 복원하고 증폭하는 기능을 통해 네트워크 데이터의 전송을 서포트하는 역할을 한다.
‘항구’라는 뜻에 걸맞게, 허브는 여러개의 ‘포트’를 가지고 있어 포트에 연결된 다른 컴퓨터와 네트워크 통신이 가능하도록 만드는 장비이다.
컴퓨터 A, B, C, D, E 가 허브 하나에 연결되어 있다면 이 컴퓨터들끼리는 통신이 가능하다.
그런데, 허브는 스위치에 비해 비효율적이다.
그이유는 크게 두 가지인데,
반이중 통신 : 수신과 송신이 동시에 이루어지지 않는 구조. Ex) 무전기
전이중 통신 : 수신과 송신이 동시에 이루어지는 구조 Ex) 휴대폰
포트로 연결된 A컴퓨터가 B컴퓨터로 데이터를 보낼 때,
이 데이터는 B컴퓨터 뿐 아니라 C, D, E컴퓨터에도 함께 전송이 되어버린다.
또한, 여러개의 컴퓨터가 동시에 데이터를 전송하려 할 때 데이터 Collision이 발생할 여지가 있다.
즉, 허브는 모든 데이터 전송을 ‘단방향의 Broadcast’로 한다.
데이터를 보낼 목적지를 특정하지 못하고 연결된 모든 포트에 뿌려버리기 때문에 속도가 현저히 저하되고, 충돌이 발생할 여지가 있다.
하지만 스위치에 비해 가격이 저렴하다……..
허브와 스위치의 가장 큰 차이는 Mac Table의 존재 유무이다.
더미허브의 가장 큰 단점은 들어온 데이터를 연결된 모든 컴퓨터에 전송함에 따른 비효율과 충돌 가능성이다.
스위치는 이를 방지하기 위해 전송 대상이 될 네트워크 장비의 Mac주소를 테이블에 기록하고 참조한다.
들어온 데이터를 A컴퓨터로 보낼지, B컴퓨터로 보낼지를 A, B컴퓨터의 랜카드 Mac address를 보고 판단하여 그 방향으로만 Unicast하는 것이다.
이를 Mac주소 필터링(Filtering)이라 한다.
Mac은 Media Access Control 의 약자로, 48bit 16진수로 구성되어 모든 네트워크 장비들에 부여되는 고유한 코드이다.
앞 6자리는 제조사, 뒤6자리는 임의의 고유번호이다.
처음 스위치가 설치되었을 때는 Mac Table이 존재하지 않으므로,
허브와 마찬가지로 포트에 연결된 전체 네트워크 기기에 데이터 패킷을 뿌려서 테이블 정보를 한 번 갱신해준다.
이렇게 Table에 Mac정보가 없을 때 모든 장비에 패킷을 Broadcast해주는 것을 플러딩(Flooding)이라 한다.
그와 반대로, Mac Table에 정보가 있는 장비에게 데이터를 넘기는 것을 포워딩(Forwarding)이라 한다.
[전기신호] 와 [디지털 비트] 를 변환시키는 물리장비가 바로 랜 카드이다.
(과거 인터넷 접속이 잘 안되거나 했을 때 “랜 카드 잘 꽂혀있나?”와 같은 말을 많이 들었었다)
랜 카드에 문제가 있으면 회선으로 들어오는 전기신호를 2계층이 처리할 수 있는 0과 1의 비트열 형태로 바꿔주지 못하기 때문에,
결과적으로 전기 신호는 받지만 아무 데이터도 가져올 수 없다.
Wifi 신호도 전기신호이기 때문에, 이 랜카드가 Wifi 신호를 잡아 데이터로 변환해준다.
랜카드에는 위에서 말했다시피 Mac Address가 부여되어있다.
물리계층 및 물리 장비들의 역할을 살펴보았다.
그런데 이 네트워크 장비들이 위에서 언급한 Mac Address로 데이터를 보낼 때, 어떤 규칙이 필요할 것이다.
규칙이 없으면 데이터를 어떻게 가공하여 어떤 형식으로 보낼지, 서로 주고받는 데이터를 해독할 수 없기 때문이다.
따라서 자신과 동일한 네트워크에 있는 Mac Address로 데이터를 보내기 위한 프로토콜이 필연적으로 요구된다.
네트워크 장비 간 신호를 주고받는 규칙을 정하는 계층이 2계층 - 데이터 링크 계층이며,
데이터를 주고받는 데 가장 일반적으로 많이 사용되는 규칙이 이더넷 프로토콜이다.
다음 포스팅에서 데이터 링크 계층에 대해서 알아보도록 하자.