🕶 <모두의 네트워크>를 읽고 학습한 내용을 정리한 포스트입니다! 화이팅! 🕶
4. 데이터 링크 계층: 랜에서 데이터 전송하기
12) 데이터 링크 계층의 역할과 이더넷
✍️ 이더넷이란?
- 랜에서 데이터를 주고받으려면 아래에서 두번째 계층인 데이터 링크 계층의 기술이 필요.
- 데이터 링크 계층: 네트워크 장비 간 신호를 주고받는 규칙을 정하는 계층, 그 규칙 중 가장 많이 사용하는 규칙이 이더넷!
- 이더넷은 허브와 같은 장비에 연결된 컴퓨터와 데이터를 주고 받을 때 사용. 하지만 허브는 전기 신호를 전달받을 포트뿐만 아니라 나머지 포트에도 전달한다는 문제점!! 관계없는 다른 컴퓨터들도 데이터를 받으면 곤란한 상황이 발생할 수 있지..! 이러한 경우를 대비해 규칙을 정해둔다. 데이터에 목적지 정보를 추가해서 보내 목적지 이외의 컴퓨터는 데이터를 받더라도 무시하도록!!.
- 또한, 컴퓨터 여러 대가 동시에 데이터를 보내면 데이터들이 서로 부딪히는 충돌(collision)이 발생할 수 있음! 이때 이더넷은 데이터를 보내는 시점을 늦춰서 충돌을 방지하기 위한 구조로 설계되어 있다.
-> 이러한 기법을 CSMA/CD!
- CS: 데이터를 보내려고 하는 컴퓨터가 케이블에 신호가 흐르고 있는지 아닌지를 확인하는 규칙
- MA: 케이블에 데이터가 흐르고 있지 않다면 데이터를 보내도 좋다는 규칙
- CD: 충돌이 발생하고 있는지를 확인하는 규칙
-> 이러한 규칙 덕분에 충돌이 일어나지 안취! 그렇지만 지금은 효율이 좋지 않아 사용 안함 ㅠㅠ 대신 스위치라는 네트워크 장비를 사용함 !
13) MAC주소의 구조
✍️ MAC주소란?
-
랜카드는 비트열(0과1)을 전기 신호로 변환한다고 했음! 이 랜카드에는 MAC주소라는 번호가 정해져 있음! 제조할 때 새겨지기 때문에 물리주소라고도 하는데 전 세계에서 유일한 번호로 할당되어 있음!
-
MAC주소를 사용한 통신: OSI 모델에서는 데이터 링크 계층에 해당, TCP/IP모델에서는 네트워크 계층에 해당. 이 계층에서 이더넷 헤더와 트레일러를 붙임!
-
이더넷 헤더: 목적지의 MAC주소(6바이트), 출발지 MAC주소(6바이트), 유형(2바이트), 이렇게 총 14바이트로 구성됨!
-
요기서 유형은 뭘까?
-> 이더넷 유형은 이더넷으로 전송되는 상위 계층 프로토콜의 종류를 나타냄.
-
데이터 뒤에 추가하는 것을 트레일러라고 했는데 요것은 무엇?
-> FCS(Frame Check Sequence)라고도 하는데, 데이터 전송 도중에 오류가 발생하는지 확인하는 용도로 사용!
-
이더넷헤더와 트레일러가 추가된 데이터를 프레임이라고 함! 네트워크를 통해 프레임이 전송되는 것!
- 이더넷 헤더를 이용한 통신에 대해 알아보장!
-> 컴터 1에서 3으로 데이터를 전송할것임! 컴터1은 이더넷 헤더에 데이터의 목적지인 컴퓨터 3의 MAC주소와 자신의 MAC주소정보를 넣고 데이터를 전송함. 요기서 캡슐화가 일어나지!(보내는 측의 컴터1에서 캡슐화가 일어남) 그리고 데이터 링크 계층에서 데이터에 이더넷 헤더와 트레일러를 추가해 프레임 만들고, 물리 계층에서 이 프레임 비트열을 전기신호로 변환해서 네트워크를 통해 전송!
-> 허브는 컴터 A가 보낸 데이터를 컴터 B~D에 다 전송하지만, 컴터 C, D는 이더넷 헤더에 붙어 있는 목적지 MAC 주소와 자신의 MAC 주소가 다르기 때문에 데이터를 파기함! 컴터 B는 목적지 MAC 주소와 자신의 MAC 주소가 일치하므로 데이터를 파기하지 않고 역캡슐화를 진행. 컴퓨터 B는 역캡슐화를 한 다음에 데이터를 수신. 요기서 충돌이 발생한다면 이걸 방지하기 위해 CSMA/CD 방식이 사용!
14) 스위치의 구조
-> 스위치는 허브와 달리 데이터 충돌이 발생하지 않음!
✍️ MAC 주소 테이블이란?
- 스위치는 데이터 링크 계층에서 동작하고 레이어 2 스위치 또는 스위칭 허브라고도 부름!
- 스위치 내부에는 MAC 주소 테이블이라는 것이 있음. MAC 주소 테이블은 스위치의 포트번호와 해당 포트에 연결되어 있는 컴터의 MAC 주소가 등록되는 데이터 베이스!
- 전원을 킨 스위치 MAC 주소 테이블에는 아무것도 등록되어 있지 않지만, 컴터에서 목적지 MAC 주소가 추가된 프레임이라는 데이터가 전송되면 MAC 주소 테이블을 확인하고, 출발지 MAC 주소가 등록되어 있지 않으면 MAC 주소를 포트와 함께 등록함! => MAC 주소 학습 기능!
- MAC 주소 테이블에 MAC 주소가 등록되어 있지 않다면 허브와 같이 등록되어 있지 않은 포트 번호에 모두 전송된다는 것! 이를 플러딩(Flooding)!
- 그치만 MAC 주소 테이블에 컴퓨터 B의 MAC 주소가 등록되어 있고 컴퓨터 B로 데이터를 전송한다고 가정한다면, 목적지 컴퓨터인 컴퓨터 B로만 전송하게 된당! 이를 MAC 주소 필터링이라고 한다. 즉, 불필요한 데이터를 네트워크에 전송하지 않게 되는 것! 똑똑해...👏
15) 데이터가 케이블에서 충돌하지 않는 구조
✍️ 전이중 통신과 반이중 통신
- 통신 방식: 전이중 통신 방식(데이터의 송수신을 동시에)과 반이중 통신 방식(회선 하나로 송신과 수신을 번갈아)
- 스위치: 전이중 통신방식 가능 / 허브: 반이중 통신방식(충돌 생김)
✍️ 충돌 도메인이란?
- 충돌 도메인(Collision damain)은 충돌이 발생할 때 그 영향이 미치는 범위!
- 허브와 스위치를 예로 들면 허브는 충돌의 영향이 모든 컴퓨터에 미치고 스위치는 전이중 통신 방식이며, 접속되어 있는 모든 컴퓨터 영향을 미치지 않기에 충돌이 발생하지 않고 충돌 도메인의 범위도 그리 넓지 않음!
✍️ ARP!
- ARP: 네트워크 계층 주소와 데이터 링크 계층 주소 사이의 변환을 담당하는 프로토콜이며 IP 주소를 물리 주소인 MAC 주소로 변환하는데 사용.
- ARP 캐시: 가장 최근에 변환한 IP와 하드웨어 주소(MAC 주소)를 매핑하려 보관하고 있는 램의 한 영역.
- ARP 요청: IP 주소를 대치할 수 있는 물리 주인 MAC 주소를 찾아내기 위해 보내는 브로드캐스트 패킷 요청.
- ARP 응답: ARP 요청에 대한 응답으로 요청한 IP 주소에 대한 물리 주소인 MAC 주소가 실려 있는 유니캐스트 패킷 응답.
출처1: https://almotjalal.tistory.com/87?category=961085