🔥 สวัสดีเพื่อน ๆ ทุกคน วันนี้แอดมาสรุปให้สั้น ๆ กับความรู้เรื่อง UDP Protocol นั่นเอง !!
.
มันคืออะไร ทำงานยังไง ถ้าพร้อมแล้วไปอ่านกันได้เลยจ้า
.
🌟 UDP หรือ User Datagram Protocol - เป็นโปรโตคอลที่ใช้สื่อสารผ่านอินเทอร์เน็ตสำหรับการรับส่งข้อมูล เช่น การเล่นวิดีโอ และ การค้นหา DNS เป็นต้น ส่งข้อมูลได้อย่างรวดเร็ว แต่อาจจะเกิด Packet Loss ในระหว่างส่งข้อมูลได้นั่นเอง
.
⚙️ การทำงาน
.
ส่ง Packet ไปยังคอมพิวเตอร์เป้าหมายโดยตรง โดยไม่ต้องทำการเชื่อมต่อก่อน จากนั้นจะทำการระบุตำแหน่งของ Packet เหล่านั้น เพื่อตรวจสอบว่าข้อมูลถึงปลายทางหรือไม่ ถ้าหากมีข้อมูลสูญหายระหว่างการส่ง UDP จะไม่ส่งซ้ำ จึงเกิด Packet Loss ได้ง่าย และนี่คือข้อเสียของเจ้า UDP นั่นเอง
.
💡 ส่วนประกอบของ Header
.
UDP ใช้ Header เพื่อบรรจุข้อมูลเพื่อรับส่งข้อมูลนั่นเอง ประกอบด้วย
Source port number : หมายเลขของผู้ส่ง
Destination port number : Port ของ Datagram
Length : ความยาวของ Header หน่วยเป็นไบต์
Checksum : ใช้ในการตรวจสอบข้อผิดพลาด
.
🌈 การใช้งาน
.
ใช้ในการสื่อสารที่ต้องการความรวดเร็ว เช่น การรับส่งข้อมูลด้วยเสียงหรือวิดีโอ เช่น VOIP (voice over IP) เป็นบริการโทรศัพท์ทางอินเทอร์เน็ต การสนทนาทางโทรศัพท์แบบนิ่ง ๆ จะดีกว่าการสนทนาที่ชัดเจนแต่ช้านั่นเอง หรือในเกมออนไลน์บางประเภทก็ใช้ UDP เนื่องจากเซิร์ฟเวอร์ DNS ต้องรวดเร็วและมีประสิทธิภาพ
.
📑 Source : https://searchnetworking.techtarget.com/definition/UDP-User-Datagram-Protocol, https://www.cloudflare.com/learning/ddos/glossary/user-datagram-protocol-udp/
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
同時也有1部Youtube影片,追蹤數超過4萬的網紅史九87 SJ87,也在其Youtube影片中提到,💻 身分證字號產生器的原理 💻 什麼是檢查碼?檢查碼怎麼算? 💻 資訊安全 與 資料完整性 💻 Checksum / check digit 檢查碼 💻 我想長資識 🙋♂️ 協助我們製作 CC 字幕: https://www.stevenlin.tw/iWantCC 👉追蹤我們👈 —————...
checksum 在 BorntoDev Facebook 的最讚貼文
☀️ สวัสดีตอนเช้าจ้าเพื่อนๆ ทุกคน วันนี้แอดจะมาเปรียบเทียบ IPv4 และ IPv6 ให้เห็นกันชัดๆ เลยว่า 2 อย่างนี้มันแตกต่างกันยังไง ใช้งานยังไง ??
.
หากพร้อมแล้ววว🔥 ไปหาคำตอบกันเลยจ้าาา
.
👉 IP คือชุดรหัสที่เอาไว้สำหรับใช้ในการสื่อสารกับอุปกรณ์อื่น ๆ ที่อยู่ใน Network เดียวกัน ซึ่งเจ้าตัว IP นั้น ในแต่ละอุปกรณ์ที่เชื่อมกันใน Network เดียวกัน จะมี IP ที่แตกต่างกันและไม่ซ้ำกัน เพื่อระบุถึงตัวตนของอุปกรณ์นั้น ๆ และ IP นั้นมีอยู่ 2 ประเภทคือ IPv4 กับ IPv6
.
🧡 IPv4 คือ IP ที่ใช้กันอย่างแพร่หลายเพื่อใช้ระบุตัวตนเฉพาะของแต่ละอุปกรณ์ที่เชื่อมต่ออยู่ใน Network เดียวกัน เป็น Version แรกของตัว IP เลย โดยใช้ Address แบบ 32-Bit และสามารถรองรับจำนวน Address ได้มากถึง 4 พันล้าน Address ซึ่งส่วนมาก IPv4 จะถูกใช้ในการรับส่งข้อมูลเป็นหลัก
.
💙 IPv6 คือ IP รุ่นใหม่ที่พัฒนาต่อยอดมาจาก IPv4 ซึ่งใช้ Address แบบ 128-Bit ทำให้สามารถรองรับ Address ได้มากถึง 340 พันล้าน Address เลย และ IPv6 มีชื่อเรียกอีกย่างหนึ่งคือ IPng (Internet Protocol next generation)
.
ทีนี้เรามาดูกันว่า เจ้า IP สองตัวนี้แตกต่างกันอย่างไรบ้าง มาดูกัน !!
.
🟠 IPv4
.
🔸 เป็น 32-Bit IP Address
🔸 มีรูปแบบ Address เป็นตัวเลขอย่างเดียว
🔸 ถูกคั่นกลางด้วย ' . ' (Dot)
🔸 มี Header ขนาด 12 ช่อง
🔸 Support การใช้ Broadcast
🔸 มี Checksum Field
🔸 Support VLSM (Variable Length Subnet Mask)
🔸 ใช้ ARP ในการ Map กับ MAC Address
.
🔵 IPv6
.
🔹 เป็น 128-Bit IP Address
🔹 มีรูปแบบ Address เป็นตัวเลขและตัวอักษร
🔹 ถูกคั่นกลางด้วย ' : ' (Colon)
🔹 มี Header ขนาด 8 ช่อง
🔹 ไม่ Support การใช้ Broadcast
🔹 ไม่มี Checksum Field
🔹 ไม่ Support VLSM
🔹 ใช้ NDP ในการ Map กับ MAC Address
.
หวังว่าจะเป็นประโยชน์กับเพื่อนๆ นะค้าบบบ 😁
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
checksum 在 矽谷牛的耕田筆記 Facebook 的最讚貼文
最近跟大家分享一個 2020 年初左右的問題,這個問題的徵狀使用者透過 service 去存取相關服務時,會一直遲遲連接不上,直到 63 秒後服務才會通。
這個問題有兩種類型,一個是 63 秒後服務會通,一個則是 1 秒後會通,兩個背後的原因都一樣,這邊就來稍微簡介一下這個問題
# 發生條件
1. 使用 VXLAN 作為底層 Overlay Network,最常見的就是 Flannel 這套 CNI
2. Kubernetes 的版本不能太舊,至少要 1.16 以後,不過目前這個問題已經修復,所以現在要撞到除非特別指定版本
3. 使用的 Linux Kernel 版本也不能太新,目前該問題已經修復於大部分的 upstream
# 發生原因
1. VXLAN 本身是一個基於 UDP 的封裝協議,有一個已知的 bug 會使得其 checksum 發生錯誤,導致封包不會被遠端接收方給接收
2. kube-proxy 內關於 iptables 的設定沒有妥善,導致 VXLAN 封包會進行二次 SNAT
3. 第二次的 SNAT 就會觸發(1) 的 bug(當然還有其他條件,但是那些條件也剛好符合)
,最後導致封包的 checksum 不同,因此送到遠方就被拒絕
4. 底層的 TCP 建立連線時,會不停地嘗試,每次失敗都會等待更多時間,分別是1,2,4,8,16,32秒
5. 五次都失敗後, TCP 就會觸發重傳機制,下一次的重傳就不會進入到第二次的 SNAT,因此封包就不會踩到問題,因此通過
# 解決方法
1. 基本上這個問題要踩到要各方一起努力才會踩到,也因此修復方式也是多元化
2. Kernel 本身修復了關於 UDP 封裝的 Checksum 計算
3. Kubernetes 這邊則是針對 kube-proxy 進行強化,其使用的 iptables 規則會避免二次 SNAT 的情況
# 其他問題
1. 為什麼 TCP 重送後就不會踩到二次 SNAT? 這部分我看了相關的 issue 以及諸多文章都沒有看到解釋,都在探討 SNAT 後產生的 checksum,至於為什麼 TCP 重送後就通則是一個謎底
2. 為了解決這個謎體,我特別指定 kubernetes 版本並且重新編譯 Ubuntu 的 Linux Kernel 版本,盼望從 Kernel 中來觀察並且理解這個問題,目前已經有一些初步的進度。之後完成後會在撰寫文章跟大家分享這個問題
這個問題我認為非常有趣,也許自己的環境剛好沒有踩到,但是可以透過觀察不同的 issue 來研究各式各樣問題,也藉由這些過程來學習
相關 PR: https://github.com/kubernetes/kubernetes/pull/92035
checksum 在 史九87 SJ87 Youtube 的最佳解答
💻 身分證字號產生器的原理
💻 什麼是檢查碼?檢查碼怎麼算?
💻 資訊安全 與 資料完整性
💻 Checksum / check digit 檢查碼
💻 我想長資識
🙋♂️ 協助我們製作 CC 字幕: https://www.stevenlin.tw/iWantCC
👉追蹤我們👈
————————————————————————
史九87 IG ► https://www.instagram.com/im9vv
史九87 FB ► https://www.facebook.com/shihjo87
商業合作請洽詢 ► shihjo87@gmail.com
信箱箱址中文:
24199
三重忠孝路郵局第 88 號信箱
信箱箱址英文:
P.O.BOX 88 Sanchong Zhongxiao Road
New Taipei City 24199
Taiwan (R.O.C)
————————————————————————
👉 Follow us 👈
————————————————————————
SJ87 IG ► https://www.instagram.com/im9vv
SJ87 FB ► https://www.facebook.com/shihjo87
Biz contact ► shihjo87@gmail.com
Address:
P.O.BOX 88 Sanchong Zhongxiao Road
New Taipei City 24199
Taiwan (R.O.C)
————————————————————————
checksum 在 GitHub - houbb/checksum 的推薦與評價
High performance checksum framework based on java annotation and asm.(基于注解的java 加签验签高性能框架) - GitHub - houbb/checksum: High performance ... ... <看更多>