TCP协议笔记

Posted 一只懒懒的coder

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP协议笔记相关的知识,希望对你有一定的参考价值。

Preface


最近在JavaNIO相关的知识,由于JavaNIO的Socket底层是使用c的socket函数,而socket则是对底层协议的抽象;所以想学好socket就必须学好底层协议。

这篇文章采用的是前文讲述的“思维导图学习法”的方式来进行学习,正好能一起学习思维导图的用法,有描述的不正确的地方希望各位多多指正!!

TCP协议

我们带着三个问题来认识下TCP协议:

  • 基本特性是什么?

  • 怎么连接的?

  • 数据是怎么通信的?

TCP协议笔记


基本特性

TCP协议笔记


连接过程

连接阶段包含了两个角色:

  • client

  • server

连接过程包括:

  • 建立连接:三次握手

  • 断开连接:四次挥手

重点:为什么是三次握手或四次挥手?(ps:面试常问的题,可以结合过程和我这里标记的答案一起理解下)


数据通信

数据通信方式:

  • 拆包发送:将一个数据包拆分成N个小包发送出去

  • 失败重传:失败了会重新发送该小数据包,关键字:RTO,RTT

  • 拥塞控制:网络保护的一种手段,cwndssthresh两个变量,四种算法来控制整个协议包发送的流控策略



以上是关于TCP协议笔记的主要内容,如果未能解决你的问题,请参考以下文章

TCP协议学习笔记

TCP/IP详解阅读笔记:TCP协议

TCP协议学习笔记报文分析

TCP 协议学习笔记

(学习笔记)TCP与UDP的区别

(学习笔记)TCP与UDP的区别