计算机网络

1 OSI七层模型与TCP/IP四层模型

2 TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)的区别

  • TCP提供面向连接的传输,通信前要先建立连接(三次握手);UDP提供无连接的传输,通信前不需要建立连接
  • TCP面向字节流的传输(文件传输),因此它能将信息分割成组,并在接收端将其重组;UDP是面向数据报的传输(IP电话,实时视频会议等),没有分组开销
  • TCP提供可靠的传输(无差错,不丢失,不重复,按序到达);UDP尽最大努力交付,即不保证可靠交付
  • TCP只支持点对点通信;UDP支持一对一、一对多、多对一、多对多的通信模式
  • TCP提供拥塞控制和流量控制机制;UDP不提供拥塞控制和流量控制机制
  • TCP首部开销(20个字节)比UDP的首部开销(8个字节)要大

3 TCP三次握手与四次挥手

(1)三次握手

  • 客户端向服务器端发送一个SYN连接请求报文,并把这次连接的序号seq设为随机数 A
  • 服务器端收到客户端SYN包,回复ACK确认报文,ACK的确认号为 A+1,同时也发送自己的一个SYN连接请求报文,将seq设为随机数B,即同时发送SYN+ACK包
  • 客户端收到服务器的SYN+ACK包,回复ACK确认报文,ACK的确认号为 B+1,当服务端受到这个ACK的时候,就完成了三路握手

(2)四次挥手


【注】中断连接端可以是客户端,也可以是服务器端. 下面仅以客户端断开连接举例, 反之亦然.

  • 客户端发起中断连接请求,也就是发送FIN报文
  • 服务器端收到FIN报文后,回复ACK确认报文
  • 等到服务器所有数据传输结束,向客户端发送FIN报文
  • 客户端收到FIN报文后,回复ACK确认报文,同时为了防止服务器端未收到需要重发,进入等待状态。服务器接收到确认报文后关闭连接(若服务器2MSL后未收到客户端的确认报文则会重发FIN报文)。客户端等待2MSL后未收到回复,则认为服务器成功关闭,客户端关闭连接

(3)为什么握手是三次,挥手是四次?

  • 建立连接时服务器可以同时发送ACK确认报文和SYN连接请求报文
  • 断开连接时由于服务器在接收到客户端的FIN报文后,自己可能会有未发送完毕的数据,所以会先回复一个ACK确认报文,等待自己的数据发送完毕,才会向客户端发送FIN报文,两个报文不能一次同时发送

4 ARP(Address Resolution Protocol)地址解析协议工作原理

  • 每台主机都有一个ARP列表,存放IP地址和MAC地址的对应关系
  • 当源主机向目标主机发送数据时,首先查看ARP列表中IP地址对应的目标主机的MAC地址,如果找到则直接发送数据;如果找不到,就向该网段中的所有主机发送ARP请求包,里面存放源IP地址,源MAC地址,目标IP地址
  • 当该网段中的所有主机收到该ARP响应包之后,首先查看目标IP地址是否与自己相匹配,如果不是则忽略,如果是,就将源IP地址和源MAC地址存放到自己的ARP列表中,然后将自己的MAC地址存放到ARP响应包中发送给源主机
  • 目标主机收到ARP响应包,则取出对应的IP和MAC地址存放到ARP列表中,并发送数据;若未收到则ARP查询失败

【总结】广播ARP请求,单播ARP响应。

3 POST和GET的区别(最普遍的答案)

  • GET使用URL或Cookie传参,而POST将数据放在BODY中
  • GET的URL会有长度上的限制,则POST的数据则可以非常大
  • POST比GET安全,因为数据在地址栏上不可见

4 DNS域名系统工作原理

  • 查讯浏览器、操作系统的DNS缓存
  • 请求本地域名服务器
  • 本地域名服务器请求根域名服务器,根域名服务器返回所查询域的主域名服务器
  • 本地域名服务器请求主域名服务器,主域名服务器返回所查询域的名称服务器
  • 本地域名服务器请求该域名的名称服务器
  • 缓存解析结果

【注】主机请求本地域名服务器采用递归查询,本地域名服务器请求根域名服务器采用迭代查询

5 浏览器输入网址到获得页面的过程

  • 浏览器对域名进行解析,获取域名对应的IP地址
  • 浏览器获得域名对应的IP地址以后,向服务器请求建立链接,发起三次握手
  • 连接建立后,浏览器向服务器发送HTTP请求
  • 服务器接收到请求,根据请求参数将相应的视图返回给浏览器
  • 浏览器解析并渲染视图,最终向用户呈现一个完整的页面

6 静态路由和动态路由有什么区别

  • 静态路由是由管理员手工配置的,适合比较简单的或需要做路由特殊控制的网络
  • 动态路由则是由动态路由协议自动维护的,路由器能够自动地建立自己的路由表,并且能够根据实际情况的变化适时地进行调整,不需人工干预,适合比较复杂大型的网络

【注】动态路由机制的运作依赖路由器的两个基本功能:对路由表的维护;路由器之间适时的路由信息交换。

7 HTTP的长连接和短连接

  • 短连接:浏览器和服务器每进行一次HTTP请求操作,就建立一次TCP连接,请求结束就中断连接
  • 长连接:当一个网页完成渲染后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接

8 HTTP和HTTPS的区别

  • HTTPS协议需要到CA(Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用
  • HTTP是超文本传输协议,信息是明文传输,HTTPS协议则是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全
  • HTTP和HTTPS连接方式完全不同,用的端口也不一样,前者是80,后者是443

9 对称加密与非对称加密

  • 对称加密是指加密和解密使用同一个密钥的方式,这种方式存在的最大问题就是密钥发送问题,即如何安全地将密钥发给对方
  • 非对称加密是指使用一对非对称密钥,即公钥和私钥,公钥可以随意发布,但私钥只有自己知道。发送密文的一方使用对方的公钥进行加密处理,对方接收到加密信息后,使用自己的私钥进行解密

【注】由于非对称加密的方式不需要发送用来解密的私钥,所以可以保证安全性。但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密来传送消息,而对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。

10 ICMP(Internet Control Message Protocol)协议

ICMP协议用于在IP主机、路由器之间传递控制消息。控制消息是指数据报错误信息、网络状况信息、主机状况信息等消息,这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。简单的来说,ICMP协议就像奔波于网络中的一名医生,它能及时检测并汇报网络中可能存在的问题,为解决网络错误或拥塞提供了最有效的手段。

11 HTTP常见状态码

200 :请求成功,成功返回网页
301 :资源(网页等)被永久转移到其它URL
302 :资源(网页等)被临时转移到其它URL
304 :请求未修改、命中缓存
401 :未授权
403 :服务器拒绝请求
404 :请求的网页或资源不存在
500 :内部服务器错误,无法完成请求
502 :错误网关
503 :请求未完成,服务器临时过载或宕机
504 :网关超时

12 IP地址的分类


13 交换机和路由器的区别

  • 工作所处的OSI层次不同:交换机工作在OSI第二层数据链路层,路由器工作在OSI第三层网络层
  • 寻址方式不同:交换机根据MAC地址寻址,路由器根据IP地址寻址
  • 转发速不同:交换机的转发速度快,路由器转发速度相对较慢

你可能感兴趣的:(计算机网络)