在计算机网络中发送电子邮件遵循的协议是,一、计算机网络刷题

本文探讨了TCP连接过程中可能出现的ECONNREFUSED错误,解释了服务器端口未开放或队列满导致的拒绝连接。同时,介绍了服务器崩溃重启后客户端的重传机制及RST响应。此外,还概述了网络层和数据链路层的中继系统,如路由器、网桥等设备在通信中的角色。
摘要由CSDN通过智能技术生成

connect

函数返回错误ECONNREFUSED:

如果对客户的SYN的响应是RST,则表明该服务器主机在我们指定的端口上没有进程在等待与之连接(例如服务器进程也许没有启动),这称为硬错(hard error),客户一接收到RST,马上就返回错误ECONNREFUSED.

TCP为监听套接口维护两个队列。两个队列之和不超过listen函数第二个参数backlog。

当一个客户SYN到达时,若两个队列都是满的,TCP就忽略此分节,且不发送RST.这个因为:这种情况是暂时的,客户TCP将重发SYN,期望不久就能在队列中找到空闲条目。要是TCP服务器发送了一个RST,客户connect函数将立即返回一个错误,强制应用进程处理这种情况,而不是让TCP正常的重传机制来处理。这样客户区别不了这两种情况:作为SYN的响应,意为“此端口上没有服务器”的RST还是意为“有服务器在此端口上但其队列满”的RST.

​有以下两种处理方法:忽略新的SYN,或为此SYN响应一个RST。

往一个对端已经关闭的套接字上写入数据会收到一个RST信号

如果此时不判断read , write函数的返回值,就不知道服务器是否响应了RST, 此时客户端如果向接收了RST的套接口进行写操作时,内核给该进程发一个SIGPIPE信号。此信号的缺省行为就是终止进程,所以,进程必须捕获它以免被终止。

服务器主机崩溃后重启

如果服务器主机与客户端建立连接后崩溃,如果此时,客户端向服务器发送数据,而服务器已经崩溃不能响应客户端ACK,客户TCP将持续重传数据分节,试图从服务器上接收一个ACK,如果服务器一直崩溃客户端会发现服务器已经崩溃或目的地不可达,但可能需要比较长的时间; 如果服务器在客户端发现崩溃前重启,服务器的TCP丢失了崩溃前的所有连接信息,所以服务器TCP对接收的客户数据分节以RST响应。

物理层中继系统:转发器(repeater)。

·         数据链路层中继系统:网桥或桥接器(bridge)。网桥、交换机、网卡等设备都有自己独立的MAC地址,因此都工作在数据链路层

·         网络层中继系统:路由器(router)。

·         网桥和路由器的混合物:桥路器(brouter)。

·         网络层以上的中继系统:网关(gateway)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值