一、介绍TCP 连接的三次握手?追问:为什么 TCP 握手需要三次?

TCP是面向连接的可靠传输协议

面向连接:三次握手

可靠传输:确认、重传、排序、流控(滑动窗口)

传输层的协议

网路100问之路由技术(一)

 

其协议头部有20个字节 分为五个四字节

第一行四字节是 源目端口 各占两字节 16bit

第二行是*** 占四字节 32bit

第三行是确认*** 占四字节 32bit

第四行是 4bit的头部长度 6位保留 6位标志位 16位窗口大小

第五行是16位校验和 16位紧急指针

网路100问之路由技术(一)网路100问之路由技术(一)

 

TCP会话建立图解如下,可以很明显的看出来,客户端的SYN请求需要服务器的ACK确认,而服务器的SYN请求需要客户端的确认,所以握手需要三次

网路100问之路由技术(一)

ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1

SYN(SYNchronization) : 在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文。对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1. 因此,  SYN置1就表示这是一个连接请求或连接接受报文。

二、介绍 TCP 断开的四次挥手,追问:为什么 TCP 的挥手需要四次?

四次挥手的图解如下,可以明显的看出来,客户端的FIN(请求释放连接)需要服务器的ACK确认,而服务器的FIN需要客户端的ACK

网路100问之路由技术(一)

三、TCP 的 syn 攻击的过程?追问:怎么防御?

过程

攻击者伪造不存在的主机IP 向服务器发送大量的SYN包 ,使服务器的缓存造成溢出,即不能处理正常的SYN请求,这属于DDOS攻击

防御

  1. 具有SYN proxy(SYN代理)功能的防火墙
  2. 加快淘汰无效SYN请求
  3. SYN Cookie

四、为什么连接的时候是三次握手,关闭的时候却是四次握手?

连接时,每次的SYN请求需要ACK确认,所以是三次

关闭时,需要客户端与服务器端的都发送FIN并且进行确认,所以是四次

五、TCP 是如何通过滑动窗口协议实现流量控制和拥塞控制的?

流量控制

拥塞控制

六、描述 TCP 和 UDP 的区别?

共同点:

同处于TCP/IP协议栈的传输层

不同点:

协议层面:

TCP是面向连接的可靠传输协议  协议号为6

UDP是非面向连接的不可靠传输  协议号为17

报文层面:

封装的报文头大小不同 TCP 20byte  UDP 8byte

网路100问之路由技术(一)

网路100问之路由技术(一)

七、TCP 有哪些定时器?

 

八、什么是 CDN?CDN 是如何工作的?

九、什么是 DNS?说说 DNS 的解析过程?

网路100问之路由技术(一)

 

解析过程:

  1. 首先查找本地浏览器的DNS缓存
  2. 查找本地的hosts文件是否有网址的映射关系
  3. 查找本地DNS服务器

至此如果没有找到映射关系的话,就继续向更高级的DNS服务器进行查找

迭代查询

  1. 找13台DNS根服务器(根肯定知道要找的位置属于哪个顶级域名下),将结果返回给本地DNS服务器
  2. 找DNS顶级服务器(顶级肯定知道具体的域名位置),返回给本地DNS服务器
  3. 本地DNS服务器直接去目标然后返回
  4. 本地DNS服务器将结果给到请求的客户端

递归查询:

  1. 找13台DNS根服务器
  2. 根据根DNS服务器端返回的结果直接去顶级DNS服务器
  3. 根据顶级DNS服务器的提示直接去权限域名服务器(具体的域名映射)
  4. 逐级递归返回,至根DNS服务器,然后给到本地DNS服务器一个结果
  5. 本地DNS服务器将结果给到请求的客户端

网路100问之路由技术(一)

 

网路100问之路由技术(一)

 

以上这种DNS的解析过程是

客户端到本地DNS递归查询

本地DNS服务器与其他高级的DNS服务器的交互是迭代查询

十、什么是 DHCP?描述工作过程?DHCP 有什么安全问题?如何防范?

手段

DHCP耗尽攻击---伪造大量的DHCP请求包来耗尽DHCP的地址池资源

DHCP伪造攻击---伪造dhcp服务器来给发出DHCP请求的主机回包(dhcp会提供网关,DNS)

防御

DHCP Snooping(嗅探技术)

  1. 中继设备上设置信任接口 将真实的DHCP服务器连接中继设备的接口设置为信任接口
  2. 中继设备上限制非信任端口的接收DHCP 数据包的频率

 

 

 

 

 

相关文章: