1계층 (피지컬 계층)
✔ 설명
1계층은 물리 계층으로 물리적 연결과 관련된 정보를 정의한다.
주로 전기 신호를 전달하는 데 초점이 맞춰져 있다.
✔ 목적
들어온 전기 신호를 그대로 잘 전달하는 것
전기 신호가 1계층 장비로 들어오면 이 전기 신호를 재생성해서 내보낸다.
1계층 장비는 주소의 개념이 없어 전기 신호가 들어온 포트를 제외하고 모든 포트에 같은 전기 신호를 전송한다.
✔ 1계층 장비
- 허브 - 전기 신호를 증폭시켜 LAN의 전송 거리를 연장시키고 여러대의 디바이스를 연결해 서로 통신할 수 있도록 하는 장치
- 리피터 - 전기 신호를 재생하고 증폭시키는 장치
- 케이블 - 케이블 본체를 구성하는 요소
- 커넥터 - 케이블 본체를 구성하는 요소
- 트랜시버 - 컴퓨터의 랜카드와 케이블을 연결하는 장비
- 탭 - 네트워크 모니터링과 패킷 분석을 위해 전기 신호를 다른 장비로 복제한다.
2계층(데이터 링크 계층)
✔ 설명
전기 신호를 모아 우리가 알아볼 수 있는 데이터 형태로 처리한다.
✔ 목적
1계층과는 다르게 전기 신호를 정확히 전달하기보다는 주소 정보를 정의하고 정확한 주소로 통신되도록 하는데 초점
출발지와 도착지 주소를 확인하고 내게 보낸 것이 맞는지 또는 내가 처리해야 하는 것인지에 대해 검사한 후 데이터 처리를 수행한다.
2계층에서는 주소 체계가 생기면서 여러 통신이 한꺼번에 이루어지는 것을 구분하기 위한 기능이 주로 정의된다.
전기 신호를 모아 데이터 형태로 처리하므로 데이터에 대한 에러를 탐지하거나 고치는 역할을 수행할 수 있다.
✔ 2계층 장비
- NIC (네트워크 인터페이스 카드)
- 스위치
NIC에는 고유 MAC 주소가 있다.
입력되는 전기 신호를 데이터 형태로 만들고 데이터에서 도착지 MAC 주소를 확인한 후 자신에게 들어오는 전기 신호가 아니면 폐기하고 맞으면 이 데이터를 상위 계층에서 처리할 수 있도록 메모리에 적재한다.
스위치는 단말이 어떤 MAC 주소인지, 연결된 포트는 어느 것인지 주소 습득 과정에서 알 수 있다.
이 데이터를 기반으로 단만들이 통신할 때 포트를 적절히 필터링하고 정확한 포트로 포워딩해준다.
반면, 1계층에서 동작하는 허브는 한 포트에서 전기 신호가 들어오면 전체 포트로 전기 신호를 전달하다 보니 전체 네트워크에서 동시에 오직 하나의 장비만 데이터를 보낼 수 있다.
스위치의 적절한 필터링과 포워딩 기능으로 통신이 필요한 포트만 사용하고 네트워크 전체에 불필요한 처리가 감소하면서 이더넷 네트워크의 효율성이 크게 향상되었고 이더넷 기반 네트워크가 급증하는 계기가 되었다.
Q. 허브가 하나의 장비에만 데이터를 보낼 수 있는 이유 ?
허브는 콜리전 도메인을 나누지 못하기 때문이다.
콜리전 도메인이란 ?
메세지 전송 시 충돌이 일어나는 영역을 말한다.
동일한 콜리전 도메인에서 하나의 PC가 통신할 경우 다른 모든 PC는 통신할 수 없다.
Q. 스위치는 어떻게 정확한 위치를 파악하고 전송할 수 있을까 ?
스위치가 MAC 주소와 단말이 위치하는 인터페이스 정보를 매핑한 MAC 주소 테이블을 가지고 있기 때문이다.
그렇다면 스위치는 어떻게 MAC 주소 테이블을 갖게 되는 것인가 ?
스위치의 주소 습득 과정
플러딩
스위치를 부팅하면 아무런 네트워크 관련 정보가 없다.
그래서 이 시점의 스위치는 허브처럼 동작한다.
이처럼 스위치가 허브와 같이 모든 포트로 패킷을 흘리는 동작을 플러딩(Flooding)이라고 한다.
이렇게 모든 포트로 패킷을 흘리는 건 스위치가 LAN 환경에서 동작하기에 현재는 정보가 없지만 어딘가에 장비가 있을 수 있다고 가정하고 동작하는 것이다.
하지만 계속 이렇게 플러딩을 한다면 이는 스위치 역할을 제대로 수행한다고 볼 수 없다.
스위치가 제 역할을 수행하기 위해서는 MAC 주소 테이블을 만들 필요가 있다.
그래서 스위치는 패킷이 들어올 경우 해당 패킷 정보의 MAC 주소를 보고 이를 토대로 MAC 주소 테이블을 만들어낸다.
어드레스 러닝(Address Learning)
어드레스 러닝이란 MAC 주소 테이블을 만들고 유지하는 과정을 말한다.
스위치가 제 역할을 하기 위해서는 패킷의 도착지 MAC 주소를 확인 후 정확한 도착지 포트로 포워딩해줄 수 있어야 한다. 즉, 스위치는 MAC 주소에 매칭되는 포트를 알고 있어야 한다는 것이다.
이 정보는 스위치가 직접 테이블을 만들고 유지해야 하는데, 이러한 과정들을 어드레스 러닝이라고 한다.
그렇다면 어떻게 학습을 해서 MAC 주소 테이블을 만드는 것일까 ?
어드레스 러닝은 패킷의 출발지 MAC 주소 정보를 이용하는데, 패킷이 특정 포트에 들어오면 스위치는 해당 패킷의 출발지 MAC 주소와 포트 번호를 MAC 주소 테이블에 기록한다.
예를 들어 1번 포트에서 들어온 패킷의 출발지 MAC 주소가 AA일 경우 우리는 자연스럽게 Eth 1 포트에 AA 주소를 가진 장비가 있다고 추론할 수 있다. 이런 방법으로 주소 정보를 학습해 테이블을 작성한다.
단, 어드레스 러닝은 출발지의 MAC 주소 정보를 사용하기에 브로드캐스트나 멀티캐스트에 대한 MAC 주소를 학습할 순 없다. 두 가지 모두 목적지 MAC 주소 필드에서만 사용하기 때문이다.
포워딩/필터링
포워딩 : 패킷이 스위치에 들어왔을 때 도착지 MAC 주소를 확인 후 MAC 테이블과 비교해 맞는 정보가 있으면 해당 포트로 패킷을 넘겨주는 것
필터링 : 포워딩 도중 다른 포트로는 해당 패킷을 보내지 않는 것
스위치에서는 포워딩과 필터링 작업이 여러 포트에서 동시에 수행될 수 있다.
이렇게 동시에 수행될 수 있는 이유는 통신이 다른 포트에 영향을 주지 않기 때문이다.
스위치는 보통 유니캐스트에 대해서만 포워딩/필터링 작업을 수행한다.
BUM 트래픽(브로드캐스트, 언노운 유니캐스트, 멀티캐스트)은 출발지 MAC 주소로 브로드캐스트나 멀티캐스트 모두 출발지가 사용되지 않기에 이런 트래픽은 모두 플러딩한다.
+ LAN에서의 ARP - 스위치 동작
이더넷 - TCP/IP 네트워크에서는 패킷을 만들기 전 통신해야 하는 단말의 MAC 주소를 알아내기 위해 ARP 브로드캐스트가 먼저 수행되야 한다. 그래서 이 ARP를 이용한 MAC 주소 습득과정에서 스위치는 출발지와 목적지의 주소를 습득할 수 있고, 실제로 유니캐스트 통신이 시작되면 이미 만들어진 MAC 주소 테이블로 패킷을 포워딩/필터링한다.
ARP, MAC 테이블은 일정 시간 지워지지 않는 시간이 있는데 이를 에이징 타임(Aging Time)이라 부른다.
그리고 일반적으로는 MAC 테이블의 에이징 타임이 단말의 ARP 에이징 타임보다 길기 때문에 이더넷 네트워크를 플러딩없이 효율적으로 운영할 수 있다.
3계층(네트워크 계층)
✔ 설명
3계층에서는 IP 주소와 같은 논리적인 주소가 정의된다.
✔ 목적
IP 주소는 사용자가 환경에 맞게 변경해 사용할 수 있고 네트워크 주소 부분과 호스트 주소 부분으로 나뉜다.
3계층을 이해할 수 있는 장비나 단말은 네트워크 주소 정보를 이용해 자신이 속한 네트워크와 원격지 네트워크를 구분할 수 있고 원격지 네트워크를 가려면 어디로 가야 하는지 경로를 지정하는 능력이 있다.
✔ 장비
- 라우터 : IP 주소를 사용해 최적의 경로를 찾아주고 해당 경로로 패킷을 전송하는 역할을 수행
4계층(트랜스포트 계층)
✔ 설명
데이터를 목적지까지 전달하는 계층
✔ 목적
실제로 해당 데이터들이 정상적으로 잘 보내지도록 확인하는 역할을 수행한다.
패킷이 유실되거나 순서가 바뀌었을 때 바로잡아 주는 역할을 수행한다.
✔ 장비
- 로드밸런서 : 애플리케이션 구분자(포트 번호)와 시퀀스, ACK 번호 정보를 이용해 부하 분산
- 방화벽 : 보안 정책을 수립해 패킷을 통과, 차단하는 기능을 수행
패킷 네트워크는 데이터를 분할해 패킷에 실어보내다 보니 중간에 패킷이 유실되거나 순서가 바뀌는 경우가 생길 수 있다.
이 문제를 해결하기 위해 패킷이 유실되거나 순서가 바뀌었을 때 바로잡아 주는 역할을 4계층에서 담당한다.
4계층에서 패킷을 분할할 때 패킷 헤더에 보내는 순서와 받는 순서를 적어 통신하므로 패킷이 유실되면 재전송을 요청할 수 있고 순서가 뒤바뀌더라도 바로잡을 수 있다.
이뿐만 아니라 장치 내의 많은 애플리케이션을 구분할 수 있도록 포트 번호를 사용해 상위 애플리케이션을 구분한다.
참고
https://catsbi.oopy.io/315731e3-1730-4690-ad8f-663e0af7621b
https://teacheryoon.tistory.com/18
도서 : IT 엔지니어를 위한 네트워크 입문
'CS > 네트워킹' 카테고리의 다른 글
ARP(Address Resolution Protocol) (0) | 2022.10.03 |
---|---|
인캡슐레이션과 디캡슐레이션 (0) | 2022.09.28 |
[네트워킹] SSH (Secure Shell Protocol) (1) | 2022.03.22 |
[네트워킹] ICMP (Internet Control Message Protocol) (0) | 2022.03.22 |
[네트워킹] FTP (File Transfer Protocol) (0) | 2022.03.22 |
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!