데이터 링크 계층의 역할과 이더넷
- 랜에서 데이터를 주고받으려면 데이터 링크 계층의 기술이 필요
이더넷
이더넷(Ethernet)
: 데이터 링크 계층 규칙 중 일반적으로 가장 많이 사용되는 규칙- 데이터 링크 계층 규칙 : 네트워크 장비 간에 신호를 주고받는 규칙
- 데이터 링크 계층 규칙 : 네트워크 장비 간에 신호를 주고받는 규칙
- 이더넷은 랜에서 적용되는 규칙을 뜻함
→ 허브와 같은 장비에 연결된 컴퓨터와 데이터를 주고받을 때 사용
- 특정 컴퓨터에만 데이터를 보내기 위해, 보내려는 데이터에 목적지 정보를 추가
→ 목적지 이외의 컴퓨터는 데이터를 받더라도 무시하게 됨
- 여러 컴퓨터가 동시에 데이터를 전송해도 충돌하지 않는 구조로 되어있음
→ 데이터를 보내는 시점을 늦춤(CSMA/CD)
CSMA/CD
- 반송파 감지 다중 접속 및 충돌 탐지의 약어
- 아래의 규칙들 덕분에 충돌이 일어나지 않음
CS
→ 데이터를 보내려고 하는 컴퓨터가 케이블에 신호가 흐르는지 확인한다는 규칙MA
→ 케이블에 데이터가 흐르고 있지 않다면 데이터를 보내도 좋다는 규칙CD
→ 충돌이 발생하고 있는지 확인한다.
- 지금은 효율이 좋지 않다는 이유는 CSMA/CD를 거의 사용하지 않음
→ 대신 스위치(switch)를 사용
MAC 주소의 구조
- 랜 카드에는 MAC 주소(물리 주소)라는 번호가 정해져 있음
- MAC 주소는 전 세계에서 고유한 번호(유일한 번호)
- 48비트 숫자로 구성
- 앞쪽 24 비트 → 랜 카드를 만든 제조사 번호
- 뒤쪽 24 비트 → 제조사가 랜 카드에 붙인 일련번호
- 48비트 숫자로 구성
- 각 계층에서 헤더를 붙이는데, 데이터 링크 계층에서는 이더넷 헤더와 트레일러를 붙인다.
- OSI 모델에서는 데이터 링크 계층, TCP/IP 모델에서는 네트워크 계층에 해당
- 트레일러는 FCS 즉, 데이터 전송 도중 오류가 발생하는지 확인하는 용도로 사용
- 이더넷 헤더와 트레일러가 추가된 데이터를 프레임이라고 함
→ 네트워크를 통해 프레임이 전송된다.
이더넷 헤더
- 목적지의 MAC 주소(6) + 출발지 MAC 주소(6) + 유형(2)_= 총 14바이트로 구성
이더넷 유형(Ethernet type)
: 이더넷으로 전송되는 상위 계층 프로토콜의 종료- 프로토콜을 식별하는 16진수 번호가 들어간다.
- 프로토콜 : IPv4, ARP, IPv6, RARP …
- 프로토콜을 식별하는 16진수 번호가 들어간다.
이더넷 헤더를 이용한 통신
- 아래 그림처럼 허브에 연결된 컴퓨터의 MAC 주소는 아래와 같다.
- 컴퓨터 1에서 컴퓨터 3으로 데이터를 전송하는 과정
- 컴퓨터 1은 이더넷 헤더에 컴퓨터 3의 MAC 주소(목적지 MAC 주소)와
자신의 MAC 주소 (출발지 MAC 주소) 정보를 넣고 데이터를 전송- 송신 측(컴퓨터 1)에서 캡슐화가 발생
- 데이터 링크 계층에서 프레임 만듦
→ 물리 계층에서 이 프레임 비트열을 전기 신호로 변환하여 네트워크를 통해 전송
- 데이터 링크 계층에서 프레임 만듦
- 송신 측(컴퓨터 1)에서 캡슐화가 발생
- 허브는 컴퓨터 1이 보낸 데이터를 모든 포트로 전송
- 컴퓨터 2,4,5는 목적지 MAC 주소가 자신의 MAC 주소와 다르기 때문에 데이터를 파기
하지만, 컴퓨터 3은 목적지 MAC 주소와 같기 때문에 데이터를 수신- 해당 과정에서 역캡슐화가 일어나 이더넷 헤더와 트레일러를 분리한 후 데이터를 수신
- 컴퓨터 1은 이더넷 헤더에 컴퓨터 3의 MAC 주소(목적지 MAC 주소)와
- 두 곳에서 같은 주소로 데이터를 동시에 보낼 경우
- 충돌 방지를 위해 CSMA/CD 방식이 사용
- 충돌이 감지되면 충돌한 컴퓨터 중 하나는 잠시 대기하고 데이터를 다시 전송
- 충돌 방지를 위해 CSMA/CD 방식이 사용
이더넷의 종류와 특징
이더넷 규격
BASE의 뜻
- 10 BASE-T를 대표로 설명
- 10 → 통신속도 : 10 Mbps를 나타냄
- BASE → 전송방식 : BASEBAND라는 전송 방식을 나타냄
- T → 케이블 : 케이블 종류를 나타냄
- 하이픈(-)
- 하이픈 뒤는 케이블 길이나 케이블의 종류를 나타냄
- 동축 케이블은 케이블의 최대 길이를 100미터 단위로 표시
- 10 BASE5 → 케이블의 최대 길이가 500미터라서 5라고 표시
- 10 BASE5 → 케이블의 최대 길이가 500미터라서 5라고 표시
- UTP 케이블은 케이블 종류를 표시
- 10 BASE-T는 UTP 케이블을 뜻하는 것
스위치 구조
- 스위치는 데이터 링크 계층에서 동작
- 레이어 2 스위치 또는 스위칭 허브라고도 불림
MAC 주소 테이블 (address table)
- 스위치의 포트 번호와 해당 포트에 연결되어 있는 컴퓨터의 MAC 주소가 등록되는 데이터베이스
- 처음 상태에는 MAC 주소 테이블에 아무것도 등록되어 있지 않음
→ MAC 주소 학습 기능을 통해 MAC 주소를 포트와 함께 등록- 컴퓨터에서 목적지 MAC 주소가 추가된 프레임 데이터가 전송
- MAC 주소 테이블을 확인
- 출발지 MAC 주소가 등록되어 있지 않으면 MAC 주소를 포트와 함께 등록
- 처음 상태에는 MAC 주소 테이블에 아무것도 등록되어 있지 않음
MAC 주소 테이블을 통한 데이터 전송
- 컴퓨터 1에서 컴퓨터 3으로 데이터를 전송한다고 가정.
- 처음 상태에서는 MAC 주소 테이블에는 아무것도 등록되어 있지 않음
- 송신 포트를 제외한 나머지 포트 전부에 데이터(프레임)가 전송(플러딩)
← 컴퓨터 3의 목적지 MAC 주소가 MAC 주소 테이블에 등록되어 있지 않음
- MAC 주소 테이블에 컴퓨터 3의 주소가 등록되어 있는 경우
- 컴퓨터 2,4,5에는 데이터가 전송되지 않고 컴퓨터 3에만 데이터 전송
- 컴퓨터 2,4,5에는 데이터가 전송되지 않고 컴퓨터 3에만 데이터 전송
- MAC 주소를 기준으로 목적지를 선택하는
MAC 주소 필터링
방식 사용
→ 불필요한 데이터를 네트워크를 전송하지 않게 됨
데이터가 케이블에서 충돌하지 않는 구조
전이중 통신과 반이중 통신
전이중 통신
: 데이터의 송수신을 동시에 통신하는 방식- 데이터를 동시에 전송해도 충돌이 발생하지 않음
- 예
- 두 컴퓨터를 직접 랜 케이블로 연결하는 것(크로스 케이블 방식으로)
- 스위치는 충돌이 일어나지 않는 구조로 되어있기 때문에 전이중 통신 방식
- 최근에는 네트워크로 스위치를 사용하는 것이 표준 방식
- 최근에는 네트워크로 스위치를 사용하는 것이 표준 방식
반이중 통신
: 회선 하나로 송신과 수신을 번갈아가면서 통신하는 방식- 데이터를 동시에 전송하면 충돌이 발생
- 예 : 허브 사용
충돌 도메인
충돌 도메인(collision domain)
: 충돌이 발생할 때 영향을 미치는 범위- 허브의 경우, 연결되어 있는 컴퓨터 전체가 하나의 충돌 도메인
→ 충돌의 영향이 모든 컴퓨터에 미침
- 허브의 경우, 연결되어 있는 컴퓨터 전체가 하나의 충돌 도메인
- 스위치의 경우, 충돌 도메인은 컴퓨터끼리 독립적임
← 전이중 통신 방식이기 때문에 충돌이 일어나지 않기 때문
- 충돌 도메인의 관점에서, 스위치를 사용하면 통신 효율이 높아진다.
- 충돌 도메인의 관점에서, 스위치를 사용하면 통신 효율이 높아진다.
- 충돌 도메인의 범위가 넓을수록 네트워크가 지연
ARP
- 목적지 컴퓨터의 IP 주소를 이용하여 MAC 주소를 찾기 위한 프로토콜
- 이더넷 프레임을 전송하려면 목적지 컴퓨터의 MAC 주소를 지정해야 하기 때문
- 이더넷 프레임을 전송하려면 목적지 컴퓨터의 MAC 주소를 지정해야 하기 때문
ARP 요청(request)
: MAC 주소를 알아내기 위해 네트워크에 브로드 캐스트- 출발지 컴퓨터가 목적지 주소를 모르면 요청
- 출발지 컴퓨터가 목적지 주소를 모르면 요청
ARP 응답(reply)
: ARP 요청에 지정된 IP 주소를 가진 컴퓨터는 MAC 주소를 응답으로 보냄- ARP 요청에 지정된 IP주소를 가지고 있지 않은 컴퓨터는 응답 X
- ARP 응답을 통해 출발지 컴퓨터는 MAC 주소를 얻고 이더넷 프레임을 만들 수 있음
- 출발지 컴퓨터에서 MAC 주소를 얻은 후에 ARP 테이블을 메모리에 보관
ARP 테이블
: MAC 주소와 IP 주소의 매핑 정보- 이후 데이터 통신은 자신의 컴퓨터에 보관된 ARP 테이블을 참고하여 전송
- IP주소가 변경되면 MAC 주소도 함께 변경됨으로 제대로 통신할 수 없음
→ ARP 테이블에서는 보존 기간을ARP캐시
로 지정하고
일정 시간이 지나면 삭제하고 다시 ARP를 요청