Java面试重点自记--计算机网络

本文介绍了计算机网络中的关键概念,包括互联网的网络层为何被称为网际层或IP层,TCP的三次握手和四次挥手机制,以及TCP如何确保可靠传输。此外,还讨论了HTTP协议的长连接和短连接,以及Cookie和Session在管理用户状态中的作用,同时提到了URI和URL的区别。文章还涉及了DNS解析过程和HTTP1.0与HTTP1.1的主要差异。
摘要由CSDN通过智能技术生成

计算机网络

1. 为什么互联网的网络层也叫网际层或IP层?

互联网是由大量的异构(heterogeneous)网络通过路由器(router)相互连接起来的。互联网使用的网络层协议是无连接的网际协议(Intert Protocol)和许多路由选择协议,因此互联网的网络层也叫网际层或IP层。
七层网络协议

2.TCP 三次握手和四次挥手(面试常客)

为了准确无误地把数据送达目标处,TCP协议采用了三次握手策略。

  • TCP 三次握⼿漫画图解

三次握手
三次握手图解
三次握手
在这里插入图片描述

1)为什么要三次握手?

为什么三次握手

  • 为什么要传回SYN
    为什么传回

  • 传了SYN,为什么还要传ACK
    在这里插入图片描述

在这里插入图片描述

四次挥手
在这里插入图片描述

2)为什么要四次挥手?

在这里插入图片描述
彻底明白三次握手和四次挥手

建立连接的时候, 服务器在LISTEN状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端。
而关闭连接时,服务器收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,而自己也未必全部数据都发送给对方了,所以己方可以立即关闭,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送,从而导致多了一次。

3.TCP协议如何保证可靠传输

可靠传输

1)ARQ协议

arq

  • 停止等待ARQ协议

停止等待
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

  • 连续ARQ协议
    在这里插入图片描述

4.滑动窗口和流量控制

滑动窗口

1)拥塞控制

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
示例图如下:
在这里插入图片描述

5. 在浏览器中输入URL地址->>显示主页的过程(**)

在这里插入图片描述
总体来说分为以下几个过程
在这里插入图片描述
DNS递归查询
在这里插入图片描述
上述图片是查找www.google.com的IP地址过程。首先在本地域名服务器中查询IP地址,如果没有找到的情况下,本地域名服务器会向根域名服务器发送一个请求,如果根域名服务器也不存在该域名时,本地域名会向com顶级域名服务器发送一个请求,依次类推下去。直到最后本地域名服务器得到google的IP地址并把它缓存到本地,供下次查询使用。从上述过程中,可以看出网址的解析是一个从右向左的过程: com -> google.com -> www.google.com。但是你是否发现少了点什么,根域名服务器的解析过程呢?事实上,真正的网址是www.google.com.,并不是我多打了一个.,这个.对应的就是根域名服务器,默认情况下所有的网址的最后一位都是.,既然是默认情况下,为了方便用户,通常都会省略,浏览器在请求DNS的时候会自动加上,所有网址真正的解析过程为: . -> .com -> google.com. -> www.google.com.。

  • DNS优化
    了解了DNS的过程,可以为我们带来哪些?上文中请求到google的IP地址时,经历了8个步骤,这个过程中存在多个请求(同时存在UDP和TCP请求,为什么有两种请求方式,请自行查找)。如果每次都经过这么多步骤,是否太耗时间?如何减少该过程的步骤呢?那就是DNS缓存。
  • DNS缓存
    DNS存在着多级缓存,从离浏览器的距离排序的话,有以下几种: 浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,根域名服务器缓存,顶级域名服务器缓存,主域名服务器缓存。
  • 在你的chrome浏览器中输入:chrome://dns/,你可以看到chrome浏览器的DNS缓存。
  • 系统缓存主要存在/etc/hosts(Linux系统)中:
    在这里插入图片描述
  • DNS负载均衡

不知道大家有没有思考过一个问题: DNS返回的IP地址是否每次都一样?如果每次都一样是否说明你请求的资源都位于同一台机器上面,那么这台机器需要多高的性能和储存才能满足亿万请求呢?其实真实的互联网世界背后存在成千上百台服务器,大型的网站甚至更多。但是在用户的眼中,它需要的只是处理他的请求,哪台机器处理请求并不重要。DNS可以返回一个合适的机器的IP给用户,例如可以根据每台机器的负载量,该机器离用户地理位置的距离等等,这种过程就是DNS负载均衡,又叫做DNS重定向。大家耳熟能详的CDN(Content Delivery Network)就是利用DNS的重定向技术,DNS服务器会返回一个跟用户最接近的点的IP地址给用户,CDN节点的服务器负责响应用户的请求,提供所需的内容。

  • 状态码
    在这里插入图片描述
    在这里插入图片描述

6. HTTP

1)HTTP 长连接、短连接

HTTP长连接、短连接是什么
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2)HTTP不保存状态的协议,如何保存用户状态?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.Cookie的作用是什么?和Session有什么区别?

在这里插入图片描述
在这里插入图片描述

8. HTTP1.0和HTTP1.1主要区别是什么?

  • HTTP 历史发展
    在这里插入图片描述

  • HTTP的基本优化
    在这里插入图片描述

  • HTTP1.0和HTTP 1.1有哪些区别

  • 在这里插入图片描述

  • HTTP与HTTPS的区别

  • 在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3)URI和URL的区别

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Changcc_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值