
计算机网络
看了个寂寞
一时刷题一时爽,一直刷题一直爽!
展开
-
TCP服务器和客户端交互
https://blog.youkuaiyun.com/xiongping_/article/details/47722079转载 2020-07-15 15:53:47 · 206 阅读 · 0 评论 -
断开一个 TCP 连接则需要“四次挥手”
【注意】中断连接端可以是Client端,也可以是Server端。 1.假设Client端发起中断连接请求,也就是发送FIN报文。Server端接到FIN报文后,意思是说"我Client端没有数据要发给你了",但是如果你还有数据没有发送完成,则不必急着关闭Socket,可以继续发送数据。 2.所以你先发送ACK,"告诉Client端,你的请求我收到了,但是我还没准备好,请继续你等我的消息"。这个时候Client端就进入FIN_WAIT状态,继续等待Server端的FIN报文。 3.当Server端确定数转载 2020-07-09 15:56:51 · 200 阅读 · 0 评论 -
为什么TCP客户端最后还要发送一次确认呢?
一句话,主要防止已经失效的连接请求报文突然又传送到了服务器,从而产生错误。 如果使用的是两次握手建立连接,假设有这样一种场景,客户端发送了第一个请求连接并且没有丢失,只是因为在网络结点中滞留的时间太长了,由于TCP的客户端迟迟没有收到确认报文,以为服务器没有收到,此时重新向服务器发送这条报文,此后客户端和服务器经过两次握手完成连接,传输数据,然后关闭连接。此时此前滞留的那一次请求连接,网络通畅了到达了服务器,这个报文本该是失效的,但是,两次握手的机制将会让客户端和服务器再次建立连接,这将导致不必要的错误和转载 2020-07-09 15:04:21 · 723 阅读 · 0 评论 -
第二次握手的时候,为什么要传回SYN?
告诉客户端,服务器端收到的消息确实是客户端发送的信号 SYN 是 TCP/IP 建立连接时使用的握手信号。在客户机和服务器之间建立正常的 TCP 网络连接时,客户机首先发出一个 SYN 消息,服务器使用 SYN-ACK 应答表示接收到了这个消息,最后客户机再以ACK(Acknowledgement[汉译:确认字符 ,在数据通信传输中,接收站发给发送站的一种传输控制字符。它表示确认发来的数据已经接受无误。 ])消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间.原创 2020-07-09 14:58:36 · 1795 阅读 · 3 评论 -
TCP三次握手
SYN:建立联机 ACK:确认 第一次握手:客户端发送SYN报文 (客户端什么也不能确认,服务器端确认对方发送正常) 第二次握手:服务器端接收连接请求后回复ACK报文 (客户端确认:自己发送,接收正常。对方发送,接收正常 服务器端确认:自己接收正常,对方发送正常) 第三次握手:客户端收到ACK报文后也向服务器端发送ACK报文 (客户端确认:自己发送,接收正常。对方发送,接收正常 服务器端确认:自己发送,接收正常。对方发送,接收正常) 注:括号中的内容是为什么要三次握手,三...原创 2020-07-09 14:52:00 · 201 阅读 · 0 评论