TCP 的 Client/Server结构的连接建立过程 (附带源码)
Apple层和应用程序层之间的数据交换称为消息,其数据由传输层和网络层交换,称为数据报。
传输层将数据封装在TCP协议中,该数据连接到提供字节办公室,这是保真度。
在以连接为导向的客户端 /服务器结构中,随着服务器的开始,创建门并绑定本地网络地址,然后进入侦听状态以准备连接请求。
客户端在门口稳定后,它通过Connect()函数确认了与服务器的连接。
连接达成共识后,这两个部分都可以通过读取()与write()函数交换信息。
数据传输完成后,通过CLOSS()关闭帐篷接口。
袜子归因于通信和基本操作单元TCP / IP协议网络通信。
它包含协议,本地和远程主机IP地址和端口信息。
在应用程序层中,通过Servico接口与传输层通信以实现职责。
会幕三个步骤包含:服务器侦听:客户端的请求,服务器响应和建立连接。
服务器始终处于听力状态,等待客户连接请求。
客户需要在连接请求开始时指定您的电子邮件地址和端口号服务器门帐篷。
服务器接收请求创建一个新字符串来回答客户端并发送保存帐篷描述客户端。
客户确认描述后,连接正式建立。
服务器门继续聆听并接收另一个客户连接请求。
样品代码显示了如何编译和运行服务器和客户端程序。
tcpclient.c和tcpserver.c文件实现客户端和服务器功能。
通过命令行编译和执行程序。
TCPSERVERV.C代码在服务器端实现中显示,包括处理创建帐篷,绑定地址,收听连接请求,接收客户端连接和处理数据交换。
TCPCLIETN.C代码演示了客户端实现,包括目前连接到服务器,发送和接收数据的目前。
对于Python程序,服务器和客户端之间的消息交换已理解创建接口和聆听访问者。
保存零件代码接收连接请求接收添加字典的用户名。
用户输入信息后,服务器将其广播所有在线用户。
客户端通过连接到服务器或发件人信息与服务器共享。
TCP连接建立过程
在TCP/IP中,TCP协议通过三个握手建立了连接,从而提供了可靠的连接服务。
第一个握手:建立连接后,客户端将SYN数据包(SYN = J)发送到服务器,输入SYN_SEND状态,并等待服务器确认; 第二个握手:当服务器接收SYN数据包时,它必须确认客户端的SYN(ACK = J+1 )并发送SYN数据包(SYN = K),即SYN+ACK数据包。
此时,服务器进入SYN_RECV状态。
第三个握手:SYN+ACK数据包。
客户端接收从服务器发送的确认数据包ACK(ACK = K+1 )发送此数据包。
客户端和服务器输入机构状态并完成三向握手。
扩展信息:重要概念:不相关的队列:三重握手协议,服务器维护独立队列,为每个客户端的SYN数据包(SYN = J)创建一个条目,表明服务器已接收了SYN包并确认发送给客户端的SYN包,等待客户的确认数据包。
这些条目确定的连接在服务器的Syn_Recv状态中。
当服务器接收客户端的确认数据包时,它将删除条目,服务器将输入已建立的状态。
积压参数:指示要维护的未连接队列的最大数量。
当服务器发送Synack数据包时,如果未收到客户端确认数据包,则服务器将执行第一次重新启动,等待一段时间,但仍未接收客户端确认数据包,然后执行第二个重新启动。
如果重新启动编号超过系统指定的最大重传次数,则系统从半连接队列中删除连接信息。
请注意,每次重传的等待时间可能会有所不同。
半连接生存时间:指半连接队列中条目的最大生存时间,即从接收SYN数据包到确认无效消息的最大服务时间。
此时间值是所有重新启动请求数据包的最长等待时间的总和。
有时,我们还将半连接的生存时间称为超时,Syn_recv生存时间。
使用NetAssist网络调试助手在单台计算机上配置TCP服务器和客户端
可以轻松地实现NET COMPINCHES表单,以配置TCP服务器和TCP服务器周围的客户端。
起初。
1 打开Netasist,然后以客户端(客户端)的速度启动服务器(客户端)。
步骤2 :指定相关网络侦听相关网络聆听和规格以纠正客户端的客户。
步骤3 :配置客户端PASE中的地址服务器和端口。
完成上面的设置后,服务器是连接测试,因此服务器将正确接收客户端的请求。
客户端可以与服务器和交换数据建立连接。
注意:请按照正确的配置接头,以确保仔细稳定且安全的通信级别。
如何创立tcp服务
1 首先,创建一个TCP服务器。
创建方法如下图所示。
首先创建网络服务,然后收听连接和数据事件,确认接收到的数据,侦听端口8 4 3 1 2 创建一个TCP客户端,连接到上面建立的TCP服务器,发送Hello并从服务器接收确认信息。
3 下面显示的服务器收到的数据以及信息确认取决于客户端。
4 从服务器显示确认数据到TCP服务器和客户端。