คำถามติดแท็ก networking

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

27
ฉันจะตรวจสอบได้อย่างไรว่า ip อยู่ในเครือข่ายใน Python
ระบุที่อยู่ IP (พูด 192.168.0.1) ฉันจะตรวจสอบได้อย่างไรว่าอยู่ในเครือข่าย (พูด 192.168.0.0/24) ใน Python มีเครื่องมือทั่วไปใน Python สำหรับการจัดการที่อยู่ IP หรือไม่? สิ่งต่างๆเช่นการค้นหาโฮสต์, ที่อยู่ IP ไปยัง int, ที่อยู่เครือข่ายที่มี netmask ถึง int และอื่น ๆ ? หวังว่าในไลบรารี Python มาตรฐานสำหรับ 2.5

3
protobuf กับ gRPC
ฉันพยายามทำความเข้าใจ protobuf และ gRPC และฉันจะใช้ทั้งสองอย่างได้อย่างไร คุณช่วยฉันเข้าใจสิ่งต่อไปนี้ได้ไหม: พิจารณาโมเดล OSIว่าอะไรอยู่ที่ไหนเช่น Protobuf อยู่ที่เลเยอร์ 4? เมื่อนึกถึงการถ่ายโอนข้อความว่า "โฟลว์" เป็นอย่างไร gRPC กำลังทำอะไรในสิ่งที่ protobuf คิดถึง? หากผู้ส่งใช้ protobuf เซิร์ฟเวอร์จะใช้ gRPC ได้หรือไม่หรือ gRPC จะเพิ่มสิ่งที่เฉพาะไคลเอ็นต์ gRPC เท่านั้นที่สามารถส่งมอบได้ หาก gRPC สามารถทำให้การสื่อสารแบบซิงโครนัสและอะซิงโครนัสเป็นไปได้ Protobuf มีไว้สำหรับการมาร์แชลดังนั้นจึงไม่มีส่วนเกี่ยวข้องกับสถานะ - จริงหรือเท็จ? ฉันสามารถใช้ gRPC ในแอปพลิเคชันส่วนหน้าที่สื่อสารแทน REST หรือ GraphQL ได้หรือไม่ ฉันรู้แล้ว - หรือสมมติว่าฉันทำ - ว่า: Protobuf โปรโตคอลไบนารีสำหรับการแลกเปลี่ยนข้อมูล ออกแบบโดย Google …

13
TCP เทียบกับ UDP บนสตรีมวิดีโอ
ฉันเพิ่งกลับบ้านจากการสอบในการเขียนโปรแกรมเครือข่ายและหนึ่งในคำถามที่พวกเขาถามเราคือ"ถ้าคุณจะสตรีมวิดีโอคุณจะใช้ TCP หรือ UDP หรือไม่ให้คำอธิบายสำหรับทั้งวิดีโอที่จัดเก็บไว้และสตรีมวิดีโอสด" . สำหรับคำถามนี้พวกเขาคาดหวังคำตอบสั้น ๆ ของ TCP สำหรับวิดีโอที่จัดเก็บไว้และ UDP สำหรับวิดีโอสด แต่ฉันคิดถึงเรื่องนี้ระหว่างเดินทางกลับบ้านและจำเป็นต้องใช้ UDP สำหรับการสตรีมวิดีโอสดหรือไม่? ฉันหมายความว่าถ้าคุณมีแบนด์วิดท์สำหรับมันและบอกว่าคุณกำลังสตรีมการแข่งขันฟุตบอลหรือคอนเสิร์ตสำหรับเรื่องนั้นคุณจำเป็นต้องใช้ UDP จริงหรือ? สมมติว่าในขณะที่คุณกำลังสตรีมคอนเสิร์ตนี้หรืออะไรก็ตามที่ใช้ TCP คุณเริ่มสูญเสียแพ็กเก็ต (มีบางอย่างไม่ดีเกิดขึ้นในเครือข่ายระหว่างคุณและผู้ส่ง) และตลอดทั้งนาทีคุณจะไม่ได้รับแพ็กเก็ตใด ๆ สตรีมวิดีโอจะหยุดชั่วคราวและหลังจากนาทีที่แล้วแพ็กเก็ตจะเริ่มผ่านอีกครั้ง (IP พบเส้นทางใหม่สำหรับคุณ) สิ่งที่จะเกิดขึ้นคือ TCP จะส่งต่อนาทีที่คุณเสียไปและส่งสตรีมสดให้คุณต่อไป เนื่องจากสมมติว่าแบนด์วิดท์สูงกว่าอัตราบิตบนสตรีมและ ping ไม่สูงเกินไปดังนั้นในช่วงเวลาสั้น ๆ หนึ่งนาทีที่คุณเสียไปจะทำหน้าที่เป็นบัฟเฟอร์สำหรับสตรีมให้คุณด้วยวิธีนั้น หากเกิดการสูญเสียแพ็กเก็ตอีกครั้งคุณจะไม่สังเกตเห็น ตอนนี้ฉันนึกถึงอุปกรณ์บางอย่างที่อาจไม่ใช่ความคิดที่ดีเช่นการประชุมทางวิดีโอที่คุณต้องอยู่ที่จุดสิ้นสุดของสตรีมเสมอเพราะความล่าช้าระหว่างวิดีโอแชทนั้นแย่มาก แต่ ระหว่างการแข่งขันฟุตบอลหรือคอนเสิร์ตจะเป็นอย่างไรหากคุณอยู่เบื้องหลังสตรีมเพียงนาทีเดียว นอกจากนี้คุณยังรับประกันได้ว่าคุณจะได้รับข้อมูลทั้งหมดและจะดีกว่าหากบันทึกไว้ดูภายหลังเมื่อมีข้อมูลเข้ามาโดยไม่มีข้อผิดพลาด สิ่งนี้ทำให้ฉันได้คำถาม มีข้อเสียที่ฉันไม่รู้เกี่ยวกับการใช้ TCP สำหรับสตรีมมิงแบบสดหรือไม่? หรือที่จริงแล้วถ้าคุณมีแบนด์วิดท์สำหรับมันคุณควรไปหา TCP เพราะมัน "ดีกว่า" สำหรับเครือข่าย …

12
โปรแกรมที่กำหนดใช้พอร์ตใด [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน7 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันต้องการทราบว่าพอร์ตใดที่โปรแกรมหนึ่งใช้อยู่ มีโปรแกรมออนไลน์หรือที่มาพร้อมกับ windows ที่จะบอกฉันว่ากระบวนการใดที่ใช้พอร์ตใดบนคอมพิวเตอร์ของฉัน ป.ล. - ก่อนที่คุณจะดาวน์โมดนี้เพราะไม่ใช่คำถามเกี่ยวกับการเขียนโปรแกรมฉันกำลังมองหาโปรแกรมเพื่อทดสอบโค้ดเครือข่าย

7
ได้รับชื่อของคอมพิวเตอร์ windows ที่ใช้สคริปต์ python?
โดยพื้นฐานแล้วฉันมีคอมพิวเตอร์ Windows สองเครื่องในเครือข่ายของฉันซึ่งจะใช้งานสคริปต์ python ควรใช้ชุดตัวเลือกการกำหนดค่าที่แตกต่างกันในสคริปต์ทั้งนี้ขึ้นอยู่กับคอมพิวเตอร์ที่เรียกใช้สคริปต์นี้ ฉันจะรับชื่อคอมพิวเตอร์นั้นในสคริปต์ python ได้อย่างไร สมมติว่าสคริปต์ทำงานบนคอมพิวเตอร์ชื่อ DARK-TOWER ฉันต้องการเขียนสิ่งนี้: >>> python.library.get_computer_name() 'DARK-TOWER' มีไลบรารีมาตรฐานหรือของบุคคลที่สามที่ฉันสามารถใช้ได้หรือไม่?

3
ช่วงหมายเลขพอร์ต TCP ที่ดีที่สุดสำหรับแอปพลิเคชันภายใน [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบพร้อมข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันทำงานในสถานที่ที่แต่ละแอปพลิเคชันภายในของเราทำงานบนอินสแตนซ์ Tomcat แต่ละตัวและใช้พอร์ต TCP เฉพาะ ช่วงพอร์ต IANA ที่ดีที่สุดที่จะใช้สำหรับแอปเหล่านี้คืออะไรเพื่อหลีกเลี่ยงการชนกันของหมายเลขพอร์ตกับกระบวนการอื่น ๆ บนเซิร์ฟเวอร์ จากhttp://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xmlนี่คือตัวเลือกที่ฉันเห็นในปัจจุบัน: พอร์ตระบบ (0-1023): ฉันไม่ต้องการใช้พอร์ตใด ๆ เหล่านี้เนื่องจากเซิร์ฟเวอร์อาจใช้บริการบนพอร์ตมาตรฐานในช่วงนี้ พอร์ตผู้ใช้ (1024-49151): เนื่องจากแอปพลิเคชันอยู่ภายในฉันไม่ได้ตั้งใจที่จะขอให้ IANA จองหมายเลขสำหรับแอปพลิเคชันใด ๆ ของเรา อย่างไรก็ตามฉันต้องการลดความเป็นไปได้ที่กระบวนการอื่นจะใช้พอร์ตเดียวกันเช่น Oracle Net Listener ในปี 1521 ไดนามิกและ / หรือพอร์ตส่วนตัว (49152-65535): ช่วงนี้เหมาะสำหรับหมายเลขพอร์ตที่กำหนดเอง สิ่งเดียวที่ฉันกังวลคือหากสิ่งนี้เกิดขึ้น: ก. ฉันกำหนดค่าหนึ่งในแอปพลิเคชันของฉันให้ใช้พอร์ต X b แอปพลิเคชันจะหยุดทำงานสักครู่หรือหลายชั่วโมง (ขึ้นอยู่กับลักษณะของแอป) …

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

7
เมื่อใดจึงจำเป็นต้องใช้อ็อพชัน TCP SO_LINGER (0)
ฉันคิดว่าฉันเข้าใจความหมายที่เป็นทางการของตัวเลือก ในรหัสเดิมที่ฉันจัดการอยู่ตอนนี้ตัวเลือกนี้ถูกใช้ ลูกค้าบ่นเกี่ยวกับ RST เป็นการตอบสนองต่อ FIN จากด้านข้างเมื่อปิดการเชื่อมต่อจากด้านข้าง ฉันไม่แน่ใจว่าจะสามารถถอดออกได้อย่างปลอดภัยเนื่องจากฉันไม่เข้าใจว่าควรใช้เมื่อใด คุณช่วยยกตัวอย่างได้ไหมว่าจะต้องมีตัวเลือกเมื่อใด

12
รับที่อยู่ IP ของเครื่อง
คำถามนี้เกือบจะเหมือนกับคำถามที่ถามก่อนหน้านี้Get the IP Address of local computer -Question แต่ผมต้องการที่จะหาที่อยู่ IP (e) ของเครื่องลินุกซ์ ดังนั้น: วิธีทำผม - โปรแกรมในภาษา C ++ - ตรวจสอบที่อยู่ IP ของเซิร์ฟเวอร์ลินุกซ์ใบสมัครของฉันทำงานอยู่ใน เซิร์ฟเวอร์จะมีที่อยู่ IP อย่างน้อยสองแห่งและฉันต้องการที่อยู่เฉพาะ (ที่อยู่ในเครือข่ายที่กำหนด (ที่อยู่สาธารณะ)) ฉันแน่ใจว่ามีฟังก์ชั่นง่ายๆที่จะทำ แต่ที่ไหนล่ะ เพื่อให้สิ่งต่างๆชัดเจนขึ้น: เซิร์ฟเวอร์จะมี "localhost": 127.0.0.1 อย่างชัดเจน เซิร์ฟเวอร์จะมีที่อยู่ IP ภายใน (การจัดการ): 172.16.xx เซิร์ฟเวอร์จะมีที่อยู่ IP ภายนอก (สาธารณะ): 80.190.xx ฉันต้องการค้นหาที่อยู่ IP ภายนอกเพื่อผูกแอปพลิเคชันของฉันเข้ากับมัน เห็นได้ชัดว่าฉันสามารถเชื่อมโยงกับ INADDR_ANY ได้ …

5
ฉันจะเพิ่ม RAM และตั้งค่าเครือข่ายเฉพาะโฮสต์ใน Vagrant ได้อย่างไร
ฉันต้องการเพิ่ม RAM เป็นอย่างน้อย 1 GB และฉันต้องการกำหนดค่าเครือข่าย "โฮสต์เท่านั้น" ให้ใช้ "199.188.44.20" นี่คือของฉันVagrantfile: # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant::Config.run do |config| config.vm.customize ["modifyvm", :id, "--memory", 1024] config.vm.network :hostonly, "199.188.44.20" config.vm.define :web do |web_config| web_config.vm.box = "lucid32" web_config.vm.forward_port 80, 8080 web_config.vm.provision :puppet do |puppet| puppet.manifests_path = "manifests" puppet.manifest_file = …

2
ข้อควรระวังในการเลือก / สำรวจเทียบกับเครื่องปฏิกรณ์ epoll ใน Twisted
ทุกสิ่งที่ฉันอ่านและได้สัมผัส (แอพที่ใช้ Tornado) ทำให้ฉันเชื่อว่า ePoll เป็นสิ่งทดแทนตามธรรมชาติสำหรับเครือข่ายแบบเลือกและแบบสำรวจโดยเฉพาะอย่างยิ่งกับ Twisted ซึ่งทำให้ฉันหวาดระแวงมันค่อนข้างหายากสำหรับเทคนิคหรือวิธีการที่ดีกว่าที่จะไม่มาพร้อมกับราคา การอ่านการเปรียบเทียบสองสามโหลระหว่าง epoll และทางเลือกแสดงให้เห็นว่า epoll เป็นแชมป์ในด้านความเร็วและความสามารถในการปรับขนาดได้อย่างชัดเจนโดยเฉพาะอย่างยิ่งการปรับขนาดเป็นเส้นตรงซึ่งยอดเยี่ยมมาก ที่กล่าวว่าเกี่ยวกับการใช้โปรเซสเซอร์และหน่วยความจำ epoll ยังคงเป็นแชมป์หรือไม่?

15
ฉันจะรับสถิติปริมาณงานอินเทอร์เฟซเครือข่ายปัจจุบันบน Linux / UNIX ได้อย่างไร [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ เครื่องมือเช่น MRTG ให้กราฟปริมาณงานเครือข่าย / แบนด์วิดท์สำหรับการใช้งานเครือข่ายปัจจุบันบนอินเทอร์เฟซเฉพาะเช่น eth0 ฉันจะส่งคืนข้อมูลนั้นที่บรรทัดคำสั่งบน Linux / UNIX ได้อย่างไร โดยเฉพาะอย่างยิ่งสิ่งนี้จะไม่ต้องติดตั้งสิ่งอื่นใดนอกเหนือจากสิ่งที่มีอยู่ในระบบตามมาตรฐาน

8
Java socket API: จะทราบได้อย่างไรว่าการเชื่อมต่อถูกปิดแล้ว?
ฉันพบปัญหาบางอย่างกับ Java socket API ฉันกำลังพยายามแสดงจำนวนผู้เล่นที่เชื่อมต่อกับเกมของฉันอยู่ ง่ายต่อการตรวจสอบว่าผู้เล่นเชื่อมต่อเมื่อใด อย่างไรก็ตามดูเหมือนว่าจะยากโดยไม่จำเป็นที่จะระบุว่าเมื่อใดที่ผู้เล่นตัดการเชื่อมต่อโดยใช้ socket API การเรียกisConnected()ซ็อกเก็ตที่ถูกตัดการเชื่อมต่อจากระยะไกลดูเหมือนจะกลับมาtrueเสมอ ในทำนองเดียวกันเรียกบนซ็อกเก็ตที่ได้รับการปิดระยะไกลเสมอดูเหมือนว่าจะกลับมาisClosed() falseฉันได้อ่านแล้วเพื่อตรวจสอบว่าซ็อกเก็ตถูกปิดจริงหรือไม่ข้อมูลจะต้องถูกเขียนไปยังสตรีมเอาต์พุตและต้องมีข้อยกเว้น นี่ดูเหมือนเป็นวิธีที่ไม่สะอาดจริงๆในการจัดการกับสถานการณ์นี้ เราจะต้องส่งสแปมข้อความขยะผ่านเครือข่ายอย่างต่อเนื่องเพื่อที่จะได้รู้ว่าเมื่อซ็อกเก็ตปิดไปแล้ว มีทางออกอื่นอีกไหม?

11
ฉันจะฆ่ากระบวนการใด ๆ ที่ใช้พอร์ต 8080 เพื่อให้ฉันเร่ร่อนได้อย่างไร
ใน MacOSX ฉันใช้ Packer เพื่อสร้างกล่อง Vagrant ดังนั้นฉันจึงต้องนำมันขึ้นมาอย่างต่อเนื่องและฉีกมันลง ฉันกำลังพยายามที่จะ 'vagrant up' และได้รับข้อผิดพลาดมาตรฐานเนื่องจากมีการใช้พอร์ต: "Vagrant ไม่สามารถส่งต่อพอร์ตที่ระบุบน VM นี้ได้เนื่องจากจะชนกับแอปพลิเคชันอื่น ๆ ที่รับฟังพอร์ตเหล่านี้อยู่แล้วพอร์ตที่ส่งต่อไปยัง 8080 ถูกใช้งานบนเครื่องโฮสต์แล้ว" วิธีแก้ปัญหาดูเหมือนง่ายพอ: ฉันแค่ต้องระบุกระบวนการที่เปิดพอร์ต 8080 และฆ่ากระบวนการนั้นใช่ไหม. มันไม่ง่ายอย่างนั้น ถ้าฉันรันคำสั่ง: nmap localhost -p 8080 ฉันได้รับผลลัพธ์ต่อไปนี้: PORT STATE SERVICE 8080/tcp open http-proxy หากฉันรันคำสั่งต่อไปนี้: top -o prt พอร์ตสูงสุดที่ใช้งานในปี 1360 หากฉันรันคำสั่งต่อไปนี้: netstat -tulpn | grep :8080 ฉันได้รับ: netstat: …

5
วิธีสื่อสารระหว่าง Docker container ผ่าน“ hostname”
ฉันวางแผนที่จะแยกเซิร์ฟเวอร์ monolthic ของฉันออกเป็นคอนเทนเนอร์ Docker ขนาดเล็กจำนวนมาก แต่ยังไม่พบวิธีแก้ปัญหาที่ดีสำหรับ "การสื่อสารระหว่างคอนเทนเนอร์" นี่คือสถานการณ์เป้าหมายของฉัน: ฉันรู้วิธีเชื่อมโยงคอนเทนเนอร์เข้าด้วยกันและวิธีแสดงพอร์ต แต่ไม่มีวิธีใดที่ฉันพอใจ มีวิธีใดในการสื่อสารผ่านชื่อโฮสต์ (ชื่อคอนเทนเนอร์) ระหว่างคอนเทนเนอร์เช่นเดียวกับในเครือข่ายเซิร์ฟเวอร์แบบเดิมหรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.