网络通信 - TCP
2016-04-08 09:41
344 查看
TCP vs UDP
1 传输控制协议/用户数据报协议
2 先建立连接再收发数据/不需建立连接直接收发数据
3 保证数据顺序/不保证
4 数据收发可靠/可能丢包
TCP的三次握手和四次挥手
三次握手
1 C发SYN给S,进入SYN_SEND状态。
2 S发ACK+SYN给C,进入SYN_RECV状态。
3 C发ACK给S,C和S进入ESTABLISHED状态。
SYN包:同步序列号。
ACK包:用于确认,一般为对方SYN包中的值+1。
四次挥手
1 C发FIN给S
2 S发ACK给C
3 S发FIN给C
4 C发ACK给S
为什么挥手多一次?
建立TCP连接时,没有数据通信,所以S可以一次发送ACK+SYN包。
断开TCP连接时,S收到FIN请求,只能说明C的数据收发已经完成,而S的数据收发可能还没有结束,故不能马上发送FIN给C。
TCP收发数据时,确认序列号=原始序列号+TCP段的长度。
1 传输控制协议/用户数据报协议
2 先建立连接再收发数据/不需建立连接直接收发数据
3 保证数据顺序/不保证
4 数据收发可靠/可能丢包
TCP的三次握手和四次挥手
三次握手
1 C发SYN给S,进入SYN_SEND状态。
2 S发ACK+SYN给C,进入SYN_RECV状态。
3 C发ACK给S,C和S进入ESTABLISHED状态。
SYN包:同步序列号。
ACK包:用于确认,一般为对方SYN包中的值+1。
四次挥手
1 C发FIN给S
2 S发ACK给C
3 S发FIN给C
4 C发ACK给S
为什么挥手多一次?
建立TCP连接时,没有数据通信,所以S可以一次发送ACK+SYN包。
断开TCP连接时,S收到FIN请求,只能说明C的数据收发已经完成,而S的数据收发可能还没有结束,故不能马上发送FIN给C。
TCP收发数据时,确认序列号=原始序列号+TCP段的长度。
相关文章推荐
- https工作原理
- 没有终结点在侦听可以接受消息的 http://192.168.1.63:8085/LoginService。这通常是由于不正确的地址或者 SOAP 操作导致的
- 网络通信 - IP
- 中转Http请求
- JAVA Socket 底层是怎样基于TCP/IP 实现的
- AndroidHttp通信 HTTP Client与HttpURLConnection的区别
- 网络层概述.虚电路网络和数据报网络
- 详解HttpURLConnection
- 什么是 HTTPS
- http-live-streaming之文档
- HTTP 请求方式: GET和POST的比较
- Nginx深入详解之多进程网络模型
- 专家建议弹幕“实名制”,混A站B站的你们方不方?
- 网络编程学习——UDP(一)
- https下本地js弹出框不起作用
- httpclient 4.0 get遇到302重定向后会自动跳转
- 执行httpclient.execute()方法 java程序卡住不动 无法继续运行
- ios中的网络请求
- VIEWGOOD(远古)广电行业应用之网络电视台
- https 流程及其配置方式