TCP三次握手的理解
2016-01-17 20:22
429 查看
对于网上TCP的理解,不近满意,感觉有些解答还是太笼统,还好有大大们解答问题.现在自己总结一下.
1.TCP连接为什么是三次握手
(1)客户端发SYN包--------------->服务端 //一开始的请求,没问题
(2)服务端发包SYN+ACK------->客户端 //回应.刚开始想:为什么不接到请求包后立刻开启?万一这个请求的IP是不存在的呢,也就是,假IP,那么服务端发送的包都是白发的
(3)客户端回应ACK--------------->服务端 //能接受服务端的包,说明,双方的连接没问题,可以正常发数据了
理解: 服务端发个包给客户端是测试一下,你请求的地址我能不能联通?如果是假IP,我就不跟你玩了.如果是可以连通的,说明你没骗我.
但是对于断开连接的四次握手....
在做项目的时候,C/S的TCP连接后,可以发送数据正常后,我把客户端的网线拔了,这时候,服务端的程序并没有反应,然后我再连接上网线,这时候再发数据,服务端都没有接收信息.我猜想是端口被占用了,也不清楚....等以后再补全这个问题
1.TCP连接为什么是三次握手
(1)客户端发SYN包--------------->服务端 //一开始的请求,没问题
(2)服务端发包SYN+ACK------->客户端 //回应.刚开始想:为什么不接到请求包后立刻开启?万一这个请求的IP是不存在的呢,也就是,假IP,那么服务端发送的包都是白发的
(3)客户端回应ACK--------------->服务端 //能接受服务端的包,说明,双方的连接没问题,可以正常发数据了
理解: 服务端发个包给客户端是测试一下,你请求的地址我能不能联通?如果是假IP,我就不跟你玩了.如果是可以连通的,说明你没骗我.
但是对于断开连接的四次握手....
在做项目的时候,C/S的TCP连接后,可以发送数据正常后,我把客户端的网线拔了,这时候,服务端的程序并没有反应,然后我再连接上网线,这时候再发数据,服务端都没有接收信息.我猜想是端口被占用了,也不清楚....等以后再补全这个问题
相关文章推荐
- TCP的流量控制和拥塞控制
- httpclient,socket
- iOS9https设置info.plist
- CentOS网络配置详解
- CentOS网络配置详解
- Fiddler- -Composer创建和发送HTTP Request
- Java高级部分网络编程重点总结
- MFC HTTP访问URL
- (二)计算机网络体系结构与参考模型
- httpd-2.4特性
- Android 4.0 HttpURLCon…
- NAT,网络地址转换详解
- Android 使用OkHttp支持HttpDNS
- iOS开发之使用AFNetwork请求带有apikey的网络数据
- BZOJ 1532: [POI2005]Kos-Dicing|网络流
- 在Oracle网络结构中解决连接问题
- HTTP请求报文和HTTP响应报文
- 使用libevent编写高并发HTTP server
- (一)计算机网络概述
- 利用Theano实现简单手写识别