1、关于TCP理解的重点(TCP协议可以理解为就是一段代码)

(1)、TCP协议工作在传输层,对上服务socket接口,对下调用IP层

(2)、TCP协议面向连接,通信前必须先3次握手建立连接关系后才能开始通信。

(3)、TCP协议提供可靠传输,不怕丢包、乱序等。

2、TCP如何保证可靠传输

(1)、TCP在传输信息前要求通信双方必须先握手,建立连接才能通信

(2)、TCP在接收方收到数据包后会ack给发送方,若发送方未收到ack会丢包重传

(3)、TCP的有效数据内容会附带校验,以防止内容在传递过程中损坏

(4)、TCP会根据网络带宽来自动调节适配速率(滑动窗口技术)

(5)、发送方会给各分割报文编号,接收方会校验编号,一旦顺序错误即会重传。

3、TCP的三次握手

(1)、建立连接需要三次握手

(2)、建立连接的条件:服务器处在listen状态时,客户端主动发起connect连接

4、TCP的四次握手

(1)、关闭连接需要四次握手

(2)、服务器或者是客户端都额可以主动发起关闭

注:这些握手协议已经封装在TCP协议内部,socket编程接口平时不用管

5、基于TCP通信的服务模式

(1)、具有公网(也就是外网-路由器)IP地址的服务器(或者使用动态IP地址映射技术)

(2)、服务器端socket、bind、listen后处于监听状态

(3)、客户端socket后,直接connect去发起连接

(4)、服务器收到并同意客户端接入后会建立TCP连接,然后双方开始收发数据,收发时是双向的,而且双方均可发起

(5)、双方均可发起关闭连接

6、常见的使用了TCP协议的网络应用

(1)、http、ftp

(2)、QQ服务器

(3)、mail服务器

以上内容,部分借鉴于https://www.cnblogs.com/lms0755/p/9053119.html,特此声明

最新文章

  1. fmt 标签格式化 日期
  2. Java 9将采用新的版本字符串格式
  3. java实现基于activeMQ的消息推送
  4. 《OOC》笔记(3)——C语言变长参数va_list的用法
  5. 基于双向链表的增删改查和排序(C++实现)
  6. ubuntu SecureCRT破解
  7. Android学习三:线程操作
  8. input:focus
  9. jquery实现input输入框实时输入触发事件代码
  10. hadoop权威指南 读书笔记
  11. javascript 获取url参数
  12. 微信公众平台入门--PHP,实现自身的主动回复文本,图像,点击事件
  13. KMP算法(转)
  14. Xshell4连接,Linux系统中文显示乱码解决办法
  15. no ia32-libs
  16. Win 10 系统下研华采集卡Advantech Navi SDK虚拟demo设备安装方法
  17. 导出excel表格,前端和后台导出
  18. javascript OOP(上)(八)
  19. Java 字符编码 ASCII、Unicode、UTF-8、代码点和代码单元
  20. 报警系统:php输出头信息以方便脚本抓取信息[排查篇]

热门文章

  1. 干干净净的grep
  2. nodeks —— fs模块 —— 从流中 读取和写入数据
  3. excel提取数字
  4. Java自学-集合框架 Comparator和Comparable
  5. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-picture
  6. caffe 官方demo python api
  7. c++程序—浮点数
  8. python---函数作用域
  9. JavaScript的运算符、条件判断、循环、类型转换(9.25 第十一天)
  10. UVA - 11584 Partitioning by Palindromes(划分成回文串)(dp)