4 G DTU, 직렬 서버 등 사물 인터넷 전송 모듈의 하트비트 패키지, 등록 패키지 설명

freeFree Technical Resource

This content is free to read, suitable for basic learning and search traffic.

4 G DTU, 직렬 서버 등 사물 인터넷 전송 모듈의 하트비트 패키지, 등록 패키지 설명

출 처 : Mod bus 중국 어 네트워크 (mod bus . cn) - 국내 선 도 적 인 Mod bus 통신 프로토 콜 기술 커뮤니티

이 게시 물 : IoT 전송 모듈 의 하 트 비 트 패키 지 및 등록 패키 지 : 메 커 니 즘 , 설계 및 문제 해결 · 작성 자 : mod bus 기술 팀 · 게시 20 26 - 07 - 01

요 약 : 4 G D TU , 직 렬 서버 , 에 지 게 이트 웨 이 및 기타 IoT 전송 모듈 에서 하 트 비 트 패키 지 및 등록 패키 지는 연결 안정 성과 장치 식별 을 유지하는 핵심 메 커 니 즘 입니다 .이 문서 에서는 TCP Keep Ali ve , M Q TT Keep Ali ve , 애플 리케이션 계 층 사용자 정의 하 트 비 트 세 가지 수준 에서 하 트 비 트 메 커 니 즘 을 설명 합니다 ; D TU 등록 패키 지에서 클 라우 드 플랫폼 장치 인증 및 등록 메 커 니 즘 에 이르 기까지 매 개 변 수 계산 공식 , 코드 예 제 및 문제 해결 단계 가 있습니다 .키 워 드 : 심장 박 동 패키 지 , 등록 패키 지 , 4 G D TU , Keep Ali ve , M Q TT 심장 박 동 , TCP 유지 , 장치 등록 .


SIM 카드 에 4 G D TU 를 꽂 고 직 렬 포 트 매 개 변 수를 갖추 고 서버 에 연결 하십시오 - 데이터가 연결되어 있습니다 . 당신은 완료 했다고 생각합니다 .다음날 밤 이 지나 서 장비 가 오 프 라인 이었 지만 신호 등 이 켜 져 있었다 는 것을 발견했습니다 .다시 시작 하면 되 죠 .며칠 후에 다시 오 프 라인 입니다 .

이것은 긴 연결 을 유지하는 전형 적인 문제 입니다 . IoT 시 나 리오 에서 장 치는 전 국에 분 포 되어 있으며 일부는 외 딴 산 악 지역에 있으며 일부는 지 하실 에 있습니다 .통신 링크 는 장치 의 직 렬 포 트 에서 시작 하여 D TU 의 4 G 모듈 을 통과 하여 운영 자의 N AT 게 이트 웨 이를 통과 하여 공 용 네트워크를 통해 클 라우 드 서버 에 도달 합니다 .이 링크 의 모든 링크 는 연결 을 죽일 수 있지만 통 지 하지 않습니다 .

이 기 사는 심장 박 동 패키 지와 등록 패키 지를 원칙 에서 실제 전투 에 이르 기까지 모두 설명 합니다 - 개념 뿐만 아니라 프로젝트 에서 직접 사용할 수있는 매 개 변 수 , 코드 및 장애 해결 방법을 제공합니다 .


왜 긴 연결 이 끊 어 지는 가

심장 박 동 에 대해 이야기 하기 전에 , 긴 연결 이 어떻게 끊 어 지는 지 알아 보십시오 - 다른 이유로 다른 생존 전략 에 대응 합니다 .

运营商 NAT タイムアウト4 G D TU 는 모바일 네트워크 의 전 용 IP (1 0. x . x . x / 100. x . x . x) 를 사용하여 운영 자의 N AT 게 이트 웨 이를 통해 공 용 네트워크 에 액세스 합니다 . N AT 게 이트 웨 이는 리 소 스를 절약 하기 위해 유 휴 연결 에 대한 시간 초 과 시간을 설정 합니다 .국내 3 대 사업 자의 전형 적인 값 :

  • 中国移動:5 分

다른 지역 및 패키 지 카드 의 N AT 시간 초 과 시간은 동일 하지 않지만 기본적으로 2 - 5 분 입니다 .이 시간이 지나 면 패 킷 이 통과 하지 않으면 N AT 게 이트 웨 이의 매 핑 레 코 드가 지 워 집니다 .서버 가 D TU 에 패키 지를 보내 려고 할 때 N AT 게 이트 웨 이는 더 이상 패키 지를 인식 하지 못하고 직접 버 립니다 - 장 치는 여전히 온라인 (4 G 연결 은 정상) 으로 보이 지만 데이터 채널 은 이미 죽 었습니다 .

ファイアウォール / 中间デバイス엔 터 프 라이 즈 네트워크 의 출 구 방 화 벽 은 일반적으로 유 휴 TCP 연결 을 정리 합니다 .산업 용 컴퓨터 는 WiFi 를 통해 엔 터 프 라이 즈 인 트 라 넷 에 액세스 하고 클 라우 드 서버 와 Mod bus TCP 연결 을 유지 합니다 . 30 분 동안 통신 이 없다면 , 중 간에 있는 확신 / Huawei 방 화 벽 은 이 연결 상태를 만 료 로 표시 하고 해 제 합니다 .서버 는 장치 가 여전히 연결되어 있다고 생각 하며 , 장치 가 서버 가 여전히 연결되어 있다고 생각 하며 , 이는 " 연 결 이 죽은 것 " 입니다 .

デバイス異常掉线현 장 장치 의 전 원 공급 이 중단 되고 , 4 G 신호 가 손실 되고 , 스위 치가 재 부 팅 됩니다 . 이러한 경우 TCP 연결 의 상대 방 은 FIN 패 킷 을 수신 하지 않습니다 . 4 층 이 신호 를 끊 지 않으면 응용 계 층 은 감지 할 수 없습니다 .심장 박 동 검 출 에 의존 하지 않으면 서버 는 항상 장치 가 온라인 이라고 생각하고 스케 줄 링 작업 은 평소 와 같이 발 송 되며 모두 시간 초 과 됩니다 .

TCP 半开连接TCP 연결 의 한 쪽 끝 은 종료 되었으며 (서 버 가 재 부 팅 된 경우 와 같이) 다른 쪽 끝 은 알지 못하고 유지 - 살아 있습니다 .이것은 표준 " 반 개방 연결 " 시 나 리오 입니다 .


TCP Keep Ali ve , M Q TT Keep Ali ve , 애플 리케이션 레이 어 하 트 비 트

다양한 장면 과 세 분 화에 해당 하는 세 가지 레벨 이 있습니다 .

2. 1 TCP 프로토 콜 계 층 의 Keep Ali ve - 최 하 위 , 가장 유 연 하지 않은 계 층

TCP 프로토 콜 스 택 에는 Keep Ali ve 메 커 니 즘 이 포함되어 있습니다 .연결 이 설정 된 후 지정 된 시간 내에 데이터 전송 이 없으면 운영 체 제 커 널 은 자동 으로 프로 브 패 킷 (빈 AC K) 을 상대 엔 드에 보내 상대 엔 드가 응답 하기를 기다 립니다 .상대 방 은 아직 살아 있다면 AC K 를 반환 하고 , 죽은 경우 여러 번 무 결 한 탐 지 후 연결 을 닫 습니다 .

리 눅 스 커 널 의 세 가지 주요 매 개 변 수 :

net . ip v 4. t c p _ keep pali ve _ time = 7 200    # 처음 탐 지 전 의 유 휴 시간 (초), 기본 값 은 2 시간 입니다 .
net . ip v 4. t c p _ keep pali ve _ int v l = 75     # 프로 브 간 격 (초), 기본 값 은 75 초
net . ip v 4. t c p _ keep _ prob es = 9     # 프로 브 횟 수 , 기본 값 9 개

즉 , 기본적으로 TCP 연결 이 2 시간 11 분 15 초 (7 200 + 75 x 9) 동안 끊 어 지면 운영 체 제가 응용 프로그램 계 층 에 " 이 연결 이 죽 었습니다 " 라고 알 립니다 .이 시간은 사 물 인터넷 시 나 리오 에 전혀 작동 하지 않습니다 - 장치 가 오 프 라인 이라는 것을 발견 하면 배터 리가 두 번 교체 됩니다 .

코드 에서 단일 소 켓 에 대해 더 짧은 매 개 변 수를 설정 할 수 있습니다 (Linux ≥ 2. 6. 37 지원):

소 켓 가져 오 기

so ck = so cket . so cket (so cket . AF _ IN ET , so cket . SO CK _ ST RE AM)
so ck . set so ck opt (so cket . SOL _ SO CK ET , so cket . SO _ KE EP AL IVE , 1)
# 다음 세 개의 매 개 변 수는 Linux 2. 6. 37 + 와 IP P RO TO _ TCP 소 켓 이 필요합니다 .
so ck . set so ck opt (so cket . IP P RO TO _ TCP , so cket . TCP _ KE EP ID LE , 60)    # 60 초 유 휴 후에 탐 지 시작
so ck . set so ck opt (so cket . IP P RO TO _ TCP , so cket . TCP _ KE EP IN TV L , 10)   # 10 초 마다 탐 지
so cket . set so ck opt (so cket . IP P RO TO _ TCP , so cket . TCP _ K EE PC NT , 3)      # 3 무 응 답 판단 해 제

이렇게 구성 하면 연결 끊 기 검색 시간 = 60 + 10 × 3 = 90 초 .

但 TCP KeepAlive 有2つ致命缺陷

첫째 , 엔 드 투 엔 드 TCP 연결 이 생존 하는지 여 부 만 감지 할 수 있으며 엔 드 투 엔 드 사이의 중간 장치 (N AT 게 이트 웨 이 , 방 화 벽) 가 연결 을 정리 했는지 여 부를 감지 할 수 없습니다 .프로 브 패 킷 은 두 엔 드 포 인트 의 TCP 스 택 사이에서 만 흐 르고 N AT 게 이트 웨 이를 통과 할 때 N AT 매 핑 항목 을 새로 고 치지 않을 수 있습니다 . 즉 , TCP 계 층 은 연결 이 정상 이라고 생각 하지만 N AT 는 채널 을 닫 습니다 .

둘째 , 2 시간의 기본 값 은 너무 길 고 , 매 개 변 수를 변경 하면 현재 소 켓 에만 적용 되며 , 기 계를 변경 하면 기본 구성 으로 돌아 갑니다 .또한 매 개 변 수를 수정 하려면 루 트 권한 이 필요 하며 임 베 디 드 장치 (D TU , 직 렬 서버) 의 커 널 은 동 적 수 정을 지원 하지 않을 수 있습니다 .

따라서 TCP Keep Ali ve 는 IoT 시 나 리오 에서 보조 수단 으로 만 작동 하며 응용 프로그램 계 층 의 심장 박 동을 대체 할 수 없습니다 .

2. 2 M Q TT 프로토 콜 의 Keep Ali ve - 표준 화된 애플 리케이션 계 층 유지

M Q TT 프로토 콜 은 CON N ECT 메시 지에 16 비트 의 Keep Ali ve 필 드를 정의 하며 , 단 위는 초 입니다 .이 메 커 니 즘 은 TCP Keep Ali ve 보다 애플 리케이션 계 층 요구 사항 에 더 가깝 습니다 .

  • 클 라이언 트는 Keep Ali ve 기간 동안 적어도 하나의 제어 메시지 (PU BL ISH , SU BS CR IB E , P ING RE Q 등) 를 전송 해야 합니다 .
  • 브 로 커 가 1. 5 x Keep Ali ve 시간 내에 클 라이언 트 로부터 어떤 패 킷 도 수신 하지 않으면 클 라이언 트가 연결 이 끊 어진 것으로 간주 되고 TCP 연결 이 닫 히 고 마지막 유 언 메시지를 실행 합니다 .
  • 마찬가지로 , 클 라이언 트가 Keep Ali ve 시간 동안 Br oker 로부터 패 킷 을 받지 않으면 사전 재 연 결 해야합니다 .

M Q TT 5. 0 은 브 로 커 가 CON NA CK 메시 지에서 서버 의 Keep Ali ve 값을 반환 할 수 있도록 한 단계 더 나아 갑니다 - 브 로 커 가 클 라이언 트가 제안 한 Keep Ali ve 를 수 락 하지 않으면 자체 값 으로 덮 어 쓸 수 있으며 클 라이언 트는 브 로 커 가 반환 한 값을 준수 해야합니다 .

关键数值選択너무 커 서 장 치는 브 로 커 가 발견 하기 전에 오랫동안 오 프 라인 이었습니다 ; 너무 작 아서 심 박 패 킷 이 SIM 카드 트 래 픽 을 자주 소비 했습니다 .실제 프로젝트 에서 M Q TT 의 Keep Ali ve 는 일반적으로 60 - 120 초 사이 로 설정 됩니다 .장치 가 배터 리 전 원 (NB - IoT 시 나 리오) 인 경우 300 - 600 초 로 완 화 할 수 있습니다 .

和 TCP KeepAlive 違いはありませんN AT 게 이트 웨 이는 TCP 패 킷 이 통과 되는 것을 보고 매 핑 항목 을 새로 고 칩니다 .그렇기 때문에 M Q TT 의 Keep Ali ve 는 N AT 시간 초 과 문제를 해결 하지만 TCP Keep Ali ve 는 반드시 해결 하지 않습니다 .

2. 3 애플 리케이션 계 층 사용자 정의 심장 박 동 - 가장 유 연 하고 설계 가 가장 필요합니다 .

장치 가 M Q TT 를 사용하지 않고 누 드 TCP / U DP 트 랜 스 포 트 (Mod bus TCP , 사용자 정의 바이 너 리 프로토 콜 등) 를 사용하는 경우 자체 응용 프로그램 계 층 하 트 비 트를 설계 해야합니다 .이것은 4 G D TU 및 직 렬 서버 에서 가장 일반적인 하 트 비 트 패키 지 개념 입니다 .

设计原则

  1. 심장 박 동 가방 은 가능한 한 작 아야 합니다 . 흐름 은 돈 이다 . 最简ハートビートパック可以是一バイト単位。--比如
  2. 심장 박 동 간 격 은 N AT 시간 초 과 시간 보다 작 아야 합니다 . 국내 사업 자의 N AT 시간 초 과는 2 분 이 가장 짧 기 때문에 심장 박 동 간 격 은 일반적으로 60 초 이하 로 설정 됩니다 .보수 적 인 권장 사항 30 - 60 초 .
  3. 서버 가 하 트 비 트에 응답 해야 합니다 . 단 방 향 심장 박 동 은 서버 가 장치 가 살아 있는지 알 수 있지만 장치 가 살아 있는지 여 부를 알 수 없습니다 .양 방 향 하 트 비 트 (장 비 전송 , 서버 반환) 는 양 쪽 끝 에서 상대 방 의 상태를 감지 할 수 있습니다 .
  4. 연속 N 번의 심 박 이 실패 한 후 재 연 결 을 트 리 거 합니다 . 한 번의 심장 박 동 이 끊 어 지지 않습니다 - 가끔 패 킷 손실 은 네트워크 수준 에서 정상 적입니다 .일반적으로 3 번의 연속 심 박 이 응답 하지 않은 후에 재 연 결 프로세 스를 트 리 거 하도록 설정 합니다 .

AIRIOT プラットフォーム的心跳サンプル장 치는 " A " 를 수신 하는지 여 부를 통해 연결 이 정상 인지 여 부를 판단 합니다 - 이 설계 는 간단 하고 효율 적이며 4 G D TU 에서 구현 비용이 매우 낮 습니다 .

心跳間隔的計算公式

심장 박 동 간 격 N AT 시간 초 과 시간 × 안전 계 수<
안전 계 수 = 0. 6 ~ 0. 8

운영 자 N AT 시간 초 과 가 5 분 (3 00 초) 인 경우 안전 계 수 0. 6 을 가져 와 심장 박 동 간 격 ≤ 180 초 .그리고 가끔 의 네트워크 흔들 림을 고려 하면 실제 프로젝트 에서 60 ~ 90 초 를 설정 하는 것이 더 안정 적입니다 .


TCP Keep Ali ve vs App lication L ayer Heart be at : 언제 어느 것을 사용 합니까 ?

이 질문에 대한 표준 대답은 없으며 시 나 리오 에 따라 다릅니다 .

维度TCP KeepAliveアプリケーション層心跳

建议的组合策略TCP Keep Ali ve 매 개 변 수는 약간 짧 게 (60 초 유 휴 + 10 초 간 격 + 3 개의 탐 지) 설정 하고 응용 프로그램 계 층 의 심장 박 동 은 30 - 60 초 로 설정 됩니다 .애플 리케이션 레이 어 심장 박 동 이 버 그 때문에 보내 지 않 더라도 TCP Keep Ali ve 는 또한 90 초 후에 연결 이 끊 어 지는 것을 발견 합니다 .

장치 가 U DP 를 사용 해야 하는 경우 (예를 들어 일부 D TU 의 등록 모 드), TCP Keep Ali ve 는 응용 프로그램 계 층 하 트 비 트 만 사용할 수 있습니다 .


등록 패키 지 : 서버 가 " 내가 누구인지 " 알 수 있도록 하십시오 .

심장 박 동 은 " 나는 아직 살아 있다 " 라는 질문을 해결 하고 등록 패키 지는 " 나는 누구 인가 " 라는 질문을 해결 합니다 .

4. 1 등록 패키 지의 본질

D TU 및 직 렬 서버 에서 등록 패 킷 은 TCP 연결 을 설정 한 후 장치 가 서버 에 자신의 신 원을 선언 하는 데 사용하는 첫 번째 패 킷 입니다 .서버 는 등록 된 패키 지의 내용 에 따라 현재 TCP 연결 을 사전 등록 된 장치 레 코 드와 연관 시킵니다 .

일반적인 D TU 등록 프로세 스 :

  1. DTU 上电、拨号、附着 4G 网络

4. 2 등록 패키 지의 두 가지 전송 시 점

일부 D TU 는 등록 패키 지 전송 의 두 가지 방법을 지원 합니다 .

连接时送信一次그 후 정상적인 데이터 전달 은 더 이상 등록 정보를 포함 하지 않습니다 .이것은 서버 가 연결 별 로 장치 ID 를 관리 하는 시 나 리오 에 적용 됩니다 - TCP 연결 은 하나의 장치 에 해당 하며 연결 이 설정 되면 ID 가 결정 됩니다 .

每包データ前附加여러 장치 가 동일한 직 렬 서버 또는 게 이트 웨 이를 통해 액세스 하는 시 나 리오 에 적합 합니다 - 서버 는 각 데이터 패 킷 의 등록 정보를 통해 데이터 소 스 장치를 판단 해야합니다 .단 점은 패 킷 당 데이터 의 오 버 헤 드가 증가 한다는 것입니다 .

예를 들어 , 등록 패키 지를 사용하여 구성 하는 방법을 사용하여 사용자 D TU 를 사용합니다 .

  • 勾选「有効パッケージの登録」

4. 3 등록 패키 지의 데이터 콘텐츠 설계

등록 패키 지의 내용은 백 엔 드 아 키 텍 처 에 따라 다릅니다 .일반적인 관 행 :

使用 IMEI 作为デバイス唯一标识IM EI (국 제 모바일 장치 식별 코드) 는 전 세계적으로 고유 한 15 자리 숫자 이며 4 G 모듈 에서 변경 할 수 없습니다 . D TU 가 시작 될 때 모듈 의 IM EI 를 읽고 서버 에 등록 패 킷 으로 전송 합니다 .장 점은 자연 적으로 고유 하고 인 위 적 할 당 이 필요하지 않습니다 ; 단 점은 IM EI 길이 15 바 이트 이며 , 트 래 픽 을 극 적으로 절약 해야 하는 경우 플랫폼 측 에서 미리 할 당 된 짧은 ID (2 - 4 바 이트) 를 고려 할 수 있습니다 .

使用プラットフォーム预分配的序列号클 라우 드 플랫폼 에 장치를 등록 할 때 플랫폼 은 고유 한 일련 번호 (자 동 증가 ID 또는 UU ID 의 짧은 해 시 일 수 있음) 를 생성 합니다 .구성 도구를 통해 D TU 에 기록 하여 D TU 가 연결 될 때 이 일련 번호 를 전송 합니다 .장 점은 일련 번호 를 제어 할 수 있으며 (예를 들어 , 지역 별 인 코 딩) 길 이가 짧 다는 것입니다 ; 단 점은 구성 배 포 프로세 스가 필요 하다는 것입니다 .

使用 ICCIDSIM 카드 의 ICC ID 는 또한 고유 한 20 자리 숫자 입니다 .그러나 일반적으로 권장 되지 않습니다 - SIM 카 드가 교체 될 수 있기 때문에 장치 가 카드를 교체 함으로써 " 다른 장치 " 가 되어 서는 안됩니다 .

4. 4 클 라우 드 플랫폼 의 장치 등록 과 D TU 등록 패키 지의 관계

Huawei Cloud IoT DA 또는 Alibaba Cloud IoT 와 같은 표준 IoT 플랫폼 에서는 장치 등록 은 독립 적 인 프로세 스 입니다 .

  1. 先在プラットフォーム上作成产品(定义デバイス的データ模型)

이 프로세 스에서 D TU 의 " 등 록 패키 지 " 는 실제로 해당 플랫폼 의 장치 인증 정보 입니다 .예를 들어 , A IR IO T 플랫폼 은 장치 가 TCP 연결 을 설정 한 후 처음으로 일련 번호 를 전송 하도록 요구 하며 , 이는 본질 적으로 장치 인증 프로토 콜 의 단순 화된 버전 입니다 .

もし你的后端サーバーは、自己开发的핵심 요구 사항 은 두 가지 입니다 : 장치 의 고유 한 ID 및 서버 가 신 원을 확인할 수 있습니다 .최소 화 - IM EI 등록 + 고정 키 H M AC 서 명을 가진 4 G D TU 는 대부분의 비 금융 수준의 보안 요구 사항을 충족 하기에 충분 합니다 .


V . 완전한 매 개 변 수 추천 및 실 전 구성

5. 1 심장 박 동 매 개 변 수 권장 값

시 나 리오 심장 박 동 간 격 심장 박 동 시간 초 과 (연 속 실패) 설명 4 G D TU 전송 (TC P) 30 - 60 초 3 회 (90 - 180 초) N AT 시간 초 과 , 트 래 픽 을 고려 4 G D TU 전송 (U DP) 15 - 30 초 5 회 (75 - 150 초) U DP 연결 없음 , 심장 박 동 이 더 자주 M Q TT (Wi Fi / 이 더 넷) 60 - 120 초 1. 5 × Keep Ali ve M Q TT 프로토 콜 규 격 준수 NB - IoT / 배터 리 전 원 300 -
600 초 2 회 (6 00 - 1200 초) 전 력 절약 우선 , 더 긴 오 프 라인 검색 시간을 허용 로 컬 영역 네트워크 Mod bus TCP 게 이트 웨 이 120 - 300 초 3 회 유 선 네트워크 안정 성 , 완 화 할 수 있습니다 WiFi 직 렬 서버 30 - 60 초 3 회 WiFi 가 유 선 보다 더 높은 확률

5. 2 Linux 서버 측 TCP Keep Ali ve 매 개 변 수 권장 사항

net . ip v 4. t c p _ kee pali ve _ time = 120
net . ip v 4. t c p _ keep pali ve _ int v l = 10
net . ip v 4. t c p _ keep pali ve _ prob es = 3

然后 적용 층 심장 박 동 (예 : 60 초 간 격) 을 더 하면 두 층 의 보 활 이 서로 밑 바 닥 을 덮 습니다 .

5. 3 D TU 실제 구성 예

다음은 일반적인 4 G D TU 구성 시 나 리오 입니다 (유 인 US R - G 7 80 의 예).

하 트 비 트 패키 지 : 활성화
심 박 주 기 : 60 초
하 트 비 트 내용 : Q (사 용 자 정의 문자 열)

등록 패키 지 : 사용
등록 패키 지 보내 기 방법 : 연결 시 한 번 보내 기
등록 패키 지 내용 : IM EI (장 치 IM EI 를 고유 식별 자로 사용)

연결 유형 : TCP Client
서버 주소 : your - server . com
서버 포 트 : 800 1
연결 끊 기 재 연 결 : 10 초 간 격 으로 최대 30 회 재 연 결

서버 측 대응 논 리 :

  1. 收到 TCP 接続リクエスト → 接受连接

6. 심장 박 동 과 등록 의 일반적인 구 덩 이

6. 1 N AT 시간 초 과 및 심장 박 동 주 기 불 일 치

가장 일반적인 문제 : 심장 박 동 주 기는 5 분 으로 설정 되어 있으며 운영 자 N AT 시간 초 과는 2 분 입니다 .그 결과 , 모든 심장 박 동 간 격 , N AT 는 이미 끊 어 지고 , 심장 박 동 패 킷 은 보내 질 수 없으며 , 장 치는 영원히 " 연 결 → 2 분 후에 끊 기 → 심장 박 동 시간 초 과 재 연 결 → 연결 → 2 분 후에 끊 기 " 의 무한 루 프 에 있습니다 .

진단 방법 : 서버 측 에서 동일한 장치 의 연결 설정 시간 및 해 제 시간을 보고 해 제 시간 - 설정 시간이 거의 항상 고정 값 (예 : 120 초) 인 경우 기본적으로 N AT 시간 초 과 문제 입니다 .

解決:心跳周期

6. 2 연결 이 설정 된 후 즉시 등록 패키 지가 전송 되지 않았습니다 .

D TU 가 TCP 연결 을 설정 하면 등록 패 킷 이 아닌 트 랜 스 포 스 데이터를 먼저 전송 하면 서버 는 데이터가 어떤 장치 에서 왔 는지 확인할 수 없습니다 - 특히 여러 장치 가 서버 포 트를 공유 하는 경우 등록 패 킷 이 아닌 첫 번째 패 킷 이 수신 되면 서버 는 연결 을 삭제 하거나 종료 합니다 .

등록 패키 지가 소 켓 연결 이 성공 한 후 가능한 한 빨리 전송 되도록 보장 해야 합니다 .

6. 3 양 방 향 심장 박 동 은 한 쪽 만 한다 .

장치 가 심장 박 동 하고 서버 가 응답 하지 않습니다 - 서버 는 장치 가 살아 있다는 것을 알고 있지만 장치 가 살아 있는지 여 부를 알지 못합니다 .서버 가 프로그램 버 그 또는 네트워크 문제 로 인해 심 박 수에 응답 하지 않으면 장치 가 비즈니스 데이터 전송 시간이 초 과 될 때까지 계속 대기 할 수 있습니다 .

양 방 향 하 트 비 트를 사용하면 장치 측 도 서버 이상을 사전 예방 적으로 발견 하고 재 연 결 을 트 리 거 할 수 있습니다 .이 조 항 은 전 국에 분 포 되어 있으며 무 인 D TU 장비 에 매우 중요합니다 .

6. 4 TCP Keep Ali ve 의 플랫폼 간 차이 점

Windows , Linux , Free RT OS , L w IP 는 TCP Keep Ali ve 에 대한 기본 값 과 구성 가능한 매 개 변 수가 다릅니다 .리 눅 스는 기본 값 으로 7 200 초 , Windows 는 7 200 , 000 밀 리 초 (2 시간) 이며 , L w IP (임 베 디 드 TCP 프로토 콜 스 택) 는 기본 값 으로 큽 니다 .기본 값 에 의존 하지 마십시오 .

6. 5 등록 패키 지 내용이 검 증 되지 않았습니다 .

등록 된 패 킷 이 일반 텍스트 전송 (예를 들어 , IM EI 를 직접 보낸 경우) 은 네트워크 링크 에서 패 킷 에 의해 조작 될 수 있습니다 .보안 요구 사항 이 높은 시 나 리오 의 경우 등록 패키 지 에는 적어도 하나의 요 약 또는 서 명이 포함 되어야 합니다 .가장 간단한 방법 : 장비 는 미리 설정 된 대 칭 키 를 사용하여 IM EI + 타 임스 탬 프 에 H M AC 를 수행 하고 서버 는 H M AC 를 통과 한 후 등록 을 수 락 합니다 .


7. 체크 리스트 를 검사 하다

D TU 가 자주 오 프 라인 상태 가 되면 다음 순 서 로 확인 합니다 .

단계 검사 항목 방법 예상 1 하 트 비 트가 실제로 전송 중 인지 서버 측 로 그 / 패 킷 캡 처 설정 하 트 비 트 주 기에 따라 안정 적으로 수신 2 하 트 비 트 간 격 vs N AT 시간 초 과 비교 하 트 비 트 주 기와 운영 자 N AT 시간 초 과 하 트 비 트 주 기 N
<AT 시간 초 과 × 0. 6 3 서버 응답 여 부 디 바 이스 측 하 트 비 트 캡 처 로 그 " Q " 를 보낸 후 " A " 를 받은 후 4 자동 재 연 결 여 부 SIM 카드를 분리 하고 다시 연결 D TU 자동 재 연 결 + 등록 패 킷 전송 5 등록 패 킷 전송 여 부 캡 처 서버 TCP 연결 설정 후 첫 번째 패 킷 은 등록 패 킷 6 서버 측 TCP Keep Ali ve 매 개 변 수 ` s ys ct l net . ip v 4. TCP _ keep ali ve _ time ` ≤ 120 초 7 사업 자 신호 강 도 D TU AT 명령 ` AT + CS Q ` ≥ 15 (10 미 만 불안 정) 8 SIM 카드 트 래 픽 만 료 / 부 과 된 운영 자 트 래 픽 중단 백 그 라 운드 쿼 리

심장 박 동 과 등록 패키 지는 개념 이 간단 합니다 - 정기적으로 패키 지를 보내 자신이 누구인지 나타 냅니다 .그러나 실제로 , 세부 사항 은 매 개 변 수 선택 과 고 장 모 드에 대한 예측 에 있습니다 .이 기 사가 제공하는 숫자 (30 초 , 60 초 , 120 초) 는 임 의 로 작성 된 것이 아니며 국내 3 대 사업 자의 N AT 시간 초 과 , 4 G 모듈 의 전 력 제 약 및 서버 리 소 스 오 버 헤 드의 균형을 기반으로 합니다 .자신의 프로젝트 가 장면 이 다르 다면 테스트 환경에서 패키 지 검 증을 잡 으십시오 .

문제가 있으면 다시 이야기 하다 .

Put this resource to use in a real project?

Go to the Tool Center for message parsing, CRC verification and device debugging, or submit your requirements for selection and integration advice.

Engineer Membership

Turn this article into actionable debugging resources

After activation, you can use advanced message parsing, resource pack downloads, code examples, engineering cases and priority technical support, suitable for real project delivery.

Unlimited Advanced Tools
Resource & Code Packs
Complete Engineering Case Library
Priority Technical Support

Leave a Reply

Your email address will not be published. Required fields are marked *.