네트워크(3) : 케이블의 앞은 LAN 기기였다.

김두현·2024년 8월 29일
1
post-thumbnail

📍목차

  1. 케이블과 리피터, 허브 속을 신호가 흘러간다.
  2. 스위칭 허브의 패킷 중계 동작
  3. 라우터의 패킷 중계 동작
  4. 라우터의 부가 기능

1️⃣ 케이블과 리피터, 허브 속을 신호가 흘러간다.

본 포스팅에서는 LAN 어댑터에서 패킷이 송신되어 인터넷 접속용 라우터를 통해 인터넷에 나가는 부분에 대해 알아보자.
현대의 기기는 리피터 허브나 스위치 허브가 내장된 라우터를 사용하는 경우가 많지만,
단일 기능의 기기를 이해하면 복합 기능의 기기또한 이해할 수 있으므로 단일 기능의 기기를 기준으로 설명한다.

패킷이 LAN 어댑터에서 케이블로 나가는 부분부터 시작된다.
LAN 어댑터의 PHY(MAU) 회로에서 디지털 형태에서 전기 형태로 바뀌고,
RJ-45 커넥터를 통해 트위스트 페어 케이블에 들어간다.

이때 송출된 신호는 이동함에 따라 신호가 조금씩 약해지고 변형되는데,

변형을 방지하기 위해 트위스트 페어 케이블을 활용한다.

트위스트 페어 케이블

꼰 선상이라고도 불리는 트위스트 페어 케이블은 두 가닥의 신호선을 마주 꼬아놓은 형태를 통해 신호의 변형을 방지한다.
변형의 원인이 되는 전자파는 두 종류가 있다.
1. 모니터, 형광등 등의 기기에서 누설되는 전자파
2. 같은 케이블 내 인접한 신호선에서 누설되는 전자파

1번의 경우 선을 꼼으로써 전류의 진행 방향을 바꾸어 잡음을 방지하며,
2번의 경우 선을 꼬는 간격의 변화에 따라 바뀌는 플러스와 마이너스 신호의 균형을 맞추어 잡음을 방지한다.


신호가 리피터 허브에 도달하면, LAN 전체에 신호가 흩어진다.
이후 수신처 MAC 주소에 해당하는 기기만 패킷을 수신한다는 이더넷의 원리에 따라 신호가 수신된다.
즉, 신호를 수신한 기기는 맨 앞에 있는 MAC 헤더에 쓰여진 수신처 MAC 주소를 보고 자신이 수신처에 해당하면 수신하고, 아니라면 무시하는 구조이다.

리피터 허브의 PHY(MAU) 회로의 수신부에 도달한 신호는 리피터 회로에 들어간다.
리피터 회로에서 신호의 파형을 다듬고 오류를 억제하는 제품도 있지만,

리피터 회로는 기본적으로 수신한 신호를 그대로 커넥터 부분에 송출한다.

이후 디지털 데이터로 변환되어 FCS를 검사하는 곳에서 데이터 변화가 판명되기 때문에,
리피터 회로가 신호를 그대로 송출하더라도 문제가 발생하지 않는다.


2️⃣ 스위칭 허브의 패킷 중계 동작

다음으로 패킷이 리피터 허브를 나온 후 스위칭 허브를 경유하는 동작을 살펴보자.

스위칭 허브는 이더넷의 패킷을 그대로 목적지를 향해 중계하도록 만들어져 있다.
PHY(MAU) 회로에서 수신되는 부분까지는 리피터 허브와 동일하기 때문에,
트위스트 페어 케이블을 통해 신호가 들어오면 PHY(MAU) 회로에 수신된다.

PHY(MAU) 회로에서 공통의 신호 형식으로 변환한 후 MAC 회로로 들어가면 패킷의 FCS를 대조하여 오류 유무를 검사하고, 문제가 없다면 버퍼 메모리에 저장한다.
이때, 스위칭 허브는 LAN 어댑터와 달리 MAC 주소가 할당되어 있지 않기때문에 모든 패킷을 버퍼 메모리에 저장한다.

패킷이 메모리에 저장되면, 수신처 MAC 주소와 일치하는 것이 MAC 주소표에 등록되어 있는지 조사한다.
MAC 주소에는 기기의 MAC 주소와 그 기기가 어느 포트에 존재하는지에 대한 정보가 등록되어 있다.
이를 통해 수신한 패킷을 어디로 송신하면 좋을지 판단하며, 스위치 회로를 경유하여 패킷을 송신측의 포트에 보낸다.

MAC 주소 테이블 갱신

스위칭 허브는 패킷을 중계할 때 테이블의 내용을 갱신하는데, 갱신 동작으로는 두 종류가 있다.

  • 패킷 수신 시, 송신처 MAC 주소를 조사하여 수신한 입력 포트 번호와 하나의 세트로 등록

    • 이후 등록한 MAC 주소로 보낼 패킷을 수신했을 때, 연결된 포트로 중계하기 위함이다.
  • MAC 주소표에 등록된 내용을 주기적으로 삭제

    • 기기가 이동하여 더이상 주소표에 등록된 내용이 유효하지 않은 경우를 대비한 것이다.
    • 오래된 정보가 지워지기 전에 이동한 기기로 패킷이 도착하는 경우가 있을 수 있으나,
      스위칭 허브를 리셋하면 새롭게 주소가 등록되므로 네트워크는 정상 동작한다.

전이중 모드

스위칭 허브는 리피터 허브와 달리 송수신을 동시에 실행할 수 있다.
리피터 허브의 경우 연결된 모든 기기에 패킷을 전송하므로 여러 컴퓨터가 동시에 송신하면 신호가 뒤섞이는 충돌이 일어나지만,

스위칭 허브의 경우 스위치 회로를 통해 특정 기기에만 전송하게 되므로 충돌이 발생하지 않는다.
따라서 전이중 모드로 동작할 때는 PHY(MAU) 회로에서 신호의 충돌을 조사하는 충돌 검사 회로를 무효화하게 된다.

자동 조정

전이중 모드가 등장함에 따라 전이중 모드와 반이중 모드의 동작 모드 간 전환이 필요했고,
이와 더불어 상대의 전송 속도를 파악하여 전송 속도또한 자동으로 전환하는 기능이 필요했다.

이더넷에서는 데이터가 흐르지 않을 때 링크 펄스라는 신호를 통해 위와 같은 기능을 실행하는데, 이를 자동 조정이라 한다.

링크 펄스를 통해 상대방의 정상 동작 여부 등을 파악할 수 있다.

링크 펄스의 패턴을 통해 자신이 지원 가능한 속도와 동작 모드를 전달하고, 자신과 상대가 모두 지원 가능한 조합(속도 + 동작 모드) 중 우선 순위가 높은 것을 선택하여 동작하게 된다.


3️⃣ 라우터의 패킷 중계 동작

이제 라우터의 동작에 대해 알아보자.

스위칭 허브를 경유한 패킷은 라우터에 전달되고, 라우터는 또 그 다음 라우터로 중계할 것이다.
중계 대상을 표에 등록된 정보를 통해 정한다는 것은 스위칭 허브와 비슷하지만,
이더넷을 바탕으로 하는 스위칭 허브와 달리 라우터는 IP 개념을 바탕으로 한다는 점에서 차이가 있다.

라우터는 두 부분으로 구성된다.

  • 중계 부분 : 패킷의 중계 대상을 판단하는 동작 실행
  • 포트 부분 : 패킷 송수신 동작 실행
    • 포트 부분에 장착하는 하드웨어에 따라 ADSL, 이더넷, 무선 LAN 등 다양한 통신 기술 지원이 가능하다.

포트 부분이 이더넷이라면 이더넷의 규칙에 따라 동작하여 패킷을 수신한다.
이후 중계 부분에서 패킷의 IP 헤더에 기록된 수신처 IP와 라우팅 테이블에 등록된 정보를 대조하여 패킷을 전달할 대상을 파악하고, 다시 포트 부분에 의뢰하여 패킷을 전달하는 구조이다.

라우팅 테이블

IP 주소를 기반으로 중계 대상을 판단하는 라우팅 테이블에 대해 좀 더 알아보자.

테이블에 기록되는 주요 정보는 아래와 같다.

  • 수신처 : 서브넷 주소. 즉, 네트워크 번호
  • 넷마스크 : 네트워크 번호의 비트 수를 판단하기 위한 값
  • 게이트웨이 : 패킷 중계 대상
  • 인터페이스 : 패킷을 중계할 포트
  • 메트릭 : 목적지까지의 거리가 가까운지 먼지. 값이 작을수록 가까움

그러나 실제로 서브넷에 할당된 넷마스크의 값과 등록된 넷마스크의 값이 다를 수도 있는데,
이는 주소 집약이라는 개념때문이다.

주소 집약을 통해 몇 개의 서브넷을 모아 한 개의 서브넷으로 간주하여 라우팅 테이블에 등록할 수 있다.

예를 들면 10.0.1.0/24, 10.0.2.0/24, 10.0.3.0/24이라는 서브넷을 별도로 등록하지 않고,
10.10.0.0/16이라는 서브넷이 있다고 가정하여 이것을 등록하는 것이다.
이를 통해 테이블에 등록하는 건수를 줄일 수 있게 된다.

반대로 한 개의 서브넷을 세분화하여 여러 개로 등록하는 경우도 있는데,
결국 중요한 것은 넷마스크 항목은 수신처를 대조할 때 비교하는 비트 수의 역할만 한다는 것이다.

✔️ 그러면 실제 주소가 수신처에 등록된 정보와 다를텐데 어떻게 올바르게 전달할까?

가장 먼서 수신한 패킷의 수신처 IP 주소와 테이블의 수신처 항목을 조사하는데,
이때 수신처의 32비트를 모두 비교하는 것이 아닌 넷마스크 항목을 통해 필요한 부분만 비교한다.

비교 결과로 복수의 후보가 발견될 수 있는데, 이때는 네트워크 번호가 가장 긴 것을 선택한다.
네트워크 번호가 길면 호스트 번호의 비트수가 짧다는 것이므로, 범위가 더욱 축소되기 때문이다.

네트워크 번호 길이가 같은 것도 여러 개라면, 테이블의 메트릭 값이 작은 것을 선택한다.

선택되는 행이 한 개도 존재하지 않는다면, 패킷을 폐기하고 ICMP를 통해 오류 사실을 통지한다.

스위칭 허브의 경우 많아야 수천 대 정도이므로 중계 대상이 없는 경우 모든 포트에 패킷을 뿌려도 문제가 되지 않지만,
인터넷의 규모에서 중계 대상을 모르는 패킷을 뿌린다면 네트워크가 혼잡해지므로 패킷을 폐기한다.

또한, 수신처가 0.0.0.0기본 경로를 등록하고 여기에 인터넷으로 나가는 라우터를 등록하여 중계 대상이 불분명한 사태를 방지하고 있다.


라우터를 경유할 때의 패킷에 대해서 좀 더 알아보자.
현재의 인터넷은 라우터를 아무리 많이 경유하더라도 수십 개 정도이다.
이를 활용하여 64 혹은 128의 값을 TTL이라는 IP 헤더의 필드에 등록하는데,
이는 패킷의 생존 기간을 나타내며 라우터를 이동할 때마다 값을 1씩 줄인다.

즉, TTL 필드를 통해 패킷의 경로가 혼란에 빠져 순환하는 사태를 방지한다.

또한 라우터의 출력 포트측에서 송신할 수 있는 패킷의 최대 길이가 입력측에서 수신할 수 있는 패킷의 최대 길이보다 짧은 경우가 있는데, 이 경우에는 조각 나누기를 통해 패킷의 길이를 줄인 후 중계한다.

출력측의 MTU가 패킷의 길이보다 작은 경우, IP 헤더의 플래그 필드를 통해 분할 가능 여부를 판단한 후 패킷을 중계한다.
플래그 필드가 분할 불가인 경우, 패킷을 폐기하고 ICMP 메시지로 송신처에 통지한다.

이후 송신을 위한 작업을 마치면 송신 동작에 들어가게 되는데, 이때의 동작은 출력측 포트에 장착된 하드웨어에 따라 다르다.

이더넷의 경우로 예를 들면, MAC 헤더의 맨 앞에 있는 수신처 MAC 주소 필드에 값을 설정하기 위해 테이블의 게이트웨이 항목에서 중계 대상을 판단한다.
IP 주소가 기록된 경우 해당 IP 주소가 중계 대상이 되고, IP 주소가 공란인 경우 IP 헤더의 수신처 IP 주소가 중계 대상이 된다.

상대의 IP 주소가 결정되면 ARP를 통해 MAC 주소를 조사하여 헤더의 수신처 MAC 주소 필드에 기록한다.

송신처 MAC 주소 필드의 경우, 출력측 포트에 할당된 MAC 주소를 설정한다.
이후 패킷을 전기 신호로 변환하여 케이블을 통해 송출하는 구조이다.


4️⃣ 라우터의 부가 기능

이렇게 LAN 어댑터에서부터 인터넷으로 나가는 라우터까지의 과정을 살펴봤다.
추가로 라우터에서 제공하는 두 가지 주요 부가 기능을 살펴보고 마무리하자.

주소 변환

기본적으로 각 기기에는 고유한 주소가 할당되어야 정상적인 통신이 가능하지만,
기기의 수가 급속도로 증가하며 할당 가능한 주소가 고갈될 위기에 처했다.

이를 해결하기 위해 완전히 별개로 독립된 네트워크 구조에서 패킷을 건네줄 일이 없다면,
동일한 주소가 존재해도 상관없다는 성질을 이용했다.

이때 독립된 네트워크 내에서의 주소는 프라이빗 주소, 이전의 고유한 주소는 글로벌 주소라고 부른다.

프라이빗 주소의 규칙은 미사용 중인 글로벌 주소 중에서 범위를 정하여 독립된 네트워크에서 사용하는 것이다.

하지만 이것만으로는 독립된 네트워크 내의 기기가 공개 네트워크의 기기와 패킷을 주고받을 수 없으므로,
글로벌 주소 영역과 프라이빗 주소 영역 사이에 주소 변환 라우터를 위치시킴으로써 이를 해결한다.

주소 변환은 패킷을 중계할 때 IP 주소와 포트 번호를 기록하는 형태로 동작한다.
독립된 네트워크에서 인터넷으로 패킷을 중계할 때 송신처의 IP 주소를 프라이빗 주소에서 글로벌 주소로 바꿔쓰고,
이때 글로벌 주소는 주소 변환 라우터에 할당된 주소이며, 포트는 미사용 중인 번호를 임의로 선택하여 지정한다.

이를 주소 변환 라우터 내부의 대응표에 기록해두고,
이로써 글로벌 주소, 글로벌 포트 번호, 프라이빗 주소, 프라이빗 포트 번호가 한 세트로 기록된다.

이후 인터넷측에서 송신한 회신 패킷을 독립 네트워크 내로 중계할 때,
대응표를 통해 패킷의 값을 프라이빗 주소와 프라이빗 포트 번호로 바꿔쓴 후 패킷을 송신한다.

반대로 인터넷 측에서 먼저 독립 네트워크 내로 패킷을 송신하는 경우,
대응표에 기록이 없다면 프라이빗 주소를 알 수 없어 패킷을 송신할 수 없게 된다.
이를 가능하게 하고싶다면 그저 주소 변환 라우터에 수동으로 프라이빗 주소를 등록해두면 해결된다.

패킷 필터링 기능

라우터는 패킷을 중계할 때 MAC 헤더, IP 헤더, TCP 헤더의 내용을 조사하여 사전에 설정한 조건에 부합하는 경우에만 패킷을 중계하거나 폐기하며, 이는 방화벽이 부정 침입을 방지하는 원리와 동일하다.

그러나 부정 침입과 정상 액세스를 분간하는 조건을 설정하는 것은 쉽지 않은데,
이는 서버의 동작과 관련되므로 추후 포스팅을 통해 설명한다.


👏 마무리

이렇게 LAN 어댑터부터 리피터 허브, 스위치 허브, 라우터의 중계 과정과 부가 기능에 대해 알아보았다.
다음 포스팅에서는 라우터를 통과한 패킷이 인터넷에 들어가는 부분을 학습한다.


참고 자료

성공과 실패를 결정하는 1%의 네트워크 원리


💕오류 지적 및 피드백은 언제든 환영입니다. 복제시 출처 남겨주세요!💕
💕좋아요와 댓글은 큰 힘이 됩니다.💕
profile
I AM WHO I AM

0개의 댓글