Home [네트워크 스터디] Chapter_03 케이블의 앞은 LAN 기기였다.
Post
Cancel

[네트워크 스터디] Chapter_03 케이블의 앞은 LAN 기기였다.

📗 Chapter_03 케이블의 앞은 LAN 기기였다. _허브와 스위치, 라우터의 탐험

🌟 3장의 요점 짚고 넘어가기 🌟

해당 챕터는 클라이언트 PC가 가정이나 회사의 LAN에 접속되고, 앞부분이 ADSL이나 광섬유(FTTH)등의 광대역 회선에 의해 인터넷에 접속된다는 최신의 대표적인 상황을 가정하여 설명한다.

이 경우 LAN 어댑터가 송신한 패킷은 스위칭 허브 등을 경유하여 인터넷 접속용 라우터에 도착한다. 라우터의 앞부분은 이미 인터넷이므로여기에서부터 앞부분은 통신사가 패킷을 상대에게 운반한다. 우체통에 봉투를 넣으면 그 후에는 집배원이 편지를 상대에게 전달하는 것과 유사하다.

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

하나하나의 패킷이 독립된 것으로 동작한다.

컴퓨터에서 송신된 패킷은 허브나 라우터라는 중계 장치에 의해 중계되어 목적지에게 운반된다. 이때 중계장치는 패킷의 데이터 정보를 확인하지 않는다. 이는 애플리케이션의 데이터나 TCP 프로토콜의 제어정보는 패킷 운반 동작에 아무런 영향을 주지 못하는 것이다. 즉 HTTP 메세지나 TCP 수신확인 서버와 클라이언트의 관계 같은 것들은 모두 무시된다고 보면 된다. 따라서 모든 패킷은 독립적인 패킷으로 판단되어 목적지에 운반된다.

LAN 케이블은 신호를 약화시키지 않는 것이 핵심이다

LAN 어댑터가 흘려보낸 전기신호가 케이블을 통해 허브에 도착될 때 송출한 신호 그대로 허브에 도착하지 않는다. 케이블을 통과하는 사이에 신호의 에너지가 조금씩 떨어지므로 케이블의 길이가 길어질수록 신호가 약해진다.

신호가 약해지는 것 뿐만 아니라 이더넷의 경우 사각형의 각진 신호가 뭉개져서 둥글게 변한다. 신호의 각진 부분은 주파수가 높을수록 전압이 급격하게 변화하게 된다. 이처럼 급격하게 변화하다가 신호가 약해져서 변화가 없어질 때 각이 뭉개진다.

잡음이 없을 경우에도 신호가 도착할 때는 변형돼서 도착할 때가 대부분인데 잡음의 영향까지 더해지면 매우 심각하게 변화한다. 약해진 신호가 더욱 변형되어 0과 1을 잘못 판독할 수 있는데 이것이 통신 오류의 원인이 될 수 있다.

리피터 허브는 연결되어 있는 전체 케이블에 신호를 송신한다.

신호가 리피터 허브에 도달하면 리피터 허브는 LAN 전체에 신호를 흘린다. 이더넷의 기본 원리인 전체에 패킷의 신호를 뿌리고 수신처 MAC주소에 해당하는 기기만 패킷을 수신한다는 원리를 그대로 실현했다고 보면 된다.

리피터 허브의 내부는 아래 그림과 같은데 각 커넥터의 안쪽에는 LAN 어댑터 내부에 있는 PHY 회로와 역할이 같은 회로가 존재한다. 이를 LAN 어댑터 측과 같이 RJ-45 커넥터에 직접 접속하면 신호를 제대로 수신할 수 없다. 제대로 신호를 수신하려면 ‘송신 단자’의 신호를 ‘수신 단자’로 받도록 해야한다. 회로와 커넥터 사이의 신호선을 교차하는 이유는 이 때문이다.

리피터 허브의 끝 커넥터에는 MDI/MDI-X 라는 전환 스위치가 존재한다. MDI는 RJ-45 커넥터와 신호 송수신 회로를 직접 결선한 것이고 MDI-X는 교차하여 결선하는 것을 나타낸다. 허브의 커넥터 부분은 보통 MDI-X 이므로 허브끼리 접속할 때는 한쪽을 MDI로 설정해야 한다. MDI로 전환하는 스위치가 없고 모든 커넥터가 MDI-X인 경우에는 크로스 케이블로 허브들에 접속한다.

image

✔️  리피터 허브

  • 이더넷의 기본을 따르는 하드웨어
  • 리피터 허브에 도달한 신호를 LAN 전체에 전달하지만 수신처 MAC 주소에 해당하는 패킷만 수신한다.
  • 전체에 패킷의 신호를 뿌리고 수신처 MAC 주소에 해당하는 기기만 패킷을 수신한다는 의미
    • MAC 헤더의 값을 확인 함
  • 리피터 허브의 내부에는 PHY(MAU) 회로와 역할이 같은 회로가 존재한다.
  • 리피터 허브의 끝 커넥터에서는 MDI/MDI-X와 같이 쓰여있는 전환 스위치가 존재한다.
  • MDI로 전환하는 스위치가 없고 모든 커넥터가 MDI-X인 경우에는 크로스 케이블로 허브들에 접속한다.
  • 잡음의 영향을 받아 데이터가 변화한 것 같은 신호도 전송한다.
1
💡 리피터 허브는 연결된 케이블 전체에 신호를 송신한다.

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

스위칭 허브는 주소 테이블로 중계한다

“스위칭 허브” 의 신호가 커넥터 부분에 도달하여 PHY 회로에서 수신되는 부분까지는 리피터 허브와 동일하다. PHY 회로에서 케이블을 흐르는 신호의 형식부터 공통의 신호 형식으로 변환한 후 신호는 MAC 회로에 들어간다. 이후 패킷을 디지털 데이터로 변환한 후 패킷의 맨 끝에 있는 FCS를 대조하여 오류의 유무를 검사하고 문제가 없으면 버퍼 메모리에 저장하고 오류가 있었던 패킷이면 폐기한다. 이 부분은 LAN 어댑터와 거의 같고 각 스위칭 허브의 커넥터 안쪽에는 LAN 어댑터와 같은 회로가 존재한다.

커넥터 안쪽에 있는 회로 부분을 포트라고 한다. 스위칭 허브의 각 포트는 PC의 LAN 어댑터와 거의 같지만 스위칭 허브의 포트는 MAC 주소를 검사하지 않고 모든 패킷을 수신하여 버퍼 메모리에 저장하기 때문에 스위칭 허브의 포트에는 LAN 어댑터와 달리 MAC 주소가 할당되어 있지 않다.

패킷을 버퍼 메모리에 저장하면 MAC 주소와 일치하는 것이 MAC 주소표에 등록되어 있는 지 조사한다. 주소표에 수신처 주소와 동일한 MAC 주소가 존재하면 주소표에쓰여있는 포트 위치에 패킷을 송신한다.

포트사이에 패킷을 운반할 때는 “스위치 회로” 에 패킷의 신호를 흘린다. 예를 들어 2번 포트에서 7번 포트로 패킷을 운반하려면 신호는 2번에서 들어올 것이다. 이때 선의 가로로 나열된 스위치의 왼쪽에서 7개까지의 스위치는 가로방향으로, 8번째의 스위치는 세로방향으로 전환한다. 그러면 아래 그림과 같이 신호는 출력측의 7번으로 흘러가서 7번 포트에 패킷이 도착한다. 이처럼 신호의 교점에 있는 스위치는 각각 독립적으로 움직이므로 신호가 중복되지 않으면 복수의 신호를 흘릴 수 있다.

image

1
💡 스위칭 허브는 MAC 주소표에서 MAC 주소를 조사하고 해당하는 포트에 신호를 송신한다.

✔️ 스위칭 허브

  • 스위치 내부에는 MAC 주소와 포트번호를 등록한 테이블이 존재한다.
    • 여기에는 수신포트와 송신 포트도 함께 등록된다.
  • 스위치 내부 테이블 정보를 확인하고 패킷을 중계한다. (목적지 확인)
  • 스위치 허브의 포트에는 MAC 주소가 할당되어 있지 않다.
  • 누군가 스위칭 허브에서 신호를 송신 중이면 신호를 보내지 않고 대기한다.
  • 신호의 교점에 있는 스위치는 독립적이므로 신호가 중복되지 않으면 복수의 신호를 동시에 흘린다.
  • 패킷이 충돌하지 않도록 재밍신호를 보낸다.

✔️ 스위치 회로의 구조

  • 그림과 같은 구조를 전자회로로 만든 것
  • 신호선은 격자 모양으로 배치되고 교점에 스위치가 존재함
  • 스위치는 전자적으로 개폐를 제어할 수 있음
  • 전자적 개폐를 통해 신호가 흐르는 대상을 제어함
  • 입력측은 수신측 포트에 접속되어 있고 출력측은 송신측 포트에 접속되어 있음

MAC 주소 테이블을 등록 및 갱신한다.

스위칭 허브는 패킷을 중계할 때 MAC 주소표의 내용을 갱신하는 동작도 실행한다. 갱신 동작에는 두 가지 종류가 있다. 첫번째는 패킷을 수신했을 때 송신처 MAC 주소를 조사하고, 수신한 입력 포트 번호와 하나의 세트로 MAC 주소표에 등록하는 것이다.

MAC 주소표를 등록하는 동작 말고도 등록되어 있는 내용을 지우는 또 하나의 동작이 존재한다. 이것은 기기를 이동했을 때 이동한 기기의 정보 수정없이 패킷을 전달하는 작업을 방지하기 위한 동작이다. 스위치 허브는 오래된 정보를 갱신하기 위해 일정시간 동안 사용되지 않은 정보를 지운다.

✔️ 스위칭 허브의 두 가지 갱신 동작

  • 송신처 MAC 주소 조사 후 수신한 입력포트와 하나의 세트로 MAC 주소표에 등록
  • 사용하지 않고 일장시간이 지나면 등록된 정보를 삭제하는 동작

예외적인 동작

스위칭 허브와 리피터 허브가 같이 접속할 때 송신 포트가 패킷을 수신한 포트와 같을 수 있다. 이때 스위칭 허브는 수신한 포트와 송신하는 포트가 같은 것을 확인하고 같은 값이라면 패킷을 폐기한다. 이뿐만 아니라 MAC 주소표에 수신처 MAC 주소와 일치하는 주소가 등록되어있지 않은 경우도 있다. 이 경우에는 어느 포트에서 송신해야 할지 판단할 수 없으므로 패킷을 수신한 포트 이외의 전체 포트에 패킷을 송신한다. 또한 수신처 MAC 주소가 브로드캐스트 주소인 경우에도 수신 포트를 제외하고 모든 포트에서 패킷을 송신한다.

스위칭 허브는 복수의 중계 동작을 동시에 실행한다

스위칭 허브는 수신처 MAC 주소의 기기가 존재하는 포트 이외에는 송신동작을 실행하지 않으므로 다른 포트는 빈 상태가 된다. 비어있는 포트에는 별도의 패킷을 흘릴 수 있으므로 스위칭 허브는 동시에 여러개의 패킷을 중계할 수 있다. 반면 리피터 허브는 들어온 신호를 모든 포트에 뿌리므로 동시에 두 개 이상의 신호가 들어오면 패킷이 충돌하기 때문에 복수의 신호를 동시에 흘릴 수 없다.

3. 라우터의 패킷 중계 동작

라우터의 기본

라우터의 원리도 스위칭 허브와 비슷하다. 그러나 구체적인 동작은 스위칭 허브와 다른데 라우터는 스위칭 허브와 달리 IP라는 개념을 바탕으로 하기 때문이다. 라우터의 내부 구조는 중계 부분과 포트 부분이라는 두 부분으로 구성되어 있다. 라우터의 중계 부분과 포트 부분의 역할은 LAN 어댑터의 역할 분담과 같다. 즉 라우터의 중계 부분은 IP를 담당하고 포트 부분은 LAN 어댑터와 같다고 생각하면 된다.

image

✔️ 라우터의 원리

  • 패킷은 라우터의 포트 부분에서 수신한다. (포트 부분의 하드웨어에 의뢰하여 패킷을 수신)
  • 패킷 수신 동작은 포트 부분에 연결된 하드웨어의 통신규칙에 따른다.
  • 중계 부분에서는 받은 패킷의 IP 패킷에 기록되어있는 수신처 IP 주소와 중계 대상을 등록한 표를 대조하여 중계 대상을 판단한다.
  • 라우터는 스위칭 허브와 달리 송신처나 수신처 둘 다 될 수 있음
  • 라우터의 포트에는 IP주소가 할당되어 있음 만약 포트가 이더넷인 경우 MAC도 같이 할당 됨

✔️ 라우터의 구성

  • 중계 부분과 포트 구분으로 구성되어 있음
  • IP개념을 바탕으로 설계되어 있음
  • 라우터의 중계 부분이 패킷의 중계 대상을 판단함
  • 라우터의 포트 부분은 패킷의 송수신 동작을 담당함
  • 라우터의 포트 부분에는 다양한 하드웨어를 장착할 수 있고 라우터는 장착한 하드웨어에 맞는 통신 기술을 지원함

경로표에 등록된 정보

라우터는 스위칭 허브와 달리 IP 헤더에 기재되어 있는 수신처 IP 주소로 중계 대상을 판단한다. 라우터는 스위칭 허브와 취급하는 주소가 다르므로 중계 대상을 등록하는 테이블의 내용도 다르다.

1
💡 라우터는 IP 주소로 중계 대상을 판단한다.

라우터의 테이블은 라우팅 테이블 또는 경로표라고 불린다. 여기엔 아래와 같은 정보들이 등록되어 있다.

수신처(Destination)넷마스크(Netmast)게이트웨이(Gateway)인터페이스(Interface)메트릭(Metric)
10.10.1.0255.255.255.0 e21
10.10.1.101255.255.255.255 e21
192.168.1.0255.255.255.0 e31
192.168.1.10255.255.255.255 e31
0.0.0.00.0.0.0192.0.2.1e11

✔️  라우팅 테이블 속성 정보

  • 수신처
    • 서브넷 자체를 나타내는 주소, 라우터가 중계할 대상
  • 넷마스크
    • 넷마스크 값에 따라 네트워크의 비트 수를 판단함
  • 게이트웨이
    • 라우터가 수신처에게 패킷을 전송할 때 거쳐야 하는 곳
  • 인터페이스
    • 인터페이스 항목에 등록되어있는 인터페이스(포트)에서 게이트웨이 항목에 등록되어있는 IP 주소를 가진 라우터에게 패킷을 중계함
  • 메트릭
    • 수신처 IP에 기록되어 있는 주소가 먼지, 가까운지를 판단하는 값

라우팅 테이블 수신처 항목에는 서브넷을 나타내는 IP 말고도 주소 집약 이라는 개념을 사용하여 몇개의 서브넷을 한개의 서브넷으로 간주한 후 묶은 서브넷을 경로표에 등록하기도 한다. 예를 들어 A 라우터에 10.10.1.0/24, 10.10.2.0/24, 10.10.3.0/24 서브넷이 연결되어 있을 때 B 라우터는 A라우터에 연결되어 있는 서브넷에게 패킷을 건낼 때 A 라우터에 패킷을 중계해야 한다는 사실은 변하지 않으므로 3개의 서브넷을 일괄적으로 통합하여 라우팅 테이블에 등록한다. 이것을 주소 집약 이라고 한다.

image

1
2
💡 라우터는 호스트 번호를 무시하고 네트워크 번호 부분만 조사한다.
💡 라우터의 경로표에서 '넷마스크' 항목은 경로표의 수신처와 패킷의 수신처 주소를 대조할  비트 수를 나타낸다.

라우터의 패킷 수신 동작

라우터 포트에는 MAC 주소와 IP가 할당되어 있으며 라우터는 자신의 주소에 해당하는 패킷만 수신하고 해당하지 않는 패킷은 폐기한다.

경로표를 검색하여 출력 포트를 발견한다.

MAC 헤더의 역할은 라우터에게 패킷을 건네주는 것이다. 때문에 라우터는 패킷 수신 동작이 끝나면 맨 앞의 MAC 헤더를 폐기한다. 수신동작이 끝나면 MAC 헤더 뒤에 있는 IP 헤더의 내용을 보고 패킷 중계 동작에 들어간다.

✔️ 중계 동작

  1. 수신한 패킷의 IP 주소와 경로표에 등록된 수신처 항목을 대조한다.
  2. 복수의 후보가 발견되면 네트워크 번호의 비트 수가 가장 긴 것을 찾는다.
  3. 네트워크 번호의 비트 수가 동일한 것이 존재하면 메트릭 값으로 판단한다.
  4. 해당하는 행이 하나도 발견되지 않을 경우 패킷을 폐기하고 ICMP 메세지로 송신처에 통지한다.


1
💡 라우터에서 중계하는 패킷의 수신처 MAC 주소에는 라우터의 포트에 할당된 MAC 주소가 기록되어 있다.

Reference

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

This post is licensed under CC BY 4.0 by the author.

[글또 7기] 다짐

[네트워크 스터디] Chapter_04 엑세스 회선을 통해 인터넷의 내부로 !