客户端向服务器发送 TCP 数据包到一个关闭的端口,即 80。同步数据包会在哪一层被丢弃?我猜对于客户端,请求将超时,对于服务器,它应该丢弃 tcp 层之上的请求。
向关闭端口发送 TCP 请求,请求在哪一层被丢弃
网络工程
通讯协议
第4层
传输协议
2021-07-24 05:27:40
2个回答
TCP 本身将发送 RST。
如果连接不存在(CLOSED),那么除了另一个重置之外的任何传入段都会发送重置。特别是,通过这种方式拒绝寻址到不存在的连接的 SYN。
如果传入段有 ACK 字段,则重置从段的 ACK 字段中获取其序列号,否则重置的序列号为零,并且 ACK 字段设置为传入段的序列号和段长度之和. 连接保持在 CLOSED 状态。
顺便说一下,TCP 对客户端或服务器一无所知。TCP 在对等点之间创建连接。客户端/服务器概念是针对应用程序的,这里是题外话。
如果由于服务器上的此端口上没有侦听器而关闭端口,则操作系统内核将无法为到达的数据包找到侦听套接字并将丢弃它。鉴于端口涉及确定是否正在侦听某些内容但尚未传输应用程序数据(来自客户端的初始 SYN),拒绝在传输层 (TCP) 完成。
如果初始 SYN 被服务器丢弃或拒绝,则客户端的初始 TCP 握手将失败,即不会建立 TCP 连接。因此不会发送任何应用程序数据并且故障也会在传输层传播,即连接将失败。
其它你可能感兴趣的问题