본문 바로가기
컴퓨터 네트워크 정리

컴퓨터 네트워크 - 자율주행 관련

by recoraddic 2024. 11. 23.

응용 계층

  1. 클라이언트-서버 모델과 소켓 통신의 동작 원리.
  2. 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의 주요 역할

  1. 도메인 이름을 IP 주소로 변환
    • 컴퓨터는 숫자(IP 주소)를 통해 통신하지만, 사람은 도메인 이름을 기억하는 것이 더 쉽습니다.
    • DNS는 사람이 입력한 도메인 이름을 컴퓨터가 이해할 수 있는 IP 주소로 변환합니다.
      • 예: www.google.com → 142.250.190.78
  2. 분산 네트워크의 효율적인 관리
    • DNS는 분산 시스템으로 구성되어 있어, 전 세계적으로 분산된 서버를 통해 네트워크를 효율적으로 관리합니다.
    • 즉 단일 서버가 모든 도메인 이름과 IP 주소를 관리하지 않고, 여러 서버가 나뉘어 책임을 분산해서 관리
  3. 도메인 관리
    • DNS는 도메인 소유자와 도메인의 IP 주소를 등록하고 관리합니다.
  4. 부하 분산
    • DNS는 동일한 도메인 이름에 대해 여러 IP 주소를 매핑하여 트래픽을 여러 서버로 분산시킬 수 있습니다.
    • 즉 같은 도메인 이름에 여러 네트워크가 연결되 있는거지

 

2. DNS의 동작 원리

(1) 사용자 요청

  • 사용자가 브라우저에서 도메인 이름을 입력합니다.
    • 예: www.example.com

(2) DNS 서버에 요청 전송

  1. 브라우저 캐시 확인: 브라우저는 최근에 방문한 사이트의 IP 주소를 캐시에서 확인합니다.
  2. 운영체제 캐시 확인: 브라우저 캐시에 없으면 운영체제의 DNS 캐시를 확인합니다.
  3. DNS 서버로 요청: 운영체제에도 없으면 **DNS 리졸버(Resolver)**를 통해 DNS 서버에 요청합니다.

이거 정리하면 이거지 우선 IP주소를 캐시에서 확인한다 -> 없으면 운영체제의 캐시 확인 -> 없으면 그때 서버에 요청

(3) 계층적 DNS 서버 조회

DNS 서버는 계층적으로 구성되어 요청을 처리합니다:

  1. 루트 DNS 서버:
    • 도메인의 최상위 레벨(TLD, 예: .com)에 대한 정보를 제공.
  2. TLD DNS 서버:
    • 해당 TLD의 네임서버(예: example.com) 위치를 알려줌.
  3. 권한 있는 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):
      • 차량 간 실시간 데이터 전송(교통 신호, 도로 상황).
    • 스트리밍: 차량 내부 디스플레이에 실시간 비디오 전송.

  1. TCP의 혼잡 제어(슬라이딩 윈도우, 혼잡 회피).

네트워크 계층

  1. IP 주소의 역할과 서브넷 개념.

1. IP 주소의 역할

(1) 기기 식별

  • 네트워크에 연결된 각 장치는 고유한 IP 주소를 가집니다.
  • 예: 192.168.1.10은 네트워크 상에서 특정 컴퓨터를 식별합니다.

조금더 정확하게 말하자면 

IP 주소는 네트워크 단위로 할당됩니다.

  • 공인 IP: 네트워크를 전 세계적으로 식별.
  • 사설 IP: 네트워크 내부에서 장치를 식별.

(2) 데이터 전송

  • 데이터를 보낼 때 송신자와 수신자의 주소로 사용됩니다.
    • 송신자 IP 주소: 데이터를 보낸 장치의 주소.
    • 수신자 IP 주소: 데이터를 받을 장치의 주소.
  • IP 패킷은 송신자와 수신자의 IP 주소 정보를 포함하여 데이터를 전달합니다.

(3) 네트워크 계층의 핵심 역할

  • 라우터는 IP 주소를 기반으로 데이터를 적절한 경로로 전달합니다.
  • IP 주소는 인터넷에서 라우팅에 사용됩니다:
    • 데이터를 최적의 경로로 수신자에게 전달.

2. 서브넷 개념

서브넷이란?

  • 서브넷은 하나의 큰 네트워크를 작은 네트워크로 나누는 방식입니다.
  • 네트워크를 나누어 효율적으로 관리하고, 트래픽을 분산시키며 보안을 강화할 수 있습니다.

2.1 서브넷의 목적

  1. 효율적인 주소 관리
    • IP 주소를 네트워크와 호스트로 구분하여 주소 낭비를 줄임.
    • 예: 대규모 네트워크를 작은 네트워크로 나누어 관리.
  2. 네트워크 성능 향상
    • 트래픽이 한 네트워크에 집중되지 않도록, 서브넷으로 나누어 트래픽을 분산.
  3. 보안 강화
    • 네트워크를 나누어 내부와 외부 네트워크를 분리하거나, 부서별로 네트워크를 격리 가능.
  4. 독립성 유지
    • 네트워크 간 문제 발생 시 다른 서브넷에 영향을 주지 않음.

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 서브넷의 분할

서브넷 마스크를 통해 네트워크를 작은 서브넷으로 나눌 수 있습니다.

  1. 기본 네트워크
    • IP 주소: 192.168.1.0
    • 서브넷 마스크: 255.255.255.0 (256개의 호스트 지원).
  2. 서브넷으로 분할
    • 서브넷 마스크를 변경하여 네트워크를 나눔.
    • 예: 서브넷 마스크 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)

  1. 내부 장치(사설 IP)가 인터넷으로 데이터를 보냄.
  2. NAT를 사용하는 라우터가 패킷의 출발지 IP 주소공인 IP로 변환.
  3. 변환된 패킷이 인터넷으로 전송.

(2) 수신 데이터 처리 (공인 IP → 사설 IP)

  1. 인터넷에서 패킷이 라우터의 공인 IP로 도착.
  2. 라우터는 내부 NAT 테이블을 참고해 이 패킷의 목적지를 사설 IP로 변환.
  3. 변환된 패킷이 내부 네트워크의 장치로 전달.

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를 활용해 다음을 수행합니다:
    1. 사설 IP를 공인 IP로 변환하여 인터넷과 통신 가능하게 함.
    2. 외부로부터의 접근 차단으로 보안을 강화.
    3. 데이터 송수신 관리로 네트워크 효율을 높임.

(3) 사용 사례

  1. OTA(Over-The-Air) 업데이트
    • 차량 내부 ECU가 인터넷을 통해 소프트웨어를 업데이트.
    • NAT를 사용하여 차량 내부의 여러 장치가 하나의 공인 IP를 통해 업데이트 서버와 통신.
  2. 실시간 지도 업데이트
    • 차량 내 네비게이션 시스템이 클라우드에서 실시간 지도 데이터를 다운로드.
    • NAT를 사용해 네비게이션 데이터 요청을 처리.
  3. V2X 통신
    • 차량이 다른 차량(V2V) 또는 인프라(V2I)와 통신할 때, NAT를 통해 데이터를 관리.
    • NAT는 외부 네트워크와 내부 ECU 간 데이터 흐름을 조정.

링크 계층

  1. 이더넷의 기본 동작 원리.
  2. 데이터 전송 시 스위칭의 역할.

 

 

그외에 ...

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