กลับไปหน้าบทความ

อ่าน 3 นาที

โบลต์ (โปรโตคอลเครือข่าย)

โปรโตคอลเครือข่าย/ใช้วันที่ mdy ตั้งแต่เดือนมิถุนายน 2017

โปรโตคอลBolt ( Bolt ) เป็นโปรโตคอลเครือข่ายแบบเชื่อมต่อ ที่ใช้สำหรับ การสื่อสาร ระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ใน แอปพลิเคชัน ฐานข้อมูลโดยทำงานผ่าน การเชื่อมต่อ TCPหรือWebSocket

โบลต์ (โปรโตคอลเครือข่าย)

สายฟ้า
ผู้เขียนต้นฉบับนีโอ4เจ
เวอร์ชันเสถียร
เวอร์ชัน 6.0
เขียนเป็นภาษาต่างๆ
ระบบปฏิบัติการใดๆ
แพลตฟอร์มข้ามแพลตฟอร์ม
พิมพ์โปรโตคอลเครือข่าย
ใบอนุญาตลิขสิทธิ์ Creative Commons 3.0 Attribution-ShareAlike
เว็บไซต์www.neo4j.com/docs/bolt/current/

โปรโตคอลBolt ( Bolt ) เป็นโปรโตคอลเครือข่ายแบบเชื่อมต่อ ที่ใช้สำหรับ การสื่อสาร ระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ใน แอปพลิเคชัน ฐานข้อมูลโดยทำงานผ่าน การเชื่อมต่อ TCPหรือWebSocket

Bolt เป็นภาษาโปรแกรมที่เน้นการประมวลผลคำสั่ง โดยอนุญาตให้ไคลเอนต์ส่งข้อความที่มีคำสั่งซึ่งประกอบด้วยสตริงเดียวและชุดพารามิเตอร์ที่กำหนดประเภทไว้ เซิร์ฟเวอร์จะตอบกลับแต่ละคำสั่งด้วยข้อความผลลัพธ์และสตรีมของระเบียนผลลัพธ์ (ถ้ามี)

ประวัติศาสตร์

โปรโตคอล Bolt ได้รับการแนะนำสู่สาธารณะเป็นครั้งแรกในเดือนพฤศจิกายน 2015 ระหว่างการสัมภาษณ์ที่ดำเนินการโดย Duncan Brown และเผยแพร่บนDZone [ 1 ] การเปิดตัวซอฟต์แวร์ที่ใช้โปรโตคอลครั้งแรกเกิดขึ้นในเดือนธันวาคม 2015 ซึ่งเป็นส่วนหนึ่งของการเปิดตัว Neo4j Server เวอร์ชันสำคัญ[ 2 ]ในเดือนเมษายน 2016 Neo4j Server 3.0 ได้รับการเผยแพร่และมีการใช้งานโปรโตคอลบนเซิร์ฟเวอร์เป็นครั้งแรก พร้อมด้วยชุดไดรเวอร์ไคลเอ็นต์ Bolt การเปิดตัวครั้งนี้ได้รับความสนใจจากสื่อกระแสหลักหลายแห่ง[ 3 ] [ 4 ] [ 5 ]

การกำหนดเวอร์ชัน

โปรโตคอลเครือข่าย Bolt ใช้การเจรจาเวอร์ชันเพื่อให้มั่นใจถึงความเข้ากันได้ระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ ไคลเอ็นต์ส่งเวอร์ชันโปรโตคอลที่รองรับได้สูงสุดสี่เวอร์ชัน โดยเข้ารหัสเป็นจำนวนเต็ม 32 บิต โดยให้ความสำคัญกับรายการก่อนหน้า เซิร์ฟเวอร์จะตอบกลับด้วยเวอร์ชันที่เข้ากันได้สูงสุดหรือค่าศูนย์หากไม่พบการจับคู่ และปิดการเชื่อมต่อ ตั้งแต่ Bolt 4.0 เป็นต้นไป โปรโตคอลรองรับการกำหนดเวอร์ชันหลักและเวอร์ชันรอง Bolt 4.3 ได้แนะนำการกำหนดเวอร์ชันรองตามช่วง ทำให้ไคลเอ็นต์สามารถระบุเวอร์ชันรองที่ต่อเนื่องกันได้อย่างกระชับ[ 6 ]

ภาพรวมของโปรโตคอล

มีการออกเวอร์ชันใหม่ของโปรโตคอลเป็นประจำ โดยมีการปรับปรุงประสิทธิภาพ ฟังก์ชันการทำงาน และความเข้ากันได้อยู่เสมอ

การส่งข้อความ

ปฏิสัมพันธ์ทั่วไปในโปรโตคอลเครือข่าย Bolt

ทั้งไคลเอ็นต์และเซิร์ฟเวอร์ของ Bolt ส่งข้อมูลผ่านการเชื่อมต่อในรูปแบบของลำดับข้อความ แต่ละข้อความจะมีประเภท (ระบุด้วยไบต์ "ลายเซ็น") และอาจมีข้อมูลเพิ่มเติม ไคลเอ็นต์เป็นผู้ควบคุมการสื่อสาร และแต่ละข้อความที่ไคลเอ็นต์ส่งไปจะทำให้เซิร์ฟเวอร์ส่งข้อความตอบกลับอย่างน้อยหนึ่งข้อความ

ข้อมูลต่อไปนี้เกี่ยวข้องกับ Bolt เวอร์ชัน 5.8 และอาจไม่สะท้อนถึงการพัฒนาล่าสุดในโปรโตคอล

ข้อความจากลูกค้า:

พิมพ์ลายเซ็น
สวัสดี0x01 [ 7 ]
เข้าสู่ระบบ0x6A [ 8 ]
ออกจากระบบ0x6B [ 9 ]
ระบบวัดระยะทาง0x54 [ 10 ]
ลาก่อน0x02 [ 11 ]
รีเซ็ต0x0F [ 12 ]
วิ่ง0x10 [ 13 ]
ทิ้ง0x2F [ 14 ]
ดึง0x3F [ 15 ]
เริ่ม0x11 [ 16 ]
ให้สัญญา0x12 [ 17 ]
ย้อนกลับ0x13 [ 18 ]
เส้นทาง0x66 [ 19 ]

ข้อความจากเซิร์ฟเวอร์:

พิมพ์ลายเซ็น
ความสำเร็จ0x70 [ 20 ]
ความล้มเหลว0x7F [ 21 ]
เพิกเฉย0x7E [ 22 ]
บันทึก0x71 [ 23 ]

การเข้ารหัสการถ่ายโอนข้อความ

แต่ละข้อความจะถูกเข้ารหัสเป็นลำดับของไบต์ ไบต์เหล่านี้จะถูกส่งผ่านโดยใช้การเข้ารหัสแบบไบนารีแบบแบ่งเป็นส่วนๆ (binary chunked encoding ) โดยแต่ละส่วนจะนำหน้าด้วยจำนวนเต็ม 16 บิตแบบไม่มีเครื่องหมาย (unsigned, big-endian 16-bit integer) ซึ่งระบุจำนวนไบต์ที่จะตามมาทันที และใช้ค่า 0 เพื่อระบุจุดสิ้นสุดของข้อความ

การจัดการความล้มเหลว

ไคลเอนต์อาจส่งข้อความหลายข้อความไปยังเซิร์ฟเวอร์โดยไม่ต้องรอการตอบกลับก่อน[ 24 ]เซิร์ฟเวอร์จะประมวลผลแต่ละข้อความตามลำดับ อย่างไรก็ตาม เนื่องจากอาจมีความสัมพันธ์เชิงตรรกะระหว่างข้อความที่ส่งโดยไคลเอนต์ เซิร์ฟเวอร์จะไม่ประเมินคำขอที่ได้รับหลังจากส่งข้อความ FAILURE เพื่อตอบสนองต่อข้อความก่อนหน้า แต่จะส่งข้อความ IGNORED เพื่อตอบกลับข้อความของไคลเอนต์ทุกข้อความ จนกว่าไคลเอนต์จะรับทราบความล้มเหลวโดยการส่งข้อความ RESET

นี่คล้ายคลึงกับการจัดการและกู้คืนความล้มเหลวในโปรโตคอลการสื่อสารของPostgreSQL

ภาพรวม PackStream - เวอร์ชัน 1

PackStream เป็นรูปแบบการนำเสนอแบบไบนารีสำหรับการแลกเปลี่ยนข้อมูลที่มีประเภทข้อมูลที่หลากหลาย โดยทำหน้าที่เป็นเลเยอร์ไวยากรณ์สำหรับโปรโตคอลการส่งข้อความ Bolt

การเข้ารหัสข้อมูล

Bolt รองรับการเข้ารหัสสำหรับประเภทข้อมูลที่หลากหลาย

พิมพ์คำอธิบาย
ว่าง[ 25 ]แสดงถึงการไม่มีค่า
บูลีน[ 26 ]ค่าบูลีนจริงหรือเท็จ
จำนวนเต็ม[ 27 ]จำนวนเต็ม 64 บิตแบบมีเครื่องหมาย
ลอย[ 28 ]เลขทศนิยม 64 บิต
ไบต์[ 29 ]อาร์เรย์ไบต์
สตริง[ 30 ]สตริงที่เข้ารหัสแบบ UTF-8
รายการ[ 31 ]ชุดของค่าที่เรียงลำดับแล้ว
พจนานุกรม[ 32 ]ชุดข้อมูลแบบคีย์-ค่า (ไม่รับประกันลำดับ)
โครงสร้าง[ 33 ]ค่าผสมที่มีลายเซ็นประเภท
  • ข้อกำหนดโปรโตคอล Bolt
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Bolt_(network_protocol)&oldid=1338408713 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ โบลต์ (โปรโตคอลเครือข่าย)

โปรโตคอลBolt ( Bolt ) เป็นโปรโตคอลเครือข่ายแบบเชื่อมต่อ ที่ใช้สำหรับ การสื่อสาร ระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ใน แอปพลิเคชัน ฐานข้อมูลโดยทำงานผ่าน การเชื่อมต่อ TCPหรือWebSocket

ประวัติศาสตร์

โปรโตคอล Bolt ได้รับการแนะนำสู่สาธารณะเป็นครั้งแรกในเดือนพฤศจิกายน 2015 ระหว่างการสัมภาษณ์ที่ดำเนินการโดย Duncan Brown และเผยแพร่บนDZone [ 1 ] การ เปิดตัวซอฟต์แวร์ที่ใช้โปรโตคอลครั้งแรกเกิดขึ้นในเดือนธันวาคม 2015 ซึ่งเป็นส่วนหนึ่งของการเปิดตัว Neo4j Server...

การกำหนดเวอร์ชัน

โปรโตคอลเครือข่าย Bolt ใช้การเจรจาเวอร์ชันเพื่อให้มั่นใจถึงความเข้ากันได้ระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ ไคลเอ็นต์ส่งเวอร์ชันโปรโตคอลที่รองรับได้สูงสุดสี่เวอร์ชัน โดยเข้ารหัสเป็นจำนวนเต็ม 32 บิต โดยให้ความสำคัญกับรายการก่อนหน้า...

ภาพรวมของโปรโตคอล

มีการออกเวอร์ชันใหม่ของโปรโตคอลเป็นประจำ โดยมีการปรับปรุงประสิทธิภาพ ฟังก์ชันการทำงาน และความเข้ากันได้อยู่เสมอ