计算机网络面试题

1.OSI7层网络模型

应用层、表示层、会话层、运输层、网络层、链路层、物理层
https://www.cnblogs.com/schips/p/12254688.html

2.TCP/IP四层网络模型

应用层,运输层,网际层,接口层

综合OSI和TCP/IP模型,学习五层网络模型:
从上向下架构:
应用层,运输层,网络层,链路层,物理层

链路层

3.MTU

Maximum Transmission Unit,最大传输单元,MTU其实是相当于网络传输里每个节点的管控值,只要是大于这个值的数据帧,要么分片,要么直接丢弃。

4.MAC地址

MAC地址,集成在显卡,由48位的16进制数字组成,0~23位数字叫做组织唯一标识符,24到27位是由厂家自己分配,其中第48位是组播地址标志位。在网络底层的物理传输中,数据传输是通过物理地址来识别主机的,它一定是全球唯一的。

网络层

5.地址解析协议

https://blog.csdn.net/ding_programmer/article/details/90581032

6.为啥有IP地址还需要MAC地址?同理,为啥有了MAC地址还需要IP地址?

https://segmentfault.com/a/1190000037565455

7.网络层转发数据报的流程

https://blog.csdn.net/u010606397/article/details/110422346

8.子网划分、子网掩码

https://www.cnblogs.com/kangxinxin/p/9917961.html

9. 网络控制报文协议ICMP

https://blog.csdn.net/qq_22238021/article/details/80484313

10. ICMP应用举例:PING、traceroute

https://blog.csdn.net/s_lisheng/article/details/77895505

运输层

11. TCP与UDP的区别及应用场景

https://www.cnblogs.com/liangyc/p/11628208.html

12. TCP首部报文格式(SYN、ACK、FIN、RST必须知道)

13.TCP滑动窗口原理

https://blog.csdn.net/m0_37962600/article/details/79951780

14. TCP超时重传时间选择

https://blog.csdn.net/weixin_43056298/article/details/101372505

15. TCP流量控制

https://www.cnblogs.com/kubidemanong/p/9987810.html

16. TCP拥塞控制(一定要弄清楚与流量控制的区别)

发送方维持一个叫做拥塞窗口cwnd(congestion window)的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口,另外考虑到接受方的接收能力,发送窗口可能小于拥塞窗口。慢开始算法的思路就是,不要一开始就发送大量的数据,先探测一下网络的拥塞程度,也就是说由小到大逐渐增加拥塞窗口的大小。
过程cwnd的大小呈指数增长,直到超过慢启动门限,然后进入拥塞避免阶段,cwnd的大小线性增长,当出现网络拥塞(三个重复的ack或者超时)时候,将慢启动门限设置为出现拥塞时候大小的一半,cwnd的大小重新从0开始进入慢启动阶段。
快重传和快恢复:快重传要求接收方在收到一个失序的报文段后就立即发出重复确认(为的是使发送方及早知道有报文段没有到达对方)而不要等到自己发送数据时捎带确认。快重传算法规定,发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段,而不必继续等待设置的重传计时器时间到期

https://mp.weixin.qq.com/s?__biz=Mzg2NzA4MTkxNQ==&mid=2247485204&idx=1&sn=27daef390eec05b3d5db7cebcdcb4b7c&source=41#wechat_redirect

17. TCP三次握手及状态变化。为啥不是两次握手?

https://blog.csdn.net/qq_40332952/article/details/110772643

18.TCP四次挥手及状态变化。为啥不是三次挥手?

https://www.zhihu.com/question/63264012

19.TCP连接释放中TIME_WAIT状态的作用

https://blog.csdn.net/chen134225/article/details/82968346

https://blog.csdn.net/godleading/article/details/50849253

20. SYN泛洪攻击。如何解决?

https://www.cnblogs.com/jokerbj/p/11278067.html

21.TCP粘包

https://blog.csdn.net/weixin_41047704/article/details/85340311

22.TCP心跳包

https://www.jianshu.com/p/506f39b90631

23.路由器与交换机的区别

https://blog.csdn.net/baidu_32045201/article/details/78305586

24.UDP如何实现可靠传输

https://www.jianshu.com/p/6c73a4585eba

TCP如何保证可靠性

TCP保证可靠性:
(1)序列号、确认应答、超时重传

数据到达接收方,接收方需要发出一个确认应答,表示已经收到该数据段,并且确认序号会说明了它下一次需要接收的数据序列号。如果发送发迟迟未收到确认应答,那么可能是发送的数据丢失,也可能是确认应答丢失,这时发送方在等待一定时间后会进行重传。这个时间一般是2*RTT(报文段往返时间)+一个偏差值。

(2)窗口控制与高速重发控制/快速重传(重复确认应答)

TCP会利用窗口控制来提高传输速度,意思是在一个窗口大小内,不用一定要等到应答才能发送下一段数据,窗口大小就是无需等待确认而可以继续发送数据的最大值。如果不使用窗口控制,每一个没收到确认应答的数据都要重发。

使用窗口控制,如果数据段1001-2000丢失,后面数据每次传输,确认应答都会不停地发送序号为1001的应答,表示我要接收1001开始的数据,发送端如果收到3次相同应答,就会立刻进行重发;但还有种情况有可能是数据都收到了,但是有的应答丢失了,这种情况不会进行重发,因为发送端知道,如果是数据段丢失,接收端不会放过它的,会疯狂向它提醒…

(3)拥塞控制

如果把窗口定的很大,发送端连续发送大量的数据,可能会造成网络的拥堵(大家都在用网,你在这狂发,吞吐量就那么大,当然会堵),甚至造成网络的瘫痪。所以TCP在为了防止这种情况而进行了拥塞控制。

慢启动:定义拥塞窗口,一开始将该窗口大小设为1,之后每次收到确认应答(经过一个rtt),将拥塞窗口大小*2。

拥塞避免:设置慢启动阈值,一般开始都设为65536。拥塞避免是指当拥塞窗口大小达到这个阈值,拥塞窗口的值不再指数上升,而是加法增加(每次确认应答/每个rtt,拥塞窗口大小+1),以此来避免拥塞。

将报文段的超时重传看做拥塞,则一旦发生超时重传,我们需要先将阈值设为当前窗口大小的一半,并且将窗口大小设为初值1,然后重新进入慢启动过程。

快速重传:在遇到3次重复确认应答(高速重发控制)时,代表收到了3个报文段,但是这之前的1个段丢失了,便对它进行立即重传。

然后,先将阈值设为当前窗口大小的一半,然后将拥塞窗口大小设为慢启动阈值+3的大小。

这样可以达到:在TCP通信时,网络吞吐量呈现逐渐的上升,并且随着拥堵来降低吞吐量,再进入慢慢上升的过程,网络不会轻易的发生瘫痪。

应用层

25. DNS域名系统。采用TCP还是UDP协议?为什么?

https://www.jianshu.com/p/2d7829578466

26.FTP协议(了解)

https://www.cnblogs.com/luoxn28/p/5585458.html

27、HTTP请求报文与响应报文首部结构

HTTP报文由报文首部和报文主体构成

请求报文首部结构:

请求行 (方法,URI,HTTP版本)

请求首部字段

通用首部字段

实体首部字段

响应报文首部结构

状态行(HTTP版本,状态码)

响应首部字段

通用首部字段

实体首部字段

HTTP首部字段是由首部字段名和字段值构成的

首部字段名:字段值

使用首部结构是为了给浏览器和服务器提供报文主体大小,所使用的语言,认证信息等内容.

keep-alive 保持长连接

https://www.jianshu.com/p/9fe2c140fa52

28. HTTP1.0、HTTP1.1 HTTP2.0对比

https://blog.csdn.net/qq_36183935/article/details/81156225

29. HTTP与HTTPS对比

30. HTTPS加密流程

https://www.cnblogs.com/fengf233/p/11775415.html

31. 方法:GET、HEAD、POST、PUT、DELETE

https://blog.csdn.net/zane3/article/details/73732986

32、状态码:1**、2**、3**、4**、5**

1**信息,服务器收到请求,需要请求者继续执行操作

2**成功,操作被成功接收并处理

3**重定向,需要进一步的操作以完成请求

4**客户端错误,请求包含语法错误或无法完成请求

5**服务器错误,服务器在处理请求的过程中发生了错误

33、cookie与session区别

cookie:客户端记录
session:服务器端记录
具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。

https://blog.csdn.net/jnshu_it/article/details/79894570

34、输入一个URL到显示页面的流程(越详细越好,搞明白这个,网络这块就差不多了)

https://blog.csdn.net/weixin_34348174/article/details/93722583

  1. dns域名解析:将于域名解析成IP地址
  2. TCP连接:TCP三次握手
  3. 发送HTTP请求
  4. 服务器处理请求并返回HTTP报文
  5. 浏览器解析渲染页面
  6. 断开连接:TCP四次握手
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值