TCP是传输层的一个协议。
当一个应用程序调用TCP时,它会将它想要传递给另一端的一些字节交给它。 TCP将这些字节放入TCP段,然后从那里获取。
TCP将段传递给IP层,IP层将其封装在IP数据报中, 添加IP地址。IP数据报传递给链路层,链路层构建链路帧,添加链路地址(例如,以太网地址),然后将其发送到线路。
使用主机A和B之间的3次握手建立TCP连接。
首先,主机A向B发送一条消息,指示A处的TCP层想要与B处的TCP层建立连接。该消息称为SYN消息,它是同步的简称,因为A也是沿着它将用于识别字节流中的字节的基数发送。如果它发送“0”,那么数字将从零开始。如果它发送“1,000”,那么它们将从1,000开始。 B以我们称之为SYN + ACK的方式响应。 B发信号通知ACK,因为B正在确认A的请求并同意建立从A到B的通信.B处的TCP层也将SYN发送回A以指示B处的TCP层想要与TCP层建立连接在A.它也发送一个数字,表示字节流的起始编号。
最后,A以ACK响应,表示它正在接受反向通信请求。现在可以在两个方向上建立连接。他们现在准备开始相互发送数据了
关闭TCP连接。
当A和B完成相互发送数据后,他们需要关闭连接。我们说他们“拆除”连接,这意味着他们告诉对方他们正在关闭连接,并且两端都可以清理与状态机相关联的状态。
主机A的TCP层可以通过发送FIN消息来关闭连接,FIN消息是FINISH的缩写。
主机B确认A不再有要发送的数据并停止从A中查找新数据。这会将数据流从A关闭到B.但B可能仍有新数据要发送到A并且尚未准备好关闭从B到A的信道。因此从B到A的消息携带ACK也可以携带从B到A的新数据。只要需要,B就可以继续向A发送新数据。
稍后B稍后完成向A发送数据,现在发送自己的FIN告诉A他们可以关闭连接。
Host A通过发送ACK来回复,以确认连接现已关闭。由于两个方向都已完成,因此连接现已完全关闭,并且可以安全地移除状态。
TCP服务模型的性质
UDP也是传输层的一个协议,但是相对TCP,他更简洁。
UDP特点