[ 물리적 주소(Physical Address) - MAC 주소 ]
네트워크 장비의 고유한 주소로 MAC(Media Access Control) 주소라고 불림
컴퓨터의 네트워크 카드에 할당되며 48비트 길이의 16진수로 표현됨
컴퓨터와 네트워크 장비들이 통신할 때 데이터를 보내고 받는데 사용됨
네트워크 상에서 고유한 값이기 때문에 충돌을 방지하고 효율적인 데이터 전송을 가능하게 함
MAC 주소는 고유한 값으로 같은 네트워크 상에서 두 개 이상의 장치가 동일한 MAC 주소를 가지는 경우 충돌 발생
전 세계적으로 고유한 값이어야 하며 이를 보장하기 위해 IEEE(Institute of Electrical and Electronics Engineers)에서 MAC 주소 할당 규칙을 정해두고 있음
MAC 주소는 컴퓨터와 네트워크 장비들이 통신할 때 데이터를 보내고 받는데 사용
물리적인 연결 상에서만 유효하며 다른 네트워크로 데이터를 전송할 때는 IP 주소와 같은 논리적 주소 사용
네트워크 데이터를 전송할때 송신자의 MAC 주소와 수신자와 MAC 주소가 필요함
데이터는 송신자의 MAC 주소를 패킷 헤더에 적히고 수신자의 MAC 주소로 패킷을 전송
수신자는 자신의 MAC 주소와 일치하는 패킷만 수신하여 처리하고 그 외의 패킷은 무시함
[ 논리적 주소(Logical Address) - IP주소 ]
네트워크에서 논리적 주소는 IP(Internet Protocol) 주소와 같은 주소 체계를 의미
다른 네트워크에 속해있는 컴퓨터의 IP 주소를 안다면 목적지까지 데이터를 보낼 수 있는 것
LAN(ex. r공유기)에서의 통신은 MAC 주소로 판별하여 통신하고 멀리 떨어진 지역의 네트워크는 IP로 판별하는것
논리적 주소는 데이터를 보내고 받는 데 사용되며 컴퓨터와 네트워크 장비들이 네트워크 상에서 서로를 식별하는데 사용
전 세계적으로 고유한 값이어야 함으로 전세계 인터넷 주소를 관리하는 인터넷할당번호기관(IANA, Internet Assigned Numbers Autority)에서 통합 관리하고 있음
▶ IP 주소 체계
현재 IP 프로토콜에서는 IPv4(Internet Protocol version 4) 주소 체계를 사용하고 있음
하지만 IP 주소를 사용하는 기기가 폭발적으로 증가하면서 더 많은 수의 IP 주소를 할당할수 있는 IPv6가 사용되기 시작했고 향후 모든 IP 주소는 IPv6가 대체될 것이라고 보고 있음
하지만 현재 보통 IP 주소라 하면 IPv4를 의미함(IPv4 - 32비트 길이의 주소 체계, IPv6 - 128비트 길이의 주소 체계)
IPv4
32비트 길이의 주소 체계. 0.0.0.0부터 255.255.255.255.255까지의 주소가 사용됨
IP 헤더 정보에는 출발지 IP 주소와 목적지 IP 주소가 들어가 있음
이진수로 표기된 IP 주소는 사람이 알아보기 어렵기 때문에 전체 32비트를 8비트씩 4그룹으로 나누어 각 그룹을 십진수로 변환하고 그룹의 경계에 '.'을 넣는 형식(Dotted-decimal notation)으로 표기하고 있음
IPv4 주소는 8 * 4 = 32비트로 사용되고 있는데 IP 주소는 네트워크 주소와 호스트 주소로 나뉘게 됨
- 네트워크 주소: 호스트들을 모은 네트워크를 지칭하는 주소(호스트의 집합)
- 호스트 주소: 하나의 네트워크 내에 존재하는 호스트를 구분하기 위한 주소
IP 주소 체계는 필요한 호스트 IP의 갯수에 따라 네트워크의 크기를 다르게 할당할 수 있는 클래스(Class)개념 도입
클래스는 하나의 IP주소에서 네트워크 영역과 호스트 영역을 나누는 방법임
클래스 기반의 IP 주소를 클래스풀(Classful)이라고 부르는데 IP 주소 체계를 처음 만들었을 당시에는 최적의 선택이었지만 현재 인터넷이 사용화 되고 인터넷에 연결되는 호스트 수가 폭발적으로 증가하여 기존의 클래스풀 기반의 주소 체계는 증가하는 IP 주소 요구를 감당하기에는 턱없이 부족하게 됨(IP 주소를 낭비하는 문제)
이러한 문제를 해결하기 위해 클래스리스(Classless), CIDR(Classless Inter-Domain Routing) 기반의 주소 체계가 생겨나게 됨
CIDR(Classless Inter-Domain Routing)은 클래스 없이도 IP 주소를 할당할 수 있는 방법
기존의 클래스풀 방식의 경우 선택지가 한정적이기에 낭비되는 주소체계가 많이 존재했지만 CIDR의 경우 네트워크 부분과 호스트 부분을 1비트 단위까지 구분이 가능하여 호스트 주소를 보다 더 유연하게 할당 할 수 있음
하지만 CIDR 방식을 사용하면 어디까지가 네트워크이고 어디까지가 호스트인지 구분할수 없기에 서브넷 마스크(Subnet Mask)를 사용하여 네트워크 주소와 호스트 주소를 구분함
서브넷 마스크
서브넷 마스크에서 1이 연속한 부분이 네트워크 주소이며 나머지 0이 있는 자리를 호스트 주소로 구분
서브넷 마스크는 반드시 1이 연속되어 있어야 하며 만약 1과 0이 섞여 있다면 네트워크 주소 부분과 호스트 주소 부분을 구분할 수 없음
CIDR 표기법
서브넷 마스크는 연속된 1의 자릿수를 통해 네트워크 부분을 파악할 수 있기 때문에 1의 갯수가 몇개인지 파악할 수 있다면 네트워크 부분을 보다 쉽게 파악할수 있음. 이것을 이용한것이 바로 CIDR 표기법
[ DHCP ]
DHCP(Dynamic Host Configuration Protocol)는 인터넷 IP, 서브넷마스크, 기본 게이트 웨이 등의 설정들을 자동적으로 제공해주는 UDP 기반 비연결형 서비스 프로토콜
통신을 하기위해서는 IP를 사용해야하는데 이 IP를 사용자가 직접 매번 설정하기에는 너무 번거롭고 불편하기 때문에 IP 주소와 각종 TCP/IP 프로토콜의 기본 설정들을 자동으로 제공받아 사용하게 되는데 그러려면 DHCP를 어디선가 받아와서 사용해야함. 그렇기에 DHCP는 중앙집중식으로 관리되는 서버/클라이언트 모델을 사용하게 됨
▶ DHCP 구성
DHCP Server
클라이언트로부터 IP 할당 요청이 들어오면 IP를 부여하고 할당 가능한 IP들을 관리
ISP에서는 중앙집중형 관리 정책을 사용하고 가입자에 대해 인증기능, IP할당을 처리하는 큰 규모의 DHCP 서버를 운영
공유기에도 DHCP 서버가 탑재되어 있으므로 각각의 PC에 사설 IP를 할당하기도 함
DHCP Client
DHCP 서버에 자신의 시스템을 위한 IP 주소를 요청하고 DHCP 서버로부터 IP 주소를 부여받으면 TCP/IP 설정이 초기화되고 다른 호스트와 TCP/IP를 사용해 통신할 수 있게 됨
클라이언트에 해당하는 장비는 PC, 스마트폰, 등 최종 단말 장치로 모두 DHCP 클라이언트가 탑재되어 있음
▶ DHCP 동작과정
임대
IP 할당은 임대됨
즉 IP를 할당받았다고 영구히 사용하는 것이 아니라 그 주소를 사용하는 기간을 정하고 기간이 끝나면 반환
유동인구가 많은 카페등에서는 짧고 가정이나 기업 등에서는 긴 임대기간을 가지게 됨
임대할 경우의 과정
브로드캐스팅: 송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식을 의미
- DHCP Discover
- 클라이언트는 MAC 주소를 기반으로 네트워크에 DHCP 서버를 찾는 Discover 패킷을 브로드캐스팅
- 클라이언트 → 네트워크 전체
- DHCP Offer
- DHCP 서버가 Discover 패킷을 받게되면 서버는 할당할 IP 주소 정보를 포함한 정보를 포함한 Offer 패킷을 브로드캐스팅
- 서버 → 클라이언트
- DHCP Request
- 클라이언트는 Offer를 받았으면 DHCP 서버의 존재유무를 깨닫고 Requst 패킷을 통해 하나의 DHCP 서버를 선택하며 사용할 네트워크 정보를 요청하며 브로드캐스팅
- 클라이언트 → 서버
- DHCP Ack
- 서버는 Request를 받으면 할당 가능한 IP를 풀에서 찾고, 네트워크 정보를 할당하는 Ack를 브로드캐스팅
- 이 패킷을 클라이언트가 받으면, IP주소가 할당
- 서버 → 클라이언트
DORA라고 부르는 이 과정은 DHCP 서버가 여러대일 경우를 대비해 설계되었기 때문에 모든 패킷이 브로드캐스팅됨
그러므로 이 임대 기간을 사용성에 맞게 잘 설정해 주어야 네트워크에 지장없이 사용이 가능하게 됨
갱신(Renewal)
임대기간이 끝나면 IP 주소를 반환하는데 네트워크를 계속 사용해야한다면 또 요청하고 할당받기까지 불필요한 브로드캐스팅 패킷이 발생하므로 네트워크에 부담이 될 수 있음
그렇기 때문에 임대 기간이 50% 지났을때와 87.5%의 시간이 지났을때 IP를 사용하고 있다면 서버에 갱신을 요청하고 갱신이 성공하면 연장됨
갱신은 Requset, Ack 두 개의 과정을 거침. 갱신은 Unicast로 주고받게 됨
반환(Release)
임대기간이 끝났거나 IP주소를 더 사용하지 않는다면 IP 주소를 DHCP 주소풀에 반환
명령 프롬프트에서 ipconfig /release 명령으로 반환, ipconfig /renew 명령으로 임대 생성과 갱신을 할 수 있음
▶ DHCP Relay Agent
DHCP 동작과정은 브로드캐스팅으로 이루어지는데 브로드캐스팅은 네트워크를 넘어서 전달되지는 못함
일반적인 가정에서는 공유기에 DHCP 서버가 있으니 요청이 다른 네트워크로 넘어갈 일이 없지만 기업에서는 DHCP 서버가 라우터 너머(다른 네트워크)에 있는 경우가 종종 있음
이런 경우 라우터에서 DHCP Relay Agent를 설정해 DHCP 요청을 라우터에서 유니캐스트로 변환하여 패킷을 전송하고 서버는 다시 라우터에게 유니캐스트하고 라우터는 브로드캐스트하여 할당
[ NAT ]
NAT(Network Address Translation)는 IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고받는 기술. IPv4의 주소 부족으로 도입됨
NAT은 하나의 공인 IP를 여러 개의 사설 IP로 변환함
이로인해 사설망(Local Network)이 하나의 IP 주소로 여러 대의 기기를 연결해 사용할 수 있으며 외부망의 공지하지 않고 내부망의 기기들의 주소를 변경할 수 있음 또한 내부망의 주소가 외부에 노출되지 않아 보안성에 유리함
▶ NAT 동작과정
- PC1이 외부망 PC에 데이터를 전송하려고 시도
- 내부망에서는 해당 패킷의 source IP와 내부망의 IP와 포트로 기록되어있음
- NAT을 거치면서 해당 source IP와 포트는 공인 IP 주소로 변경됨
- 원래 source IP와 포트, 변환된 source IP와 포트를 NAT 변환 테이블에 기록
- 추후 외부망 PC로부터 응답
- 해당 외부망 PC는 목적지 IP와 Port를 NAT이 변환한 주소를 기준으로 설정
- NAT는 해당 응답을 받고 테이블을 참조해 해당 패킷의 목적지와 IP와 Port를 PC1 주소로 변경
- 요청을 보냈던 PC1이 응답을 받음
▶ NAT의 종류
정적 NAT(Static NAT)
이 NAT는 로컬 주소가 공용 주소로 변환될때 항상 동일한 주소로 변환
해당 라우터 혹은 NAT 장치와 연결된 일관된 공용 IP 주소가 존재. 즉 1:1 매핑으로 변환하는 가장 간단한 NAT 유형
동적 NAT(Dynamic NAT)
일관되게 하나의 공용 IP 주소만을 선택하는 것 대신 다양한 공용 IP 주소를 선택
즉, 로컬 주소에서 공용 주소로 변환할 때 다양한 주소를 선택
PAT(Port Address Translation)
PAT은 동적 NAT의 종류 중 하나로 여러 로컬 IP주소를 단일 공용 IP 주소로 변환
이때 로컬 IP주소를 포트번호를 부여하여 구분하는 방식을 PAT이라고 함
[ HTTPS ]
HTTPS(하이퍼텍스트 전송 프로토콜 보안)은 웹 브라우저와 웹 사이트 간에 데이터를 전송하는 데 사용되는 기본 프로토콜인 HTTP의 보안 버전. HTTPS는 데이터 전송의 보안을 강화하기 위해 암호화됨
이는 사용자가 은행 계좌, 이메일 서비스, 의료 보험 공급자에 로그인하는 등 중요한 데이터를 전송할 때 특히 중요함
모든 웹 사이트, 특히 로그인 자격 증명이 필요한 웹 사이트는 HTTPS를 사용해야 함
크롬 등 최신 웹 브라우저에서는 HTTPS를 사용하지 않는 웹 사이트가 HTTPS를 사용하는 웹 사이트와 다르게 표시됨
Google Chrome 및 기타 브라우저에서는 HTTPS가 아닌 모든 웹 사이트는 안전하지 않은 것으로 표시됨
HTTP가 80포트는 사용하는 것과 다르게 HTTPS는 포트 443을 사용
▶ HTTPS 작동
HTTPS는 암호화 프로토콜을 사용하여 통신을 암호화함
이 프로토콜은 이전에는 보안 소켓 계층(SSL)으로 알려졌지만 전송 계층 보안(TLS)이라고 불림
이 프로토콜은 비대칭 공개 키 인프라로 알려진 것을 사용하여 통신을 보호함
이 유형의 보안 시스템에서는 두 개의 서로 다른 키를 사용하여 두 당사자 간의 통신을 암호화함
- 개인 키
- 웹 사이트 소유자가 관리하며 독자께서 짐작할 수 있듯이 비공개로 유지됨
- 웹 서버에 있으며 공개 키로 암호화된 정보를 해독하는 데 사용됨
- 공개 키
- 안전한 방식으로 서버와 상호 작용하고자 하는 모든 사람이 사용할 수 있음
- 공개 키로 암호화된 정보는 개인 키로만 해독할 수 있음
▶ HTTPS를 하는 이유
HTTPS는 웹 사이트에서 네트워크를 스누핑하는 사람이 쉽게 볼 수 있는 방식으로 정보를 브로드캐스트하는 것을 방지
일반 HTTP를 통해 정보를 전송할 때 정보는 무료 소프트웨어를 사용하여 쉽게 스니핑할 수 있는 데이터 패킷으로 나뉨
따라서 공용 Wi-Fi와 같이 안전하지 않은 매체를 통한 통신은 도청에 매우 취약함
실제로 HTTP를 통해 발생하는 모든 통신은 일반 텍스트로 이루어지므로 올바른 도구만 있으면 누구나 쉽게 접근할 수 있으며 경로상 공격에 취약함
HTTPS를 사용하면 트래픽이 암호화되므로 패킷을 스니핑하거나 가로챈다고 해도 무의미한 문자로만 인식됨
- 스누핑: 네트워크 상에서 떠도는 정보를 몰래 획득하는 행위
- 스니핑: 네트워크 상에서 자신이 아닌 다른 상대방들의 패킷 교환을 엿듣는 것을 의미
HTTPS를 사용하지 않는 웹 사이트에서는 인터넷 서비스 공급자(ISP) 또는 기타 중개자가 웹 사이트 소유자의 승인 없이 웹 페이지에 콘텐츠를 삽입할 수 있음
이는 일반적으로 광고의 형태로 이루어지며 수익을 늘리고자 하는 ISP가 고객의 웹 페이지에 유료 광고를 삽입
당연히 이러한 경우 광고 수익과 광고의 품질 관리는 웹 사이트 소유자와 공유되지 않음
HTTPS에서는 조정을 거치지 않은 제3자가 웹 콘텐츠에 광고를 삽입하는 기능이 제거됨
▶HTTPS와 HTTP 차이
엄밀히 말하면 HTTPS는 HTTP와 별개의 프로토콜이 아님
HTTPS는 단순히 HTTP 프로토콜을 통해 TLS/SSL 암호화를 사용하는 것
HTTPS는 특정 공급자가 주장하는 실체가 맞는지 확인하는 TLS/SSL 인증서의 전송을 기반으로 이루어짐
▶ HTTPS 동작
사용자가 웹 페이지에 연결하면 웹 페이지에서 보안 세션을 시작하는 데 필요한 공개키가 포함된 SSL 인증서를 전송
그런 다음 두 컴퓨터, 클라이언트와 서버가 보안 연결을 설정하는 데 사용되는 일련의 주고받는 통신인 SSL/TLS 핸드셰이크라는 프로세스를 거침
'CS' 카테고리의 다른 글
데이터베이스 인덱스 (0) | 2023.11.16 |
---|---|
데이터베이스 종류 (0) | 2023.11.16 |
토폴로지와 네트워크 분류 (0) | 2023.11.13 |
TCP/UDP (1) | 2023.11.11 |
TCP/IP (0) | 2023.11.11 |
댓글