- 一對無屏蔽雙絞線匯流排,最長 25 公尺,支援最少八個節點。名稱中的「S」代表是短距版,另有遠距版 10Base-T1L 針對工業應用。
- 10Mbps 半雙工。採用差動式曼徹斯特編碼 (DME),時脈週期內未出現轉換,資料是 0;出現轉換,資料為1。
- 使用實體層衝突規避 (PLCA) 避免多個裝置發生資料衝突,來縮短失效時間。
- 支援供電。
- 2020 發布的 IEEE 802.3cg 2019 標準中的一部分。讓乙太網路應用在汽車低速資料通訊,以便使用相同的軟體堆疊及通訊機制。
2023年7月2日 星期日
10Base-T1S
2023年6月30日 星期五
Linux Kernel Networking
參考
- 簡報 Linux Kernel Networking by Rami Rosen at Haifux, August 2007
- 其它待讀
- net_device
- Network Interface Drivers 及 NAPI
- routing
- receiving a packet
- local delivery
- forwarding
- sending a packet
- netfilter
- ICMP redirect
- Neighboring
- bridging
- IPsec
- tips for hacking
- Understanding Linux Network Internals by Christian Benvenuti 2006-02-07
- Free eBook: http://it-ebooks.info/book/2195/
- https://github.com/seteda/books/blob/master/linux/Understanding%20Linux%20Network%20Internals.pdf
- on-line
- Linux Network Stack Walkthrough (2.4.20):
http://gicl.cs.drexel.edu/people/sevy/network/Linux_network_stack_walkthrough.html - Understanding the Linux Kernel, Second Edition
By Daniel P. Bovet, Marco Cesati
Second Edition December 2002
chapter 18: networking. - Linux networking: (a lot of docs about specific networking topics)
–http://www.linuxfoundation.org/collaborate/workgroups/networking/mainpage - netdev mailing list: http://www.spinics.net/lists/netdev/
- dev_queue_xmit
2023年6月23日 星期五
ASCII
ASCII, American Standard Code for Information Interchange, US-ASCII:7-bit,128 字元,其中 33 控制字元、95 可列印字元。
| 0x00 | 0x10 | 0x20 | 0x30 | 0x40 | 0x50 | 0x60 | 0x70 | |
|---|---|---|---|---|---|---|---|---|
| 0x0 | NUL | DLE | SP | 0 | @ | P | ` | p |
| 0x1 | SOH | DC1 | ! | 1 | A | Q | a | q |
| 0x2 | STX | DC2 | " | 2 | B | R | b | r |
| 0x3 | ETX | DC3 | # | 3 | C | S | c | s |
| 0x4 | EOT | DC4 | $ | 4 | D | T | d | t |
| 0x5 | ENQ | NAK | % | 5 | E | U | e | u |
| 0x6 | ACK | SYN | & | 6 | F | V | f | v |
| 0x7 | BEL | ETB | ' | 7 | G | W | g | w |
| 0x8 | BS | CAN | ( | 8 | H | X | h | x |
| 0x9 | HT | EM | ) | 9 | I | Y | i | y |
| 0xA | LF | SUB | * | : | J | Z | j | z |
| 0xB | VT | ESC | + | ; | K | [ | k | { |
| 0xC | FF | FS | , | < | L | \ | l | | |
| 0xD | CR | GS | - | = | M | ] | m | } |
| 0xE | SO | RS | . | > | N | ^ | n | ~ |
| 0xF | SI | US | / | ? | O | _ | o | DEL |
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 裝置
參考
- 有些 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,需符合:
- Via branch
- 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,需符合:
- Via branch
- Via sent-by (不同 client 可能產生相同 branch。)
- Method 符合,ACK 是符合 INVITE。
- 來自 RFC2543 client (無 Via branch 或不是),需符合:
| 項目 | INVITE | ACK 比對 INVITE | 其它 |
|---|---|---|---|
| Request-URI | v | v | v |
| To tag | v | response | v |
| From tag | v | v | v |
| Call-ID | v | v | v |
| CSeq | v | number | v |
| top Via | v | v | ? |
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
2023年5月7日 星期日
Edit pcap
Editing Hex:Put a hex on your hex
reordercap:
editcap [選項] 輸入檔 輸出檔 [排除範圍]:編輯 pcap 檔 (原始碼)
- -v:verbose
- 排除範圍,格式 封包編號[-封包編號],可有多個:排除的封包,-r 反向。
- -C [offset:]choplen:每個封包從 offset 起砍掉 choplen 長度。offset 正值從頭算,負值從尾算。可用來移除特定欄位,例如 vlan tag。
- -L:依據 -C choplen 或 -s snaplen 結果調整長度。
- -r:反向排除範圍,變成套用的範圍。
- -T:顯示有的 encapsulation type。
- -T <encapsulation type>:設定輸出檔案的 encapsulation type。並不轉換封包的 header,可能要改用 od(1) 或 text2pcap(1)。
- Fuzzing:editcap has several options to fuzz, including -E, -o, and –seed. You can use them in combination to randomly change a packet capture to fuzz it with your program. This can mimic the bit-flipping that will naturally occur on lossy mediums like 802.11.
mergecap:Merge captures together
text2pcap:Convert hexdumps to packet captures
Sanitizing Hex:Put a hex on your hex
SIP header Via
所有 SIP 訊息 都要有 Via,縮寫 v。一開始的 UAC 和後續途經的每個 proxy 都會疊加一個 Via 放傳送的位址,依序作為回應的路徑。 格式 sent-protocol sent-by [ ;branch= branch ][ ; 參數 ...] s...
-
網路界面驅動程式有兩種接收封包的方式 -- 中斷驅動和 NAPI。傳統是用中斷驅動,在中斷服務程式裡接收封包,但封包量大時會有中斷次數太多而效能變差的問題。NAPI (意思是 New API) 改成中斷服務程式只通知有封包,Kernel 再排程一次接收多個封包來提昇效能。 中...
-
busybox ntpd 是 NTP client,也可作為 NTP server。 參數 -d:Verbose -n:不常駐 -q:(quit) 時間設完後結束 -N:高優先權執行 -w:不設定時間,只是詢問 peers,隱含 -n -l:作為 NTP ser...
-
驅動程式除了 read()/write() 外,通常可以透過 ioctl() 系統呼叫進行一些控制或設定,如鎖門、退片、回報錯誤、改變 baud rate、或 self destruct 等。 在 user space 格式如下: #include <sys/ioctl...