您现在的位置是:首页 >技术教程 >TCP知识网站首页技术教程

TCP知识

依 然 2023-06-07 12:00:02
简介TCP知识

计算机网络模型

OSC(Open System Interconnect)采用分层的结构化技术,共分七层:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。

TCP/IP模型共分四层:链路层,网络层,传输层,应用层

物理层:物理层是OSI模型的第一层,定义了在网络上传输比特流的方式。物理层的主要任务是将数字数据转换为模拟信号,以便在网络上进行传输

数据链路层:数据链路是OSI模型的第二层,定义了如何在网络上传输数据包。数据链路层的主要任务是将数据分成帧(Frame),并在物理层上传输

网络层:网络层是OSI模型的第三层,定义了如何在不同的网络之间传输数据。网络层的主要任务是路由(Routing),即确定最佳的路径将数据从源节点传输到目标节点

传输层:传输层OSI模型的第四层,定义了数据传输的端到端可靠性和流量控制。传输层的主要任务是将数据分成数据段(Segment),并在网络上进行传输

会话层:会话层是OSI模型的第五层,定义了如何在通信双方之间建立,管理和终止会话(Session)

会话层的主要任务是管理会话层协议(例如,连接建立和断开,同步和恢复等)

表示层:第六层,定义了如何将数据表示为应用程序可以处理的格式。表示层的主要任务是将数据进行编码,解码和加密

应用层:第七层,定义了不同应用程序直接的交互方式。主要任务是提供各种服务,例如文件传输,电子邮件和远程登录

TCP:传输控制协议是一种面向连接的协议,它在发送数据之前先建立一个连接。TCP确保数据在网络上正确地传输,确保数据的可靠性和完整性,它还能够控制数据的流量和拥塞。TCP是应用广泛的协议之一,用于电子邮件,网页浏览和文件传输等应用中

UDP:用户数据协议(UDP)是一种无连接的协议,它不需要在发送数据之前建立连接。UDP不保证数据的可靠性或完整性,但它更快速,更简单,适用于对数据传输延迟较为敏感的应用程序。UDP常用于音视频传输,在线游戏等实时性较高的应用中

TCP适用于需要确保数据可靠性和完整性的应用,UDP适用于需要快速数据传输和实时性的应用

IP:Internet Protocol是一种协议,用于在计算机网络上传输数据包。是一种无连接协议,意味着在发送数据之前不会建立连接。IP协议负责数据的传输和路由,以确保数据正确地从源主机传输到目标主机

TCP:提供面向有连接的通信传输。面向有连接是指在数据通信开始之前先做好两端之间的准备工作,所谓三次握手是指建立一个TCP连接时需要客户端和服务器总共发送三个包以确认连接的建立

 TCP是可靠的传输控制协议,三次握手是保证数据可靠传输又能提高传输效率的最小次数

为了实现可靠数据传输,TCP协议的通信双方都必须维护一个序列号,以标识发送出去的数据包中,哪些是已经被对方收到的

发送方在发送数据包时,同时送上一个序号(ex:500),那么接收方收到这个数据包以后,就可以回复一个确认号(ex:510 = 500 + 10)告诉发送方已经收到了你的数据包,你可以发送下一个数据包了,序号从511开始吧。

三次握手的过程是通信双方相互告知序列号起始值,并确认对方已经收到了序列号起始值的必经步骤,如果只是两次握手,至多只有连接发起方的起始序列号能被确认,另一方选择的序列号则得不到确认。

四次挥手即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。在socket编程中,这一过程由客户端或服务端任一方执行close来触发

由于TCP连接是全双工的,因此每个方向都必须要单独进行关闭,这一原则是当甲方完成数据发送任务后,发送一个FIN给乙方来终止这一方向的连接,乙方收到一个FIN只意味着不会再收到甲方数据了,但是乙方依然可以给甲方发送数据,直到乙方也发送了FIN给甲方。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭

 

TCP是全双工的连接,必须两端同时关闭连接,连接才算真正关闭

如果一方已经准备关闭写,但它还可以读另一方发送的数据。发送给FIN结束报文给对方,对方收到后,回复ACK报文。当这方也已经写完了准备关闭,发送FIN报文,对方回复ACK,TCP连接正常关闭。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。