TCP(传输控制协议)是互联网的核心协议之一,提供可靠的、面向连接的字节流传输服务。TCP协议栈包含多个关键机制,确保数据在网络中可靠传输。
为什么需要三次? 防止失效的连接请求报文段突然又传送到服务器,产生错误。
package main import ( "bufio" "fmt" "net" "time" ) func handleConnection(conn net.Conn) { defer conn.Close() remoteAddr := conn.RemoteAddr().String() fmt.Printf("客户端 %s 连接成功\n", remoteAddr) scanner := bufio.NewScanner(conn) for scanner.Scan() { text := scanner.Text() fmt.Printf("收到: %s\n", text) // 回显 conn.Write([]byte(text + "\n")) if text == "bye" { break } } } func main() { listener, err := net.Listen("tcp", ":8080") if err != nil { panic(err) } defer listener.Close() for { conn, err := listener.Accept() if err != nil { continue } go handleConnection(conn) } }
在某高并发Web服务项目中,我们通过调整TCP参数将QPS从5000提升至12000:
关键优化点: