프로그래밍/네트워크

[모두의 네트워크] 4장 - 데이터 링크 계층 : 랜에서 데이터 전송하기

말랑공룡 2020. 10. 14. 20:12

데이터 링크 계층의 역할과 이더넷


랜에서는 데이터를 주고받는 규칙으로 이더넷을 사용한다.

 

이더넷이란?

 

데이터 링크 계층은 OSI 모델에서 2단계에 위치한다.

이 계층에서는 네트워크 장비 간에 신호를 주고받는 규칙을 정한다.

그 규칙들 중 가장 많이 사용되는 규칙이 '이더넷(Ethernet)'이다.

 

컴퓨터 여러 대가 동시에 데이터를 보내면 데이터들이 서로 부딪히는 충돌(collision)이 발생할 수도 있다.

그런데 이더넷은 여러 컴퓨터가 데이터를 전송해도 충돌이 일어나지 않는 구조로 되어있는데, 이 구조를 CSMA/CD(Carrier Sense Multiple Access with Collision Detection, 반송파 감지 다중 접속 및 충돌 탐지)라고 한다.

 

CSMA/CD의 의미는 무엇일까?

CS (Carrier Sense) : 데이터 송신 측 컴퓨터가 케이블에 신호가 흐르고 있는지 확인

MA (Multiple Access) : 데이터가 흐르고 있지 않다면 데이터를 보내도록 허가

CD (Collision Detection) : 충돌이 발생하고 있는지를 확인

 

CSMA/CD

 

그런데 지금은 효율이 좋지 않다는 이유로.... CSMA/CD는 거의 사용하지 않는다고 한다.

지금은 네트워크 허브라는 것이 등장하여 ... 네트워크 형태가 버스형에서 스타형으로 ..... 허브가 업그레이드 .....(중략)

무튼 지금의 이더넷은 실질적으로 충돌 자체가 발생하지 않는 구조로 바뀌었다고 한다 ㅇㅅㅇ.... (허탈)

그래도 과거와의 호환성 문제로 CSMA/CD는 여전히 이더넷 표준에 포함되어 있다.

 

MAC주소의 구조


MAC이란 일단 풀어쓰면 미디어 접근 제어(Media Access Control)

MAC주소는 간단히 말해 인터넷을 할 수 있는 이더넷 기반 기기에는 모두 다 하나씩 할당되어 있는 고유한 ID이다.

물리 주소라고도 한다. 랜카드, 스마트폰, 공유기 등을 만들 때 부여된다.

 

MAC 주소

 

앞에는 제조사 번호, 뒤에는 제조사가 붙인 일련번호.

 

MAC주소를 사용한 통신

 

OSI 모델에서는 데이터 링크 계층, TCP/IP 모델에서는 네트워크 계층에서 '이더넷 헤더'와 '트레일러'를 붙인다.

 

ethernet frame

 

여기서 MAC Header이 이더넷 헤더인데 Source MAC Address는 출발지 MAC 주소고 앞에는 목적지고 Ether Type는 '이더넷으로 전송되는 상위 계층 프로토콜의 종류'를 나타낸다.

 

앞에 숫자 4자리... 가 들어감.

 

정리해보면,

송신 컴퓨터에서 캡슐화가 일어남 =>

데이터 링크 계층에서 데이터에 '이더넷 헤더'와 트레일러를 추가하여 프레임 만들어짐 =>

물리 계층에서 이 프레임 비트열을 전기 신호로 변환 => 네트워크 전송!

 

스위치의 구조


스위치(닌텐도 아님)

 

스위치는 역시나 데이터 링크 계층에서 동작하고 레이어2스위치 또는 스위칭 허브라고도 불린다.

허브와 비슷하게 생겼지만 기능은 완전히 다르다.

 

MAC주소 테이블(MAC address table)(=브리지 테이블)

 

스위치 내부에는 MAC주소 테이블이라는 것이 있다.

이것은 스위치의 포트 번호와 해당 포트에 연결되어 있는 컴퓨터의 MAC주소가 등록되는 데이터베이스이다.

 

근데 만약 컴퓨터1에서 컴퓨터2를 목적지로 정하고 데이터를 전송하려 할 때, 출발지인 컴퓨터1의 MAC주소가 등록되어 있지 않을 경우 너무 당연하겠지만... 그 컴퓨터1의 MAC주소를 포트와 함께 등록한다. 이것을 MAC주소 학습 기능이라고 한다.

 

 

MAC 주소 학습 기능

 

그러면 목적지였던 컴퓨터2의 MAC주소가 테이블에 등록되어 있지 않다면?

그러면 등록되어 있지 않은 나머지 포트에 데이터(프레임)가 모두 전송되는데 이것을 '플러딩(flooding)'이라고 한다.

단지 테이블이 비어있을 경우 뿐 아니라

 

  • 테이블이 가득 차 있는 경우
  • 목적지의 MAC주소가 브로드캐스트인 경우

 

또한 플러딩이 발생한다.

브로드캐스트란 IP주소 중, 호스트 부분이 모두 이진수 1인 것을 브로드캐스트 주소라고 한다. (ex: 1.1.255.255)

목적지가 브로드캐스트 주소면 해당 네트워크에 속하는 모든 장비가 이 패킷을 수신하고 해독해야만 한다.

 

데이터가 케이블에서 충돌하지 않는 구조


전이중 통신과 반이중 통신

 

통신 방식에는 전이중 통신 방식과 반이중 통신 방식이 있다.

 

  • 전이중 통신 방식 : 데이터의 송수신을 동시에 통신
  • 반이중 통신 방식 : 회선 하나로 송수신을 번갈아가면서 통신

 

허브는 반이중 통신 방식, 스위치는 전이중 통신 방식이다.

굳이 충돌이 생기는 허브를 사용할 이유는 없으므로 최근에는 네트워크로 스위치를 사용하는 것이 표준이다.

 

반이중 vs 전이중

 

충돌 도메인

 

충돌이 일어날 때 영향이 미치는 범위를 충돌 도메인(collision domain)이라고 하는데 허브같은 경우는 충돌 도메인이 허브에 연결되어 있는 컴퓨터 전체다. 그야말로 비효율의 끝판왕...

스위치는 각 연결된 컴퓨터에 한정한 충돌 도메인을 가진다. 애초에 충돌이 일어나지 않지만 말이다.

 

ARP(Address Resolution Protocol)

목적지 컴퓨터 IP 주소를 이용하여 MAC주소를 찾기 위한 프로토콜.
목적지 컴퓨터의 MAC주소를 알아내기 위해 네트워크에 위에서 잠시 언급했던 브로드캐스트를 하는데! 이것을 'ARP요청(request)'라고 한다.
이 요청을 하면 지정된 IP주소를 갖고 있는 컴퓨터만 MAC주소를 response한다. 이것을 'ARP응답(reply)'라고 한다.
출발지 컴퓨터에서는 MAC주소를 얻은 후에 MAC주소와 IP주소의 매핑 정보를 메모리에 보관하는데 이 정보를 'ARP테이블(table)'이라고 한다. 하지만 IP주소가 변경되면 해당 MAC주소도 함께 변경되므로 보존 기간을 ARP캐시로 지정하고 일정 시간이 지나면 삭제된다.

 

 

이더넷의 종류와 특징


이더넷 규격

 

이더넷은 케이블 종류나 통신 속도에 따라 다양한 규격으로 분류된다.

 

너무 옛날거는 걍 표시 안했음

 

맨 앞에 숫자는 '통신 속도', 가운데 영어(ex:BASE)는 전송 방식, 마지막 알파벳은(ex:T)케이블이다.

BASE는 BASEBAND전송방식 T는 UTP케이블이다.

BASEBAND는

 

이것을 참고하자...

 

이렇게 용어를 알아가다보면 우리 일상에서 흔히 들릴 수 있는 의미를 잘 알지 못했던 용어들에 대해 이해할 수 있게 된다.(ex: SK브로드밴드 웅앵웅...) 네트워크는 아직도 내게 낯선 영역이지만 이런 소득 만으로 공부 계속 하게 하는 원동력이 되는 것 같다.