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

Transmission Control Protocol (TCP) เป็นโปรโตคอลชั้นการขนส่งที่ให้บริการสตรีมข้อมูลที่มุ่งเน้นการเชื่อมต่อพร้อมการรับประกันการส่งมอบตามลำดับ

8
เว็บเซิร์ฟเวอร์สามารถรองรับการเชื่อมต่อซ็อกเก็ตได้กี่ช่อง
สมมติว่าฉันต้องการแชร์โฮสติ้งเสมือนหรือเฉพาะฉันอ่านที่ไหนสักแห่งที่เซิร์ฟเวอร์ / เครื่องสามารถรองรับการเชื่อมต่อ TCP 64,000 รายการในครั้งเดียวได้หรือไม่ โฮสติ้งประเภทใดที่สามารถจัดการได้โดยไม่คำนึงถึงแบนด์วิดท์ ฉันสมมติว่า HTTP ทำงานผ่าน TCP นี่หมายความว่ามีผู้ใช้ 64,000 คนเท่านั้นที่สามารถเชื่อมต่อกับเว็บไซต์ได้และถ้าฉันต้องการให้บริการมากขึ้นฉันต้องย้ายไปที่เว็บฟาร์มหรือไม่

12
เราควรเลือกพอร์ต TCP / IP เริ่มต้นสำหรับบริการใหม่อย่างไร
เมื่อพัฒนาแอปที่จะรับฟังพอร์ต TCP / IP ควรเลือกพอร์ตเริ่มต้นอย่างไร สมมติว่าแอปนี้จะติดตั้งในคอมพิวเตอร์หลายเครื่องและต้องการหลีกเลี่ยงความขัดแย้งของพอร์ต
110 networking  tcp 

5
Linux: มีการอ่านหรือรับข้อมูลจากซ็อกเก็ตที่หมดเวลาหรือไม่?
ฉันจะพยายามอ่านข้อมูลจากซ็อกเก็ตแบบหมดเวลาได้อย่างไร ฉันรู้ว่าเลือกเลือกแบบสำรวจมีฟิลด์หมดเวลา แต่การใช้พวกเขาปิดใช้งาน "tcp fast-path" ใน tcp reno stack ความคิดเดียวที่ฉันมีคือใช้ recv (fd, ... , MSG_DONTWAIT) ในวง
106 c  linux  sockets  tcp 

14
HTTP ใช้ UDP หรือไม่
นี่อาจเป็นคำถามโง่ ๆ : HTTP เคยใช้ User Datagram Protocol หรือไม่? ตัวอย่างเช่น: หากสตรีมมิ่ง MP3 หรือวิดีโอโดยใช้ HTTP จะใช้ UDP ในการขนส่งหรือไม่
104 http  tcp  udp 

2
ซ็อกเก็ต TCP และ UDP สามารถใช้พอร์ตเดียวกันได้หรือไม่
ก่อนอื่นมีปัญหากับการใช้ทั้ง UDP และ TCP บนเซิร์ฟเวอร์เดียวกันหรือไม่? ประการที่สองฉันสามารถใช้หมายเลขพอร์ตเดียวกันได้หรือไม่?
104 sockets  networking  tcp  udp 

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

15
ฉันจำเป็นต้อง heartbeat เพื่อให้การเชื่อมต่อ TCP เปิดอยู่หรือไม่
ฉันมีส่วนประกอบสองอย่างที่สื่อสารผ่าน TCP / IP ส่วนประกอบ A ทำหน้าที่เป็นเซิร์ฟเวอร์ / ผู้ฟังและส่วนประกอบ B คือไคลเอนต์ ทั้งสองควรสื่อสารกันโดยเร็วที่สุด สามารถมีการเชื่อมต่อเพียงครั้งเดียวได้ตลอดเวลา (แม้ว่าจะอยู่นอกเหนือคำถามนี้ก็ตาม) นักพัฒนาอาวุโสใน บริษัท ของฉันกล่าวว่าฉันจำเป็นต้องใช้การเต้นของหัวใจระดับแอปพลิเคชันระหว่างองค์ประกอบทั้งสองเพื่อให้แน่ใจว่าการเชื่อมต่อยังคงเปิดอยู่ ฉันคิดว่าการเชื่อมต่อยังคงเปิดอยู่ด้วย TCP / IP แต่ฉันได้อ่านบล็อก / ไซต์หลายแห่งบอกว่าการปฏิบัติตามมาตรฐานการเต้นของหัวใจระหว่างแอปพลิเคชันเหล่านี้ค่อนข้างเป็นมาตรฐาน ฉันรู้ว่าส่วนหนึ่งขององค์ประกอบเหตุผลส่วนประกอบของการเต้นของหัวใจ B จึงสามารถแจ้งฝ่ายสนับสนุนได้หากมีปัญหาในการสื่อสารกับส่วนประกอบ B (ลิงก์ไม่ทำงานหรือส่วนประกอบ B ไม่ทำงาน) การเต้นของหัวใจจำเป็นด้วยเหตุผลอื่นหรือไม่? เช่นเพื่อให้แน่ใจว่ามีบางสิ่งบางอย่าง "อยู่ในท่อ" เพื่อให้มันเปิดอยู่บ่อยๆ? ส่วนประกอบ A ขณะนี้ heartbeats ส่วนประกอบ B ทุกๆ 20 วินาทีและปิดการเชื่อมต่อหากไม่มีสิ่งใดได้รับกลับมาจากส่วนประกอบ B ใน 120 วินาที จากนั้นจะกลับมาฟังการเชื่อมต่ออีกครั้งภายใต้สมมติฐานว่าส่วนประกอบ B …
98 sockets  tcp 

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

13
คุณใช้อะไรเมื่อคุณต้องการ UDP ที่เชื่อถือได้?
หากคุณมีสถานการณ์ที่การเชื่อมต่อ TCP อาจช้าเกินไปและ 'การเชื่อมต่อ' UDP อาจไม่น่าเชื่อถือเกินไปคุณใช้อะไร? มีโปรโตคอล UDP มาตรฐานที่เชื่อถือได้หลายแบบคุณมีประสบการณ์อะไรบ้าง? โปรดหารือเกี่ยวกับหนึ่งโปรโตคอลต่อการตอบกลับและหากมีคนอื่นได้กล่าวถึงโปรโตคอลที่คุณใช้แล้วให้พิจารณาโหวตและใช้ความคิดเห็นเพื่ออธิบายอย่างละเอียดหากจำเป็น ฉันสนใจตัวเลือกต่างๆที่นี่ซึ่ง TCP อยู่ที่ปลายด้านหนึ่งของมาตราส่วนและ UDP อยู่ที่อีกด้านหนึ่ง มีตัวเลือก UDP ที่เชื่อถือได้หลากหลายและแต่ละองค์ประกอบของ TCP ไปยัง UDP ฉันรู้ว่าบ่อยครั้ง TCP เป็นตัวเลือกที่ถูกต้อง แต่การมีรายการทางเลือกมักจะมีประโยชน์ในการช่วยให้ได้ข้อสรุปดังกล่าว สิ่งต่างๆเช่น Enet, RUDP และอื่น ๆ ที่สร้างขึ้นบน UDP มีข้อดีข้อเสียหลายประการคุณเคยใช้มันมาแล้วมีประสบการณ์อย่างไรบ้าง? เพื่อหลีกเลี่ยงข้อสงสัยไม่มีข้อมูลเพิ่มเติมนี่เป็นคำถามสมมุติฐานและเป็นคำถามที่ฉันหวังว่าจะได้รับรายการคำตอบที่มีรายละเอียดเกี่ยวกับตัวเลือกและทางเลือกต่างๆที่มีให้สำหรับผู้ที่ต้องการตัดสินใจ

12
เหตุใดจึงเป็นไปไม่ได้โดยไม่ต้องพยายาม I / O เพื่อตรวจพบว่าซ็อกเก็ต TCP ถูกปิดอย่างสง่างามโดยเพียร์
จากคำถามล่าสุดฉันสงสัยว่าเหตุใดจึงเป็นไปไม่ได้ใน Java โดยไม่ต้องพยายามอ่าน / เขียนบนซ็อกเก็ต TCP เพื่อตรวจสอบว่าเพียร์ปิดซ็อกเก็ตอย่างสง่างาม? ดูเหมือนว่าจะเป็นเช่นนี้ไม่ว่าจะใช้พรี NIO Socketหรือ NIO SocketChannelก็ตาม เมื่อเพียร์ปิดการเชื่อมต่อ TCP อย่างสง่างาม TCP สแต็กทั้งสองด้านของการเชื่อมต่อจะรู้เกี่ยวกับข้อเท็จจริง ฝั่งเซิร์ฟเวอร์ (หนึ่งที่บำเพ็ญปิดระบบ) สิ้นสุดลงในรัฐFIN_WAIT2ในขณะที่ฝั่งไคลเอ็นต์ (หนึ่งที่ไม่ชัดเจนตอบสนองต่อการปิดเครื่อง) CLOSE_WAITจะสิ้นสุดลงในรัฐ เหตุใดจึงไม่มีเมธอดในSocketหรือSocketChannelที่สามารถสอบถามสแต็ก TCP เพื่อดูว่าการเชื่อมต่อ TCP พื้นฐานถูกยุติหรือไม่ สแต็ก TCP ไม่ให้ข้อมูลสถานะดังกล่าวหรือไม่? หรือเป็นการตัดสินใจออกแบบเพื่อหลีกเลี่ยงการโทรเข้าเคอร์เนลที่มีราคาแพง? ด้วยความช่วยเหลือของผู้ใช้ที่ได้โพสต์คำตอบสำหรับคำถามนี้แล้วฉันคิดว่าฉันเห็นว่าปัญหาอาจมาจากไหน ด้านที่ไม่ได้ปิดการเชื่อมต่ออย่างชัดเจนจะสิ้นสุดลงในสถานะ TCP CLOSE_WAITหมายความว่าการเชื่อมต่ออยู่ระหว่างการปิดระบบและรอให้ฝั่งนั้นออกการCLOSEดำเนินการของตัวเอง ฉันคิดว่ามันยุติธรรมพอที่isConnectedจะส่งคืนtrueและisClosedคืนสินค้าfalseแต่ทำไมถึงไม่มีบางอย่างเช่นisClosing? ด้านล่างนี้คือคลาสทดสอบที่ใช้ซ็อกเก็ต pre-NIO แต่จะได้ผลลัพธ์ที่เหมือนกันโดยใช้ NIO import java.net.ServerSocket; import java.net.Socket; public class MyServer { public static …

1
วิธีเชื่อมต่อกับ Traefik TCP Services ที่เปิดใช้งานการกำหนดค่า TLS ได้อย่างไร
ฉันกำลังพยายามกำหนดค่าTraefikเพื่อให้ฉันสามารถเข้าถึงบริการผ่านชื่อโดเมนและฉันไม่จำเป็นต้องตั้งค่าพอร์ตอื่น ยกตัวอย่างเช่นสองบริการ MongoDB ทั้งในพอร์ตเริ่มต้น แต่ในโดเมนที่แตกต่างกันและexample.localhost example2.localhostตัวอย่างนี้ใช้ได้เฉพาะ ฉันหมายถึงกรณีอื่นอาจใช้ได้ แต่ฉันไม่สามารถเชื่อมต่อกับพวกเขาและฉันไม่เข้าใจว่าปัญหาคืออะไร นี่อาจไม่เป็นปัญหากับ Traefik ฉันได้เตรียมที่เก็บพร้อมตัวอย่างที่ใช้งานได้ คุณเพียงแค่ต้องสร้างใบรับรองของคุณเองด้วย mkcert หน้าเว็บที่example.localhostส่งคืน403 Forbiddenข้อผิดพลาด แต่คุณไม่ควรกังวลเพราะวัตถุประสงค์ของการกำหนดค่านี้เพื่อแสดงว่า SSL ใช้งานได้ (กุญแจล็อคสถานะสีเขียว) 403จึงไม่มุ่งเน้นไปที่ การเชื่อมต่อ SSL กับmongoบริการใช้งานได้เท่านั้น ฉันทดสอบด้วยโปรแกรมRobo 3T หลังจากเลือกการเชื่อมต่อ SSL แล้วให้เปิดโฮสต์example.localhostและเลือกใบรับรองสำหรับการเชื่อมต่อที่ลงชื่อด้วยตนเอง (หรือเป็นของตัวเอง) และนั่นคือสิ่งเดียวที่ทำงานเช่นนั้น การเชื่อมต่อกับredis( Redis Desktop Manager ) และpgsql( PhpStorm , DBeaver , DbVisualizer ) ไม่ทำงานไม่ว่าฉันจะให้ใบรับรองหรือไม่ก็ตาม ฉันไม่ส่งต่อ SSL ไปยังบริการฉันเชื่อมต่อกับ Traefik เท่านั้น ฉันใช้เวลานานหลายชั่วโมงกับมัน ฉันค้นหาในอินเทอร์เน็ต …

1
การนับการส่ง TCP ใหม่ใน pyshark
เท่าที่ฉันรู้ pyshark เป็น Python wrapper to tshark ซึ่งเป็นเวอร์ชั่นบรรทัดคำสั่งของ Wireshark เนื่องจาก Wireshark และ tshark อนุญาตให้ตรวจจับการส่ง TCP อีกครั้งฉันจึงสงสัยว่าฉันจะใช้ pyshark ได้อย่างไร ฉันไม่พบเอกสารที่ดีดังนั้นฉันจึงไม่แน่ใจว่าคุณไม่สามารถทำสิ่งนั้นได้หรือว่าฉันไม่สามารถหาวิธีการที่เหมาะสม ขอบคุณ!
10 python  tcp  tshark  pyshark 

2
java.net.SocketException: รีเซ็ตการเชื่อมต่อในเทมเพลต Spring rest
ฉันมีปัญหาแปลก ๆ ที่นี่ รหัสด้านล่างใช้งานได้ดีจนกระทั่งฉันรีสตาร์ทเซิร์ฟเวอร์ Tomcat ที่ฝั่งไคลเอ็นต์ เมื่อฉันรีสตาร์ทเซิร์ฟเวอร์ Tomcat (โปรแกรมไคลเอนต์มีอยู่ในไฟล์ war) พร้อมไฟล์ war ล่าสุดของรหัสเดียวกันมันจะพ่นข้อผิดพลาดด้านล่าง ฉันใช้ JDK 8 ด้านล่างนี้คือตัวอย่างรหัส จากเบราว์เซอร์ฉันสามารถรับการตอบสนองจาก URL ที่ใช้ในโปรแกรมด้านล่าง แต่ไม่สามารถรับข้อมูลโดยใช้โปรแกรมจาวาหรือบุรุษไปรษณีย์ได้เช่นกัน package com.example.demo; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; import org.springframework.web.client.RestTemplate; @Component public class TestService implements CommandLineRunner{ @Override public void run(String... args) throws Exception { download(); } private void download() { System.out.println("Started …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.