Cisco 路由器作为终端服务器缓冲问题

网络工程 思科-ios
2021-07-04 23:04:55

我使用以下配置将带有 HWIC-1T 卡的 Cisco 2911 配置为终端服务器。我可以 telnet 到环回地址的端口 2003,并与连接到 HWIC-1T 卡的笔记本电脑建立串行连接。

interface serial 0/0/0
  physical-layer async
  no ip address
  encapsulation slip

line 0/0/0
  no exec
  transport input telnet
  transport output none

从串行连接到 telnet 会话的字符流工作完美。但是,从 telnet 会话到与笔记本电脑的串行连接的字符流在大多数情况下会滞后一个字符。

这意味着如果我在 telnet 窗口中键入“1234”,我将看到串行窗口中只出现“123”。最后一个字符没有丢失,只是在路由器中缓冲,直到我按下下一个键。有时路由器会缓冲两个字符,有时如果我在快速会话中同时输入两个字符,两个字符都会正确显示。

我知道路由器正在做缓冲,因为我运行了 Wireshark 并看到最后一个字符的 TCP 数据包进入路由器并没有立即显示出来。 在此处输入图片说明

我究竟做错了什么?提前致谢!

1个回答

禁用Nagle 算法,因为这会导致 telnet 连接延迟。一般来说,Nagle 是一件好事(tm),但我记得它是在 telnet 连接上这样做的。(telnet?终端服务器?......我有闪回。)类似于no service nagle全局配置(如果我没记错的话。)

更新

结果证明这并不能解决 OP 的问题;但留在这里还是有用的。我正在编辑我的答案,以便投票的人能够撤消他们的投票。