นี่อาจเป็นคำถามที่งี่เง่า แต่ฉันและเพื่อนไม่กี่คนกำลังพูดถึงข้อ จำกัด ที่อาจเกิดขึ้นของ TCP เรามีแอปพลิเคชั่นที่จะคอยฟังลูกค้า (คิดถึงเกตเวย์) และกำหนดเส้นทางข้อมูลลูกค้าที่เชื่อมต่อทั้งหมดผ่านผู้เผยแพร่คาฟคาที่เชื่อมต่อไปยังหัวข้อเดียว
หนึ่งในเพื่อนของฉันกำลังบอกว่า TCP จะเป็นปัญหาสำหรับเกตเวย์นี้เนื่องจากกำลังจะสร้างการเชื่อมต่อใหม่สำหรับทุกข้อความที่ส่ง (ไม่ใช่ kafka แต่โปรโตคอลการขนส่งพื้นฐานนั้นเป็นปัญหา) ซึ่งต้องมีพอร์ตใหม่ทุกครั้ง ในอัตราที่เราจะส่งข้อความลูกค้าเหล่านี้ (กิกะไบต์), kafka จะหมดพอร์ตที่จะอ่านจาก ??
ฉันได้ทำการพัฒนามาหลายปีแล้วและไม่เคยได้ยินเรื่องนี้มาก่อนและต้องการทำความเข้าใจในระดับที่ต่ำกว่า (ซึ่งฉันคิดว่าฉันมี) เกี่ยวกับการทำงานของ TCP ความเข้าใจของฉันคือเมื่อคุณสร้างการเชื่อมต่อ TCP การเชื่อมต่อนั้นจะยังคงเปิดอยู่จนกว่าจะหมดเวลาโดยแอปพลิเคชันหรือบังคับให้ปิดโดยเซิร์ฟเวอร์หรือไคลเอนต์ ข้อมูลที่ส่งผ่านการเชื่อมต่อนี้เป็นกระแสข้อมูลและจะไม่เปิด / ปิดการเชื่อมต่อใหม่โดยไม่คำนึงถึง 3 V (ระดับเสียงความเร็วความหลากหลาย)
สำหรับพอร์ตที่ใช้พอร์ตหนึ่งพอร์ตจะใช้สำหรับการแพร่สัญญาณและพอร์ตตัวอธิบายไฟล์ภายในเป็นสิ่งที่แอปพลิเคชันจัดการสำหรับการอ่าน / เขียนของไคลเอ็นต์แต่ละตัว ฉันไม่เคยเข้าใจ TCP เพื่อสร้างการเชื่อมต่อใหม่สำหรับทุก ๆ แพ็คเกจที่มันเขียน
ฉันขออภัยล่วงหน้าหากคำถามนี้ไม่ตรงหรือคลุมเครือเกินไป ฉันรู้สึกงุนงงจริงๆและหวังว่าจะมีคนให้บริบทเพิ่มเติมกับสิ่งที่เพื่อนร่วมงานของฉันกำลังพูด
SO_REUSEADDR
เพื่อปิดซ็อกเก็ตเร็วขึ้นเพิ่มช่วงของพอร์ตชั่วคราว ฯลฯ นอกจากนี้TCP_FASTOPEN
และสามารถใช้สลับระดับ OS หลายอย่างเพื่อแก้ไขข้อ จำกัด อื่น ๆ ที่รู้จักกันดีของ TCP ไม่ว่าจะด้วยวิธีใดจะไม่มีประเด็นในการพูดคุยข้อ จำกัด ของ TCP เมื่อคุณไม่มีภาระงานที่จะทดสอบ