-
可靠数据传输
:确保数据能够从程序的一端准确无误的传递给应用程序的另一端。 -
容忍丢失的应用
:应用程序在发送数据的过程中可能会存在数据丢失的情况。 -
非持续连接
:每个请求/响应会对经过不同的连接,每一个连接都会经过建立、保持、销毁这个过程。并且每个请求/响应后都会断开连接。 -
持续连接
:每个请求/响应都会经过相同的连接,也就是说每个请求/响应都可以复用这个连接,并且在每个请求/响应后不会断开连接。 -
传输控制协议
:英文名 TCP,通过名称可以大致知道 TCP 协议有控制传输的功能,主要体现在其可控,可靠性。TCP 为应用层提供了一种可靠的、面向连接的服务,它能够将分组可靠的传输到其他主机。 -
用户数据包协议
:英文名 UDP,它为应用层提供了一种无需建立连接就可以直接发送数据报的方法。 -
三次握手
:TCP 连接的建立需要经过三个报文段的发送,这种连接的建立过程被称为三次握手。 -
最大报文段长度
:即 MSS,它指的是从缓存中取出并放入报文段中的最大值。 -
最大传输单元
:即 MTU,它指的是通信双方能够接收有效载荷的大小,MSS 通常会根据 MTU 来设。 -
冗余 ACK
:就是再次确认某个报文段的 ACK,报文段的丢失会导致冗余 ACK 的出现。 -
快速重传
:即在报文段定时器过期之前重传丢失的报文段。 -
选择确认
:在报文段出现丢失的情况下,TCP 能够选择确认失序的报文段,这个机制通常和重传一起使用。 -
拥塞控制
:拥塞控制说的是,当某一段时间网络中的分组过多,使得接收端来不及处理,从而引起部分甚至整个网络性能下降的现象时采取的一种抑制发送端发送数据,等过一段时间或者网络情况改善后再继续发送报文段的一种方法。 -
四次挥手
:TCP 断开链接需要经过四个报文段的发送,这种断开过程是四次挥手。 -
发送缓存
:英文 send buffer,在发送报文时,TCP 不会立刻将报文发送出去,而是存储到内核的发送缓冲区中,等待合适的时机再发送。 -
接收缓存
:英文 receive buffer,同样在接收报文时,主机不会立刻对报文进行处理,而是存储到内核的接收缓冲区中,等待合适的时机再进行处理。 -
SYN
:Synchronize Sequence Numbers,是 TCP/IP 建立连接时发送的数据包,这个数据包就是一个同步序列号,标识客户端发送的是哪个请求。 -
ACK
:Acknowledge character,ACK 是对请求进行响应的数据包。 -
FIN
:Finish ,带有 FIN 标志位的数据包表示客户端希望断开连接。 -
三次握手中的状态变化
LISTEN
: 表示等待任何来自远程 TCP 和端口的连接请求。SYN-SEND
: 表示发送连接请求后等待匹配的连接请求。SYN-RECEIVED
: 表示已接收并发送连接请求后等待连接确认,也就是 TCP 三次握手中第二步后服务端的状态ESTABLISHED
: 表示已经连接已经建立,可以将应用数据发送给其他主机-
四次挥手中的状态变化
FIN-WAIT-1
: 表示等待来自远程 TCP 的连接终止请求,或者等待先前发送的连接终止请求的确认。FIN-WAIT-2
: 表示等待来自远程 TCP 的连接终止请求。CLOSE-WAIT
: 表示等待本地用户的连接终止请求。CLOSING
: 表示等待来自远程 TCP 的连接终止请求确认。LAST-ACK
: 表示等待先前发送给远程 TCP 的连接终止请求的确认(包括对它的连接终止请求的确认)。TIME-WAIT
: 表示等待足够的时间以确保远程 TCP 收到其连接终止请求的确认。CLOSED
: 表示连接已经关闭,无连接状态。-
滑动窗口
:英文 sliding window,它是一种流量控制技术,在互联网早期,通信双方通常不会考虑网络情况,一般都会直接进行通信,同时发送数据,很容易导致阻塞,谁也发不了数据,针对这种现象,提出了滑动窗口,通过滑动窗口,接收方会告诉发送方自己能够接收多少数据。 -
窗口长度
:窗口长度指的是已发送但还未确认的分组范围,如下图中的发送窗口结构就是窗口长度。 -
累积确认
:TCP 规定在一段时间内发送方只要收到最后一条接收方返回的确认 ACK ,而不用重传报文段。 -
冗余ACK
:由于 TCP 采用的是累计确认机制,即当接收端收到比期望序号大的报文段时,便会重复发送最近一次确认的报文段的确认信号,我们称之为冗余 ACK。 -
选择确认
:可选择性的确认失序报文段,而不是重传最后一个报文段。