2018년 이전 관심사/통신프로토콜(16)
-
[UDS,14229-1] WriteMemoryByAddress(0x3D) 서비스
요청 메시지 addressAndLengthFormat - 상위 4bit : memorySize 매개변수의 바이트 수 - 하위 4bit : memoryAddress 매개변수의 바이트 수 예를 들어 addressAndLengthFormat이 0x44인 경우, memorySize 4byte, memoryAddress 4byte를 사용 할 수 있다. addressAndLengthFormat이 0x13인 경우, memorySize 1byte, memoryAddress 3byte를 사용 할 수 있다. 응답 메시지 WriteMemoryByAddress 사용 예 0x2048 주소에 2byte Data를 저장. 데이터 값은 0x008C UDS Server는 긍정 응답으로 0x2048, MemorySize : 2를 송신
2023.05.26 -
[XMODEM] 프로토콜 정리
XMODEM 이란? 바이너리 데이터 전송을 하기 위한 프로토콜입니다. 최초의 Xmodem 프로토콜은 최대 128bytes의 데이터만 보낼 수 있어, Ymodem, Zmodem 등의 개량판이 있었습니다. 최근 Xmodem은 모드를 선택해서 128bytes의 데이터를 사용 할지 1KBytes의 데이터를 사용할지 선택 할 수 있습니다. XMODEM 기본 Protocol Byte 시리얼 통신에서 일반적으로 사용하는 통신 제어 문자를 사용 합니다. 각 문자 별 특징은 아래와 같습니다. SOH, Start Of Header ( 0x01 ) 메시지의 시작을 의미 함 XMODEM 128 모드에서 사 STX, Start Of Text ( 0x02 ) 본문 시작, 헤더 종료 XMODEM 1K 모드에서 사용 EOT, End..
2023.01.24 -
[TCP/IP] SO_REUSEADDR 옵션
SO_REUSEADDR 옵션 커널이 소켓을 사용하는 중에도 계속해서 사용 할 수 있음 서버 프로그램이 종료된 후, 커널이 소켓의 포트를 아직 점유 하고 있는 경우 해당 포트로 TCP Server를 재 구동 할 때 유용하게 사용 됨 예) TCP Server 입장에서 FIN 패킷을 수신하고 FIN_ACK 패킷을 송신 한 후 일정 시간동안 소켓을 종료 하지 않고 커널이 해당 소켓을 점유하고 있음 이런 경우 응용 프로그램을 재 실행하면 bind 함수 호출 시, 점유 중인 포트를 연결하려는 시도 때문에 오류가 발생 함. --> 일정 시간이 지나야 연결 가능 위 문제를 해결하기 위해 SO_RESUSEADDR 옵션을 사용함. 참고자료 https://m.blog.naver.com/bringmelove1/119146643
2023.01.23 -
[UART] Parity Bit
Parity를 사용하지 않을 때, UART 패킷 아래 그림과 같이 START, STOP bit를 제외하고 8bit를 데이터로 사용 합니다. Parity Bit는 옵션 Bit None으로 설정 시 아래와 같은 패킷 구조로 송신 Scope에서 출력 된 파형 Parity를 사용할 때, UART 패킷 아래 그림과 같이 START, STOP bit를 제외하고 9bit를 송/수신 하며 PB bit는 Parity 값을 의미 합니다. Even, Odd 설정에 따라 PB 값이 정해 짐 Parity 설정 별 PB 값 Even(짝수)로 패리티 설정 시, Data Bit에 1의 갯수가 짝수면 Parity Bits 0, 홀수면 1로 설정 Odd(홀수)로 패리티 설정 시, Data Bit에 1의 갯수가 홀수면 Parity Bit..
2023.01.19 -
[IPV6] D-Link IPV6 in IPV4 Tunnel 설정, IPV6 사용하기
tunnelbroker.net을 이용한 IPv4 to IPv6 터널링 설정 방법을 설명한다. IPV4 to IPV6 터널링을 위한 tunnelbroker.net 설정 tunnelbroker.net에 접속하여, 회원 가입 후 로그인 한다. 2. Create Regular Tunnel 메뉴 선택 후, 원하는 Tunnel Server를 선택 한다. IPv4 Endpoint : 외부에서 내 공유기에 접속 할 수 있는 공인 IP를 입력 한다. 3. IPV4 to IPV6 터널링을 위한 Tunnel 정보를 생성한다. 해당 정보를 사용하는 공유기 설정에 입력해야 한다. D-LINK 공유기(DIR-868L) 설정 1. Settings-Internet-IPv6 메뉴로 이동 한다. 2. 아래 그림과 같이 tunnelbro..
2022.04.05 -
[RabbitMQ] 다른 메시지 큐 간 차이 (MQTT, ZeroMQ, Kafka)
RabbitMQ AMQP 프로토콜을 구현해 놓은 프로그램 신뢰성, 안정성과 성능을 충족할 수 있도록 다양한 기능 제공 유연한 라우팅: Message Queue가 도착하기 전에 라우팅 되며 플러그인을 통해 더 복잡한 라우팅도 가능 클러스터링: 로컬 네트워크에 있는 여려 RabbitMQ 서버를 논리적으로 클러스터링 할 수 있고 논리적인 브로커도 가능 함. 오픈 소스로 상업적 지원이 가능 Kafka 대용량 실시간 로그 처리에 특화되어 설계된 메시징 시스템 기좀 범용 메시징 시스템 대비 TPS(Transaction Per Second)가 매우 우수함 특화된 시스템이기 때문에 범용 메시징 시스템에서 제공하는 다양한 기능들은 제공 되지 않음 AMQP 프로토콜이나 JMS API를 사용하지 않고 단순한 메시지 헤더를 ..
2022.02.24