2023年6月30日 星期五

Linux Kernel Networking

參考

2023年6月23日 星期五

ASCII

ASCII, American Standard Code for Information Interchange, US-ASCII:7-bit,128 字元,其中 33 控制字元、95 可列印字元。


0x000x100x200x300x400x500x600x70
0x0NULDLESP0@P`p
0x1SOHDC1!1AQaq
0x2STXDC2"2BRbr
0x3ETXDC3#3CScs
0x4EOTDC4$4DTdt
0x5ENQNAK%5EUeu
0x6ACKSYN&6FVfv
0x7BELETB'7GWgw
0x8BSCAN(8HXhx
0x9HTEM)9IYiy
0xALFSUB*:JZjz
0xBVTESC+;K[k{
0xCFFFS,<L\l|
0xDCRGS-=M]m}
0xESORS.>N^n~
0xFSIUS/?O_oDEL

Unicode 前t 128 碼是 ASCII。

參考

2023年6月17日 星期六

LoRa

LoRa 是一種用在低功率廣域網路 (LPWAN) 的無線技術,意思是 extremely Long-Range data links、長距離傳輸。

  • 物聯網是一種「物」相互「聯繫」的「網路」,「物」有唯一辨識碼、並有網路傳輸能力,其無線連接方式可分成三種:Short-range wireless、Cellular、和 LPWAN。其中 LPWAN 特性就是低功率 (LP) 且長距離 (WAN),這種情況相對位元率不會太高,屬於此類的有 NB-IoT、Sigfox、和 LoRa。
  • 20mW 功率沒有阻礙可達 15 公里,城市 2~5 公里。
  • 媽媽是法國新創公司 Cycleo,2012 繼父半導體公司 Semtech 買下 Cycleo,並命名 LoRa、將所有相關技術專利註冊,授權給其它晶片廠商。
  • LoRa 頻段
  • LoRa 簡單講是一種無線模組。LoRa 端點通常有控制器跑一些協定來使用 LoRa 無線模組,最簡單的是讓兩者直接互通,另外有 LoRaWAN、Meshtastic等。
  • LoRaWAN 是網路層,LoRa 是實體層跟連接層。LoRaWAN 分為 A 類、B 類、C 類。網路架構有四大部分:終端節點 (行動或固定裝置),閘道器 (可無線互通的基地台?),網路服務器 (Join Server 也算嗎?),應用服務器。LoRaWAN 並不支援兩個端點不透過 Gateway 直接通訊。LoRa 兩端點可以直接通訊,但和 LoRaWAN 網路無關。

是一種用無線電傳輸文字訊息的通訊協約,最常見的使用方式是利用免執照無線電頻率 433MHz 或 ISM 頻率 902-932MHz 傳輸資料。必要時也可以透過網際網路中繼到更遠的地方。

免執照的頻段有 2.4GHz 和 Sub-GHz。其中 2.4GHz 屬於短距離無線傳輸,大量應用於 Wi-Fi、Bluetooth 等 (容易相互干擾,節點少,不適合多點佈建?)。Sub-GHz 頻段傳輸距離遠、干擾少、功耗低,適合工業製造領域。

Sub-GHz 部份,433 MHz頻段 (全球通用),915 MHz (北美和澳洲)、868 MHz (歐洲)、315 MHz (北美、亞洲和日本)。

5G、802.11aj、LoRa、NB-IoT、BLE到Zigbee等各種規格;LPWA

Meshtastic 使用 LoRa 傳輸技術,推薦購買兩種裝置,手持的 Meshtastic 裝置與 Meshtastic 太陽能節點裝置。: 手持的 Meshtastic 裝置

參考

  1. https://www.facebook.com/groups/meshtastictw/posts/434624832280048/
  2. LORA vs LORAWAN (Good)
  • 有些 LoRa 機器上面自己有 OLED 顯示與鍵盤,有些則可以透過藍牙或 Wi-Fi 用手機或電腦顯示與打字,也可以用 Arduino 做。由於發射功率只有100mW ,兩顆18650鋰電池就可以用撐一整天,不過它只適合雙方互相可以看得到的視線範圍內通訊。
  • https://www.2cm.com.tw/2cm/zh-tw/tech/A5243AF698324D07BB8C3BD9D98FED60:陞特 (Semtech) 在 2013 年 8 月發表 LoRa 晶片,特色是基於 1GHz 以下,接受靈敏度達到 -148dbm,相較於當時其它 sub-GHz 晶片提升了 20dB 的接收靈敏度,傳輸距離超過15公里,且基地台可處理多達一百萬個節點,具備著低功率與遠距離的兩大優點,因此即便最大數據傳輸率限制於50kbps也能廣被應用。LoRa 實體層是用 SSM (Spread Spectrum Modulation) 調變技術,是一種廣頻頻率調變的正弦訊號,將較高的頻率序列針對基礎訊號進行編碼,然後在更寬廣的頻寬上將基礎訊號展開,藉由此調變降低功耗,同時提升訊號在電磁干擾下的耐受能力,因此線性調變適合用於低功率下的低數據傳輸率(小於1Mbps)應用。LoRa允許六種展頻因數(SF7至SF12)與三種不同的頻寬(125kHz、250kHz、500kHz)。選擇可允許的展頻因數和頻寬都是由使用國家的相關機關做決定的。以美國為例,頻寬規定用500kHz,而展頻因數規定用7至10。LoRaWAN的網路架構採用延伸星狀拓撲(Star-of-Star),當中每一個終端節點的訊息可以同時直接或間接傳給多個基地台站,基地台則進而與網路伺服器通訊。

Automatic Packet Reporting System

APRS(Automatic Packet Reporting System)字面翻是「自動封包回報系統」,其實是「自動位置回報系統』,是業餘無線電結合全球衛星定位系統 (GPS),以 AFSK AX.25 通訊模式回報給世界各地的 APRS 接收電台,電台再透過網際網路上傳到 APRS 伺服器。全世界各地的 APRS 伺服器將資料彙整供使用者讀取,其中最常使用的就是 aprs.fi 網站。

只能回報位置?

參考

2023年6月2日 星期五

SIP Match Transactions

在 RFC3261,必須有 Via branch,對特定 UA 發請求時必須產生在時空上是唯一的 Via branch,且開頭是「z9hG4bK」。

RFC2543 沒有唯一的規定,且不會以「z9hG4bK」開頭。

CANCEL 和失敗的 ACK 則是沿用要取消或 ACK 請求的 Via branch。

回應比對 Client Transaction,需符合:

  1. Via branch
  2. CSeq method (因為 CANCEL 沿用 Via branch,但不同 Transaction)

有可能收到來自不同 server 的多個回應 (基本上 To tag 會不同),第一個收到的回應會被採用,其它視為重送,這樣並不是錯誤,multicast SIP provides only a rudimentary "single-hop-discovery-like" service that is limited to processing a single response.

請求比對 Server Transaction

  • 來自 RFC3261 client,需符合:
    1. Via branch
    2. Via sent-by (不同 client 可能產生相同 branch。)
    3. Method 符合,ACK 是符合 INVITE。
  • 來自 RFC2543 client (無 Via branch 或不是),需符合:
  • 項目INVITEACK 比對 INVITE
    其它
    Request-URIvvv
    To tagvresponsev
    From tagvvv
    Call-IDvvv
    CSeqvnumberv
    top Viavv?

CANCEL 和失敗的 ACK 會有 Inclusion of the tag in the To header field in the ACK matching process helps disambiguate ACK for 2xx from ACK for other responses at a proxy, which may have forwarded both responses (This can occur in unusual conditions. Specifically, when a proxy forked a request, and then crashes, the responses may be delivered to another proxy, which might end up forwarding multiple responses upstream). An ACK request that matches an INVITE transaction matched by a previous ACK is considered a retransmission of that previous ACK.

Via branch 格式參考:...

Proxy 收到請求可選擇檢查 Loop Detection

SIP header Via

所有 SIP 訊息 都要有 Via,縮寫 v。一開始的 UAC 和後續途經的每個 proxy 都會疊加一個 Via 放傳送的位址,依序作為回應的路徑。 格式 sent-protocol sent-by [ ;branch= branch ][ ; 參數 ...] s...