TCP协议
来源:互联网 发布:如何防止sql注入 编辑:程序博客网 时间:2024/06/15 02:29
本章知识点主要来自朱有鹏老师视频课,部分自己添加总结
关于TCP理解的重点
- TCP协议工作在传输层【TCP/IP与TCP】,对上服务socket接口,对下调用IP层
- TCP协议面向连接,通信前必须先3次握手建立连接关系后才能开始通信。
- TCP协议提供可靠传输(特色,思考:TCP如何保证可靠性的?),不怕丢包、乱序等。
TCP如何保证可靠传输
- TCP在传输有效信息前要求通信双方必须先握手,建立连接才能通信
- TCP的接收方收到数据包后会ack给发送方,若发送方未收到ack会丢包重传
- TCP的有效数据内容会附带校验,以防止内容在传递过程中损坏
- TCP会根据网络带宽来自动调节适配速率(滑动窗口技术)
- 发送方会给各分割报文编号,接收方会校验编号,一旦顺序错误即会重传。
图片引用自:http://www.jellythink.com/archives/705
TCP的三次握手
- 建立连接需要三次握手
- 建立连接的条件:服务器listen时,客户端主动发起connect
TCP的四次握手
- 关闭连接需要四次握手
- 服务器或者客户端都可以主动发起关闭
注:这些握手协议已经封装在TCP协议内部,socket编程接口平时不用管
基于TCP通信的服务模式(编程思路)
- 具有公网IP地址的服务器(或者使用动态IP地址映射技术)
- 服务器端socket、bind、listen、accept后处于监听状态
- 客户端socket后,直接connect去发起连接。
- 服务器收到并同意客户端接入后会建立TCP连接,然后双方开始收发数据,收发时是双向的,而且双方均可发起
- 双方均可发起关闭连接
常见的使用了TCP协议的网络应用
- http、ftp
- QQ服务器
- mail服务器
阅读全文
0 0
- TCP协议
- tcp协议
- tcp协议
- TCP协议
- TCP协议
- TCP协议
- TCP协议
- TCP协议
- TCP协议
- TCP协议
- TCP协议
- TCP协议
- TCP协议
- TCP协议
- TCP协议
- TCP协议
- TCP协议
- TCP协议
- hdu 1532 Drainage Ditches(最大流 三种模板:EK、Dinic、isap)
- 解析Kotlin伴随对象
- FFmpeg
- eclipse 创建maven 项目 动态web工程完整示例
- Detour的安装
- TCP协议
- 从零开始ARM裸机开发之建立开发环境
- delphi简单的聊天室(两个人)
- R语言数字转字符串:自动补0
- 【Redis学习】Redis实现分布式锁
- Java 8种基本类型包装类和String的常量池
- 关于静态方法为什么不能被重写的一点思考以及overload的一些坑。
- 实现一个函数判断year是不是润年。
- HDU 5521 Meeting ( nlogn的dijkstra+拆点)