Score:1

การแช่แข็ง cgroup รอให้ล้างบัฟเฟอร์ TCP ส่งหรือไม่

ธง gh

มีการรับประกันอะไรบ้างสำหรับการล้างบัฟเฟอร์การส่ง TCP (ถ้ามี) เมื่อ ระบบย่อยช่องแช่แข็ง หยุด cgroup หรือไม่

พิจารณาสถานการณ์ต่อไปนี้: เซิร์ฟเวอร์ A ซึ่งทำงานใน cgroup ส่งข้อมูลไปยังเซิร์ฟเวอร์ B ผ่าน TCP ซ็อกเก็ต TCP ได้รับการกำหนดค่าให้ใช้อัลกอริทึมของ Naggle (ไฟล์ TCP_NODELAY ไม่ได้ตั้งค่าตัวเลือกไว้) ดังนั้น, ส่งing ข้อมูลผ่านซ็อกเก็ตไม่ได้บล็อกสำหรับ ACK ของเซิร์ฟเวอร์ B แต่จะส่งคืนหลังจากข้อมูลที่จะส่งถูกคัดลอกไปยังบัฟเฟอร์การส่ง TCP หลังจากนั้น แต่ก่อนที่จะส่งข้อมูลไปยังเซิร์ฟเวอร์ B กลุ่ม c จะถูกแช่แข็ง

เกิดอะไรขึ้นกับข้อมูลใน TCP send buffer?

  • การดำเนินการตรึงจะรอจนกว่าข้อมูลทั้งหมดในบัฟเฟอร์จะได้รับการยอมรับจากเซิร์ฟเวอร์ B หรือไม่ จะเกิดอะไรขึ้นถ้าบัฟเฟอร์รับของเซิร์ฟเวอร์ B เต็ม การหยุดทำงานจะรอการ ack ของเซิร์ฟเวอร์ B อย่างไม่มีกำหนดหรือไม่
  • การแช่แข็งจะไม่รอ ACK ของเซิร์ฟเวอร์ B และส่งข้อมูลต่อไปหลังจากที่ cgroup ถูกละลายหรือไม่ หากการหน่วงเวลาระหว่างการหยุดและการละลายนานเพียงพอสำหรับเซิร์ฟเวอร์ B เพื่อปิดการเชื่อมต่อ TCP ข้อมูลในบัฟเฟอร์จะสูญหาย

ลิงก์ไปยังข้อกำหนดและการรับประกันเกี่ยวกับลักษณะการทำงานนั้นได้รับการชื่นชม แต่อาจไม่มีการรับประกันดังนั้นการพึ่งพาพฤติกรรมอย่างใดอย่างหนึ่งจะเปราะบาง?

เบื้องหลังของคำถามคือฉันสงสัยว่าต้องระมัดระวังเพียงใดเมื่อส่งข้อมูลผ่าน TCP บน AWS Lambda (ข้อสันนิษฐานของฉันคือ AWS Lambda ใช้กลุ่มกลุ่มเพื่อหยุด/ละลายหลัง/ก่อนที่จะจัดการการเรียกใช้ Lambda) เพียงพอหรือไม่ที่จะล้างแอปพลิเคชันบัฟเฟอร์ไปยังซ็อกเก็ต TCP/บัฟเฟอร์การส่ง TCP หรือต้องแน่ใจว่าเซิร์ฟเวอร์ B ได้รับข้อมูลบนชั้นแอปพลิเคชัน เช่น โดยใช้ HTTP และรอการตอบกลับ HTTP ของเซิร์ฟเวอร์

โพสต์คำตอบ

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