본문 바로가기
개발공부 개발새발/Network

Network ) 허브 & 스위치 & 라우터

by 휴일이 2023. 7. 28.

 

허브나 라우터는 패킷을 중계할 때 데이터를 보지 않고 중계한다. 그래서 애플리케이션의 데이터, TCP 프로토콜의 제어 정보의 내용이 패킷을 운반하는 동작에 영향을 주지 않는다.

LAN 케이블 신호

  • LAN 어댑터에서 송출한 신호는 허브에 도착할 때 신호가 약해져 있다.
    • 주파수가 높을 수록 에너지가 떨어지는 비율이 높다.
    • 주파수가 높은 신호는 약해지므로 급격한 변화가 없어져서 각이 뭉게진다.
  • 케이블을 통과하는 사이에 신호의 에너지가 조금씩 떨어지는 것

→ 통신 오류의 원인!!!

트위스트 페어 케이블(꼰 선쌍)

잡음의 원인

  1. 모니터, 형광등, CRP 모니터 같은 기기에서 누설되는 전자파
  2. 같은 케이블 안의 인접한 신호선에서 누설되는 전자파
    1. 크로스토크

→ 잡음의 원인인 케이블 주위의 전자파는 신호선을 마주 꼬아서 잡음을 막을 수 있다.

리피터 허브

이더넷의 기본인 전체에 패킷 신호를 뿌리고 수신처 MAC 주소에 해당하는 기기만 패킷을 수신하는 원리

  • 송신 → 수신이 연결되어 신호를 받아야 함
    • 크로스 케이블
  • 기본은 신호를 그대로 뿌리는 것뿐. 데이터가 변화한 것 같은 신호라도 그대로 흘린다.

스위칭 허브

이더넷의 패킷을 그대로 목적지까지 중계하자

  1. 신호가 커넥터 부분에 도달해서 PHY(MAU) 회로에서 수신.
  2. PHY(MAU) 회로에서 케이블 흐르는 신호의 형식부터 공통의 신호 형식으로 변환.
  3. MAC 회로에서 디지털 데이터로 변환.
  4. FCS 대조하여 오류 유무 검사.
  5. 문제가 없으면 버퍼 메모리에 저장.
  6. 수신처 MAC 주소와 일치하는 것이 MAC 주소표에 등록되어 있는지 조사.
  7. 수신 패킷을 어느 포트에서 송신하면 좋을지 판단.
  8. 스위치 회로를 경유하여 패킷을 송신측 포트에 보냄.
  9. MAC 회로나 PHY(MAU) 회로가 송신 동작 실행 → 케이블에 신호가 흘러감.
    1. 이더넷의 규칙에 따라 아무도 송신 중이지 않다는 것 확인
    2. 송신 동작이 없다면 소켓을 디지털 데이터 → 신호로 변환하여 송신
LAN 어댑터 MAC 주소가 있음  본인 주소가 아닌 경우 패킷 폐기
스위칭 허브 포트 MAC 주소 없음 수신처 MAC 주소 검사 안 함

 

MAC 주소 테이블

스위칭 허브는 패킷을 중계할 때 MAC 주소표의 내용을 등록, 갱신한다.

등록

  • 패킷을 수신했을 때 송신처 MAC 주소 조사
  • (송신처 MAC 주소 + 수신 입력 포트 번호) 세트로 MAC 주소표에 등록

갱신

  • 기기를 이동할 경우 MAC 주소표에 등록된 내용을 삭제

예외 동작

  • 주소표에 등록된 송신 포트가 패킷을 수신한 포트와 같다.
    • 송신처와 수신처가 같다.
    • 패킷 폐기
  • MAC 주소표에 수신처 MAC 주소와 일치하는 주소가 없다.
    • 모든 기기에 송신한다.
  • 수신처 MAC 주소가 브로드캐스트 주소이다. *255.255.255.255
    • 모든 기기에 송신한다.

전이중 모드

송신과 수신을 동시에 실행한다.

  • 트위스트 페어 케이블의 신호선은 송신용, 수신용이 나눠져 있다.
    • 송수신 도중에 신호가 충돌하지 않는다.
    • 즉, 리피터 허브를 사용하면 신호가 충돌하지 않는다!
  • 전이중 모드일 때는 충돌 검출 회로를 무효화 한다.
  • 양방향으로 동시에 송신할 수 있어 송신 데이터 양의 상한선도 높다. 성능이 좋다.

 

반이중모드 송신이 끝나야 수신이 가능하다.  송신 중에 수신이 오면 충돌한다.  전이중보다 성능이 떨어진다.
전이중모드 송신 수신이 자유롭다. 충돌 검출 회로를 무효화한다. 데이터 상한선이 높다. 성능이 좋다.

자동 조정

상대의 전송 속도를 검출하여 자동으로 전환한다. (전이중 ↔ 반이중)

  • 이더넷은 데이터가 흐르지 않을 경우 “링크펄스” 라는 펄스형의 신호를 흘린다.
    • 상대가 올바르게 작동하는지
    • 케이블이 단선되지 않았는지
  • 특정 패턴으로 펄스 신호를 송신하여 자신의 상황을 상대에게 전달한다.
    • 지원 가능한 모드와 전송 속도를 통지한다.
    • 최적의 조합을 선택해서 자기 자신을 설정한다.

 

종류 특징 포트 패킷 수
스위칭 허브 여러 개의 패킷 동시 중계 MAC 주소 기기가 존재하는 포트 외에는 송신 동작을 실행하지 않으므로 다른 포트는 비어있다. 많다
리피터 허브 복수의 신호를 동시에 흘릴 수 없음 들어온 신호를 모든 포트에 뿌리므로 동시에 두 개 이상의 신호가 들어오면 패킷이 충돌한다. 적다

라우터

리피터 허브나 스위칭 허브를 경유한 패킷은 결국 라우터에 도착한다. 그러면 라우터에서 다음 라우터로 중계될 것이다.

라우터 내부 구조

 

종류 역할 예시
중계 패킷의 중계 대상을 판단 IP
포트 패킷을 송수신하는 동작 LAN 어댑터
  1. 포트 부분에서 패킷 수신
    1. 통신 기술 규칙을 따른다.
  2. IP 패킷에 기록되어 있는 수신처 IP 주소와 중계 대상을 등록한 표를 대조하여 중계 대상 판단
  3. 포트 부분에 의뢰하여 패킷 송신

 

종류 바탕 중계 대상 판단 차이점
라우터 IP IP 헤더에 기재된 수신처 IP 주소
*넷마스크로 네트워크 번호 비트 수도 판단
호스트 번호는 무시하고 네트워크 번호만 본다
스위칭 허브 이더넷 MAC 헤더에 기록된 MAC 주소 호스트와 네트워크 번호 전부 본다

주소 집약

서브넷에 할당된 넷마스크 값과 경로표에 등록된 넷마스크 값이 다를 수 있다. 몇 개의 서브넷을 모아서 한 개의 서브넷으로 간주한 후 서브넷을 경로표에 등록하는 개념이다.

  1. 복수의 서브넷을 하나로 간주하기 위해…
    1. 넷마스크 값을 변경하여 경로표에 등록한다.
    2. 수신처 한목에 집약한 주소를 등록한다.
  2. 한 개의 서브넷을 세분화하여 경로표에 등록하고 복수의 서브넷이 있는 것처럼 보이게 한다.

→ 경로표 넷마스크는 경로표에서 수신처를 대조할 때 비교 동작을 실행하는 비트 수를 나타내는 데 불과하다.

 

 

✅ “수신처” 항목에 등록된 주소가 실제 서브넷에 할당한 네트워크 주소와 다를 수도 있지만 라우터는 정상 동작한다.

 

 

라우터 경로표

 

수신처 수신한 곳
넷마스크 송신처 (ip를 비트 치환)
게이트웨이 포트_패킷 중계 대상
인터페이스 IP주소 라우터_패킷 중계 대상
메트릭 수신처 IP 주소 목적지가 가까운지 먼지

 

✅ 라우터는 패킷을 중계할 때 경로표 내용에 손대지 않는다.

 

 

패킷 수신

이더넷 포트 패킷 수신 동작에 초점을 두고 말하면, 이더넷 포트 구조는 PC 의 LAN 어댑터와 거의 같다.

  1. 신호가 커넷터에 도착하면 PHY(MAU) 회로와 MAC 회로에서 신호를 디지털 데이터로 변환
  2. FCS 와 대조해서 오류 점검
  3. 정상이면 MAC 헤더 수신처 MAC 주소가 자기에게 해당하는지 확인
    1. 해당 안 하면 폐기

 

 

✅ 이 친구 역시 본인 MAC 주소로 온 게 아니라면 패킷을 폐기한다.

 

 

 

패킷 중계

  • 라우터는 패킷 수신 동작이 끝나면 MAC 헤더를 폐기한다.
    • 어차피 내 MAC 주소가 써있으니 이젠 쓸모없다. 폐기
  • 그 다음, IP 헤더를 보고 패킷 중계에 들어간다.
  1. 수신처, 넷마스크 항목에서 네트워크 번호와 비트 수를 판단하여 네트워크 번호만 비교
  2. 네트워크 번호의 비트 수가 가장 긴 것을 찾음
    1. 호스트 번호의 비트 수가 짧다는 것이라서, 호스트 번호로 할당 가능한 번호의 수가 적다는 것
    2. 서브넷이 작다는 것이니 범위가 축소된다.
  3. 메트릭 값으로 판단.
  4. 해당하는 행이 한 개도 발견되지 않으면 패킷 폐기 후 ICMP 메시지로 송신처에 통지

 

스위칭 허브  주소표에 해당 주소가 없으면모든 포트에 패킷을 뿌린다.  크지 않은 네트워크라 무리가 없다
라우터 패킷을 폐기하고 *ICMP 메시지로 송신처에 알린다.
*패킷 운반할 때 발생하는 오류나 제어용 메시지 보낼 때 이용
전세계에 펼쳐져있다. 전부 펼치면 네트워크가 혼잡해진다.

기본 경로

넷마스크 항목이 “0.0.0.0” 이라면 패킷 수신처 IP 주소와 경로표 “수신처” 항목을 비교할 때의 비트 수가 0이라서 비교 동작 실행하지 않아도 됨. → 0.0.0.0 은 모든 주소에 일치하거든!

  • 다른 행에 해당하는 것이 없다면 기본 게이트웨이로 들어간다.
  • IP 주소가 뒤섞였어도 같은 방법으로 중계 대상을 검색할 수 있다.

TTL 패킷 유효 기간

패킷이 같은 장소를 뱅글뱅글 순환하는 사태를 막기 위해 만든 것.

  • 라우터는 패킷의 IP 헤더 필드에 있는 TTL 을 -1 씩 줄인다.
    • 이게 0이 되면 패킷을 폐기한다. (무한 순환 방지)

조각 나누기

패킷의 최대 길이가 출력 측의 패킷 최대 길이를 초과한 경우 패킷을 나누는 행위

  1. 출력 측의 MTU를 조사하여 중계하는 패킷을 그대로 송신할 수 있을지 조사
  2. 출력 측의 MTU 가 작은 경우 패킷을 분할한다.
    1. 이 때 IP 헤더의 플래그 필드를 조사해 분할해도 되는지 확인
    2. 안 되면 폐기
  3. TCP헤더 이후의 데이터를 맨 앞 부분부터 차례대로 잘라낸 후, IP 헤더를 덧붙인다.

패킷 송신

출력측의 포트 종류에 따라 동작이 다르다. 이더넷이라면 이더넷의 규칙에 따라 패킷을 신호로 변환해서 송신한다. 여기서는 회사 등의 LAN에 사용하는 라우터를 가정하고, 출력측의 포트는 이더넷인 경우로 한다.

패킷 송신 동작의 기본은 프로토콜 스택의 IP 와 같다.

  1. MAC 헤더 맨 앞에 있는 수신처 MAC 주소 필드에 값을 설정하기 위해 “게이트웨이”에서 패킷을 건네줄 상대를 판단.
    1. 게이트웨이가 공란이면 IP 헤더의 주소가 건네줄 상대
  2. 상대의 IP 주소가 결정되면 IP 주소에서 MAC 주소 조사
    1. 먼저 ARP 캐시를 찾아보고
    2. 없으면 ARP 로 조회를 보냄
  3. 결과를 수신처 MAC 주소로 설정.
  4. 출력측 포트에 할당된 MAC 주소를 송신처 MAC 주소로 설정
  5. 만들어진 송신 패킷을 전기 신호로 변환하여 포트에서 송신

 

 

✅ 라우터도 ARP 를 사용하여 다음 상대의 MAC 주소를 찾는다.

 

 

 

그래서 라우터와 스위칭 허브는?

MAC 헤더를 부가하는 부분에 주목하자. 사실은 헤더를 부가하는 것이라기보다는 ”이더넷 패킷의 데이터 부분에 IP의 패킷을 넣는다” 는 개념

  • 즉 이더넷 패킷 데이터에 IP 패킷을 넣고 이더넷의 원리로 다음 라우터까지 운반
라우터 IP 패킷을 운반하는 일을 스위칭 허브에 의뢰 패킷을 전달하는 전체 동작
스위칭 허브 이더넷 패킷을 운반하는 수단 다음 라우터까지 패킷을 운반
  • IP가 이더넷에게 의뢰하는 것은 최종 목적지까지가 아니라, 다음 라우터까지 패킷을 운반하는 것.

 

 

✅ 통신 상대까지 패킷을 전달하는 전체 동작은 IP(라우터) 다음 라우터까지 패킷을 운반하는 것은 이더넷(스위칭 허브)

 

 

라우터의 부가 기능

  • 주소 변환
    • 사내 네트워크에서 쓰는 프라이빗 주소 (중복 가능)
    • 공개용 서버에서 쓰는 글로벌 주소 (중복 불가)
    • 사내 네트워크에서 글로벌 인터넷과 통신하고 싶을 때 쓴다.
  • 패킷 필터링

주소 변환

패킷을 중계할 때 IP 헤더에 기재된 IP 주소와 포트 번호를 바꿔쓰는 것.

  1. 송신처의 IP 주소를 프라이빗 주소에서 글로벌 주소로 바꿔쓴다.
  2. 포트 번호도 바꾼다.
  3. 바꿔 쓰기 전에 프라이빗 주소와 포트번호, 바꿔 쓴 후의 글로벌 주소와 포트 번호를 한 세트로 주소 변환 장치 내부에 대응표에 기록해둔다.
  4. 주소 변환 장치가 대응표에서 글로벌 주소와 포트 번호를 찾아서 수신처에 대응하는 프라이빗 주소와 포트 번호로 바꿔쓴다.
  5. 사내 네트워크에 패킷을 보낸다.
  6. 접속 동작이 끝나면 대응표에 등록한 것을 삭제한다.

왜 포트 번호를 바꿔쓰나요?

초기의 주소 변환은 포트 번호 바꿔쓰기를 실행하지 않고 주소만 바꿔 썼다. 이래도 되긴 된다. 근데 포트 번호를 바꿔쓰면, 한 개의 글로벌 주소를 수 만개의 프라이빗 주소에 대응시킬 수 있다! → 글로벌 주소의 이용 효율 높아진다!

만약 송신처 프라이빗 주소와 포트 번호가 등록 안 되어 있다면?

글로벌 주소가 있으니 사내→인터넷은 보낼 수 있는데 인터넷 → 사내로 패킷을 중계할 수 없다. → 인터넷에 액세스 하지 않은 기기는 인터넷 측에서 패킷을 송신할 수 없다!

패킷 필터링

패킷을 중계할 때 MAC, IP, TCP 헤더에 기록되어 있는 내용을 조사하여 사전에 설정한 조건에 합치되면 패킷을 중계하거나 폐기하는 동작

→ 방화벽을 생각해보자.

728x90