dw做网站时怎么在图片上加字,网站建设立项报告,北京建设网经济适用房,企业做网上推广TCP/IP#xff08;Transmission Control Protocol/Internet Protocol#xff0c;传输控制协议/网际协议#xff09;是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议#xff0c;而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议…TCP/IPTransmission Control Protocol/Internet Protocol传输控制协议/网际协议是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性所以被称为TCP/IP协议。
TCP/IP传输协议即传输控制/网络协议也叫作网络通讯协议。它是在网络的使用中的最基本的通信协议。TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定。并且TCP/IP传输协议是保证网络数据信息及时、完整传输的两个重要的协议。TCP/IP传输协议是严格来说是一个四层的体系结构应用层、传输层、网络层和数据链路层都包含其中。
TCP/IP协议在一定程度上参考了OSI的体系结构。OSI模型共有七层从下到上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。但是这显然是有些复杂的所以在TCP/IP协议中它们被简化为了四个层次。 1应用层、表示层、会话层三个层次提供的服务相差不是很大所以在TCP/IP协议中它们被合并为应用层一个层次。 应用层是TCP/IP协议的第一层是直接为应用进程提供服务的。
2传输层作为TCP/IP协议的第二层传输层在整个TCP/IP协议中起到了中流砥柱的作用。且在传输层中TCP和UDP也同样起到了中流砥柱的作用。
3网络层在TCP/IP协议中的位于第三层。在TCP/IP协议中网络层可以进行网络连接的建立和终止以及IP地址的寻找等功能。
4因为数据链路层和物理层的内容相差不多所以在TCP/IP协议中它们被归并在网络接口层一个层次里。由于网络接口层兼并了物理层和数据链路层所以网络接口层既是传输数据的物理媒介也可以为网络层提供一条准确无误的线路。
1 通信过程及相关协议
在网络通信的过程中将发出数据的主机称为源主机接收数据的主机称为目的主机。当源主机发出数据时数据在源主机中从上层向下层传送。源主机中的应用进程先将数据交给应用层应用层加上必要的控制信息就成了报文流向下传给传输层。传输层将收到的数据单元加上本层的控制信息形成报文段、数据报再交给网际层。网际层加上本层的控制信息形成IP数据报传给网络接口层。网络接口层将网际层交下来的IP数据报组装成帧并以比特流的形式传给网络硬件即物理层数据就离开源主机。
在TCP/IP连接中为了确保双方都能准备好发送和接收数据会进行一系列的控制信号交换这其中包括了“三次握手”来建立连接和“四次挥手”来关闭连接。三次握手和四次挥手是TCP协议中建立连接和释放连接的重要过程它们确保了数据传输的可靠性和连接的正确管理。
TCP/IP协议中主动发起请求的一端称为『客户端』被动连接的一端称为『服务端』。不管是客户端还是服务端TCP连接建立完后都能发送和接收数据。
刚开始的时候服务器和客户端都为CLOSED状态。在通信开始前双方都得创建各自的传输控制块TCB。
服务器创建完TCB后遍进入LISTEN状态此时准备接收客户端发来的连接请求。
2 三次握手Three-way Handshake 三次握手用于建立TCP连接确保发送方和接收方都准备好进行数据传输。以下是三次握手的步骤
第一次握手
客户端向服务端发送连接请求报文段。该报文段的头部中同步SYN1确认ACK0同时选择一个初始序号seqx。请求发送后客户端便进入SYN-SENT状态等待服务器确认。
SYN1ACK0表示该报文段为连接请求报文
x为本次TCP通信的字节流的初始序号
SYN1的报文段不能有数据部分但要消耗掉一个序号
第二次握手
服务器收到连接请求的SYN报文之后必须确认客户的SYNSYN1ACK1ackx1seqy同时自己也发送一个SYN包SYN1seqy即SYNACK包此时服务器进入SYN_RECV状态。
SYN1ACK1表示该报文段为连接同意的应答报文
seqy表示服务端作为发送者时发送字节流中的第一个字节序号
ackx1表示服务端希望客户端发送的下一个数据报初始序号是从x1开始
第三次握手
客户端收到服务器连接统一的应答SYNACK包向服务器发送确认包(ACK1acky1seqx1acknumy1)此包发送完毕表示服务端发来的连接同意应答已经成功收到。客户端和服务器进入ESTABLISHED代表成功打开一个TCP/IP连接数据可以传送给用户状态完成三次握手。
完成三次握手客户端与服务器开始传送数据。
3 四次挥手Four-way Handshake TCP连接的释放一共需要四步这也是四次挥手的由来。
TCP连接是双向的在四次挥手中前两次挥手用于断开一个方向的连接后两次挥手用于断开另一方向的连接。确保发送方和接收方都关闭了数据传输的通道。以下是四次挥手的步骤
第一次挥手
客户端数据发送完成则它向服务端发送连接释放请求。该请求只有报文头头中携带的主要参数为FIN1sequ用来关闭客户端到服务器的数据传送。此时客户端将进入FIN-WAIT-1状态。FIN报文段即使不携带数据也要消耗一个序号。 FIN1表示该报文段是一个连接释放请求
sequu-1是客户端向服务端发送的最后一个字节的序号
第二次挥手
服务器收到客户端连接释放报文FIN后发送一个ACK给客户端报文头为ACK1acku1确认序号为收到序号1并且带上自己的序列号seqv。服务器进入CLOSE_WAIT状态。此时TCP连接处于半关闭状态即客户端已经没有要发送的数据了但服务器若发送数据客户端仍要接受。这个状态还要持续一段时间也就是整个CLOSE_WAIT状态持续的时间。 ACK1除TCP连接请求报文段以外TCP通信过程中所有数据报的ACK都为1表示应答
seqvv是服务端释放应答报文段第一个字节序号
acku1表示希望收到从第u1个字节开始的报文段并且已经成功接收了前u个字节
客户端收到该应答后进入FIN-WAIT-2状态等待服务器发送连接释放报文在这之前还需要接受服务器发送的最后的数据。
第二次挥手完成后客户端到服务端方向的连接已经释放服务端不会再接收客户端的数据客户端也没有数据要发送了。但服务端到客户端方向的连接仍然存在服务器若发送数据客户端依然要接受。这个状态还要持续一段时间也就是整个CLOSE-WAIT状态持续的时间。
第三次挥手
服务端将最后的数据发送完毕后就向客户端发送连接释放报文FIN用来关闭服务器到客户端的数据传送其报文头包含FIN1acku1由于在CLOS-WAIT状态服务端很可能又发送了一些数据假定此时的序列号为seqw此时服务器进入LAST_ACK状态等待客户端的确认。
第四次挥手
客户端收到服务器的连接释放报文FIN后向服务端发出确认应答报文头为ACK1ackw1而自己的序列号是sequ1客户端进入TIME_WAIT状态接着发送一个ACK给服务器确认后服务器进入CLOSED状态客户端等待一段时间后也进入了CLOSED状态。
注意客户端最后还要等待一段时间这就是TIME_WAIT状态。客户端等待一段时间是为了确保服务器收到了ACK如果此时服务器没有收到ACK则可以重传。这个等待时间通常是2MSL最长报文段寿命的时间。当客户端撤销相应的TCB后就进入了CLOSED状态。服务器只要收到了客户端发来的ACK报文就撤销TCB进入CLOSED状态。
4 总结
三次握手通过三次报文段的交换客户端和服务器建立了可靠的连接并相互确认了初始序列号。
四次挥手在数据传输结束后通过四次报文段的交换客户端和服务器正确地释放了连接并确保了双方都已收到对方的确认信息。
序列号在TCP通信中序列号用于标识每个报文段确保数据的顺序性和完整性。
ACK和SYN标志位ACK标志位用于确认收到的报文段SYN标志位用于建立连接时的同步。
TIME_WAIT状态客户端在关闭连接后会进入TIME_WAIT状态等待一段时间以确保服务器收到了ACK报文段从而避免“已失效的连接请求”问题。