เหตุใดโหมด FTP แฝงจึงต้องมีช่วงพอร์ตเมื่อเทียบกับพอร์ตเดียวเท่านั้น


34

ฉันพยายามที่จะเข้าใจว่าทำไมเซิร์ฟเวอร์ FTP ทั้งหมดต้องการใช้ช่วงพอร์ตสำหรับช่องสัญญาณข้อมูลโหมดพาสซีฟเมื่อเทียบกับการใช้พอร์ตข้อมูลเพียงพอร์ตเดียวสำหรับการเชื่อมต่อช่องสัญญาณข้อมูลขาเข้าทั้งหมด

เซิร์ฟเวอร์ FTP จัดการไคลเอนต์ที่เชื่อมต่อพร้อมกันจำนวนมากบนพอร์ต 21 เว็บเซิร์ฟเวอร์จัดการไคลเอนต์ที่เชื่อมต่อพร้อมกันจำนวนมากบนพอร์ต 80 เป็นต้น

แล้วเหตุใดเซิร์ฟเวอร์ FTP จึงไม่สามารถใช้พอร์ตช่องสัญญาณเดียวเท่านั้นสำหรับการเชื่อมต่อข้อมูลแฝงขาเข้าทั้งหมด (และยังสามารถจัดการไคลเอนต์ที่เชื่อมต่อพร้อมกันจำนวนมากบนพอร์ตนั้นพูดพอร์ต 1024)

หรือมันได้หรือไม่

ฉันสนใจที่จะทราบรายละเอียดทางเทคนิคว่าทำไมจึงเป็นไปไม่ได้หรือไม่แนะนำ


1
สิ่งนี้อาจเป็นที่สนใจของคุณ: w3.org/Protocols/rfc959
Matt Simmons

1
ขอบคุณแมตต์ ใช่ฉันอ่าน rfc ส่วนใหญ่แล้ว 959 แต่ฉันรู้สึกว่าฉันไม่สามารถรับคำตอบที่ชัดเจนจากสิ่งที่ฉันสงสัยได้ คำตอบจาก Karol Piczak เป็นประเภทข้อมูลที่ฉันกำลังมองหา
เคิร์ต

คำตอบ:


20

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

นี่จะเป็นการคาดเดาที่รุนแรงเพราะฉันยังไม่ได้ทดสอบคุณควรลองด้วยตัวเองและดูว่ามีปัญหาอื่น ๆ ที่ฉันอาจพลาดไปหรือไม่

ฉันคิดว่าคุณสามารถ จำกัด ช่วงพอร์ตเรื่อย ๆ กับพอร์ตเดียว ในความเป็นจริงคุณสามารถเห็นในคำถามนี้ว่าช่วงพอร์ตขนาดเล็กที่ใช้ในการปฏิบัติ ในทางทฤษฎีเพื่อรองรับการเชื่อมต่อหลาย ๆ อย่างพร้อมกันคุณต้องใช้ค่า 4 ค่า: โลคัล IP, พอร์ตโลคัล, IP แบบรีโมต, พอร์ตแบบรีโมตจะไม่ซ้ำกัน นี่คือวิธีที่คุณแยกแยะระหว่างการเชื่อมต่อที่แตกต่างกัน

หากคุณล็อกพอร์ตบนเซิร์ฟเวอร์ของคุณเป็นหนึ่งค่าเดียวตัวแปรที่เหลือเพียงอย่างเดียวคือพอร์ตที่ไคลเอ็นต์ใช้ นี่ไม่ใช่ปัญหาตราบใดที่ไคลเอนต์มีพอร์ตชั่วคราวขนาดใหญ่พอให้เลือก เว้นแต่ว่าคุณกำลังทำ NAT หนักอยู่คุณไม่ต้องกังวลเกี่ยวกับเรื่องนี้ ตอนนี้ได้รับการเตือนว่านี่จะเป็นเรื่องทางทฤษฎีอย่างหมดจด : ถ้าคุณใช้หลายพอร์ตบนเซิร์ฟเวอร์ของคุณคุณสามารถคูณจำนวนการเชื่อมต่อพร้อมกันตามสมมุติฐานด้วยการเปิดใช้งานnumber of ports in rangeการเชื่อมต่อต่อหนึ่งพอร์ตฝั่งไคลเอ็นต์ แต่มันจะไม่เกิดขึ้นในทางปฏิบัติเพราะฉันสงสัยว่ามีการใช้งานไคลเอนต์ FTP ที่จะสนับสนุนสิ่งนี้ (เพราะมันไม่สมเหตุสมผล) นอกจากนี้หากลูกค้าต้องแชร์พอร์ตชั่วคราวของเขาด้วยวิธีนี้และไม่สามารถเปิดพอร์ตใหม่ได้เขาก็มีปัญหาที่รุนแรงกว่ามากในการจัดการ ดังนั้นจากมุมมองนี้คุณควรปลอดภัยโดยใช้พอร์ตเดียว

ลองคิดว่าทำไมพอร์ตเดียวอาจจะไม่เพียงพอ

ก่อนอื่นฉันสามารถหาสถานการณ์ที่การใช้งานเซิร์ฟเวอร์ FTP ที่บั๊กจริงๆใช้หมายเลขพอร์ตท้องถิ่นเป็นวิธีในการระบุการถ่ายโอนข้อมูลลูกค้า ฉันไม่คิดว่า FTPd ที่เหมาะสมจะทำเช่นนั้น

ปัญหาที่แท้จริง ( ใช่คุณสามารถปฏิเสธทั้งหมดข้างต้นเป็นพูดนอกเรื่องสำคัญ ;-)) คือว่าช่วงพอร์ตแฝงอยู่ในช่วงที่ไม่ได้รับการยกเว้น

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

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


BTW อย่าลังเลที่จะแสดงความคิดเห็นในจุดที่ไม่ได้รับและความไม่สอดคล้องกันที่นี่ แม้แต่ตัวฉันเองฉันก็รู้สึกราวกับว่าฉันกำลังพูดถึงคำตอบง่ายๆ - ใช่คุณทำได้ ;-)
Karol J. Piczak

ขอบคุณมาก Karol! นี่คือจุดที่ข้อมูลที่ฉันกำลังมองหา (และไม่พบที่อื่น) เหตุผลหลักที่ฉันถามคำถามนี้คือฉันต้องการทราบว่าปลอดภัยในการตั้งค่าเซิร์ฟเวอร์ FTP ใน Windows Azure และล็อคโหมดพาสซีฟลงไปที่ 1 พอร์ตเท่านั้นหรือไม่ (เนื่องจาก Azure จำกัด จุดสิ้นสุด) ฉันได้ลองใช้งานได้และด้วยข้อมูลของคุณฉันก็รู้สึกปลอดภัยที่จะทำ อย่างไรก็ตามปัญหาเดียวที่เหลืออยู่ก็คือ Azure load balancer จะลดการเชื่อมต่อการควบคุมหลังจาก 1 นาทีในระหว่างการถ่ายโอนไฟล์ (เพราะมันไม่ได้ทำงาน) ดังนั้นฉันจึงทำงานกับช่องสัญญาณ TCP ที่มีชีวิตอยู่เพื่อแก้ไข
Kurt

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

4

FTP อาศัยสองการเชื่อมต่อที่แยกจากกันหนึ่งอันสำหรับการควบคุมหรือสตรีมคำสั่งและอีกอันสำหรับการส่งไฟล์ข้อมูลและข้อมูลอื่น ๆ เช่นรายชื่อไดเรกทอรี กระแสการควบคุมจะดำเนินการผ่านการเชื่อมต่อ TCP แบบดั้งเดิม ไคลเอ็นต์เชื่อมต่อกับพอร์ตที่ไม่มีสิทธิใช้งานสูงและส่งการร้องขอการเชื่อมต่อไปยังเซิร์ฟเวอร์ FTP ซึ่งเชื่อมต่อกับพอร์ต 21 การเชื่อมต่อนี้ใช้เพื่อส่งคำสั่ง

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

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

สำหรับรายละเอียดเพิ่มเติมโปรดดู:

http://tools.ietf.org/html/rfc959

แก้ไข

ในการล็อคเซิร์ฟเวอร์ไปยังพอร์ตเดียวโดยเฉพาะอาจเป็นไปได้ในบางเซิร์ฟเวอร์ ตัวอย่างเช่นใน vsftpd คุณมีตัวเลือกการกำหนดค่าต่อไปนี้

   pasv_max_port
          The maximum port to allocate for PASV style data connections. Can be used to specify a narrow port range to assist firewalling.

          Default: 0 (use any port)

   pasv_min_port
          The minimum port to allocate for PASV style data connections. Can be used to specify a narrow port range to assist firewalling.

          Default: 0 (use any port)

หากคุณตั้งค่าทั้งสองพอร์ตให้เหมือนกันเช่น pasv_max_port = 12345, pasv_min_port = 12345 คุณอาจจะได้สิ่งที่คุณต้องการ ฉันสงสัยว่าสิ่งนี้จะ จำกัด จำนวนเซสชัน FTP ที่เกิดขึ้นพร้อมกันที่เซิร์ฟเวอร์ของคุณรองรับ กรุณาทดสอบเพื่อให้แน่ใจ


1
ขอบคุณสำหรับการตอบกลับของคุณ. อย่างไรก็ตามสิ่งที่ฉันสนใจในการรู้ว่าทำไมในโหมดพาสซีฟเซิร์ฟเวอร์ ftp ไม่สามารถบอกไคลเอ็นต์ทั้งหมดให้ใช้พอร์ตเดียวกันสำหรับช่องสัญญาณข้อมูล (พูดเช่นพอร์ต 1024) ซึ่งต่างจากการให้แต่ละพอร์ตสุ่มจากไคลเอ็นต์ ช่วงพอร์ตที่ระบุ? อะไรคือเหตุผลทางเทคนิคสำหรับเหตุผลที่ระบุพอร์ตข้อมูลเดียวในการกำหนดค่าช่วงพอร์ตเซิร์ฟเวอร์ FTP เป็นไปไม่ได้หรือไม่แนะนำ ฉันคิดว่าเซิร์ฟเวอร์ ftp สามารถรองรับการเชื่อมต่อพร้อมกันได้มากมาย / มากแม้จะอยู่บนพอร์ตช่องสัญญาณเดียวเท่านั้น
เคิร์ต

1
เพราะ FTP เป็นปีศาจและต้องตายในที่สุด : D

1
ขอบคุณสำหรับการแก้ไขเกี่ยวกับการล็อคเซิร์ฟเวอร์ไปยังพอร์ตเดียวโดยเฉพาะ ฉันคิดอย่างถี่ถ้วนเกี่ยวกับวิธีการนั้น (และนี่คือสิ่งที่ฉันต้องการสำเร็จ) แต่สิ่งที่ฉันไม่เข้าใจค่อนข้างมากคือเหตุผลที่จะ จำกัด จำนวนเซสชัน FTP ที่เกิดขึ้นพร้อมกันที่เซิร์ฟเวอร์สามารถรองรับได้ อะไรที่จะป้องกันเซิร์ฟเวอร์ไม่ให้สนับสนุนเซสชัน FTP ที่เกิดขึ้นพร้อมกันหลายรายการในกรณีนี้ เพราะเซิร์ฟเวอร์ FTP ใด ๆ ที่รองรับการเชื่อมต่อพร้อมกันหลาย ๆ พอร์ตที่ 21 ดังนั้นทำไมไม่ใช้พอร์ต 12345 จากตัวอย่างของคุณด้วย? ฉันจะต้องทดสอบสิ่งนี้ในเชิงลึกยิ่งขึ้น
Kurt

อาจไม่ จำกัด จำนวนการเชื่อมต่อพร้อมกัน มันขึ้นอยู่กับว่าเซิร์ฟเวอร์ติดตามการเชื่อมต่อข้ามหลายเซสชันอย่างไร ลองยิงดู!
dmourati

btw ฉันจะต้องรอด้วยการทำเครื่องหมายคำตอบใด ๆ ว่าเป็นคำตอบที่ได้รับการยอมรับเพราะคำอธิบายที่ชัดเจนและทางเทคนิคเกี่ยวกับปัญหาเซสชัน FTP ที่เกิดขึ้นพร้อมกันหลายครั้งเมื่อล็อคพอร์ตข้อมูลไปยังพอร์ตเดียวเท่านั้นคือสิ่งที่ฉันสนใจมากที่สุด มันสามารถทำงานได้เมื่อใดมันจะไม่ทำงานทำไมถึงไม่แนะนำ ฯลฯ
Kurt

1

เซิร์ฟเวอร์ FTP อาจจะสามารถที่จะตรงกับพอร์ตเชื่อมต่อข้อมูลของลูกค้าเพื่อเชื่อมต่อการควบคุมพอร์ตของพวกเขาตาม IP แหล่งที่มาคนเดียวมากกว่าขึ้นอยู่กับจำนวนพอร์ตที่ใช้

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

ฉันสงสัยว่าเซิร์ฟเวอร์จำนวนมากไม่ได้สร้างซ็อกเก็ตข้อมูลจนกว่าไคลเอ็นต์จะร้องขอโหมดพาสซีฟ ในกรณีนั้นหากไคลเอนต์สองคนร้องขอโหมดพาสซีฟในเวลาเดียวกันซ็อกเก็ตที่สร้างขึ้นจะต้องมีหมายเลขพอร์ตที่ไม่ซ้ำกัน

แก้ไข : คิดอีกเหตุผลว่าทำไมเซิร์ฟเวอร์ FTP ไม่ทำเช่นนี้: เซิร์ฟเวอร์ไม่สามารถบอกผู้ใช้หลายคนด้วยที่อยู่ IP เดียวกัน


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

ซ็อกเก็ตตัวเองจะต้องไม่ซ้ำกัน คุณสามารถสร้างซ็อกเก็ตหนึ่งฟังบนพอร์ตและยอมรับการเชื่อมต่อได้มากเท่าที่คุณต้องการจากหนึ่งซ็อกเก็ตหรือคุณสามารถสร้างหนึ่งซ็อกเก็ตต่อผู้ใช้บนพอร์ตที่แตกต่างกันและยอมรับการเชื่อมต่อหนึ่งจากแต่ละซ็อกเก็ต หากคุณออกแบบเซิร์ฟเวอร์ให้ทำงานหนึ่งซ็อกเก็ตต่อผู้ใช้คุณจะต้องเขียนใหม่ทุกอย่างเพื่อเปลี่ยนแปลงวิธีอื่น ๆ และในตอนท้ายผู้คนบนโฮสต์ที่ใช้ร่วมกันหรือที่อยู่ IP หลังเดียวกันจะไม่สามารถ เชื่อมต่อในเวลาเดียวกันเนื่องจากไม่มีวิธีที่จะบอกการเชื่อมต่อข้อมูลของพวกเขาแยกจากกัน
DerfK

ขอบคุณ ฉันรู้สึกขอบคุณสำหรับคำตอบทั้งหมดที่ฉันได้รับในเรื่องและฉันคิดว่าฉันเริ่มได้รับการจัดการที่ดีงามในตอนนี้
Kurt

0

บนพอร์ต 21 หรือ 80 (เช่นเดียวกับพอร์ตที่รู้จักกันดีทั้งหมด) มีชุดโปรโตคอลที่ไคลเอนต์ใช้เพื่อบอกสิ่งที่ต้องการ วิธีนี้ทำให้เซิร์ฟเวอร์รู้ว่าคุณกำลังเชื่อมต่ออะไรอยู่ บนพอร์ตการเชื่อมต่อข้อมูลไม่มีโปรโตคอล สิ่งที่เซิร์ฟเวอร์รู้ - สิ่งเดียวที่ไม่เหมือนใครเกี่ยวกับการเชื่อมต่อนั้นคือหมายเลขพอร์ตที่คุณเชื่อมต่อ

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

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

แต่สิ่งนี้จะไม่ทำงานสำหรับ:

  • การเชื่อมต่อหลายครั้งจากเครื่องเดียวกัน (ไคลเอนต์ FTP ส่วนใหญ่รองรับการถ่ายโอน / คิวแบบขนาน)
  • การเชื่อมต่อจากเครื่องต่าง ๆ ภายในเครือข่าย (องค์กร) เดียวกันกับที่มี IP ภายนอกเดียวกัน

ดูเพิ่มเติมการเชื่อมต่อข้อมูล FTP อีกครั้ง


-1

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


1
คุณมีข้อมูลอ้างอิงสำหรับการอ้างสิทธิ์นี้หรือไม่?
Martin Prikryl

-2

เสียงเหมือนที่คุณรู้เกี่ยวกับพอร์ตควบคุมและพอร์ตข้อมูลดังนั้นฉันจะตัดการไล่ล่า พอร์ตการควบคุมนั้นมีการสื่อสารที่ต่อเนื่องเช่นเดียวกับพอร์ต 80 สำหรับเว็บไซต์ พวกเขาสามารถจัดการกับคำขอที่แตกต่างกัน (ไม่พร้อมกัน แต่ต้องปิดเพราะมันเสร็จเร็วมาก) พอร์ตข้อมูลในอีกทางหนึ่งคือสิ่งที่เวทมนตร์เกิดขึ้นกับ FTP หากคุณ จำกัด ตัวเองที่พอร์ตข้อมูลเดียวจะมีการถ่ายโอนข้อมูลเพียงครั้งเดียวเท่านั้นในแต่ละครั้ง พิจารณาการถ่ายโอนไฟล์ขนาดใหญ่ เมื่อเปิดดาต้าพอร์ตเดียวจะไม่มีข้อมูลอื่นใดที่สามารถเคลื่อนย้ายได้จนกว่าการถ่ายโอนจะเสร็จสมบูรณ์ ซึ่งหมายความว่าในขณะที่ถ่ายโอนผู้ใช้คนที่สองจะไม่สามารถแสดงรายการเนื้อหาไดเรกทอรีของโฟลเดอร์ ftp ได้ แน่ใจว่าพวกเขาจะสามารถเข้าสู่ระบบได้สำเร็จ แต่พฤติกรรมของพวกเขาจะเหมือนกับว่าพอร์ตข้อมูลนั้นไม่เปิดเลย หากคุณตกลงกับสิ่งนี้ พอร์ตเดียวจะทำงานได้ดีสำหรับคุณ โปรดทราบว่าไคลเอนต์ ftp บางตัว (ฉันคิดได้ 1 อันจากค้างคาว) โดยค่าเริ่มต้นจะตั้งค่าการเชื่อมต่อหลายรายการภายในเซสชันเดียวสำหรับการดาวน์โหลด ดังนั้นสำหรับไคลเอนต์นี้ในสถานการณ์พอร์ตเดียวให้พิจารณาการถ่ายโอนแบทช์เป็นไฟล์ขนาดใหญ่ 1 ไฟล์และไฟล์ขนาดเล็ก 4 ไฟล์

ไคลเอนต์เริ่มต้นการถ่ายโอนสำหรับไฟล์ขนาดใหญ่ครั้งแรกทั้งหมด dory hunky จากนั้นในขณะที่การถ่ายโอนกำลังดำเนินไปมันจะเริ่มไฟล์ที่สอง ไม่มีลูกเต๋า จากนั้นอันดับที่สามคือ zilch (ศัพท์เทคนิค) ในท้ายที่สุดบันทึกควรแสดง 1 สำเร็จและโอนล้มเหลว 4 รายการ การทำงานรอบ ๆ นั้นจะ จำกัด ลูกค้าไว้ที่การเชื่อมต่อหนึ่งครั้งต่อหนึ่งเซสชันและคุณก็พร้อมที่จะไป (สมมติว่ามีคนอื่นไม่ได้เข้ามาใกล้ประตูเลยการโอนหนึ่งครั้งนั้นเสร็จสมบูรณ์มากและอีกหนึ่งยังไม่เริ่ม )


2
อะไร? สิ่งนี้ไม่ถูกต้องสมบูรณ์ ซ็อกเก็ต TCP ถูกกำหนดโดย 4-tuple (IP ต้นทาง, พอร์ตต้นทาง, พอร์ตปลายทาง, IP ปลายทาง) ซ็อกเก็ต TCP จำนวนมากสามารถสร้างและให้บริการพร้อมกันจากพอร์ตปลายทางเดียวกัน: การจับคู่ IP กระบวนการเซิร์ฟเวอร์ FTP สามารถให้บริการข้อมูลสองและจากไคลเอนต์เครือข่ายจำนวนเท่าใดก็ได้ในเวลาเดียวกัน
EEAA
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.