728x90
[그림으로 쉽게 이해하는 웹/HTTP/네트워크를 읽고 정리합니다.]
라우터
라우터란?
- LAN: 가정집이나 회사같은 소규모 네트워크
- WAL: LAN이 모인 네트워크
- 이전에는 LAN 안에서 통신하는 것만으로도 충분했지만, 인터넷이 발달하고 네트워크의 규모가 커지면서 흩어진 LAN을 연결하고 다른 LAN으로 데이터가 올바르게 전달될 수 있도록 돕는 '중간 장치'가 필요했다. => 라우터(router)
- 라우터는 데이터가 원하는 목적지로 원활하게 도착할 수 있도록 적절한 통신 경로를 안내하는 장치
- 공유기가 라우터의 역할을 함 (외부에서 들어오는 케이블을 연결할 수 있는 WAN 연결부에 인터넷 케이블 연결 > 라우터 기능)
- 가정용 라우터 외에도 인터넷 제공 업체에서 관리하는 라우터, 기업용 라우터 등 다양한 종류의 라우터가 있다.
라우팅 테이블
- 라우터는 가장 빠르게 데이터가 이동할 수 있는 경로를 찾아 안내한다.
- 이것이 가능한 이유는 라우팅 테이블(routing table) 덕분이다.
- 라우팅 테이블이라는 공간에 미리 다양한 경로의 정보를 저장한다.
- 라우팅 테이블은 최종 목적지의 IP 주소와 목적지에 도달하기 위해 경유해야 할 인근 라우터의 정보가 담긴 테이블이다.
- 경로를 저장하는 방법은 관리자가 직접 라우팅 테이블에 추가하거나 인근 라우터와 정보를 교환해 자동으로 경로 정보를 갱신하는 방법 등이 있다.
- 즉, 라우터는 라우팅 테이블에 경로 정보를 정리하고, 이를 기반으로 데이터를 전달하는 역할을 한다.
동작 과정
- 김네트의 집 -> 박워크의 집으로 데이터가 전달된다고 가정한다.
- 김네트의 집에서 가장 가까운 라우터로 이동
- 라우터는 데이터의 목적지를 확인
- 자신의 라우팅 테이블에서 목적지로의 경로가 있는지 확인
- 없다면 IP 주소를 보고 목적지와 유사한 주소 형태를 가진 정보 조회 (IP 구조가 비슷하면 지리적으로 가까울 것이라 판단)
- 있다면 해당 장소로 가기 위해 거칠 다음 라우터 정보를 라우팅 테이블에서 찾아 데이터를 전달
- 데이터는 다음 라우터로 이동해 설명한 과정을 반복하여 박워크의 집에 도착하게 된다.
- 라우터가 잘못되거나 일관되지 않은 정보를 갖고 있다면 데이터는 네트워크 속을 계속 헤매는 무한 루프를 맞이할 수도 있다.
- 이런 상황을 방지하기 위해 데이터마다 TTL(Time To Live)라는 유효 기간을 설정해 놓고 있다.
- TTL이란 데이터의 유효 기간을 나타내는 방법으로, 데이터가 무한히 네트워크를 순환하는 상황을 방지한다.
- 데이터의 헤더에 포함돼 0~255까지 숫자로 표기되어 있는데, 라우터를 거칠 때마다 일정량 줄어들고 0이 되면 데이터를 폐기한다.
- 0~255인 이유는 TTL가 IP 헤더의 일부로서 8비트로 표현되었기 때문이다. (2^8=256)
이더넷(ethernet)
- 같은 지역의 네트워크인 LAN을 유선으로 구현하는 기술 방식
- 신호와 케이블부터 전기 신호를 데이터로 변환하는 프로토콜까지 LAN을 구현하는 큰 흐름을 규격화한 기술
- 이더넷은 설치 비용이 적고 속도가 빨라 대부분 유선 인터넷 환경에서 사용하고 있다.
- 인터넷(여러 작은 네트워크가 연결된 거대한 네트워크) !== 이더넷(인터넷을 구성하는 작은 네트워크를 구성하는데 필요한 기술)
- 이더넷은 IEEE 802 위원회에 의해 IEEE 802.3이라는 이름으로 표준화 되어 있어서 이더넷과 해당 이름으로 혼용된다.
이더넷의 규격과 구성 요소
- 네트워크의 성능, 환경에 따라 필요한 이더넷 규격을 선택할 수 있다.
- 속도, 케이블, 신호로 이더넷을 나눌 수도 있다.
- 10Mbps, 100Mbps, 1Gbps, 10Gbps 등 (오늘날 일반 가정은 1Gbps)
- 케이블과 신호에 따라 특정 형태로 이더넷 규격을 정의할 수 있음 (뒷부분에 이어서 설명)
- 이더넷은 허브/스위치, 케이블, 네트워크 인터페이스 카드가 필요하다.
네트워크 인터페이스 카드(NIC, Network Interface Card)
- 랜 카드, 네트워크라고 불리는 NIC는 컴퓨터를 네트워크에 연결하기 위한 장치다.
- 이전에는 PC 본체에 별도로 장착된 NIC가 있었으나 요즘에는 메인보드에 LAN 포트가 통합되어 있어 간편하게 네트워크와 연결할 수 있다.
- NIC는 데이터를 전기 신호로, 전기 신호를 데이터로 변환하는 작업인 직렬화(serialization)을 수행한다.
- NIC는 고유한 식별 번호 MAC(Media Access Control) 주소를 갖고 있다.
- MAC은 네트워크를 사용하는 기기라면 모두 갖는 주소로, IP처럼 장치들을 서로 인식/식별하기 위해 사용한다.
- 고정되지 않은 IP 주소와 달리 MAC 주소는 제조회사에서 NIC를 출고할 때 정하는 물리적인 주소다.
- 운영 체제에 따라 MAC 주소에 사용되는 구분자가 조금씩 다르지만 주로 a1:b2:c3:d4:e5:f6처럼 48비트로 구성되어 있다.
- 읽기 쉽게 8비트씩 잘라 6자리로 구분해 표기한다.
- 앞의 3자리는 NIC 제조 회사의 식별값, 뒤의 3자리는 실제 고유 번호다.
- 기기 내부에서 자신에게 들어온 데이터가 맞는지 판별하는 용도로 MAC 주소를 활용한다.
- 데이터가 들어왔을 때 헤더에 적힌 도착지 MAC 주소를 확인하고, 맞으면 IP/TCP처럼 상위 레벨에서 처리할 수 있게 데이터를 전송하고, 아니라면 폐기한다.
허브와 스위치
- 효율적인 네트워크 구성을 위해 중앙에 하나의 연결 장비를 두고, 그 장비에 컴퓨터들을 연결해 서로 데이터를 주고 받는다.
- 이 때 별 구조에서 중심이 되는 연결 장비의 일종이 허브와 스위치다.
- 라우터가 네트워크-네트워크를 이어준다면, 허브와 스위치는 동일 네트워크 상에서 서로 다른 기기로 데이터를 전송할 때 사용하고 여러 장비를 연결, 케이블을 하나로 모아주는 일을 한다.
- 가정용 인터넷 공유기는 라우터와 허브의 역할을 한다!
- 라우터처럼 외부 네트워크 - 내부 네트워크로 데이터를 연결하기도 하고, 허브/스위치처럼 내부 데이터를 주고 받는 역할도 한다.
허브
- 스위치보다 먼저 만들어진 연결 장비
- 데이터를 자신에게 연결된 모든 기기에 전달한다.
- 한 포트에서 전기 신호가 들어오면 이를 허브에 연결된 전체 포트로 데이터를 전송한다. (=브로드캐스트)
- 장점: 데이터를 전송할 때 모든 기기에 보내면 되니까 허브의 부담이 덜하다.
- 단점: 한 번에 하나의 장비만 데이터를 보낼 수 있어 전체 네트워크의 성능 저하, 동시에 여러 기기에서 데이터 전송 시 충돌 발생
스위치
- 데이터가 들어올 때 해당 데이터를 요청한 기기가 '누구'인지 파악, 목적지로 정확히 전달한다. (=유니캐스트)
- HTTP, TCP 통신에서 봤던 클라이언트-서버가 하나씩 있는 형태를 유니캐스트라고 함
- 스위치가 목적지를 정확히 찾을 수 있는 이유는 자신에게 연결된 기기의 정보(MAC)를 따로 저장하고 있기 때문
- 스위치에 연결된 컴퓨터들은 고유한 포트 번호를 갖고 있다.
- 데이터 통신이 시작되면 스위치는 자신에게 들어온 데이터의 헤더를 보고 목적지의 MAC 주소, 포트 번호를 확인한다.
- 이를 MAC 주소 테이블에 저장하고 데이터를 주고받을 때 확인해서 일치하는 기기의 포트로만 데이터를 보낸다.
- 이로써 정해진 목적지로만 데이터를 보내 여러 기기가 충돌 없이 동시에 데이터를 주고 받아 효율적인 네트워크 통신이 가능해짐
케이블
- 유선 네트워크 구현 시 가장 먼저 고려해야할 요소인 케이블
- 컴퓨터와 네트워크 장비 사이에서 신호를 전달하는 장치로, 종류와 길이에 따라 다양한 환경을 구성할 수 있다.
종류
- 동축 케이블
- 가장 먼저 탄생한 케이블로 구리로 만들어짐.
- 단자를 보면 바늘처럼 뾰족한 하나의 선이 튀어 나와 있음. 내부도 하나의 구리선을 감싼 형태
- 외부에서 전기 간섭이 들어왔을 때 타격을 덜 받는 장점이 있으며 현재는 TV 안테나 선으로 더 많이 쓰인다.
- 트위스티드 페어 케이블
- 랜선으로 널리 알려진 이 선은 8개의 얇은 구리선이 2가닥씩 꼬인 형태로 잘 구부러지고, 외부/내부 간섭에 강하다.
- 가격도 저렴해 오늘날 가장 많이 사용하는 케이블
- 광케이블
- 섬유 모양의 관을 여러 가닥 묶여 만들었다.
- 유리나 플라스틱으로 만들어져 데이터를 전기 신호가 아닌 빛의 형태로 전송하는 특징이 있다.
- 따라서 다른 케이블에 비해 먼 거리를 빠르게 통신할 수 있는 장점이 있다.
이더넷 규격
- 통신 속도(Mbps) / 채널 종류 / 케이블 종류 를 나타낸다.
- 채널(통로)을 하나만 사용하는 방식을 baseband, 여러 개의 통로로 신호를 쪼개 전송하는 방식이 broadband다.
- T는 트위스티드 페어 케이블, SX와 LX는 광 케이블, 숫자는 동축 케이블(의 길이)를 의미한다.
Wi-Fi
- 통신에 반드시 케이블이 필요한 이더넷과 달리 장소에 구애받지 않고 자유롭게 인터넷을 사용할 수 있게 하는 장치 무선랜의 등장
- 무선랜(Wireless LAN, WLAN)은 전파를 이용해 컴퓨터 간 네트워크를 구축하는 방식으로, 대표적인 기술이 와이파이다.
- 와이파이 또한 신호를 전송할 때 어떤 대역의 전파를 사용하는지에 따라 2.4GHz, 5GHz로 구분할 수 있다.
- 2.4GHz: 신호 전송 시 사용하는 주파수 대역이 2.4GHz인 와이파이. 속도는 느리지만 장애물의 영향을 덜 받는다.
- 5GHz: 신호 전송 시 사용하는 주파수 대역이 5GHz인 와이파이. 속도는 빠르지만 장애물에 취약하다.
- 와이파이는 무선 랜이지만 필요한 기기들 모두 무선인 것은 아니다!
- 무선 라우터: 유선으로 들어온 데이터를 무선으로 연결된 기기에 전송하는 장치
- 무선 AP(Access Point): 기존의 무선 신호를 확장하는 데 사용하는 장치
- 와이파이는 편리하게 사용할 수 있지만 그렇기에 보안이 취약하다는 한계가 있다.
- 가장 처음 만들어진 보안 규칙 WEP(Wired Equivalent Privacy)는 치명적 보안 취약점으로 2004년에 퇴출
- 이후 출시된 WPA(Wifi Protected Access)는 암호화 방식을 강화하고 개선, WPA3까지 발표됨.
충돌 방지
- 초기 이더넷은 중앙의 인터넷 선 아래로 연결된 케이블이 붙어 있는 버스형 연결 구조로, 두 개 이상의 컴퓨터에서 동시에 데이터를 전송할 때 충돌이 발생할 위험이 있었다.
- 이런 구조에서 충돌 없이 여러 기기가 데이터에 접근할 수 있는 규칙인 CSMA/CD가 등장했다.
CSMA/CD(Carrier-Sense Multiple Access with Collision Detection)
- 이더넷에서 각 단말이 데이터 공유 매체에 접근하는 방식
- 다중 접속과 충돌을 탐지하는데 집중한다.
- 현재 전송중인 신호가 있는지 확인하는 CSMA, 충돌을 감지하고 이를 해결하는 대책 CD로 구분한다.
- 이로 데이터 충돌 문제는 크게 해소되나 스위치가 등장하면서 CSMA/CD 없이도 통신이 가능해진다.
1. 데이터를 보내기 전 네트워크 상에 전송 중인 신호가 있는지 감지한다.
2. 전송 중인 신호가 없어도 혹시 모르니 랜덤한 시간동안 기다린 후, 다시 신호를 확인해 전송한다.
3. 그럼에도 충돌이 발생하면 충돌을 감지하고, 단말은 충돌이 발생했음을 네트워크 상의 모든 컴퓨터에게 알리기 위한 신호를 보낸다.
4. 일정 시간 데이터 전송을 중지하고, 그 뒤 전송된 데이터가 없다면 자신의 데이터를 보낸다.
5. 이 때도 충돌이 발생하면 기다린 시간의 2배를 기다린다.
6. 이렇게 16번까지 기다린 뒤에도 같은 현상이 발생하면 최종 데이터 전송에 실패했다고 처리한다.
무선랜의 CSMA/CA(Carrier-Sense Multiple Access with Collision Avoidance)
- 이더넷과 달리 공기 중으로 데이터를 전송하기에 유선처럼 충돌을 감지하기 힘들다.
- 따라서 충돌을 최대한 회피하는 식으로 동작하는 CSMA/CA 방식을 사용한다.
1. 데이터를 보내기 전 네트워크 상에 전송 중인 신호가 있는지 감지한다.
2. 전송 중인 신호가 없어도 혹시 모르니 랜덤한 시간동안 기다린다.
3. 충돌을 대비해 네트워트 상태를 한 번 더 점검하는 일종의 정찰병을 보낸다.
4. 별도 확인을 위한 신호를 전송한 뒤, 신호를 잘 받았다는 답변을 받으면 실제 데이터를 보낸다.
확인 신호를 보내도 답변이 없다면 다시 확인 신호를 전달한다.
728x90
'🖥️ CS & Network & Web > 🕸️ Network' 카테고리의 다른 글
[Network] 7. HTTP 특징과 데이터 저장 방식 (0) | 2023.12.21 |
---|---|
[Network] 6. HTTP (1) | 2023.12.20 |
[Network] 5. TCP (0) | 2023.12.19 |
[Network] 4. IP (2) | 2023.12.19 |
[Network] 3. URL (0) | 2023.07.03 |