快速导航

进程到进程的通信

面向连接的服务,步骤

TCP的特点?

TCP报文段的格式?

TCP的连接?

半关闭?

几种报文传递情况?

TCP软件包?

进程到进程的通信

TCP/IP TCP 传输控制协议_缓存

TCP在协议族中的位置

TCP/IP TCP 传输控制协议_面向连接_02

TCP使用到的一些熟知端口号

 

TCP是一种面向交流的协议。这一点与UDP不同。

TCP创造了一种环境,它使得两个进程好像被一个假想的管道所连接,而这个管道经过因特网传输着两个进程之间的数据。如下图所示:

TCP/IP TCP 传输控制协议_缓存_03

因为发送进程和接收进程可能以不同的速度写入数据和读取数据,因此TCP需要用缓存来存储数据。发送缓存和接收缓存。

TCP/IP TCP 传输控制协议_面向连接_04

上图就是缓存的图例

运输层的是一些报文段。

网络层是数据报。

应用层是报文。

TCP/IP TCP 传输控制协议_数据_05

展示了封装和解压的过程,也清晰的看到了数据的变化,报文,报文段,数据报,帧,比特...这么个过程

TCP/IP TCP 传输控制协议_面向连接_06

更真实的一种情况,报文段传输。而不是字节流。

TCP/IP TCP 传输控制协议_数据_07

面向连接的服务,步骤

有以下三个阶段

1.这两个TCP在它们之间建立一条虚连接。(不是物理连接)

2.数据在两个方向上交换。

3.连接被终止。

TCP的特点?

编号系统(确认号,序号-每个报文段指派一个序号)

流量控制

差错控制

阻塞控制

TCP报文段的格式?

 TCP/IP TCP 传输控制协议_数据_08

TCP的连接?

既然IP是无连接协议,为什么使用IP服务的TCP却是面向连接的?

关键在于TCP的连接是虚拟的,而不是物理的。TCP工作在更高的层次上。TCP使用IP的服务把一个个报文段交付给接收方,连接本身是由TCP控制的。如果一个报文段丢失或受损,那么这个报文段就被重传。IP并不知道TCP的重传行为。

如果一个报文段没有按序到达,那么TCP会保留它,直至丢失的报文段到达为止。

三个阶段:建立连接、数据传输、连接终止。

TCP/IP TCP 传输控制协议_缓存_09

三向握手建立连接

建立完连接之后就要进行数据传输了

TCP/IP TCP 传输控制协议_数据_10

最后一个报文段只有确认而没有数据,因为已经没有更多的数据要发送了。

传输完数据,就要关闭连接了,这时候通过三向握手来实现。

TCP/IP TCP 传输控制协议_数据传输_11

半关闭?

在TCP中,连接的一方可以停止发送数据,但仍然可以接收数据,这就成为版关闭(half-close)

TCP/IP TCP 传输控制协议_数据传输_12

服务器端可以继续向客户端发送数据。

TCP/IP TCP 传输控制协议_缓存_13

连接确立和半关闭终止的(时间线图)

TCP/IP TCP 传输控制协议_重传_14

同时打开的时间线图

TCP/IP TCP 传输控制协议_缓存_15

同时关闭的时间线图

 TCP/IP TCP 传输控制协议_重传_16

拒绝连接的时间线图

几种报文传递情况?

 TCP/IP TCP 传输控制协议_数据传输_17

TCP/IP TCP 传输控制协议_缓存_18

TCP/IP TCP 传输控制协议_重传_19

TCP软件包?

TCP/IP TCP 传输控制协议_数据_20