前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【Java面试总结】计算机网络

【Java面试总结】计算机网络

作者头像
Rochester
发布于 2020-09-10 10:31:17
发布于 2020-09-10 10:31:17
82300
代码可运行
举报
文章被收录于专栏:牛人NR牛人NR
运行总次数:0
代码可运行

计算机网络

1. OSI 与 TCP/IP各层的结构与功能,都有哪些协议?

我们在学习的时候,一般采用折中的办法,也就是中和 OSI 与 TCP/IP 的优点,采用一种只有五层协议的体系结构,这样既简介又能将概念阐述清楚。

应用层:

其的任务是 通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统 DNS,支持万维网应用的 HTTP 协议,支持电子邮件的 SMTP协议等等,我们把应用层交互的数据单元称为报文

HTTP协议

超文本传输协议(HTTP,HyperText Transfer Protoco)是互联网上应用最为广泛的一种网络协议。所有的万维网(WWW)文件都必须遵守这个协议。设计HTTP最初的目的是为了提供一种发布和接收 HTML 页面的方法

运输层:

其主要任务就是负责两台主机进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。“通用的”是指并不针对某一个特定的网络应用,而是多种应用可以使用同一个运输层服务。由于同一台主机可同时运行多个线程,因此运输层有复用和分用的功能。所谓复用就是指多个应用层进程可同时使用下面运输层的服务,分用和复用相反,是运输层把收到的信息分别交付上面应用层中的相应进程。

运输层主要有以下两种协议:

  1. 传输控制协议 TCP(Transmission Control Protocol):提供面向链接的、可靠的数据传输服务。
  2. 用户数据协议 UDP(User Datagram Protocol)::提供无连接的。尽最大努力的数据传输服务(不保证数据传输的可靠性

TCP 与 UDP 对比 见下面问题三。

网络层:

计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是 选择合适的网间路由和交换节点确保数据及时传送。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。在 TCP/IP 体系结构中,由于网络层使用 IP协议,因此分组也叫IP数据报,也叫 数据报

注意:不要把运输层的“用户数据报 UDP”和网络层的“IP 数据报”弄混。另外,无论哪层的数据单元,都可笼统的用“分组”来表示。 这里强调指出,网络层中的“网络”二字已经不是我们通常谈到的具体网络,而是指计算机网络体系结构模型中第三层的名称。

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

数据链路层:

数据链路层(data link layer)通常简称为链路层。两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专⻔的链路层的协议。在两个相邻节点之间传送数据时,数据链路层将网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等)。

在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提出数据部分,上交给网络层。控制信息还使接收端能够检测到所收到的帧中有误差错。如果发现差错,数据链路层就简单地丢弃这个出了差错的帧,以避免继续在网络中传送下去白白浪费网络资源。如果需要改正数据在链路层传输时出现差错(这就是说,数据链路层不仅要检错,而且还要纠错),那么就要采用可靠性传输协议来纠正出现的差错。这种方法会使链路层的协议复杂些。

物理层:

在物理层上所传送的数据单位是比特。物理层(physical layer)的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不⻅的。

在互联网使用的各种协中最重要和最著名的就是 TCP/IP 两个协议。现在人们经常提到的TCP/IP并不一定单指TCP和IP这两个具体的协议,而往往表示互联网所使用的整个TCP/IP协议族。

总结:

图片来源:https://blog.csdn.net/yaopeng_2005/article/details/7064869

2. 三次握手 和 四次挥手(面试高频)

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

如图,两个机器人通过3次握手确定了对方能正确接收和发送消息(图片来源:《图解HTTP》)

简图:

  • 客户端 — 发送带有 SUN 标志的数据包 — 一次握手 - 服务端
  • 服务端 — 发送带有 SYN/ACK 标志的数据包 — 二次握手 - 客户端
  • 客户端 — 发送带有 ACK 标志的数据包 —- 三次握手 - 服务端

为什么要三次握手

三次握手的目的是建立可靠的通信信道。说到通讯,简单来说就是数据的发送与接收,而三次握手最主要的目的就是双方确认自己与对方的发送与接收都是正常的。

第一次握手:Client 什么都不能确认;Server 确认了对方发送正常,自己接收正常 第二次握手:Client 确认了:自己发送、接收正常,对方发送、接收正常;Server 确认了:对方发送正常,自己接收正常 第三次握手:Client 确认了:自己发送、接收正常,对方发送、接收正常;Server 确认了:自己发送、接收正常,对方发送、接收正常所以三次握手就能确认双发收发功能都正常,缺一不可。

为什么要传回 SYN

接收端传回发送端所发送的 SYN 是为了告诉发送端,我接收到的信息确实就是你所发送的信号。

SYN 是 TCP/IP 建立连接时使用的握手信号。在客户机和服务器之间建立正常的 TCP 网络连接时,客户机首先发出一个 SYN 消息,服务器使用 SYN-ACK 应答表示接收到了这个消息,最后客户机再以 ACK(Acknowledgement[汉译:确认字符 ,在数据通信传输中,接收站发给发送站的一种传输控制字符。它表示确认发来的数据已经接受无误。 ])消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。

传了 SYN,为啥还要传 ACK

双方通信无误必须是两者互相发送信息都无误。传了 SYN,证明发送方到接收方的通道都没问题,但是接收方到发送方的通道还需要 ACK 来进行验证。

断开一个 TCP 连接则需要“四次挥手”:

  • 客户端-发送一个 FIN,用来关闭客户端到服务器的数据传送
  • 服务器-收到这个 FIN,它发回一个 ACK,确认序号为收到的序号加1 。和 SYN 一样,一个FIN 将占用一个序号
  • 服务器-关闭与客户端的连接,发送一个FIN给客户端
  • 客户端-发回 ACK 报文确认,并将确认序号设置为收到序号加1

为什么要四次挥手?

任何一方都可以在数据传送结束后发送连接释放的通知,待对方确认后进入半关闭状态。当另一方也没有数据再发送的时候,则发出连接释放通知,对方确认后就完全关闭了TCP连接。

举个例子:A 和 B 打电话,通话即将结束后,A 说“我没啥要说的了”,B回答“我知道了”,但是 B 可能还会有要说的话,A 不能要求 B 跟着自己的节奏结束通话,于是 B 可能又巴拉巴拉说了一通,最后B 说“我说完了”,A 回答“知道了”,这样通话才算结束。

推荐阅读:两张动图-彻底明白TCP的三次握手与四次挥手

3. TCP,UDP 协议的区别

TCP

UDP

连接性

面向连接

面向非连接

传输可靠性

可靠

不可靠

报文

面向字节流

面向报文

效率

传输效率低

传输效率高

流量控制

滑动窗口

拥塞控制

慢开始、拥塞避免、快重传、快恢复

传输速度

应用场合

对效率要求低,对准确性要求高或要求有连接的场景

对效率要求高,对准确性要求低

UDP:在传送数据之前不需要先建立连接,远地主机在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但在某些情况下 UDP 确是一种最有效的工作方式(一般用于即时通信),比如 QQ语音、QQ视频等。

TCP:提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束之后要释放连接。 TCP 不提供广播或多播服务。由于 TCP 要提供可靠的、面向连接的传输服务(TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源),这一操作难免增加了许多开销,如确认,流量控制,计时器以及连接管理等。这不仅使协议数据单元的首部增大很多,还要占用许多处理机资源。TCP 一般用于文件传输、发送和接收邮件、远程登录等场景

4. TCP 协议如何证可靠传输

  1. 应用数据被分割成 TCP 认为最适合发送的数据块;
  2. TCP 给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层;
  3. 校验和:TCP 将保持它首部和数据的校验和。这是一个端到端的校验和,目的是检测数据在传输过程中的变化。如果收到段的校验和有差错,TCP 将会丢弃这个报文段和不确认收到此报文段;
  4. TCP 的接收端会丢弃收到的重复数据;
  5. 流量控制: TCP 连接的每一方都有固定大小的缓冲空间,TCP的接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据,能提示发送方降低发送的速率,防止包丢失。TCP 使用的流量控制协议是可变大小的滑动窗口协议。(TCP 利用滑动窗口实现流量控制)
  6. 拥塞控制:当网络拥塞时,减少数据的发送;
  7. ARQ 协议:也是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组;
  8. 超时重传:当 TCP 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。

5. ARQ 协议

自动重传请求(Automatic Repeat-reQuest,ARQ)是OSI模型中数据链路层和传输层的错误纠正协议之一。它通过确认和超时这两个机制,在不可靠服务的基础上实现可靠的信息传输。如果发送方在发送后一段时间内没有收到确认帧,它通常会重新发送。ARQ包括停止等待ARQ协议和连续ARQ协议。

停止等待协议

  • 停止等待协议是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认(回复ACK)。如果过了一段时间(超时时间后),还是没有收到ACK确认,说明没有发送成功,需要重新发送,知道收到确认再发送下一个分组;
  • 在停止等待协议中,若收到对方重复分组,就丢弃该分组,但同时还要发送确认。

优点:简单

缺点:信道利用率低,等待时间长

①、无差错情况:

发送方发送分组,接收方在规定时间内收到,并且回复确认,发送方再次发送;

②、出现差错情况:(超时重传)

停止等待协议中超时重传是指只要超过一段时间仍然没有收到确认,就重传前面发送过的分组(认为刚才发送过的分组丢失了)。因此每发送完一个分组需要设置一个超时计时器,其重传时间应比数据在分组传输的平均往返时间更⻓一些。这种自动重传方式常称为自动重传请求 ARQ。另外在停止等待协议中若收到重复分组,就丢弃该分组,但同时还要发送确认。连续 ARQ 协议可提高信道利用率。发送维持一个发送窗口,凡位于发送窗口内的分组可连续发送出去,而不需要等待对方确认。接收方一般采用累积确认,对按序到达的最后一个分组发送确认,表明到这个分组位置的所有分组都已经正确收到了。

③、确认丢失和确认迟到

  • 确认丢失:确认消息在传输过程中丢失。当A发送M1消息,B收到后,B向A发送了一个M1确认消息,但却在传输过程中丢失。而A并不知道,在超时计时过后,A重传M1消息,B再次收到该消息后采取以下两点措施:1. 丢弃这个重复的M1消息,不向上层交付。 2. 向A发送确认消息。(不会认为已经发送过了,就不再发送。A能重传,就证明B的确认消息丢失)。
  • 确认迟到:确认消息在传输过程中迟到。A发送M1消息,B收到并发送确认。在超时时间内没有收到确认消息,A重传M1消息,B仍然收到并继续发送确认消息(B收到了2份M1)。此时A收到了B第二次发送的确认消息。接着发送其他数据。过了一会,A收到了B第一次发送的对M1的确认消息(A也收到了2份确认消息)。处理如下:1. A收到重复的确认后,直接丢弃。2. B收到重复的M1后,也直接丢弃重复的M1。

连续ARQ 协议

连续ARQ协议可提高信道利用率。发送方维持一个发送窗口,凡位于发送窗口内的分组可以连续发送出去,而不需要等待对方确认。接收方一般采用累积确认,对按序到达的最后一个分组发送确认,表明这个分组为止的所有分组都已经正确收到了。

优点:信道利用率高,容易实现,即使确认丢失,也不必重传

缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息。比如:发送方发送了 5条消息,中间第三条丢失(3号),这时接收方只能对前两个发送确认。发送方无法知道后三个分组的下落,而只好把后三个全部重传一次。这也叫 Go-Back-N(回退 N),表示需要退回来重传已经发送过的N 个消息。

6. 滑动窗口和流量控制

TCP 利用滑动窗口实现流量控制。流量控制是为了控制发送方速率,保证接收方来得及接收。接收方发送的确认报文中的窗口字段可以用来控制发送方窗口大小,从而影响发送方的发送速率。将窗口字段设置为0,则发送方不能发送数据。

7. 拥塞控制

在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种情况就叫拥塞。拥塞控制就是为了防止过多的数据注入到网络中,这样就可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机,所有的路由器,以及与降低网络传输性能有关的所有因素。相反,流量控制往往是点对点通信量的控制,是个端到端的问题。流量控制所要做到的就是抑制发送端发送数据的速率,以便使接收端来得及接收。

为了进行拥塞控制,TCP 发送方要维持一个 拥塞窗口 的状态变量。拥塞控制窗口的大小取决于网络的拥塞程度,并且动态变化。发送方让自己的发送窗口取为拥塞窗口和接收方的接收窗口中较小的一个。

TCP 的拥塞控制采用了四种算法:慢开始、拥塞避免、快重传和快恢复

  • 慢开始:慢开始算法的思路是当主机开始发送数据时,如果立即把大量数据字节注入到网络,那么可能会引起网络阻塞,因为现在还不知道网络的符合情况。经验表明,较好的方法是先探测一下,即由小到大逐渐增大发送窗口,也就是由小到大逐渐增大拥塞窗口数值。cwnd初始值为1,每经过一个传播轮次,cwnd加倍。
  • 拥塞避免:拥塞避免算法的思路是让拥塞窗口cwnd缓慢增大,即每经过一个往返时间RTT就把发送放的cwnd加1.
  • 快重传与快恢复:在 TCP/IP 中,快速重传和恢复(fast retransmit and recovery,FRR)是一种拥塞控制算法,它能快速恢复丢失的数据包。没有 FRR,如果数据包丢失了,TCP 将会使用定时器来要求传输暂停。在暂停的这段时间内,没有新的或复制的数据包被发送。有了 FRR,如果接收机接收到一个不按顺序的数据段,它会立即给发送机发送一个重复确认。如果发送机接收到三个重复确认,它会假定确认件指出的数据段丢失了,并立即重传这些丢失的数据段。有了FRR,就不会因为重传时要求的暂停被耽误。 当有单独的数据包丢失时,快速重传和恢复(FRR)能最有效地工作。当有多个数据信息包在某一段很短的时间内丢失时,它则不能很有效地工作。

8. 在浏览器中输入 url 地址 ->> 显示主页的过程(面试高频)

总体分为以下几个过程:

  1. DNS 解析
  2. TCP 连接;
  3. 发送 HTTP 请求;
  4. 服务器处理请求并返回 HTTP 报文;
  5. 浏览器解析并渲染页面;
  6. 连接结束。

推荐阅读:前端经典面试题:从输入URL到页面加载发生了什么?

9. 状态码

类别

原因短语

1XX

Informational(信息性状态码)

接受的请求正在处理

2 XX

Success(成功状态码)

请求正常处理完毕

3 XX

Redirection(重定向状态码)

需要进行附加操作以完成请求

4 XX

Client Error(客户端错误状态码)

服务器无法处理请求

5 XX

Server Error(服务器错误状态码)

服务器处理请求出错

10. 各种协议与HTTP协议之间的关系

11. HTTP 长连接,短连接

HTTP/1.0 中默认使用短连接。也就是说,客户端和服务器每进行一次HTTP 操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个HTML或其他类型的Web⻚中包含有其他的Web资源(如JavaScript文件、图像文件、CSS文件等),每遇到这样一个Web资源,浏览器就会重新建立一个HTTP会话。

HTTP/1.1 开始默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头加入这行代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Connection:keep-alive

在使用⻓连接的情况下,当一个网⻚打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现⻓连接需要客户端和服务端都支持⻓连接。

HTTP协议的⻓连接和短连接,实质上是TCP协议的⻓连接和短连接。

推荐阅读:HTTP协议的⻓连接和短连接到底是什么?

12. HTTP是不保存状态的协议,如何保存用户状态?

HTTP 是一种不保存状态,即无状态(stateless)协议。也就是说 HTTP 协议自身不对请求和响应之间的通信状态进行保存。那么我们保存用户状态呢?Session 机制的存在就是为了解决这个问题,Session 的主要作用就是通过服务端记录用户的状态。典型的场景是购物⻋,当你要添加商品到购物⻋的时候,系统不知道是哪个用户操作的,因为 HTTP 协议是无状态的。服务端给特定的用户创建特定的Session 之后就可以标识这个用户并且跟踪这个用户了(一般情况下,服务器会在一定时间内保存这个Session,过了时间限制,就会销毁这个Session)。

在服务端保存 Session 的方法很多,最常用的就是内存和数据库(比如是使用内存数据库redis保存)。既然 Session 存放在服务器端,那么我们如何实现 Session 跟踪呢?大部分情况下,我们都是通过在Cookie 中附加一个 Session ID 来方式来跟踪

Cookie 被禁用怎么办? 最常用的就是利用 URL 重写把 Session ID 直接附加在URL路径的后面。

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

Cookie 和 Session都是用来跟踪浏览器用户身份的会话方式,但是两者的应用场景不太一样。

Cookie 一般用来保存用户信息比如①我们在 Cookie 中保存已经登录过得用户信息,下次访问网站的时候⻚面可以自动帮你登录的一些基本信息给填了;②一般的网站都会有保持登录也就是说下次你再访问网站的时候就不需要重新登录了,这是因为用户登录的时候我们可以存放了一个 Token 在 Cookie中,下次登录的时候只需要根据 Token 值来查找用户即可(为了安全考虑,重新登录一般要将 Token重写);③登录一次网站后访问网站其他⻚面不需要重新登录。

Session 的主要作用就是通过服务端记录用户的状态。典型的场景是购物⻋,当你要添加商品到购物⻋的时候,系统不知道是哪个用户操作的,因为 HTTP 协议是无状态的。服务端给特定的用户创建特定的 Session 之后就可以标识这个用户并且跟踪这个用户了。

Cookie 数据保存在客户端(浏览器端),Session 数据保存在服务器端。

Cookie 存储在客户端中,而Session存储在服务器上,相对来说 Session 安全性更高。如果要在Cookie 中存储一些敏感信息,不要直接写入 Cookie 中,最好能将 Cookie 信息加密然后使用到的时候再去服务器端解密。

14. URI 和 URL 的区别是什么?

  • URI(Uniform Resource Identifie):是统一资源标识符,可以唯一标识一个资源
  • URL((Uniform Resource Location):是统一资源定位符,可以提供该资源的路径。它是一种具体的URI,即 URL 可以用来标识一个资源,而且还指明了如何 locate 这个资源。

URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL是一种更具体的URI,它不仅唯一标识资源,而且还提供了定位该资源的信息。

15. HTTP 和 HTTPS 的区别?

  1. 端口:HTTP的URL由“http://”起始且默认使用端口80,而HTTPS的URL由“https://”起始且默认使用端口443。
  2. 安全性和资源消耗: HTTP协议运行在TCP之上,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。HTTPS是运行在SSL/TLS之上的HTTP协议,SSL/TLS 运行在TCP之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。所以说,HTTP 安全性没有 HTTPS高,但是 HTTPS 比HTTP耗费更多服务器资源
    • 对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等;
    • 非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有RSA、DSA等。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
计算机网络面试题总结
相对与上一个版本的计算机网路面试知识总结,这个版本增加了 “TCP协议如何保证可靠传输”包括超时重传、停止等待协议、滑动窗口、流量控制、拥塞控制等内容并且对一些已有内容做了补充。
全栈程序员站长
2022/08/26
3170
计算机网络面试题总结
搞定计算机网络面试,看这篇就够了(补充版)
相对与上一个版本的计算机网路面试知识总结,这个版本增加了 “TCP协议如何保证可靠传输”包括超时重传、停止等待协议、滑动窗口、流量控制、拥塞控制等内容并且对一些已有内容做了补充。
用户2164320
2018/08/17
8520
快速过一遍计算机网络
学习计算机网络时我们一般采用折中的办法,也就是中和OSI和TCP/IP的优点,采用一种只有五层协议的体系结构,这样既简洁又能将概念阐述清楚。
Java3y
2019/05/23
8250
计算机网络思维导图学习总结(五)
先概括介绍运输层协议的特点、进程之间的通信和端口等重要概念,然后讲述比较简单的UDP协议。其余的都是讨论较为复杂但非常重要的TCP协议和可靠传输的工作原理,包括停止等待协议和ARQ协议。在详细讲述TCP报文段的首部格式之后,讨论TCP的三个重要问题:滑动窗口、流量控制和拥塞控制机制。最后,介绍TCP的连接管理。
玖柒的小窝
2021/12/10
5110
计算机网络思维导图学习总结(五)
一文总结计算机网络
它只有四层,相当于五层协议中数据链路层和物理层合并为网络接口层。 现在的 TCP/IP 体系结构不严格遵循 OSI 分层概念,应用层可能会直接使用 IP 层或者网络接口层。
小二三不乌
2018/08/02
6470
一文总结计算机网络
计算机网络基本知识汇总「建议收藏」
例:某用户通过主机A浏览西安交大的主页 www.xjtu.edu.cn 1. A向本地域名服务器DNS查询 2. 如果DNS上有www.xjtu.edu.cn的记录,就立即返回IP地址给主机A 3. 如果DNS上没有该域名记录,则DNS向根域名服务器发出查询请求 4. 根域名服务器把负责cn域的顶级域名服务器B的IP地址告诉DNS 5. DNS向B查询获得二级域名服务器C的IP地址,最终迭代查询到www.xjtu.edu.cn的ip直接返回DNS
全栈程序员站长
2022/09/09
6130
计算机网络基础知识整理「建议收藏」
公共电话网(PSTN网)和移动网(包括GSM和CDMA网)采用的都是电路交换技术,它的基本特点是采用面向连接的方式,在双方进行通信之前,需要为通信双方分配一条具有固定宽带的通信电路,通信双方在通信过程中一直占用所分配的资源,直到通信结束,并且在电路的建立和释放过程中都需要利用相关的信令协议。这种方式的优点是在通信过程中可以保证为用户提供足够的带宽,并且实时性强,时延小,交换设备成本低,但同时带来的缺点是信道利用率低,一旦电路被建立不管通信双方是否处于通话状态分配的电路一直被占用。
全栈程序员站长
2022/08/01
3.1K0
计算机网络基础知识整理「建议收藏」
计算机网络面试复习
UDP 在传送数据之前不需要先建立连接,远地主机在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但在某些情况下 UDP 确是一种最有效的工作方式(一般用于即时通信),比如:QQ 语音、 QQ 视频 、直播等等
Tim在路上
2020/08/05
6340
2019秋招:460道Java后端面试高频题答案版【模块五:计算机网络】
计算机网络、计算机操作系统这两个“兄弟”是所有开发岗位都需要“结拜”的,不管你是 Java、C++还是测试。对于后端开发的童鞋来说,计算机网络的重要性不亚于语言基础,毕竟平时开发经常会和网络打交道,比如:抓个包等等。所以对这一块知识点的准备还是要抱着敬畏之心,不要放过任何一个漏网之题。下面分享下我的学习过程:
乔戈里
2019/09/25
8710
2019秋招:460道Java后端面试高频题答案版【模块五:计算机网络】
面试中常见的计算机网络的问题
面试中网络方面的知识被问到的概率很大,尤其是互联网公司,要熟悉osi七层模型,其中TCP/IP方面的知识尤其重要。如果自己平时有Socket编程的经验对面试也是很有帮助的。网络方面有空可以看看TCP/IP详解卷一和UNIX网络编程。以下总结了一些面试中常问的问题:
码农编程进阶笔记
2021/07/20
4010
计算机网络(五) 运输层
运输层向它上面的应用层提供通信服务,它属于面向通信部份的最高层,也是用户功能中的最低层
赤蓝紫
2023/01/02
5570
计算机网络(五)    运输层
计算机网络_传输层详解
运输层向上层【应用层】提供端到端的逻辑通信服务,即应用到应用的通信服务。只有两个主机之间的协议栈才会有传输层,网络核心部分中只用到下面的三层【网络层,数据链路层,物理层】
程序员阿杜
2021/06/18
1.3K0
计算机网络_传输层详解
【计算机网络】学习笔记,第五篇:运输层(谢希仁版)
从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。 当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有位于网络边缘部分的主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。
BWH_Steven
2021/01/12
1K0
计算机网络简答题
在数据交换前,必须先建立连接,数据交换过程中要维持连接,当数据交换结束后,应终止这个连接。
星辉
2019/01/15
1.6K0
计算机网络学习--传输层
第一章 概述 第二章 物理层 第三章 数据链路层 第四章 网络层 第五章 传输层 第六章 应用层
shimeath
2020/08/01
3980
计算机网络学习--传输层
计算机网络之传输层
  从信息处理得角度上去看,传输层主要是给上面得应用层提供通信服务得。我们平时再对网络进行编程得时候,我们很多时候都是直接对接得传输层,也就是我们使用传输层所提供得接口来进行网络编程,所以我们常说传输层是用户功能得最底层,是面向通信部份得最高层。   传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题;包含的主要协议:TCP协议(Transmission Control Protocol,传输控制协议)、UDP协议(User Datagram Protocol,用户数据报协议)。
程序员波特
2024/01/19
2200
计算机网络之传输层
计算机网络-运输层
之前笔记中所了解到的物理层、数据链路层以及网络层它们共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信。
用户9615083
2022/12/30
4960
计算机网络-运输层
Android 面试必备 - 计算机网络基本知识(TCP,UDP,Http,https)
HTTP协议(超文本传输协议)和 UDP(用户数据包协议),TCP 协议(传输控制协议)
程序员徐公
2020/01/13
1.2K0
Android 面试必备 - 计算机网络基本知识(TCP,UDP,Http,https)
【计算机网络】计算机网络基础知识笔记
由所有连接在因特网上的主机组成,这部分是用户直接使用的,用来通信(传送数据、音频或视频)和资源共享。
半生瓜的blog
2023/05/13
8200
【计算机网络】计算机网络基础知识笔记
Java面经——计算机网络
经过两个月的面试,还是积累了比较多的面试经验,面试的时候会问很多基础的东西,然而这些往往是平时容易忽略的知识。现在我将这两个月准备的内容以及面试中常问的知识点都整理一下写成博客,方便大家也方便自己以后复习巩固,有的回答不一定标准,如果发现问题欢迎联系我进行修正。今天的内容是计算机网络部分。
beifengtz
2019/06/03
9210
Java面经——计算机网络
相关推荐
计算机网络面试题总结
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文