[네트워크] TCP/IP 5계층에서 일어나는 일 (1)에서 이어지는 글입니다.

 

이전 글에서는 TCP/IP 5계층의 개요와 데이터의 전송 단위를 소개했다. 이번 글에서는 TCP/IP 5계층 세계관에서 데이터 송신, 수신이 발생할 때, 각 계층별로 어떻게 업무 분장이 되어있는지 보다 구체적으로 설명한다.

* 주요 키워드 : 이더넷, 허브 vs 스위치, 프레임

 


1계층 : 물리 계층

이진 데이터를 전기 신호로 변환하고, 컴퓨터와 네트워크 장비를 연결한다.

 

이진 데이터를 전기 신호로 변환한다.

컴퓨터 내부에서 취급되는 모든 데이터는 0과 1로 구성되어 있다. 네트워크로 이런 비트열을 전송하기 위해선 이진 데이터를 전기 신호로 변환하는 과정이 필요하다. 컴퓨터에 꽂혀있는 랜 카드(LAN card)가 데이터를 전기 신호로 변환하는 역할을 한다. 전기 신호의 전송이 완료되면, 데이터 수신 측에서는 전기 신호를 다시 0과 1의 집합로 복원한다.

 

컴퓨터와 네트워크 장비를 연결한다.

전기 신호를 전달하기 위해서는 데이터가 흐를 수 있는 물리적인 선로, 전송 매체가 필요하다. 전송 매체의 종류는 크게 유선과 무선으로 나눠진다. 유선 매체는 구리선 등을 꼬아서 만든 전선이고, 무선 매체는 눈에 보이지 않는 전자파를 활용한다.

  • 유선 : 트위스트 페어 케이블(랜 케이블), 광케이블 등
  • 무선 : 라디오파, 마이크로파, 적외선 등

물리 계층에 필요한 대표적인 네트워크 장비로는 리피터(repeater)허브(hub)가 존재한다. 이 장치들은 멀리 있는 상대와 통신할 수 있도록 전기 신호의 파형이 변형될 경우 정상적으로 되돌리는 역할을 한다.

실제 판매되는 허브. 누구나 한번쯤 봤을 생김새

  • 리피터 : 일그러진 전기 신호를 복원하고 증폭하는 기능을 가진 네트워크 중계 장비다. 요즘은 다른 네트워크 장비가 리피터 기능까지 지원하기 때문에 잘 안 쓰인다.
  • 허브 : 리피터와 마찬가지로 전기 신호를 정형하고 증폭하는 기능을 한다. 리피터는 1:1 통신만 가능하지만, 허브는 아래 사진과 같이 여러 개의 포트를 가지고 있어서 컴퓨터 여러 대와 연결이 가능하다.
    허브는 특정 포트로부터 데이터를 받았을 때, 어떤 포트로 데이터를 전송할지 판단하지 못하고 무조건 나머지 모든 포트로 받은 데이터를 전송하는 특징이 있다.

A로 데이터를 전송하면 나머지 B, C, D 전체에 전달된다.

2계층 : 데이터 링크 계층

물리 계층을 이용해 네트워크 장비 간에 데이터를 전송한다.

 

건물이나 특정 지역을 범위로 하는 네트워크인 랜(LAN)에서 데이터를 정상적으로 주고받기 위해 필요한 계층이다.

데이터 링크 계층에서는 일반적으로 이더넷(Ethernet) 프로토콜이 사용된다.

 

원하는 목적지에만 데이터를 전달한다.

물리 계층에서 사용된 허브는 특정한 컴퓨터 한대에만 데이터를 보내려 해도 나머지 모든 컴퓨터에 전기 신호가 전달된다는 특징이 있었다.  데이터 링크 계층에서는 발신 측에서 원하지 않는 컴퓨터에서는 데이터 내용을 볼 수 없도록 목적지 정보를 추가한다. 그러면 목적지 이외의 컴퓨터에서는 데이터를 받더라도 무시하게 된다.

이때 목적지를 식별하는 값으로 컴퓨터의 MAC 주소를 사용한다. MAC 주소는 제조사에서 부여하는 전세계에 딱 하나뿐인 고유한 48비트의 주소로, 물리 주소라고도 부른다. 허브에 연결된 컴퓨터들은 데이터를 수신 받았을 때 목적지 MAC 주소와 자신의 MAC 주소를 대조하여, 주소가 다를 경우 데이터를 파기한다.

 

프레임을 생성한다.

네트워크 계층에서 전달받은 패킷에 이더넷 헤더트레일러를 붙여 프레임을 생성한다.

  • 이더넷 헤더에는 출발지, 목적지, 이더넷 유형 정보가 포함되어 있다. 이더넷 유형엔 IPv4, ARP, IPv6 등 이더넷으로 전송되는 상위 계층(네트워크 계층) 프로토콜의 종류를 식별하는 번호가 들어간다.
  • 트레일러는 FCS(Frame Check Sequence)라고도 하는데, 데이터 전송 도중 오류가 발생하는지 확인하는 용도로 사용한다. 생성된 프레임은 물리 계층으로 전달 되어 전기 신호로 변환된다.
이더넷 헤더의 구성 (14 byte)
목적지의 MAC 주소 (6byte) 출발지의 MAC 주소 (6byte) 이더넷 유형 (2byte)

 

충돌과 CSMA/CD

허브에선 들어온 데이터를 그대로 모든 포트에 보내게 되는데, 회선 하나를 송신과 수신 데이터가 번갈아가며 사용하는 반이중 통신 방식을 사용한다. 이로인해 컴퓨터 여러대가 동시에 데이터를 보내면 데이터가 서로 부딪혀 손상되는 충돌(collision)이 발생할 수 있다. 이더넷은 여러 컴퓨터가 동시에 데이터를 전송해도 충돌이 일어나지 않도록 CSMA/CD라는 기법을 사용한다.

  • CS(Carrier Sense) : 데이터를 보내려 하는 컴퓨터가 케이블에 신호가 흐르고 있는지의 여부를 확인하는 규칙
  • MA(Multiple Access) : 케이블에 데이터가 흐르지 않을 때 데이터를 보내는 규칙
  • CD(Collision Detection) : 충돌이 발생하고 있는지 확인하는 규칙

이렇게 충돌 발생 가능성이 있을 때 이더넷에서 데이터를 보내는 시점을 늦추는 기법을 사용하는데, 지금은 효율이 좋지 않다는 이유로 거의 사용하지 않는다. 이런 문제를 보완하기 위해 스위치(switch)라는 장비가 사용된다.

 

허브의 단점을 보완하는 스위치

스위치는 데이터 링크 계층에서 동작하는 네트워크 장비로, 송신과 수신 케이블을 나눠서 사용하는 전이중 통신 방식을 사용한다. 덕분에 스위치는 허브와 달리 충돌이 발생하지 않는 구조다.

외형은 허브와 비슷하게 생겼다.

스위치 내부에는 MAC 주소 테이블이라는 것이 존재하는데, 여기엔 스위치의 포트 번호와 포트에 연결된 컴퓨터의 MAC 주소가 저장된다. 컴퓨터에서 프레임이 전송되면 스위치는 MAC 주소 테이블에서 출발지 MAC 주소의 존재 여부를 확인하고, 등록되어 있지 않다면 추가한다. 이를 MAC 주소 학습 기능이라 한다.

 

1. MAC 주소 테이블에 목적지 주소가 등록되어 있지 않을 때

목적지 주소가 아직 테이블에 등록되어 있지 않다면, 송신 포트를 제외한 나머지 모든 포트에 데이터가 전송된다. 이러한 현상을 플러딩(flooding)이라 부른다. 플러딩이 끝나면 목적지에서 스위치로 reply가 와서, 목적지 맥 주소도 테이블에추가된다.

플러딩

2. MAC 주소 테이블에 목적지 주소가 등록되어 있을 때

이 경우 MAC 주소와 매핑된 포트 번호를 확인해 목적지 컴퓨터에만 데이터를 전송하게 된다. 이를 MAC 주소 필터링이라 한다.

필터링

여기까지 학습, 플러딩, 필터링 세가지가 어떻게 동작하는지 간단히 설명했는데, 스위치의 기능은 크게 다섯가지가 존재한다.

  • MAC Adress Learning : 맥 주소 테이블에 맥 주소를 등록
  • Flooding : 송신 포트를 제외한 나머지 모든 포트로 데이터를 전송
  • Forwarding : 목적지 MAC 주소를 알고 있을 때 목적지 포트로 프레임을 전달
  • Filtering : 목적지 MAC 주소를 알고 있을 때 목적지를 제외한 나머지 포트엔 프레임을 전송하지 않음
  • Aging : 테이블의 효율적인 관리를 위해 일정 시간동안 프레임을 주고받지 않은 MAC 주소는 테이블에서 삭제

 

충돌 도메인

충돌이 발생했을 때 영향이 미치는 범위를 충돌 도메인이라고 한다. 충돌 도메인의 범위가 넓어질수록 네트워크가 지연된다.

  • 허브 : 연결된 컴퓨터 전체가 하나의 충돌 도메인으로, 충돌 도메인이 크다.
  • 스위치 : 연결된 모든 컴퓨터에 영향을 미치지 않으므로 충돌 도메인 범위가 좁다.

 

다음 글 : [네트워크] TCP/IP 5계층에서 일어나는 일 (3) 네트워크 계층