保研面试计网复习10——网页浏览过程、OSI七层协议、TCP和UDP的区别、NAT

本文主要是介绍保研面试计网复习10——网页浏览过程、OSI七层协议、TCP和UDP的区别、NAT,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、从输入链接点击到加载页面的过程中计算机网络方面的流程
  • 二、OSI七层协议
  • 三、TCP和UDP的区别
  • 四、NAT

  • 从输入链接点击到加载页面的过程中计算机网络方面的流程是什么
  • NAT相关
  • OSI七层协议
  • TCP和UDP的区别

一、从输入链接点击到加载页面的过程中计算机网络方面的流程

我们电脑上的浏览器作为一个软件具有一些功能,当我们输入URL时,我们的浏览器软件会执行DNS解析操作。

  1. DNS解析

    • 用户输入URL,浏览器首先检查本地缓存,如果没有找到,会向DNS服务器查询该URL对应的IP地址。
    • DNS服务器返回IP地址给浏览器。
  2. 建立TCP连接

    • 浏览器向目标服务器的IP地址发起TCP连接(三次握手过程)。
    • 三次握手包括:客户端发送SYN包,服务器回应SYN-ACK包,客户端再发送ACK包确认。
  3. 发送HTTP请求

    • 建立连接后,浏览器向服务器发送HTTP请求,请求内容包括所需资源的路径和请求头信息。
  4. 服务器处理请求

    • 服务器接收到HTTP请求后,处理请求并生成响应(例如:查找请求的文件或生成动态内容)。
  5. 服务器发送响应

    • 服务器将响应数据通过HTTP协议返回给浏览器,这里包括响应头和响应体(如HTML文档)。
  6. 浏览器渲染页面

    • 浏览器接收到响应数据后,开始解析HTML文档,构建DOM树。
    • 下载和解析CSS,构建CSSOM树。
    • 执行JavaScript,构建渲染树,进行布局和绘制,最终在屏幕上呈现页面。

二、OSI七层协议

“物联网淑慧试用”
表 应
理 据 络
层 层 层 层 层

  1. 物理层(Physical Layer)

    • 负责实际的硬件传输,包括电缆、无线电信号等。
    • 传输比特流,确保比特的正确发送和接收。
  2. 数据链路层(Data Link Layer)

    • 负责节点之间的可靠数据传输。
    • 包括MAC地址、帧的创建和错误检测。
  3. 网络层(Network Layer)

    • 负责不同网络之间的路径选择和数据包传输。
    • 包括IP地址和路由选择。
  4. 传输层(Transport Layer)

    • 负责端到端的数据传输和控制。
    • 包括TCP和UDP协议。
  5. 会话层(Session Layer)

    • 负责建立、维护和管理会话。
    • 控制会话的建立和终止。
  6. 表示层(Presentation Layer)

    • 负责数据格式的转换和加密解密。
    • 确保数据在不同系统之间的兼容性。
  7. 应用层(Application Layer)

    • 负责提供网络服务和应用接口。
    • 包括HTTP、FTP、SMTP等协议。

三、TCP和UDP的区别

  1. 连接性

    • TCP(Transmission Control Protocol)面向连接的协议,需要在数据传输前建立连接(三次握手)。
    • UDP(User Datagram Protocol)无连接的协议,不需要建立连接,直接发送数据。
  2. 可靠性

    • TCP提供可靠的数据传输,保证数据包的顺序和完整性,具有重传机制和错误检测
    • UDP不保证可靠性,数据可能丢失或乱序,没有重传机制。
  3. 传输效率

    • TCP:由于有连接建立和可靠性保障,传输效率较低
    • UDP:传输效率高,适用于实时应用(如视频、音频)。
  4. 使用场景

    • TCP适用于需要可靠传输的应用,如网页浏览、文件传输、电子邮件。
    • UDP适用于不需要可靠传输的应用,如视频流、在线游戏、DNS查询。

Network Address Translation (NAT) 是网络工程中一个重要的概念,尤其在IP地址管理和网络安全方面起着关键作用。在面试中,关于NAT的重点知识点通常包括其基本概念、工作原理、类型、优缺点以及应用场景。以下是一些常见的NAT相关面试知识点:

四、NAT

  1. NAT定义

    • Network Address Translation(网络地址转换)是将私有IP地址转换为公共IP地址的过程,允许多个设备通过一个公共IP地址访问互联网。
  2. 工作原理

    • 当内部网络设备(使用私有IP地址)发出互联网请求时,NAT设备(如路由器)会将私有IP地址和端口号转换为公共IP地址和一个唯一的端口号。返回的数据包则通过这个映射反向转换回私有IP地址。
  3. NAT类型

    • 静态NAT(Static NAT)
      • 一对一的IP地址映射。一个私有IP地址映射到一个公共IP地址。
    • 动态NAT(Dynamic NAT)
      • 多对多的IP地址映射。一组私有IP地址映射到一组公共IP地址。
    • 端口地址转换(PAT)/ 网络地址端口转换(NAPT)
      • 多对一的IP地址映射。多个私有IP地址通过不同的端口号映射到同一个公共IP地址。通常称为“多路复用”。
    • 双向NAT(Bidirectional NAT)
      • 双向映射,既可以将外部IP地址映射到内部IP地址,也可以将内部IP地址映射到外部IP地址。
  4. NAT的优点

    • 节省IP地址:允许多个设备通过一个公共IP地址访问互联网,减少公共IP地址的需求。
    • 增强安全性:隐藏内部网络结构和私有IP地址,提高安全性。
    • 灵活的地址管理:可以方便地重用私有IP地址。
  5. NAT的缺点

    • 增加延迟:地址转换需要时间,可能会增加网络延迟。
    • 某些协议不兼容:某些协议或应用程序(如需要嵌入IP地址信息的协议)可能无法正常工作。
    • 端到端连接性丧失:NAT会打破IP地址的端到端可达性,某些情况下需要借助UPnP或STUN等协议来穿越NAT。
  6. 应用场景

    • 家庭网络和小型企业网络:使用NAT来共享单个公共IP地址,实现多个设备同时访问互联网。
    • 数据中心:在数据中心内部使用私有IP地址,通过NAT与外部网络通信,节省公共IP地址。
    • 虚拟专用网络(VPN):NAT可以与VPN结合使用,实现私有网络的安全互联。
  7. 常见面试问题

    • 什么是NAT,为什么需要NAT?
      • 解释NAT的基本概念和其在节省IP地址、提高安全性方面的作用。
    • NAT有几种类型?它们的区别是什么?
      • 讨论静态NAT、动态NAT、PAT/NAPT和双向NAT的区别和应用场景。
    • NAT的优缺点是什么?
      • 分析NAT在节省IP地址和提高安全性方面的优点,以及增加延迟和某些协议不兼容等缺点。
    • NAT在家庭网络中的应用是什么?
      • 说明如何在家庭网络中使用NAT共享公共IP地址。
    • NAT与防火墙的区别是什么?
      • 解释NAT和防火墙在网络安全中的不同作用。

这篇关于保研面试计网复习10——网页浏览过程、OSI七层协议、TCP和UDP的区别、NAT的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1101050

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

作业提交过程之HDFSMapReduce

作业提交全过程详解 (1)作业提交 第1步:Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。 第2步:Client向RM申请一个作业id。 第3步:RM给Client返回该job资源的提交路径和作业id。 第4步:Client提交jar包、切片信息和配置文件到指定的资源提交路径。 第5步:Client提交完资源后,向RM申请运行MrAp

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

native和static native区别

本文基于Hello JNI  如有疑惑,请看之前几篇文章。 native 与 static native java中 public native String helloJni();public native static String helloJniStatic();1212 JNI中 JNIEXPORT jstring JNICALL Java_com_test_g

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

Android fill_parent、match_parent、wrap_content三者的作用及区别

这三个属性都是用来适应视图的水平或者垂直大小,以视图的内容或尺寸为基础的布局,比精确的指定视图的范围更加方便。 1、fill_parent 设置一个视图的布局为fill_parent将强制性的使视图扩展至它父元素的大小 2、match_parent 和fill_parent一样,从字面上的意思match_parent更贴切一些,于是从2.2开始,两个属性都可以使用,但2.3版本以后的建议使