null
vuild_
Nodes
Flows
Hubs
Login
MENU
GO
Notifications
Login
⌂
임베디드 개발자를 위한 네트워크 기초 — IP 주소부터 PHY 레지스터까지
Structure
ip-addressing
•
공인 IP, 사설 IP, 그리고 NAT가 존재하는 이유
•
고정 IP vs 유동 IP — DHCP의 동작 원리
•
네트워크 클래스 — IP 주소를 나누는 논리
•
서브넷 마스크와 게이트웨이 — 네트워크를 쪼개는 방법
•
CIDR 표기법 — /24가 의미하는 것
•
DNS — 이름을 IP로, IP를 이름으로
mac-transmission
•
MAC 주소와 OUI — 하드웨어 식별의 기초
•
유니캐스트, 멀티캐스트, 브로드캐스트 — 전송 방식의 선택
•
멀티캐스트 MAC 주소 — IP에서 MAC으로의 변환 원리
•
VLAN — 하나의 스위치에서 여러 네트워크 분리하기
port-and-layer
•
포트(Port) — 하나의 IP에서 수천 개의 통신 채널을 분리하는 법
•
PDU — 프레임, 패킷, 세그먼트의 차이
•
OSI 7계층 vs TCP/IP 모델 — 두 모델이 공존하는 이유
physical-layer
•
NIC와 PHY — 임베디드 이더넷 하드웨어 구조
•
MDC/MDIO — PHY 레지스터를 제어하는 2-Wire 인터페이스
•
NLP, FLP, Auto-negotiation — PHY가 링크를 협상하는 방법
•
Extended Register — Clause 22의 32개 제한을 넘는 법
•
"Docker 기초 — 컨테이너의 모든 것"
•
Store-and-Forward vs Cut-through
wireshark-debug
•
Wireshark에서 IP Checksum이 0인 이유
•
"Docker Compose — 멀티 컨테이너 오케스트레이션"
•
FCS/CRC와 Wireshark의 4바이트 미스터리
•
"TypeScript 기초 — JavaScript에 타입을 더하다"
•
임베디드 이더넷 디버깅 — Wireshark 실전 사용법
Flow Structure
CIDR 표기법 — /24가 의미하는 것
6 / 24
MAC 주소와 OUI — 하드웨어 식별의 기초
☆ Star
↗ Full
DNS — 이름을 IP로, IP를 이름으로
#network
#dns
#domain
#ip
#resolver
@devpc
|
2026-05-04 01:59:38
|
GET /api/v1/flows/23/nodes/406?fv=2&nv=1
Context:
Flow v2
→
Node v1
0
Views
1
Calls
# DNS — 이름을 IP로, IP를 이름으로 ## DNS가 없으면 어떻게 될까 `www.naver.com` 대신 `223.130.200.107` 을 외워야 한다. 브라우저 주소창에 IP를 직접 입력해야 하고, 서비스 서버 IP가 바뀌는 순간 아무도 접속할 수 없게 된다. **DNS(Domain Name System)** 는 도메인 이름을 IP 주소로 변환(Forward DNS)하거나, 반대로 IP에서 도메인 이름을 조회(Reverse DNS)하는 분산 데이터베이스다. --- ## DNS 서버 설정이 필요한 이유 컴퓨터가 `naver.com`을 IP로 바꾸려면 **어딘가에 물어봐야 한다.** 그 어딘가가 DNS 서버다. 통신사(ISP)가 자동으로 DHCP를 통해 DNS 서버 주소를 넘겨준다. 수동으로 IP를 설정할 때 DNS 서버 주소를 직접 입력해야 하는 이유가 여기 있다. ### 주요 공개 DNS 서버 | 운영주체 | 기본 DNS | 보조 DNS | |---------|---------|---------| | KT | 168.126.63.1 | 168.126.63.2 | | SK브로드밴드 | 210.220.163.82 | 219.250.36.130 | | **Google** | **8.8.8.8** | **8.8.4.4** | | Cloudflare | 1.1.1.1 | 1.0.0.1 | --- ## DNS 조회 흐름 ``` 브라우저: "naver.com의 IP가 뭐야?" ↓ 1. 로컬 캐시 확인 (있으면 즉시 반환) ↓ 2. OS의 hosts 파일 확인 (C:\Windows\System32\drivers\etc\hosts) ↓ 3. 설정된 DNS 서버에 쿼리 (예: 8.8.8.8) ↓ 4. DNS 서버가 재귀적으로 조회 (Root → TLD → Authoritative) ↓ 5. 결과 반환 + 캐시 저장 (TTL 시간 동안 유지) ``` --- ## 사설(Private) DNS 기업 환경에서는 자체 DNS 서버를 운영하기도 한다. **이유:** - 사내 그룹웨어(`intranet.company.local`)가 공개 DNS에 등록될 필요가 없다 - 특정 도메인을 차단하거나 내부 서버로 리다이렉트할 수 있다 - 응답 속도 최적화 임베디드 환경에서는 OTA 서버, 라이선스 서버, NTP 서버를 IP 대신 도메인으로 설정할 때 DNS가 작동해야 한다. ```c // lwIP DNS 사용 예 ip_addr_t resolved; err_t err = dns_gethostbyname("ntp.example.com", &resolved, dns_callback, NULL); // 콜백 내에서 resolved.addr로 소켓 연결 ``` --- ## 임베디드 환경에서의 DNS 주의점 1. **DNS 서버 미설정 시 도메인 기반 연결 전부 실패** — IP 직접 사용 또는 DNS 설정 필수 2. **DNS 캐시 TTL** — 서버 IP가 바뀌어도 TTL 만료 전까지 구 IP로 연결을 시도한다 3. **DNS 없이 동작해야 하는 환경** — 오프라인 차량 네트워크(AUTOSAR)에서는 IP를 직접 하드코딩하거나 사내 DNS를 구성한다 --- ## 정리 DNS는 네트워크 스택의 응용 계층(L7)에 속하지만, 그 어떤 TCP/UDP 연결보다 먼저 선행된다. DNS 응답이 늦거나 실패하면 연결 자체가 시작되지 않는다. 네트워크 디버깅 시 핑(ping)이 IP로는 되는데 도메인으로는 안 된다면, 가장 먼저 DNS 설정을 확인해야 한다.
CIDR 표기법 — /24가 의미하는 것
MAC 주소와 OUI — 하드웨어 식별의 기초
// COMMENTS
Newest First
ON THIS PAGE
No content selected.