2계층: 데이터 링크 계층 - adanbae-dev/study_network GitHub Wiki

데이터 링크 계층

네트워크 장비가 신호를 주고받는 규칙을 정하는 계층. 데이터를 정상적으로 주고받기 위해 필요하다.

이더넷

데이터 링크 계층에서 일반적으로 가장 많이 사용되는, 데이터를 주고받기 위한 규칙. LAN에서 적용되는 규칙.

허브를 사용하는 LAN 환경 - 하나의 허브에 다중의 컴퓨터가 병렬로 연결된 환경 - 에서는 특정한 컴퓨터 한 대에 데이터를 보내려고 해도 모든 컴퓨터에 전기 신호가 전달된다.

Q. 그럼 이론적으로 프로토콜(tcp, udp 등)단에서 이 신호를 거르지 않는다면 원래 데이터가 네트워크 전체로 전달되는 것인가?
A. (허브의 경우)전송받아 데이터의 프레임에서 목적지의 MAC 주소가 수신 컴퓨터의 MAC 주소와 다를 경우 데이터를 파기한다.

Q. broadcast의 경우?
A. broadcast는 tcp, udp와는 별개. 전송 방법론에 가까움(어떻게 다른지 추후 보강)

충돌 방지

네트워크 망 내의 컴퓨터 여러 대가 동시에 데이터를 보낼 경우, 충돌이 발생할 수 있음.
=> CSMA/CD방식을 사용해 전송 시점을 늦추는 방법으로 충돌을 방지함.

CSMA/CD(Carrier Sense Multiple Access with Collision Detection; 반송파 감지 다중 접속 및 충돌 탐지)

  • CS: 데이터를 보내려고 하는 컴퓨터가 케이블에 신호가 흐르고 있는지 아닌지를 확인한다.
  • MA: 케이블에 데이터가 흐르고 있지 않다면 데이터를 보내도 좋다는 규칙
  • CD: 충돌이 발생하고 있는지를 확인한다.

최근에는 CSMA/CD를 잘 사용하지 않는다. 2011년에 IEEE 802.3 에서 리피터(Repeater)에 대한 내용이 deprecated되면서 반이중 방식과 함께 중요도가 낮아짐. 참고.

MAC Address

LAN카드가 가지는 고유 번호. 물리 주소. 48비트 구성. 앞 24비트는 제조사 번호, 뒤 24비트는 제조사 내의 일련번호.

Q. 폐기되는 랜카드의 일련번호는 회수될까 회수되지 않을까?
(guess) 회수되지 않는 편이 안정적으로 운영될 수 있을 것 같음. 굳이 회수에서 다시 쓸 필요가 없을 것 같다.

프레임(Frame)

데이터 링크 계층의 전송 단위.
TCP/IP 모델에서 데이터 링크 계층은 헤더트레일러를 붙인다. 이더넷 헤더: 목적지 MAC Address | 출발지 MAC Address | 유형(Ethernet type)
6바이트 6바이트 2바이트

(Ethernet type: 인터넷으로 전송되는 상위 계층 프로토콜의 종류. IPv4, IPv6, ARP, RARP 등)

이더넷 트레일러: FCS(Frame Check Sequence). 데이터 전송 도중에 오류가 발생하는지 확인하는 용도로 사용.

프레임의 구조

목적지 MAC 주소 | 출발지 MAC 주소 | type | data(packet from Network Layer) | trailer

다중 컴퓨터가 특정 컴퓨터에 동시에 데이터를 전송할 경우 CSMA/CD로 충돌을 관리. 충돌이 감지되면 잠시 후에 다시 전송한다.

Q. 여기선 CSMA/CD가 사용된다?
A. 스위치를 거치지 않고 더미 허브만으로 구성되는 로컬 네트워크의 경우
A. local collision
* https://en.wikipedia.org/wiki/Carrier-sense_multiple_access_with_collision_detection#Local_collision

스위치(Switch)

스위치는 스위치에 직접적으로 연결된 컴퓨터(장치)의 MAC 주소를 관리하는 MAC Address Table을 가진다.

MAC Address Table

스위치의 포트 번호와 해당 포트에 연결되어 있는 컴퓨터의 MAC 주소를 등록함.(최초 프레임 전송 시) 최초 프레임이 전송되었을 때는 아직 목적지 MAC 주소가 등록되어 있지 않은 상태이므로 플러딩을 통해 데이터를 전송한다. 플러딩: 송신 포트 이외의 (모든) 포트에 데이터를 전송하여 각 컴퓨터가 데이터의 MAC 주소를 확인한다. MAC 주소 필터링: 스위치에 등록된 MAC 주소를 기준으로 목적지를 선택하는 것

// 이 부분이 좀 불명확함. 플러딩은 도착지 MAC 주소가 스위치 mac 주소 테이블에 없을 때만 수행되는건가? 아까는 다 보낸다며?

데이터가 케이블에서 충돌하지 않는 구조 - 전이중, 반이중 전이중 통신 방식: 데이터의 송수신기를 동시에 통신 반이중 통신 방식: 회선 하나로 송신과 수신을 번갈아가면서 통신하는 방식

허브를 사용할 경우 반이중 통신 방식이 됨(허브가 송/수신을 나누지 않음) 스위치는 전이중 방식 가능

충돌 도메인: 충돌이 발생할 때 그 영향이 미치는 범위

Hub는 1계층 장비고 스위치는 2계층 장비인 이유 Hub는 MAC 주소에 관계없이 전송하고 컴퓨터에서 MAC 주소를 확인해서 수신 여부 검토함 스위치는 보낼 때 MAC 주소를 기반으로 전송

REFERENCE

  1. wikipedia: CSMA/CD (https://en.wikipedia.org/wiki/Carrier-sense_multiple_access_with_collision_detection)
  2. wikipedia: MAC flooding (https://en.wikipedia.org/wiki/MAC_flooding)
  3. 코인위키: 플러딩 (http://wiki.hash.kr/index.php/플러딩)
  4. 플러딩과 브로드 캐스팅의 차이점 (https://ko.betweenmates.com/difference-between-flooding-and-broadcasting-4513)
  5. 플러딩[정보통신기술용어해설] (http://www.ktword.co.kr/word/abbr_view.php?m_temp1=1362)