Network
이더넷, 무선 LAN(Wi-Fi)
주위에 있는 PC나 스마트폰 등은 서버의 애플리케이션과 서로 데이터를 주고 받는다.
서버는 PC나 스마트폰과는 멀리 떨어진 네트워크에 접속 되어 있다.
기술적인 관점에서 생각하면, ‘네트워크’는 라우터 또는 레이어 3 스위치로 구획되는 범위이다.
네트워크의 기본적인 구성은 레이어 2 스위치로 하나의 네트워크를 구성하고, 라우터 또는 레이어 3 스위치로 각 네트워크를 서로 연결한다.
다른 네트워크에 접속된 서버까지의 데이터 전송은 같은 네트워크 내의 전송을 반복해서 실현된다.
PC에서 서버로 가는 데이터는 우선 PC와 같은 네트워크 상에 있는 라우터로 전송되고, 라우터는 다시 같은 네트워크 상의 다음 라우터로 전송된다. 그렇게 해서 목적지 네트워크 상의 라우터까지 도달하면, 그 라우터가 서버로 데이터를 전송한다.
같은 네트워크 내에서 전송하는 프로토콜로 자주 이용하는 것이 이더넷과 무선 LAN(Wi-Fi)이다.
TCP/IP의 계층 구조에서 맨 아래인 네트워크 인터페이스층에 있는 프로토콜 이다.
이더넷의 개요
이더넷은 TCP/IP 계층에서 맨 아래인 네트워크 인터페이스층의 프로토콜이다.
이더넷은 같은 네트워크 내의 어떤 이더넷 인터페이스부터 다른 이더넷 인터페이스까지 데이터를 전송한다.
같은 레이어2 스위치에 연결된 PC는 같은 네트워크에 접속된 것이다.
같은 네트워크에 있는 PC의 이더넷 인터페이스에서 다른 PC의 이더넷 인터페이스로 데이터를 전송하는 것이 이더넷의 역할이다.
레이어2 스위치는 이더넷으로 전송하는 데이터에 변경을 가하지 않기 때문에 신경쓸 필요가 없다.
PC와 서버, 레이어2 스위치 등 이더넷 인터페이스가 있는 기기끼리 연결해서, 이더넷 링크를 만들면 유선 네트워크가 된다.
IEEE802 위원회
이더넷은 10Mbps ~ 100Gbps라는 빠른 속도를 지원하는 다양한 규격이 있다. 규격은 IEEE802 위원회에서 결정한다.
이더넷의 다양한 규격은 최대 전송 속도와 이용하는 매체(케이블)에 따라 나뉜다.
이더넷 규격의 명칭에는 IEEE802.3으로 시작되는 이름과 1000BASE-T 처럼 전송 속도(물리적인 신호를 데이터로 변환하여 전달하는 최대 속도)와 전송 매체의 특징을 조합한 이름이 있다.
맨 앞의 숫자는 전송 속도를 나타낸다. Mbps 단위이다.
BASE는 베이스 밴드 방식이라는 의미이다.
- 뒤에는 전송 매체나 물리 신호 변환 특징을 나타낸다. T가 있는 경우 전송 매체로 UTP 케이블을 이용한다. UTP 케이블은 LAN 케이블로 가장 자주 이용되는 전송 매체이다.
초기 이더넷 규격은 BASE 뒤에 숫자가 기재되는데, 숫자가 오는 경우 전송 매체로 동축 케이블을 이용하고, 100m 단위 케이블의 최대 길이를 의미한다.
MAC 주소
이더넷은 이더넷 인터페이스 간에 데이터를 전송한다. 데이터를 전송하려면 이더넷 인터페이스를 특정해야하는데, 특정하기 위해 MAC 주소를 사용한다.
MAC 주소는 이더넷 인터페이스를 특정하기 위한 48비트 주소이다.
MAC 주소의 48 비트 중 24비트는 OUI, 그 뒤 24비트는 시리얼 넘버로 구성된다.
OUI는 이더넷 인터페이스를 제조하는 벤더(메이커) 식별 코드이다.
시리얼 넘버는 각 벤더가 할당된다. MAC 주소는 이더넷 인터페이스에 미리 할당되어 있어, 기본적으로 변경할 수 없는 주소이므로 ‘물리 주소’ 또는 ‘하드웨어 주소’ 라고도 부른다.
MAC 주소는 16진수로 표기한다.
표기 패턴은 다음과 같다.
- 1바이트씩 16진수로 변환하고, ‘-’로 구분
- 1바이트씩 16진수로 변환하고 ‘:’로 구분
- 2바이트씩 16진수로 변환하고 ‘.’으로 구분
RJ-45 인터페이스와 UTP 케이블
이더넷에는 다양한 규격이 존재한다.
규격마다 사용할 수 있는 인터페이스와 케이블이 다르다.
가장 널리 이용되는 규격은 다음과 같다.
- 10BASE-T
- 100BASE-T
- 1000BASE-T
- 10GBASE-T
위 규격들은 모두 RJ-45 이더넷 인터페이스와 UTP 케이블을 채용한다.
UTP 케이블은 이더넷의 전송 매체로서 일반적으로 이용되는데, 흔히 말하는 LAN 케이블이다.
UTP 케이블은 케이블의 품질에 따라 카테고리가 나뉜다. 카테고리에 따라 지원할 수 있는 주파수가 달라지고, 각각 용도나 전송 속도가 정해진다.
RJ-45는 UTP 케이블용 이더넷 인터페이스로서 현재 폭 넓게 이용된다. UTP 케이블에 맞춰 8개의 단자가 있고, 전기신호가 흐르는 회로를 최대 4쌍 형성할 수 있다.
이더넷의 프레임 형식
이더넷으로 데이터를 전송하기 위해서는 전송할 데이터에 이더넷 헤더를 붙여야 한다. 이더넷 헤더 뿐 아닌 FCS도 붙게된다.
FCS는 에러 체크를 위한 것이다.
이더넷 헤더 + 데이터 + FCS를 이더넷 프레임이라 한다.
이더넷 헤더에는 다음 정보가 있다.
- 목적지 MAC 주소
- 출발지 MAC 주소
- 타입 코드
이 중에서 중요한 것은 출발지와 도착지의 MAC 주소 이다.
어느 인터페이스에서 어느 인터페이스로 전송하는 데이터인지 MAC 주소로 지정한다.
타입 코드는 이더넷으로 운반할 대상의 데이터이다.
TCP/IP를 이용하면 타입 코드로 IPv4를 나타내는 0x0800이 지정되는 경우가 많다.
전송 대상이 되는 데이터는 64 바이트 ~ 1500 바이트 사이로 정해져 있다.
데이터 크기의 최댓값을 MTU(Maximum Transmission Unit)라고 부른다.
MTU를 넘는 크기의 데이터는 복수로 분할해서 전송한다. 이러한 전송은 TCP로 이루어진다.
이더넷 프레임은 64~1518 바이트 범위가 된다.
- 이더넷 헤더
- 목적지 MAC : 6바이트
- 출발지 MAC : 6바이트
- 타입 코드 : 2바이트
- 데이터 : MTU (1500바이트)
- HTTP 예시
- IP 헤더, TCP 헤더, HTTP 헤더, 애플리케이션 데이터
- FCS : 4바이트
타입 코드
- IPv4 : 0x0800
- ARP : 0x0806
- IPv6 : 0x86DD
이더넷으로 전송하고 싶은 데이터에 이더넷 헤더와 FCF를 추가해 이더넷 프레임을 만들고, 헤더 안에 MAC 주소를 지정해, 어느 인터페이스에서 어느 인터페이스로 전송하는 데이터인지 나타낸다.
토폴로지
토폴로지(topology)는 네트워크에서 기기를 연결하는 형태를 나타낸다.
- 버스형
- 스타형
- 링형
10BASE5나 10BASE2는 버스형 토폴로지이다.
버스형 토폴로지는 하나의 전송 매체(동축 케이블)를 복수의 기기가 공유한다. 따라서 전송 매체를 어떻게 공유할 것인지 제어해야 한다.
이더넷은 이 제어를 위해 CSMA/CD 방식을 사용한다.
현재는 버스형에서 레이어2 스위치를 중심으로 하는 스타형 토폴로지로 옮겨가고 있다.
CSMA/CD
전송 매체를 공유하는 버스형 토폴로지로 된 이더넷에서는 복수의 기기가 동시에 데이터를 전송할 수 없다. 즉, 어떤 순간에 데이터를 전송할 수 있는 것은 단 한대 뿐이다. 전기 신호가 흐르는 회로는 하나뿐이기 때문이다.
CSMA/CD는 이더넷에서 전송 매체를 어떻게 이용할지 제어해 전송 매체를 공유하는 매커니즘이다.
먼저 가는 쪽이 승리하는 방식이다.
‘CS’는 케이블이 현재 사용 중 인지 감지하는 것을 가리키고, 케이블이 사용중이면 대기한다.
케이블이 비어있다면 데이터를 전송할 수 있는데, 복수의 호스트가 동시에 케이블이 비어있다고 판단하면, 여러 곳에서 데이터를 전송할 것이다. 그렇게 되면 전기 신호 충돌이 발생해 데이터는 파괴된다.
전압의 변화로 전기 신호 충돌 여부를 알 수있다. 충돌이 발생하면 데이터를 재전송한다. 또 같은 타이밍이 재전송하다 충돌이 발생할 수도 있어, 랜덤한 시간 동안 대기하여 충돌 발생 가능성을 낮춘다.
즉, 하나의 전송 매체를 복수의 호스트에서 공유할 수 있게 하는 방식이 CSMA/CD 이다.
현재의 이더넷은 전송 매체를 공유하지 않기 때문에 필요없다.
레이어2 스위치
레이어 2 스위치는 이더넷을 이용한 네트워크 ‘하나’를 구성하는 네트워크 기기이다.
레이어 2 스위치를 여러 대 연결해도 하나의 네트워크이다.
VLAN을 이용하면 레이어2 스위치로 복수의 네트워크를 만들 수 있다.
레이어2 스위치는 레이어 2 스위치로 구성된 한 이더넷 네트워크 안에서 데이터를 전송한다.
레이어2 스위치에서의 데이터는 이더넷 프레임이다. 레이어 2 스위치는 수신한 이더넷 프레임을 전혀 변경하지 않고 전송한다.
이더넷 프레임을 전송하기 위해, 이더넷 헤더의 MAC 주소를 확인할 뿐이다.
또한, 레이어2 스위치는 네트워크 입구 역할도 한다.
레이어 2스위치에는 많은 이더넷 인터페이스가 있다. 클라이언트나 PC나 서버 등을 네트워크에 접속하려면 우선 레이어 2 스위치와 접속해야 한다.
네트워크의 입구가 된다는 의미에서 레이어 2 스위치를 액세스 스위치라고 표현하기도 한다.
레이어 2스위치는 일반 가정용 제품의 경우 스위칭 허브라고도 부른다.
레이어2 스위치의 데이터 전송
레이어 2 스위치의 동작은 매우 단순하다.
- 수신한 이더넷 프레임의 출발지 MAC 주소를 MAC 주소 테이블에 등록한다.
- 목적지 MAC 주소와 MAC 주소 테이블에서 전송할 포트를 결정해, 이더넷 프레임을 전송한다. MAC 주소 테이블에 존재하지 않는 MAC 주소의 경우는 수신 포트를 제외한 모든 포트로 이더넷 프레임을 전송한다.(플러딩)
레이어 2 스위치가 데이터를 전송하기 위해선 특별한 설정은 필요 없다.
먼저 호스트가 전송하면, 레이어 2 스위치는 출발지 MAC 주소와 포트를 MAC 주소 테이블에 등록한다. 목적지 MAC 주소가 테이블에 등록되어 있지 않다면 이 이더넷 프레임을 Unknown 유니캐스트 프레임이라 부른다.
Unknown 유니캐스트 프레임은 수신한 포트를 제외한 모든 포트에 전송한다. 이 동작을 플러딩이라 한다.
즉, 레이어 2 스위치의 이더넷 프레임 전송은 ‘모르면 일단 전송해 둔다’라는 식으로 동작한다.
레이어 스위치의 전송 범위는 같은 네트워크 뿐이기 때문에 큰 영향을 미치지 않는다.
라우터의 경우 목적지를 모르면 데이터를 파기한다.
플러딩을 할 땐 수신한 프레임을 복사한다.
자신의 MAC 주소가 아닌 곳에서 데이터를 받으면 파기한다.
다른 레이어 스위치에서 데이터를 받으면, 우선 수신한 출발지 MAC 주소를 MAC 주소 테이블에 등록하고, 똑같이 플러딩 한다.
이렇게 반복하면서 호스트를 찾으면, 해당 이더넷 프레임을 수신해 IP 등 상위 프로토콜에서 처리를 수행한다.
즉, 레이어2 스위치는 MAC 주소를 MAC 주소 테이블에 계속 등록하면서 프레임을 전송하고, 수신한 이더넷 프레임의 출발지를 계속 기억ㅇ하며, 같은 네트워크 내의 이더넷 인터페이스로 전송한다.
응답은 다음과 같이 진행된다.
이미 MAC 주소 테이블에는 어디 포트로 전송할지 알고 있으므로, 해당 포트로 이더넷 프레임을 전송한다.
MAC 주소 테이블
하나의 포트에 반드시 하나의 MAC 주소만 등록되는 것은 아니다.
스위치의 MAC 주소 테이블에 등록되는 것은, 스위치 자체에 접속된 기기의 MAC 주소 뿐이 아닌, 여러 대의 스위치를 연결할 떄에는 하나의 포트에 복수의 MAC 주소가 등록된다.
즉, 다른 스위치에 MAC 주소 테이블 정보도 등록된다.
MAC 주소 테이블에 등록되는 MAC 주소 정보는 접속 포트가 바뀌거나 하는 경우도 있으므로, 영구적인 것은 아니다. 즉, 제한 시간이 설정되어 있다. 스위치 마다 다르지만 대략 5분 정도 이다.
등록된 MAC 주소가 출발지로 되어 있는 데이터를 수신하면, 제한 시간이 재설정된다.
전이중 통신
레이어 2 스위치를 기반으로 만든 이더넷 네트워크에서는 데이터 송수신을 동시에 할 수 있다.
데이터 송신과 수신을 동시에 하는 것을 전이중 통신이라 한다.
반이중 통신은 송신과 수신을 동시에 할 수 없다 서로 전환하면서 처리한다.
버스형 토폴로지인 초기 이더넷은 반이중 통신이다. 즉, 특정 시간에 한 대만 데이터를 전송할 수 있고, 나머지는 수신만 할 수 있다.
전이중 통신을 실현하기 위해서 간단한 방식은 데이터 수신용과 송신용으로 전송 매체를 나누어 사용하는 것이다.
레이어 2 스위치를 이용한 이더넷은 데이터를 수신용과 송신용을 나눔으로써 전이중 통신을 할 수 있게 됬다.
레이어2 스위치와 PC의 이더넷 인터페이스(포트)를 UTP 케이블로 연결한다.
UTP는 겉으로는 한줄이지만, 실질적으로 4줄이다.
총 8줄의 구리선을 꼬아서 만드는데, 두 줄을 한 조로 하므로 4조의 전기 신호를 흘려 보낼 수 있다.
UTP 케이블을 이용하는 10BASE-T, 100BASE-TX는 4조의 UTP 케이블 배선 중 1조를 송신용, 1조를 수신용으로 해서 전기 신호를 흘려보낸다.
무선 LAN
이더넷은 유선 네트워크이다.
케이블 없이 간편하게 네트워크를 만들기 위해서 무선 LAN이 개발되었다.
무선 LAN을 만들기 위해선, 무선 LAN 액세스 포인트와 무선 LAN 인터페이스가 필요하다.
무선 LAN 인터페이스는 노트븍, 스마트폰 등에 미리 내장되어 있는 경우가 대부분이다. 무선 LAN 인터페이스로 무선 LAN에 연결된 기기를 가리켜 무선 LAN 클라이언트라고도 자주 표현한다.
무선 LAN의 데이터 통신은 무선 LAN 액세스 포인트를 경유한다. 경유해 데이터를 주고받는 것을 인프라스트럭처 모드라고 한다.
무선 LAN 클라이언트의 애플리케이션에서 요청을 보낼 목적지 서버는 거의 유선 이더넷을 이용한다. 결국 무선 LAN만으로는 통신이 완결되지 않는 경우가 보통이므로, 무선 LAN 액세스 포인트는 레이어 2스위치와 접속해 유선 이더넷 네트워크와도 연결된다.
IEEE802.11b/a/g/n/ac
유선 이더넷에도 규격이 있듯이, 무선 LAN에도 규격이 있다.
무선 LAN 규격의 차이는 이용하는 전파와 주파수 대역이다.
크게 2.4GHz와 5GHz 대역의 주파수를 이용하는 규격으로 나뉜다.
또한 0, 1 데이터를 변환해 어떻게 전파에 실어보내느냐에 따라 전송 속도가 바뀐다.
예전에는 무선 LAN 끼리 호환이 잘되지 않아 접속이 불가한 경우도 있었다.
Wi-Fi는 무선 LAN 기기의 상호 접속성을 인증한 브랜드이다. 현재는 상호 접속 보증 보다 무선 LAN 자체를 가리켜 Wi-Fi 라고 한다.
어소시에시션
무선 LAN 통신을 하려면, 무선 LAN 액세스 포인트에 연결해서 무선 LAN 링크를 확립해야 한다. 무선 LAN에 연결하는 것을 어소시에이션이라고 부른다.
어소시에이션은 유선 이더넷의 케이블 배선에 해당한다.
어소시에이션에는 SSID가 필요한데, SSID는 무선 LAN의 논리적인 그룹을 식별하는 식별정보이다.
미리 무선 LAN 액세스 포인트에는 최대 32문자의 문자열로 SSID를 지정해둔다.
한 대의 액세스 포인트에 복수의 SSID를 설정할 수도 있다. 또한, 복수의 액세스 포인트에 대해 같은 SSID를 설정할 수도 있다.
무선 LAN 클라이언트는 액세스 포인트가 내보내는 제어신호(비콘)에서 이용할 수 있는 전파의 주파수(채널)를 찾는다.
이용할 수 있는 채널을 발견하면 SSID를 지정해서 무선 LAN 액세스 포인트에 어소시에이션 요청을 보내고, 무선 LAN 액세스 포인트는 어소시에이션 응답으로 접속 할 수 있는지 알려준다.
암호화나 인증 등의 보안 설정은 SSID 별로 한다.
통신속도
무선 LAN 규격의 속도는 유선 이더넷과 손색이 없을 정도가 되었지만, 규격상 표시한 최대 통신 속도에 지나지 않는다.
무선 LAN은 규격에서 정한 속도대로 통신할 수 있는 경우가 거의 없다.
애플리케이션을 이용할 때 실질적인 통신 속도를 실효속도나 스루풋이라고 한다.
무선 LAN의 스루풋은 규격상 전송속도의 절반 정도이다. 스루풋이 낮아지는 이유는 전파를 돌려쓰기 때문이다. 즉, 초기 이더넷에서 하나의 전송매체를 돌려쓰는 것과 같다.
무선 LAN에서 전송 매체는 전파이다. 무선 LAN 액세스 포인트에서 설정한 특정 주파수대의 전파를 채널이라고 부른다.
무선 LAN 액세스 포인트에 복수의 클라이언트가 어소시에이션 하고 있으면, 복수의 클라이언트들이 전파를 공유해서 이용한다.
어떤 순간에 무선 LAN에서 데이터를 전파에 실어 송신할 수 있는 것은 하나의 무선 LAN 클라이언트 뿐이다.
복수의 무선 LAN 클라이언트가 동시에 데이터를 전파에 실어 보내면, 전파가 중첩되어 수신하는 쪽에서도 원래 데이터를 재구성할 수 없게 된다.
이를 무선 LAN에서 충돌이라 부른다.
그래서 어떤 타이밍에 무선 LAN 클라이언트가 데이터를 전파에 실어 송신할지 제어하는 것을 CSMA/CA 라고 한다.
CSMA/CA
CSMA/CA 도 CSMA/CD와 마찬가지로 빠른 쪽이 이기는 방식이다.
- 전파가 이용 중인지 확인
액세스 포인트에 어소시에이션 했을 때 채널을 알고 있다. 그 채널의 전파를 검출하면, 전파가 이용 중인지 알수있다. 전파가 이용중이면 대기하고, 검출되지 않았다면 일정 시간 대기한다. - 랜덤 시간 대기
전파가 이용중이 아니면, 데이터를 송신할 수 있지만, 바로 시작하지 않고 랜덤 시간 동안 대기한다. 복수의 클라이언트가 동시에 전파를 미사용으로 판단 후, 데이터를 바로 송신하면 충돌이 발생할 가능성이 있기 때문이다. 그래서 랜덤 시간 대기 후, 송신해 충돌을 회피한다. - 데이터 송신
무선 LAN 통신에서는 데이터를 수신했으면 수신 확인 응답으로 ACK를 반환한다.이런 방식으로 제어하므로, 무선 LAN 클라이언트가 데이터를 보내려고 할 때 대기 시간이 길어지고, 스루풋이 저하된다.
그 사이에 무선 LAN 클라이언트는 전파가 사용중이므로, 데이터를 보내고 싶어도 기다려야 한다.
랜덤 시간을 대기한 후 전파가 미사용이면, 데이터를 전파에 실어 송신한다.
WPA2
무선 LAN은 간편하고 편리하지만, 악의를 가진 사용자에게 편리하다.
무선 LAN 보안의 핵심은 인증과 암호화이다.
인증으로 무선 LAN 액세스 포인트에 정식 사용자만 접속할 수 있게 한다.
또한 송수신 데이터를 암호화한다.
무선 LAN의 보안을 확보하기 위해 규격이 정해져 있는데, WPA2이다.
'Back-end' 카테고리의 다른 글
2023.08.22 TIL (0) | 2023.08.22 |
---|---|
SOLID 원칙, 객체지향 프로그래밍 (0) | 2023.08.22 |
2023.08.20 TIL (0) | 2023.08.21 |
2023.08.20 TIL (0) | 2023.08.20 |
2023.08.19 TIL (0) | 2023.08.19 |