응용 계층
- 클라이언트-서버 모델과 소켓 통신의 동작 원리.
- HTTP 및 FTP의 기본 원리와 사용 사례.
3. 클라이언트-서버 통신 모델
클라이언트-서버 통신 모델
- 구조:
- 클라이언트: 요청을 보내는 쪽(예: 브라우저, 차량).
- 서버: 요청을 처리하고 응답을 반환하는 쪽(예: 클라우드 서버).
- 작동 원리:
- 클라이언트는 특정 URL을 통해 서버에 HTTP 요청 전송.
- 서버는 요청을 처리하고 데이터를 HTTP 응답으로 반환.
- 예:
- 클라이언트: "날씨 정보를 주세요!" (GET 요청).
- 서버: "여기 있습니다: 온도 25°C" (200 OK 응답).
REST API
- REST란
- 클라이언트와 서버 간에 자원을 주고받기 위한 아키텍처 스타일
- REST의 특징:
- 자원을 URL로 표현.
- HTTP 메서드로 동작 지정:
- GET:서버로부터 데이터 요청.
- POST: 서버에 데이터 생성.
- PUT: 서버에 있는 데이터 수정.
- DELETE: 서버에 있는 데이터 삭제.
- 사용 사례 (자율주행 SW):
- 차량이 클라우드에서 실시간 교통 정보를 가져옴(GET).
- 주행 데이터를 클라우드 서버에 업로드(POST).
- 차량 소프트웨어를 원격으로 업데이트(POST/PUT).
4. DNS의 역할과 IP 주소 변환
DNS는 도메인 이름(예: www.example.com)을 IP 주소(예: 192.168.1.1)로 변환하는 인터넷 전화번호부 역할을 합니다.
사용자가 기억하기 쉬운 도메인 이름으로 웹사이트에 접속할 수 있도록 돕습니다.
1. DNS의 주요 역할
- 도메인 이름을 IP 주소로 변환
- 컴퓨터는 숫자(IP 주소)를 통해 통신하지만, 사람은 도메인 이름을 기억하는 것이 더 쉽습니다.
- DNS는 사람이 입력한 도메인 이름을 컴퓨터가 이해할 수 있는 IP 주소로 변환합니다.
- 예: www.google.com → 142.250.190.78
- 분산 네트워크의 효율적인 관리
- DNS는 분산 시스템으로 구성되어 있어, 전 세계적으로 분산된 서버를 통해 네트워크를 효율적으로 관리합니다.
- 즉 단일 서버가 모든 도메인 이름과 IP 주소를 관리하지 않고, 여러 서버가 나뉘어 책임을 분산해서 관리
- 도메인 관리
- DNS는 도메인 소유자와 도메인의 IP 주소를 등록하고 관리합니다.
- 부하 분산
- DNS는 동일한 도메인 이름에 대해 여러 IP 주소를 매핑하여 트래픽을 여러 서버로 분산시킬 수 있습니다.
- 즉 같은 도메인 이름에 여러 네트워크가 연결되 있는거지
2. DNS의 동작 원리
(1) 사용자 요청
- 사용자가 브라우저에서 도메인 이름을 입력합니다.
- 예: www.example.com
(2) DNS 서버에 요청 전송
- 브라우저 캐시 확인: 브라우저는 최근에 방문한 사이트의 IP 주소를 캐시에서 확인합니다.
- 운영체제 캐시 확인: 브라우저 캐시에 없으면 운영체제의 DNS 캐시를 확인합니다.
- DNS 서버로 요청: 운영체제에도 없으면 **DNS 리졸버(Resolver)**를 통해 DNS 서버에 요청합니다.
이거 정리하면 이거지 우선 IP주소를 캐시에서 확인한다 -> 없으면 운영체제의 캐시 확인 -> 없으면 그때 서버에 요청
(3) 계층적 DNS 서버 조회
DNS 서버는 계층적으로 구성되어 요청을 처리합니다:
- 루트 DNS 서버:
- 도메인의 최상위 레벨(TLD, 예: .com)에 대한 정보를 제공.
- TLD DNS 서버:
- 해당 TLD의 네임서버(예: example.com) 위치를 알려줌.
- 권한 있는 DNS 서버(Authoritative DNS):
- 요청한 도메인의 IP 주소를 반환.
(4) IP 주소 반환
- IP 주소를 찾으면 클라이언트에게 반환하고, 사용자는 해당 IP 주소로 서버에 접속합니다.
전송 계층
<<TCP/UDP 차이와 자율주행 SW에서의 사용 사례>>
TCP/UDP 차이
TCP
특징:
- 신뢰성: 데이터 손실이 발생하면 재전송 요청.
- 순서 보장: 데이터 패킷이 순서대로 도착.
- 연결 기반: 통신 전, 3-Way Handshake를 통해 연결 설정.
- 속도가 느리지만 안정적임.
사용 사례 (자율주행 SW):
- 소프트웨어 업데이트(OTA): 차량 소프트웨어를 안정적으로 업데이트.
- 원격 진단: 차량 데이터를 클라우드로 전송해 정밀한 분석.
- 파일 전송: 대용량 데이터를 신뢰성 있게 전송.
UDP
- 특징:
- 비연결성: 연결 설정 없이 데이터 전송.
- 빠름: 오류 검사를 하지 않아 전송 속도가 빠름.
- 데이터 손실, 순서 보장은 없음.
- 사용 사례 (자율주행 SW):
- 실시간 센서 데이터 전송:
- LiDAR, 카메라, IMU 데이터를 빠르게 처리.
- V2X 통신(Vehicle-to-Everything):
- 차량 간 실시간 데이터 전송(교통 신호, 도로 상황).
- 스트리밍: 차량 내부 디스플레이에 실시간 비디오 전송.
- 실시간 센서 데이터 전송:
- TCP의 혼잡 제어(슬라이딩 윈도우, 혼잡 회피).
네트워크 계층
- IP 주소의 역할과 서브넷 개념.
1. IP 주소의 역할
(1) 기기 식별
- 네트워크에 연결된 각 장치는 고유한 IP 주소를 가집니다.
- 예: 192.168.1.10은 네트워크 상에서 특정 컴퓨터를 식별합니다.
조금더 정확하게 말하자면
IP 주소는 네트워크 단위로 할당됩니다.
- 공인 IP: 네트워크를 전 세계적으로 식별.
- 사설 IP: 네트워크 내부에서 장치를 식별.
(2) 데이터 전송
- 데이터를 보낼 때 송신자와 수신자의 주소로 사용됩니다.
- 송신자 IP 주소: 데이터를 보낸 장치의 주소.
- 수신자 IP 주소: 데이터를 받을 장치의 주소.
- IP 패킷은 송신자와 수신자의 IP 주소 정보를 포함하여 데이터를 전달합니다.
(3) 네트워크 계층의 핵심 역할
- 라우터는 IP 주소를 기반으로 데이터를 적절한 경로로 전달합니다.
- IP 주소는 인터넷에서 라우팅에 사용됩니다:
- 데이터를 최적의 경로로 수신자에게 전달.
2. 서브넷 개념
서브넷이란?
- 서브넷은 하나의 큰 네트워크를 작은 네트워크로 나누는 방식입니다.
- 네트워크를 나누어 효율적으로 관리하고, 트래픽을 분산시키며 보안을 강화할 수 있습니다.
2.1 서브넷의 목적
- 효율적인 주소 관리
- IP 주소를 네트워크와 호스트로 구분하여 주소 낭비를 줄임.
- 예: 대규모 네트워크를 작은 네트워크로 나누어 관리.
- 네트워크 성능 향상
- 트래픽이 한 네트워크에 집중되지 않도록, 서브넷으로 나누어 트래픽을 분산.
- 보안 강화
- 네트워크를 나누어 내부와 외부 네트워크를 분리하거나, 부서별로 네트워크를 격리 가능.
- 독립성 유지
- 네트워크 간 문제 발생 시 다른 서브넷에 영향을 주지 않음.
2.2 서브넷 마스크
**서브넷 마스크(Subnet Mask)**는 IP 주소를 네트워크 부분과 호스트 부분으로 나누는 데 사용됩니다.
- 네트워크 부분: 네트워크를 식별.
- 호스트 부분: 네트워크 내의 장치를 식별.
예: IP 주소와 서브넷 마스크
- IP 주소: 192.168.1.10
- 서브넷 마스크: 255.255.255.0
- 255는 네트워크 부분(고정된 부분).
- 0은 호스트 부분(변경 가능한 부분).
결과
- 네트워크 주소: 192.168.1.0 (같은 네트워크에 속하는 모든 기기).
- 호스트 주소: 192.168.1.1 ~ 192.168.1.254 (네트워크 내 기기 식별).
2.3 서브넷의 분할
서브넷 마스크를 통해 네트워크를 작은 서브넷으로 나눌 수 있습니다.
- 기본 네트워크
- IP 주소: 192.168.1.0
- 서브넷 마스크: 255.255.255.0 (256개의 호스트 지원).
- 서브넷으로 분할
- 서브넷 마스크를 변경하여 네트워크를 나눔.
- 예: 서브넷 마스크 255.255.255.128 → 2개의 서브넷 생성.
- 서브넷 1: 192.168.1.0 ~ 192.168.1.127
- 서브넷 2: 192.168.1.128 ~ 192.168.1.255
<<NAT의 작동 원리와 차량 내부 네트워크에서의 사용>>
NAT(Network Address Translation)**는 네트워크 장치(주로 라우터)가 사설 IP 주소를 공인 IP 주소로 변환하거나 그 반대로 변환하는 기술입니다.
이 기술은 네트워크 내부에서 다수의 장치가 하나의 공인 IP 주소를 공유하며 인터넷에 접속할 수 있도록 해줍니다.
NAT의 작동 원리
(1) 송신 데이터 처리 (사설 IP → 공인 IP)
- 내부 장치(사설 IP)가 인터넷으로 데이터를 보냄.
- NAT를 사용하는 라우터가 패킷의 출발지 IP 주소를 공인 IP로 변환.
- 변환된 패킷이 인터넷으로 전송.
(2) 수신 데이터 처리 (공인 IP → 사설 IP)
- 인터넷에서 패킷이 라우터의 공인 IP로 도착.
- 라우터는 내부 NAT 테이블을 참고해 이 패킷의 목적지를 사설 IP로 변환.
- 변환된 패킷이 내부 네트워크의 장치로 전달.
3. NAT 테이블
- NAT는 매핑 테이블을 사용해 사설 IP 주소와 포트를 공인 IP 주소와 포트에 연결합니다.
- 테이블 예:사설 IP:포트공인 IP:포트
192.168.1.100:1234 203.0.113.1:5678 192.168.1.101:2345 203.0.113.1:6789 - 이 테이블을 기반으로, NAT는 송신 패킷과 수신 패킷을 올바르게 변환하고 라우팅합니다.
4. NAT의 유형
(1) Static NAT
- 사설 IP와 공인 IP가 1:1로 고정 매핑.
- 사용 예: 내부 서버를 외부에서 접근 가능하게 설정.
(2) Dynamic NAT
- 공인 IP 풀(pool)에서 사설 IP를 임의로 매핑.
- 공인 IP의 수가 충분할 때 사용.
(3) PAT(Port Address Translation)
- 가장 일반적인 NAT 유형으로, 다수의 사설 IP가 하나의 공인 IP를 공유.
- 포트 번호를 사용해 패킷을 구분.
- 예: 가정용 라우터.
5. 차량 내부 네트워크에서 NAT의 사용
(1) 차량 내부 네트워크와 사설 IP
- 차량 내부에는 여러 ECU(Electronic Control Units), 센서, 액추에이터가 사설 IP를 사용하여 통신합니다.
- 예: LiDAR, 카메라, ABS 시스템 등.
(2) 차량의 NAT 사용 목적
- 차량 내부 네트워크는 외부 네트워크(인터넷)와의 연결 시 NAT를 활용해 다음을 수행합니다:
- 사설 IP를 공인 IP로 변환하여 인터넷과 통신 가능하게 함.
- 외부로부터의 접근 차단으로 보안을 강화.
- 데이터 송수신 관리로 네트워크 효율을 높임.
(3) 사용 사례
- OTA(Over-The-Air) 업데이트
- 차량 내부 ECU가 인터넷을 통해 소프트웨어를 업데이트.
- NAT를 사용하여 차량 내부의 여러 장치가 하나의 공인 IP를 통해 업데이트 서버와 통신.
- 실시간 지도 업데이트
- 차량 내 네비게이션 시스템이 클라우드에서 실시간 지도 데이터를 다운로드.
- NAT를 사용해 네비게이션 데이터 요청을 처리.
- V2X 통신
- 차량이 다른 차량(V2V) 또는 인프라(V2I)와 통신할 때, NAT를 통해 데이터를 관리.
- NAT는 외부 네트워크와 내부 ECU 간 데이터 흐름을 조정.
링크 계층
- 이더넷의 기본 동작 원리.
- 데이터 전송 시 스위칭의 역할.
그외에 ...
CAN 프로토콜의 기본 개념
CAN (Controller Area Network) 프로토콜
CAN 프로토콜의 특징
- 멀티마스터(Multi-Master) 방식
- 네트워크에 여러 ECU가 연결되어도, 누구나 데이터 전송 가능.
- 버스(bus) 형태로 구성된 네트워크.
- 우선순위 기반 통신
- 각 메시지에 **우선순위(ID)**가 설정됩니다.
- 충돌 발생 시, 우선순위가 높은 메시지가 전송됩니다.
- 높은 신뢰성과 오류 검출
- CRC(Cyclic Redundancy Check) 등 오류 검출 메커니즘 내장.
- 데이터 전송 중 문제가 발생하면 자동 재전송.
- 효율적인 데이터 전송
- 짧은 데이터 프레임(최대 8바이트)을 사용하여 실시간 데이터 전송에 적합.
- 실시간 통신
- 저지연으로 ECU 간 데이터 교환.
- 브레이크, 에어백, 스티어링 등 시간 민감한 작업에 적합.
- 역할:
- 차량 내부 전자제어장치(ECU) 간 데이터 교환.
- 센서, 액추에이터, 차량 제어 시스템 간 통신.
- 특징:
- 비트 기반 통신: 데이터를 0과 1의 프레임으로 전송.
- 우선순위 제어: 데이터 충돌 시 우선순위 높은 메시지가 먼저 처리.
- 실시간성 보장: 짧은 데이터 패킷으로 빠른 응답.
- 속도는 낮지만, 오류 검출 및 안정성이 뛰어남.
- CAN 메시지 구조:
- Identifier: 메시지 우선순위.
- Data Field: 실제 데이터(0~8바이트).
- CRC: 오류 검출을 위한 코드.
- 사용 사례 (자율주행 SW):
- ABS 시스템: 브레이크 상태와 속도 데이터 전송.
- 파워 스티어링: 차량 조향 상태 전송.
- 에어백 시스템: 충돌 감지 및 배치 신호 전송.
'컴퓨터 네트워크 정리' 카테고리의 다른 글
TCP/IP 5계층 - 응용계층 (0) | 2024.11.23 |
---|---|
컴퓨터 네트워크 정리 (1) | 2024.11.23 |