笔试总结——计算机网络篇【持续更新】

返回RST包的各种情况

(复位报文—)(连接起来是FIN 未连接起来是RST)

1 端口未打

服务器程序端口未打开而客户端来连接。这种情况是最为常见和好理解的一种了。去telnet一个未打开的 TCP 的端口可能会出现这种错误。这个和操作系统的实现有关。在某些情况下,操作系统也会完全不理会这些发到未打开端口请求

比如在下面这种情况下,主机 241 向主机 114 发送一个 SYN 请求,表示想要连接主机114 40000 端口,但是主机 114上根本没有打开40000 这个端口,于是就向主机 241发送了一个 RST 。这种情况很常见。特别是服务器程序 core dump之后重启之前连续出现RST 的情况会经常发生

当然在某些操作系统的主机上,未必是这样的表现。比如向一台WINDOWS7的主机发送一个连接不存在的端口的请求,这台主机就不会回应

2 请求超

曾经遇到过这样一个情况:一个客户端连接服务器, connect 返回 -1 并且 error=EINPROGRESS 直接telnet发现网络连接没有问题。 ping 没有出现丢包。用抓包工具查看,客户端是在收到服务器发出的SYN之后就莫名其妙的发送了 RST

比如像下面这样

8927 两台主机。主机 89 向主机27发送了一个 SYN ,表示希望连接 8888端口,主机27 回应了主机 89 一个SYN表示可以连接。但是主机 27 却很不友好,莫名其妙的发送了一个RST表示我不想连接你了

后来经过排查发现,在主机89上的程序在建立了 socket 之后,用 setsockopt SO_RCVTIMEO 选项设置了 recv 的超时时间为 100ms 。而我们看上面的抓包结果表示,从主机89 发出 SYN 到接收 SYN的时间多达 110ms 。(从 15:01:27.799961 15:01:27.961886 小数点之后的单位是微秒)。因此主机89 上的程序认为接收超时,所以发送了RST 拒绝进一步发送数据。http://write.blog.csdn.net/postedit

3 提前关

关于 TCP ,我想我们在教科书里都读到过一句话,'TCP是一种可靠的连接 ' 而这可靠有这样一种含义,那就是操作系统接收到的来自TCP连接中的每一个字节,我都会让应用程序接收到。如果应用程序不接收怎么办?你猜对了, RST

4 在一个已关闭的 socket 上收到数

如果某个 socket 已经关闭,但依然收到数据也会产生 RST

TCP当中的拥塞控制算法

TCP当中的拥塞控制算法,慢开始门限设置为出现拥塞时的发送窗口大小的一半。因此发生拥塞时候,慢开始门限设置为8/2=4, 然后把拥塞窗口设置为1,执行慢开http://write.blog.csdn.net/postedit始算法。当然收到单个确认但此确认多个数据报的时候就加相应的数值。所以一次传输轮次之后拥塞窗口就加倍。这就是乘法增长。1->2->4,经过两个来回,到达门限值4, 拥塞避免算法让拥塞窗口缓慢增长,即每经过一个往返时间RTT就把发送方的拥塞窗口1 ,而不是加倍。这样拥塞窗口按线性规律缓慢增长。4->5->6...->10,而发送端不能超过接收端10,因此最后为10
知识点:

cwnd(拥塞窗口值)<ssthresh(慢开始门限值)时,使用慢开始算法。加倍增长

cwnd>ssthresh时,改用拥塞避免算法。加1线性增长

cwnd=ssthresh时,慢开始与拥塞避免算法任意。


建立动态路由需要用到的文件

/etc/hosts 主机名->IP地址映射文件
/etc/resolv.conf DNS服务配置文件
/etc/gateways 建立动态路由需要用到的文

show各种网络参数

show frame-relay map查看帧中网络的映射地址

show frame-relay pvc查看pvc状态:delete static inactive active

show frame=relay lmi查看本地路由和真是交换机的状态消息数量,LMI数据统计

show interface查看接口的物理层和链路层信息,包括数据包的封装类型

网络协议所在层

  1. - 物理层: RJ45 CLOCK IEEE802.3 (中继器,集线器,网关)
  2. 数据链路: PPP FR HDLC VLAN MAC (网桥,交换机)
  3. 网络层: IP ICMP ARP RARP OSPF IPX RIP IGRP 、 (路由器)
  4. 传输层: TCP UDP SPX
  5. 会话层: NFS SQL NETBIOS RPC
  6. 表示层: JPEG MPEG ASII
  7. 应用层: FTP DNS Telnet SMTP HTTP WWW NFS


建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:





你可能感兴趣的:(笔试总结——计算机网络篇【持续更新】)