Network Interface Layer | 네트워크 인터페이스 계층

하드웨어와 네트워크 인터페이스 계층

네트워크 인터페이스 계층의 역할

다양한 하드웨어를 네트워크에 연결한다

네트워크 인터페이스 계층은 네트워크의 하드웨어를 제어하는 부분이다.

이러한 하드웨어들을 제어하면서 상위 인터넷 계층이 하위의 하드웨어 동작에 대해서는 신경쓰지 않고 동작할 수 있도록 만들어주는 것이 네트워크 인터페이스 계층의 역할이다.

OSI 참조 모델에서는 프로토콜과 같이 소프트웨어와 관련된 부분을 데이터 링크 계층이라고 하거 하드웨어와 관련된 부분을 물리 계층이라고 구분한다.

네트워크 인터페이스 계층의 프로토콜

네트워크 인터페이스 계층의 프로토콜 중에는 전화 회선을 사용해서 원격지와 접속하는 PPP와 동축 케이블이나 UTP 케이블을 사용하는 이더넷과 같은 프로토콜들이 있다.

그 외에도 IP 어드레스 정보를 이용하여 목적지의 MAX 어드레스를 알아내는 ARP 같은 프로토콜도 있다.

네트워크에 연결되는 하드웨어

유선 LAN

전압의 변화를 이용해서 신호를 전달한다

무선 LAN

전파을 이용해서 신호를 전달한다

MAC 어드레스

MAC 어드레스란?

네트워크 어탭터에는 MAC 어드레스라고 하는 식별 번호가 부여되어 있다.

이 식별 번호는 제조사가 제조 단계부터 붙이는 것으로, 퍼블릭 IP 어드레스와 비슷하게 전 세계의 네트워크 장비들이 서로 구분될 수 있돌고 할당된다.

수신지 주소로 MAC 어드레스를 사용한다

MAC 어드레스는 유선 LAN의 이더넷이나 무선 LAN 외에도 단거리 통신에 사용되는 블루투스와 같은 다양한 데이터 통신에서 활용된다.

IP 어드레스와 MAC 어드레스의 차이점

MAC 어드레스의 역할은 데이터를 전달할 목적지를 가리킨다는 점에서 IP 어드레스와 유사하다.

하지만 IP 어드레스는 최종 목적지가 한번 설정되면 전송과정 중에 변경되지 않지만 MAC 어드레스는 전송과정 중에 통신 경로상에 다음장비의 어드레스로 교체된다는 점이 다르다.

MAC 어드레스는 최종 목적지가 아니라 바로 다음 목적지를 가라킵니다.

이더넷

이더넷이란?

유선 LAN은 통신 장비끼리 케이블로 연결하게 되는데 이때 이더넷이라는 규격을사용한다.

프리앰블은 프레임의 시작을 알린다

수신 측의 네트워크 어탭터는 전압의 높낮이가 변화하는 신호를 받아 0과 1의 디지털 신호로 복호화한다.

이떄 전압이 변화하는 타이밍에 맞춰 신호를 분석하려면 어디부터가 시작인지 기준점을 알아야 한다.

그래서 프레임 앞부분에는 프리앰블이라고 하는 패턴을 두어 신호의 시작을 알 수 있도록 만들어져 있다.

네트워크 허브

네트워크 허브의 동작 방식

유선 LAN에서는 네트워크 허브라는 장비에 케이블을 연결해서 네트워크를 구성한다.

네트워크 허브에는 리피터 허브, L2 스위치, L3 스위치 등이 있다.

접속된 상대를 식별하는 L2 스위치

L2 스위치 혹은 스위칭 허브는 오늘날 가장 많이 사용되는 네트워크 중계 기기다.

L2는 OSI 참조 모델의 데이터 링크 계층을 의미하고 TCP/IP 모델에서는 네트워크 인터페이스 계층에 해당한다.

L2 스위치는 포트에 연결된 각 호스트의 MAC 어드레스를 기억해 두었다가 통신할 당사자간에만 데이터를 전달하기 떄문에 통신 과정에서 다른 호스트가 보내는 패킷 신호화의 충돌을 피할 수 있다.

L2 스위치가 통신하는 방식

L2 스위치를 사용하면 통신 회선이 통신 당사자 간에만 독립적으로 만들어지기 때문에 여러 통신이 동시에 이루어지더라도 패킷 충돌이 발생하지 않는다.

브로드캐스트 도메인

브로드캐스트 도메인이란 수신지의 주소가 브로드캐스트 어드레스일때 데이터가 전달되는 범위를 의미한다.

L2 스위치로 네트워크를 구성하였다면 네트워크 전체가 브로드캐스트 도메인이 된다. 만약 네트워크에 연결된 호스트의 수가 많은 경우 DHCP나 OS의 파일공유와같은 브로드캐스트 통신이 자주 사용되면 네트워크 내에 대량의 패킷이 발생해서 망이 혼잡해질 수도 있다.

대규모 사무실에 적합한 L3 스위치

L3 스위치는 OSI 참조 모델 중 네트워크 계층에 해당하고 TCP/IP 모델에서는 인터넷 계층의 기능까지 수행할 수 있는 네트워크 장비다.

L3 스위치의 대표적인 기능으로는 VLAN(Virtual LAN)이 있는데 이 기능은 LAN을 몇 개의 가상적인 네트워크로 분할하여 통신 효율을 높이기 위해 사용한다.

VLAN을 구성하면 브로드캐스트 패킷을 VLAN내의 호스트 범위로만 제한하여 전달할 수 있다.

무선 LAN

무선 LAN의 통신 방식

전파를 이용해서 네트워크를 구성하는 무선 LAN의 정식 규격명은 IEEE 802.11이다.

무선 LAN에서는 다른 통신 장비가 전파를 발신하고 있지 않은 것을 확인한 후 통신을 시작하는 CSMA/CA(Carrie Sense Multiple Access with Collision Avoidance) 방식을 사용한다.

  1. 클라이언트가 신호를 보낸다.

  2. 이미 다른 장비가 통신중이면 대기한다.

  3. 수신이 끝나면 AP가 ACK 신호를 발신한다

  4. 다른 클라이언트가 통신을 시작한다.

무선 LAN의 프레임 구조

무선 LAN의 프레임에는 MAC 어드레스 필드가 4개나 되는데, 무선 LAN끼리 통신하는 경우와 무선 LAN 뒤에 유선 LAN이 연결되는 경우 등에 따라 MAC 어드레스 정보가 할당되는 방식이 달라진다.

프리앰블PLCP 헤더 (신호의 변조 방식에 대한 정보)제어정보 (통신을 제어하는데 필요한 정보)MAC 어드레스 1MAC 어드레스 2MAC 어드레스 3일련번호 (데이터가 분할된 경우 일련번호를 표시)MAC 어드레스 4데이터 본체

MAC 어드레스 정보의 설정방식

무선 LAN의 통신에는 송신지와 수신지 사이를 무선 AP가 중계하게 된다.

그래서 프레임에는 송신지와 수시지의 MAC 어드레스 외에도 무선 AP의 MAC 어드레스 정보도 들어간다

무선 -> 무선

| 수신지 무선 클라이언트 MAC 어드레스 | 송신지 무선 클라이언트 MAC 어드레스 | 무선 AP의 MAC 어드레스 | 미사용 |

무선 -> 유선

| 무선 AP의 MAC 어드레스 | 송신지 무선 클라이언트 MAC 어드레스 | 수신지 유선 MAC 어드레스 | 미사용 |

유선 -> 무선

| 수신지 무선 클라이언트 MAC 어드레스 | 무선 AP의 MAC 어드레스 | 송신지 유선 MAC 어드레스 | 미사용 |

무선 AP를 경유해서 통신하는 경우

| 수신지 무선 AP의 MAC 어드레스 | 송신지 무선 AP의 MAC 어드레스 | 수신지 유선 MAC 어드레스 | 송신지 유선 MAC 어드레스 |

ARP

IP 어드레스로 MAC 어드레스 알아내기

이더넷이나 무선 LAN으로 데이터를 보내려면 수신 측의 MAC 어드레스를 알고 있어야 한다.

이떄 필요한 것이 ARP(Address Resolution Protocol)인데, 송신 측 장비는 요청 패킷에 수신측의 IP 어드레스를 설정한 후 네트워크 전체에 브로드캐스트한다.

이어 이 요청을 받은 호스트들 중 수신지의 IP 어드레스가 자신의 IP 어드레스와 동일한 장비는 자신의 MAC 어드레스를 응답 패킷에 설정하여 응답하게 된다.

결국 송신지 장비는 수신지 장비의 IP 어드레스 정보를 사용하여 MAC 어드레스도 알 수 있게 된다.

ARP 헤더

ARP 헤더에는 MAC 어드레스를 물어보는 송신지의 어드레스 정보와 MAC 어드레스를 알 수 없는 목적지의 어드레스를 담을 수 있는 필드가 있다.

이더넷 헤더

| 프리앰블 | 수신지 MAC 어드레스 (요청할 때는 브로드캐스트 어드레스를 설정) | 송신지 MAC 어드레스 | 길이 타입 |

ARP 헤더

| 하드웨어 타입 (이더넷을 사용할 때는 1을 설정) | 상위의 프로토콜 (TCP/IP를 사용할 떄는 16진수로 0800을 설정) | MAC 어드레스의 길이 (6으로 설정) | IP 어드레스의 길이 (4로 설정) | 오퍼레이션 코드 (요청할 때는 1, 응답할 때는 2를 설정) | 송신지 MAC 어드레스 (MAC 어드레스를 물어본 송신지 호스트의 MAC 어드레스를 설정) | 송신지 IP 어드레스 | 목적지 MAC 어드레스 (요청할 때는 0을 설정) | 목적지 IP 어드레스 (MAC 어드레스를 알 수 없는 목적지 호스트의 IP 어드레스를 설정) | FCS |

프락시 ARP

대리 ARP 혹은 프락시(proxy) ARP는 호스트 대신 라우터가 ARP에 대해 응답하는 기능을 말한다.

서브넷 마스크 값이 다른 호스트가 있을 때 이 기능이 필요하다.

통상적인 ARP 요청은 같은 네트워크에 있는 호스트들에게만 브로드캐스팅되지만 서브넷 마스크가 다른 호스트에는 전달되지 않기 때문이다.

그래서 그 사이에 있는 라우터가 프락시 ARP 기능으로 자신의 MAC 어드레스를 대신 응답하여 데이터를 중계할 수 있게 만든다.

PPP 와 PPPoE

PPP

PPP(Point to Point Protocol)는 원격지에 있는 컴퓨터를 일대일로 연결하기 위한 프로토콜이다.

이 프로토콜은 다양한 통신 하드웨어를 지원하도록 설계되어 있어서 실제로 전화 회선을 이용하는 다이얼 업 PPP나 이더넷을 사용하는 PPPoE와 같은 형태가 있다.

PPP는 접속, 사용자 인증, 통신, 중단과 같은 단계로 통신한다

  1. 접속 - 모뎀으로 통신이 가능하게 되었다

  2. 인증 - 사용자 계정과 패스워드를 교환

  3. 통신 - 통신에 사용할 프로토콜이나 어드레스를 서로 맞춘다

  4. 종료 - 통신이 끝나면 종료

이더넷에서 사용하는 PPPoE

이더넷에는 접속, 인증, 종료와 같은 절차가 없다. 그래서 이더넷을 사용하여 PPP 통신을 할 경우 이더넷의 프레임 안에 PPP의 헤더를 넣은 PPPoE(PPP over Ethernet)라는 프로토콜을 사용한다.

PPPoE 프레임

| 프리앰블 | 수신지 MAC 어드레스 | 송신지 MAC 어드레스 | 길이/타입 | PPPoE 헤더 | PPP 헤더 (접속, 인증, 정보 교환, 통신, 종료와 같은 단계를 표시하는 2바이트 값이 들어간다) | 데이터 본체 | FCS|

PPPoE 헤더

| 버전 (PPPoE의 버전) | 타입 (PPPoE의 타입) | 코드 (접속 확인 시 사용) | 세션 ID (접속 확인 시 정해지는 고유한 숫자 값) |

디스커버리 스테이지

PPPoE 에서는 PPP에 의한 접속 시 디스커버리 스테이지 라고 부르는 단계를 거쳐 PPPoE 세션을 생성한다

  1. 세션 개시 요구 -> - 세션 ID를 결정한 후에 PPP 절차를 따른다.

  2. <- 세션 ID의 통보