八股文之计算机网络

这篇具有很好参考价值的文章主要介绍了八股文之计算机网络。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

TCP/IP 网络模型有哪几层

该模型用来解决不同设备间的进程通信,就需要网络通信,该模型就应运而生。首先是应用层,我们所接触的App都是在这一层实现的,当不同的设备需要通信时,就需要把数据发给传输层,传输层支持两个传输协议,TCP和UDP,TCP应用广泛因为它具有可靠性,顺序性,能进行流量控制,拥塞控制,适用于长连接,适用于事务性应用,它可以确保数据被不丢失和不被篡改。UDP也有自身的优势,UDP没有TCP的连接建立过程和拥塞控制机制,在传输的过程中延迟较低,在简单的应用场景下更加合适,因为它的头部较小,没有复杂的控制机制,UDP支持广播和多播,适用于实时广播、流媒体等,UDP没有连接的概念,适用于一些短期通信的场景。接下来就是网络层了,传输层就作为应用数据传输的媒介,具体的传输路线由网络层管理,网络层采用的是IP协议,会将传输层的报文作为数据部分,再加上IP头部组装成IP报文,如果IP报文大小超过了MTU(以太网中一般就是1500字节)就会再次进行分片,再这一层需要寻找匹配的网络号和主机号(IP按位与子网掩码,IP按位与子网掩码的取反),IP协议还需要进行路由,当数据包到达一个网络节点,就需要通过路由算法决定下一步怎么走。最后数据到了网络接口层,在 IP 头部的前面加上 MAC 头部,并封装成数据帧(Data frame)发送到网络上,以太网在判断网络包目的地时和 IP 的方式不同,必须采用相匹配的方式才能在以太网中将包发往目的地,而 MAC 头部就是干这个用的,所以,在以太网进行通讯要用到 MAC 地址。网络接口层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位是段(segment),HTTP 的传输单位则是消息或报文(message)。但这些名词并没有什么本质的区分,可以统称为数据包。

在浏览器输入一个网址到网页显示,这期间发生了什么

  1. 域名解析(DNS解析):首先,浏览器会将输入的网址中的域名部分发送到DNS(域名系统)服务器,以获取与该域名关联的IP地址。DNS服务器将域名解析为对应的IP地址,以便后续连接到正确的服务器。

  2. 建立TCP连接:浏览器使用获取到的IP地址,通过TCP(传输控制协议)建立与服务器的连接。这涉及一个三次握手的过程,其中浏览器和服务器之间进行通信以确保连接的建立。

  3. 发送HTTP请求:一旦TCP连接建立,浏览器将HTTP请求发送到服务器,请求特定的网页内容。HTTP请求中包含请求的方法(GET、POST等)、请求的资源路径、协议版本等信息。

  4. 服务器处理请求:服务器接收到浏览器发送的HTTP请求后,会根据请求的内容和路径来处理请求,然后准备要返回的HTTP响应。

  5. 服务器发送HTTP响应:服务器将请求处理后的网页内容封装成HTTP响应,并发送回浏览器。HTTP响应中包含响应状态码、响应头部和响应体等信息。

  6. 接收响应:浏览器接收到服务器发送的HTTP响应后,会解析响应内容,其中包括状态码、响应头部和响应体等。

  7. 渲染页面:浏览器根据接收到的响应内容,开始渲染页面。它会解析HTML、CSS和JavaScript等内容,并在页面上显示出来。浏览器会按照文档对象模型(DOM)和渲染树的方式来构建页面的可视化表示。

  8. 加载资源:在渲染页面的过程中,浏览器还会下载页面所需的其他资源,如图片、样式表、JavaScript文件等。这些资源的加载是并行进行的,以提高页面加载速度。

  9. 执行JavaScript:如果页面中包含JavaScript代码,浏览器会执行这些代码,可能会改变页面的内容、交互和样式。

  10. 显示页面:最终,浏览器将渲染好的页面显示在用户的屏幕上,用户可以与页面进行交互,点击链接、填写表单等。

    总的来说,从键入网址到网页显示期间,涉及域名解析、建立TCP连接、发送和接收HTTP请求与响应、解析和渲染页面等多个步骤,这些步骤协同工作,使用户能够快速访问并浏览网页内容。

TCP为什么要三次握手四次挥手,一次握手和一次挥手不可以吗

TCP协议的三次握手和四次挥手是为了确保可靠的连接建立和断开,以应对不同网络环境下可能出现的问题和情况。一次握手和一次挥手是不足以满足这些需求的,下面解释一下为什么需要三次握手和四次挥手:

三次握手(建立连接):

  1. 第一次握手:客户端发送连接请求报文(SYN)给服务器,请求建立连接。

  2. 第二次握手:服务器收到客户端的连接请求后,回复一个确认报文(SYN + ACK),表示收到请求,并同意建立连接。

  3. 第三次握手:客户端收到服务器的确认后,再次回复一个确认报文(ACK),表示连接已建立。

    三次握手的主要目的是确保双方都同意建立连接,以及确认双方的通信能力正常。如果仅有一次握手,不能完全保证双方的通信能力,因此可能会导致不稳定的连接。

四次挥手(断开连接):

  1. 第一次挥手:客户端发送连接释放报文(FIN)给服务器,表示客户端没有数据要发送了,请求断开连接。

  2. 第二次挥手:服务器收到客户端的释放请求后,发送一个确认报文(ACK),表示已收到请求。

  3. 第三次挥手:服务器发送自己的连接释放报文(FIN)给客户端,表示服务器也没有数据要发送了,准备断开连接。

  4. 第四次挥手:客户端收到服务器的释放请求后,发送一个确认报文(ACK),表示已收到请求。

    四次挥手的过程是为了确保双方都完成数据的传输和处理,以及释放连接资源,避免在数据未完全传输或处理完毕时就断开连接,导致数据丢失或错误。

总的来说,三次握手和四次挥手的设计是为了保证连接的可靠性和数据的完整性,在不同网络环境下能够应对各种可能的问题,确保通信的稳定和可靠。

你说到数据安全,你可以说说对称加密和非对称加密吗?

  1. 对称加密:在对称加密中,同一个密钥被用于加密和解密数据。这意味着发送方和接收方都必须共享同一个密钥。常见的对称加密算法包括DES(Data Encryption Standard)、AES(Advanced Encryption Standard)等。对称加密的优点是加解密速度较快,但密钥的管理和分发相对复杂,容易受到安全威胁。

  2. 非对称加密:非对称加密使用一对密钥,分别是公钥和私钥。发送方使用接收方的公钥来加密数据,而接收方使用自己的私钥来解密数据。反之亦然。非对称加密算法的常见代表是RSA(Rivest-Shamir-Adleman)。非对称加密能够提供更好的安全性,因为私钥不需要与其他人共享,但相对来说加解密速度较慢。

https为什么安全,怎么实现的

HTTPS(Hypertext Transfer Protocol Secure)是一种通过加密和身份验证来保护网络通信的协议,它在传输数据时使用了SSL(Secure Sockets Layer)或TLS(Transport Layer Security)加密协议,从而提供了更高的安全性。HTTPS的安全性体现在以下几个方面:

  1. 数据加密: 在HTTPS中,传输的数据会通过加密算法进行加密,使得未经授权的第三方无法解读和窃取数据内容。这防止了数据在传输过程中被拦截和篡改。

  2. 身份验证: HTTPS使用了数字证书来对服务器进行身份验证,确保你与服务器通信的是预期的合法服务器,而不是恶意的中间人。这样可以防止“中间人攻击”等安全威胁。

实现HTTPS安全的过程如下:

  1. 获取SSL/TLS证书: 网站管理员需要从权威的证书颁发机构(Certificate Authorities,CA)处获取SSL/TLS证书。证书中包含了网站信息、公钥等,证明了服务器的身份。
  2. 配置服务器: 服务器需要配置支持HTTPS协议,一般是在Web服务器(如Apache、Nginx)上进行配置。配置的过程包括指定证书、私钥、加密算法等信息。
  3. 建立安全连接: 当客户端(浏览器)向服务器发起连接请求时,服务器会返回证书。浏览器通过证书中的公钥加密一个随机生成的对称密钥,并将其发送给服务器。
  4. 握手过程: 服务器收到客户端发送的对称密钥后,使用自己的私钥进行解密,得到了对称密钥。接下来的通信会使用这个对称密钥来进行加解密。此外,服务器和客户端会交换一些用于后续通信的加密参数。
  5. 安全通信: 一旦握手成功,客户端和服务器之间的通信就会使用对称密钥进行加密,从而保障数据的隐私和完整性。

需要注意的是,虽然HTTPS提供了更高的安全性,但也并非绝对安全。不正确的配置、失效的证书、被劫持的域名等都可能影响HTTPS的安全性。因此,维护证书的有效性、正确配置服务器以及及时更新证书等都是保障HTTPS安全的重要步骤。文章来源地址https://www.toymoban.com/news/detail-665272.html

到了这里,关于八股文之计算机网络的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【java八股文】之计算机网络系列篇

    TCP/IP分层(4层): 应用层,传输层,网络层,数据链路层 网络的七层架构 (7层) :应用层,表示层,会话层,传输层,网络层,数据链路层,物理层 五层协议 (5层): 物理层、数据链路层、网络层、运输层、 应用层 TCP/IP是面向连接的协议,发送数据前要先建立好连接

    2024年01月16日
    浏览(47)
  • 面试计算机网络框架八股文十问十答第三期

    作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新! ⭐点赞⭐收藏⭐不迷路!⭐ 1)GET和POST请求的区别 主要区别如下: GET: 用于请求服务器上的资源。 参数通过 URL 的查询字符串传递,可见于 URL 中。 通常用于获

    2024年02月20日
    浏览(42)
  • 面试计算机网络框架八股文十问十答第七期

    作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新! ⭐点赞⭐收藏⭐不迷路!⭐ 1)UDP协议为什么不可靠? UDP(用户数据报协议)是一种无连接的、不可靠的传输协议。它的不可靠性主要体现在以下几个方面: 无连

    2024年02月19日
    浏览(48)
  • 算法/后端计算机基础课程如何学?——八股文基础(数据结构、计算机网络、算法导论、操作系统)

    UCB CS61B 数据结构 Stanford CS144 计网 MIT 6.006 算法导论 6.S081 操作系统 配合国内外名校的开源课件和lab 浙大 数据结构 哈工大 计网/计组/操作系统/数据库 [b站/慕课] MIT 6.824分布式系统 6.830/6.814:数据库系统 fault tolerance/心跳/选举/日志复制都是如何实现的 ? 做完labs你就有答案啦

    2024年02月02日
    浏览(55)
  • 【计算机网络八股】计算机网络(一)

    计算机网络体系可以大致分为一下三种,OSI七层模型、TCP/IP四层模型和五层模型。 OSI七层模型:大而全,但是比较复杂、而且是先有了理论模型,没有实际应用。 TCP/IP四层模型:是由实际应用发展总结出来的,从实质上讲,TCP/IP只有最上面三层,最下面一层没有什么具体内

    2024年02月11日
    浏览(47)
  • 计算机网络八股

    TCP是面向连接的,UDP是面向无连接的; TCP只能一对一通信,UDP支持一对一,一对多,多对一和多对多交互通信; TCP是面向字节流的,UDP是面向报文的; TCP是可靠传输,使用流量控制和拥塞控制;UDP是不可靠传输 TCP首部最小20字节,最大60字节;UDP首部仅8字节。 物理层:建立

    2024年03月21日
    浏览(53)
  • 【八股】2023秋招八股复习笔记5(计算机网络-CN)

    八股目录 HTTP 1、协议参数 HTTP 是什么? HTTP 常见的状态码有哪些? HTTP 常见字段有哪些? GET 和 POST 有什么区别? GET 和 POST 方法都是安全和幂等的吗? HTTP 缓存有哪些实现方式? 什么是强制缓存? 什么是协商缓存? 2、HTTP版本特性 HTTP/1.1 的优点有哪些? HTTP/1.1 的缺点有哪

    2024年02月11日
    浏览(49)
  • 计算机网络面试八股复习:常见的Http状态码

    面试被问到过一次。自己最近使用Gin框架,在 Response 的时候有时候也会用到一个自定义的状态码。因此归纳一下这方面,供自己日后面试复习以及开发时候参考。 全名“超文本传输协议”(我也不懂为什么面试官问这个…) 属于应用层 状态码在记忆时候按系列来记。 信息

    2024年01月21日
    浏览(48)
  • 【网络编程·传输层】UDP和TCP的经典八股文

    需要云服务器等云产品来学习Linux的同学可以移步/--腾讯云--/--阿里云--/--华为云--/官网,轻量型云服务器低至112元/年,新用户首次下单享超低折扣。   目录 一、端口号划分 二、部分指令 1、pidof(用于查看进程id) 2、netstat(查看网络状态) 三、UDP协议 1、UDP协议格式 2、

    2024年02月13日
    浏览(42)
  • 计算机网络面试八股复习:常见的7/5/4层网络模型、各层协议以及键入网址到显示页面的流程

    OSI七层模型 TCP/IP四层模型 五层模型 精简部分,完整版见上图 ARP 和 RARP ,在TCP/IP模型中属于IP层(网络层), 在OSI 模型中属于 链路层。 逐层加东西。图源-小林codding 1、输入URL,解析URL,生成Http请求 2、逐级查看缓存(浏览器缓存、系统缓存、路由器缓存),若有则直接显

    2024年01月22日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包