java计算机网络面试点

OSI,TCP/IP等层次结构图

在这里插入图片描述

个层次以及其协议

应用层
通过进程间的交互来完成特点的网络应用。
含有的协议:

  1. DNS域名系统
  2. HTTP协议
  3. SMTP协议

传输层
给两台主机之间进程提供通用的数据传输服务。
重要的两种协议:

  1. TCP协议:面向连接的可靠传输协议
  2. UDP协议 :提供无连接的数据传输服务。数据不可靠

网络层
选择合适的网件路由和交换节点。确保数据的即使传输。
协议:IP协议

数据链路层
提供专门的链路层协议:将网络层的IP数据包封装为帧,在两个相邻节点的链路上传送帧。

物理层
实现相邻计算机节点之间的比特流透明传送。

TCP的三次握手和四次握手(重点)

三次握手

为了保证准确的将数据传送到准确位置,就有了三次握手
在这里插入图片描述
三次握手中SYN,ACK等值的变化
第一次握手:SYN=1:表示客户端发送连接请求
第二次握手:SYN=1,ACK=1;ACL=1表示服务端同意连接
第三次握手:ACK=1,确认发送和接受正常

四次握手:

断开一个TCP连接需要进行四次握手

  • 客户端发送FIN到服务端表示要断开连接
  • 服务端回ACK到客户端表示收到
  • 服务端发送FIN表示要断开连接
  • 客户端发送ACK表示收到

TCP和UDP协议区别(重要)

TCP

  1. 面向连接
  2. 可靠传输
  3. 字节流传输
  4. 传输慢,占资源多
  5. 应用于要求数据可靠的场景

UDP

  1. 不面向连接
  2. 不可靠传输
  3. 数据包形式传输
  4. 传输块,占用资源小
  5. 应用于数据不可靠场景(直播,视频聊天,聊天等)

TCP可靠传输原因简述

TCP协议:发送发将数据分为多个包,给包加上序列号。接受方受到数据包后会给包排序。当有包丢失的时候,发送发会重新发送。

TCP协议的滑动窗口和流量控制

滑动窗口就是为了限制发送发的流量和发送速度,保证接收方能来得及接收。也可以加快传输效率,提高通道的利用率。
在这里插入图片描述

拥塞控制

定义
某一时间段网络资源的需求超过了该网络所能提供的资源的可用部分。网络性能就要变坏,这就是所谓的拥塞。
TCP的拥塞的控制

  • 慢开始:主机刚开始不会发送过大数据,而是根据网络拥堵情况慢慢加发送数据量。拥塞窗口的值从1开始,每经过一次转播轮次就会翻倍。
  • 拥塞避免:让拥堵窗口缓慢增大,每一个往返+1
  • 快重传和快恢复:防止因为数据丢失而导致的传输中断。能够很快恢复丢失数据的重传。

输入url跳转到主页的过程

  1. DNS查找IP地址过程:浏览器缓存->路由器缓存->DNS缓存
  2. 和web服务器建立TCP连接
  3. 向web服务器发送HTTP请求
  4. 服务器返回HTTP报文
  5. 浏览器进行解析并渲染
  6. 连接结束

各种网页状态码(如:404)

1xx:接收的请求正在处理
2xx:请求正常处理完毕
3xx:重定向出问题
4xx:客户端问题
5xx:服务端问题

各种协议和http之间的关系

协议使用步骤(从客户端发送请求开始,到服务端接收到)
Http:客户端生成针对web服务器的http请求报文。向服务器请求页面及资源。
TCP:将上面Http的请求报文拆分为多个段,把每个段安全可靠的发给服务器。
IP:搜索对方的地址,一边传送一边中转(路由器中转)
TCP:服务端将http报文段组合。
Http:服务端对请求的内容进行处理。

Http的长连接和短链接

短链接:客户端和服务端每进行一次操作救会进行一次短链接。(HTTP/1.0使用)
长连接:客户端和服务端进行连接后不会中断。响应头加入这行代码:Connection:keep-alive
(HTTP/1.1以及以后使用)

注意:实际上HTTP的长短连接就是TCP的长短连接

Session保存用户状态

Session存放在服务器端,那么我们如何实现Session的跟踪呢?我们再Cookie中添加一个Session Id的方式来追踪Session。
当Cookie被禁用了怎么办呢?
直接利用URL将Session Id放在url后面,传送到服务端就可以了。

Cookie和Session作用区别

CooKie用来记录用户的信息
Session用来记录用户的状态

URI和URL

URI:统一资源标志符:可以唯一标识一个资源

URL:统一资源定位符:可以提供资源的路径

在这里插入图片描述

举例解释:https://www.jianshu.com/p/b5e31c1e5dc1

Http和Https的区别

  1. 端口:HTTP默认80端口,Https默认443端口
  2. 安全性和资源消耗:Http建立在TCP上,Https建立在SSL/TLS上,而SSL/TLS则建立在TCP上。HTTPs资源都是经过对称加密处理的,所以HTTP的安全性比HTTPs低。但是HTTPs的资源消耗要高于HTTP

猜你喜欢

转载自blog.csdn.net/qq_44771337/article/details/108508558