IT名企常见面试题总结之计算机网络篇(一)

2023-12-19 22:08

本文主要是介绍IT名企常见面试题总结之计算机网络篇(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.OSI七层模型和 TCP/IP四层模型

osi七层模型和tcp/ip四层模型对比(图片来源于网络)


下面是各层分别对应的一些协议:

2.TCP传输的三次握手与四次挥手


首先要理解TCP中两个序号和三个标记位的含义:
  1. seq:sequence number的缩写,表示所传数据的序号。
  2. ack:acknoledgement number的缩写,表示确认号。
  3. ACK:确认位,只有ACK=1的时候ack才起作用。
  4. SYN:同步位,用于建立连接时同步序列。
  5. FIN:终止位,用来数据传输完成后释放连接。
三次握手:
  • a.  TCP建立连接时,首先客户端和服务器处于close状态。然后客户端发送SYN同步位,此时客户端处于SYN-SEND状态,服务器处于LISTEN状态。此时,ACK=0,SYN=1,seq=x.发送给服务器。
  • b. 当服务器接受连接后回复ACK报文,并为这次连接分配资源。此时,ACK=1,ack开始起作用。然后发送给客户端。
  • c.客户端再向服务器发送ACK确认码,服务器接收到以后也变成ESTABLISHED。然后服务器客户端开始数据传输。
四次挥手:
  • a.客户端端发起中断连接的请求,也就是发送FIN报文。
  • b.服务端接收到FIN报文后,知道客户端要请求关闭连接。如果服务端还有数据则不必急着关闭Socket连接,可以先发送个ACK来确认收到信息,然后继续发送剩下没发送完的消息。
  • c.当服务端接收到数据时,则向客户端发送FIN报文,告诉客户端关闭连接,客户端接收到FIN报文后,知道可以关闭连接了,但是为了保险起见,所以发送完后ACK进入了TIME_WAIT状态,服务端如果没有收到ACK则可以重传。
  • d.服务端收到ACK后,知道可以断开连接 了,客户端等待2msl后没有收到回复,则证明服务端正常关闭,最后客户端关闭连接。

3.DNS劫持和DNS污染

DNS劫持:指用户访问一个被标记的地址时,DNS服务器故意将此地址指向一个错误的IP地址的行为。范例就是收到各种推送广告等网站。

DNS污染:
指的是用户访问一个地址,国内的服务器(非DNS)监控到用户访问的已经被标记地址时,服务器伪装成DNS服务器向用户发回错误的地址的行为。比如不能访问Google、YouTube等。

4.常见的网络端口号

网络层---数据包的包格式里面有个很重要的字段叫做协议号。比如在传输层如果是TCP连接,那么在网络层IP包里面的协议号就将会有个值是6,如果是UDP的话那个值就是17---传输层。 
传输层---通过接口关联(端口的字段叫做端口)---应用层。 
用netstat –an 可以查看本机开放的端口号。 
代理服务器常用以下端口: 
(1). HTTP协议代理服务器常用端口号:80/8080/3128/8081/9080 
(2). SOCKS代理协议服务器常用端口号:1080 
(3). FTP(文件传输)协议代理服务器常用端口号:21 
(4). Telnet(远程登录)协议代理服务器常用端口:23 

WIN2003远程登陆,默认的端口号为3389; 
DHCP server的端口号是67
端口号的范围是从1~65535。其中1~1024是被RFC 3232规定好了的,被称作“众所周知的端口”(Well Known Ports);从1025~65535的端口被称为动态端口(Dynamic Ports),可用来建立与其它主机的会话,也可由用户自定义用途。

一些常见的端口号及其用途如下:
TCP 21端口:FTP 文件传输服务
TCP 23端口:TELNET 终端仿真服务
TCP 25端口:SMTP 简单邮件传输服务
UDP 53端口:DNS 域名解析服务
TCP 80端口:HTTP 超文本传输服务
TCP 110端口:POP3 “邮局协议版本3”使用的端口
TCP 443端口:HTTPS 加密的超文本传输服务
TCP 1521端口:Oracle数据库服务
TCP 1863端口:MSN Messenger的文件传输功能所使用的端口
TCP 3389端口:Microsoft RDP 微软远程桌面使用的端口
TCP 5631端口:Symantec pcAnywhere 远程控制数据传输时使用的端口
UDP 5632端口:Symantec pcAnywhere 主控端扫描被控端时使用的端口
TCP 5000端口:MS SQL Server使用的端口
UDP 8000端口:腾讯QQ
TCP 25端口:SMTP 25仔
TCP 110端口:POP3 报警110 police

5.简述IP地址的分类

IP地址分为网络号和主机号,A类地址前8位是网络地址,B类地址前16位是网络地址,C类地址前24位是网络地址。
A类地址:以   0 开头,    第一个字节范围:1~126(1.0.0.0 - 126.0.0.0);
B类地址:以  10   开头,  第一个字节范围:128~191(128.0.0.0 - 191.255.255.255);
C类地址:以 110  开头, 第一个字节范围:192~223(192.0.0.0 - 223.255.255.255);
D类地址:以1110 开头,  第一个字节范围:224~239(224.0.0.0 - 239.255.255.255);(作为多播使用)
E类地址:保留
其中A、B、C是基本类,D、E类作为多播和保留使用。
以下是留用的内部私有地址:
A类 10.0.0.0--10.255.255.255
B类 172.16.0.0--172.31.255.255
C类 192.168.0.0--192.168.255.255
IP地址与子网掩码相与得到网络号:
ip       : 192.168.2.110
&
Submask : 255.255.255.0
----------------------------
网络号   :192.168.2  .0
注:
主机号,全为0的是网络号(例如:192.168.2.0),主机号全为1的为广播地址(255.255.255.255)

6.TCP和UDP的区别

TCP提供面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。
TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报。
TCP注重数据安全性,UDP数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般。
TCP面向字节流,UDP面向报文
TCP是点对点连接的,UDP一对一,一对多,多对多都可以
TCP适合用于网页,邮件等,UDP适合用于视频,语音广播等,UDP也应用于:分组数据较少、多播、广播、实时性要求较高的视频等多媒体领域
TCP:协议内容复杂,不适用于视频会议等(音、视频数据既定)场合
TCP对应的协议和UDP对应的协议
TCP对应的协议:
(1) FTP:定义了文件传输协议,使用21端口。
(2) Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。
(3) SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。
(4) POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。
(5)HTTP:是从Web服务器传输超文本到本地浏览器的传送协议。
UDP对应的协议:
(1) DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。
(2) SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。
(3) TFTP(Trival File Transfer Protocal),简单文件传输协议,该协议在熟知端口69上使用UDP服务。

7.简述OSI,TCP/IP,五层协议的体系结构,以及各层协议

OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。
五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。
每一层的协议如下:
物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器)
数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机)
网络层:IP、ICMP、ARP、RARP(有的教材放在数据链路层)、OSPF、IPX、RIP、IGRP、 (路由器)
传输层:TCP、UDP、SPX
会话层:NFS、SQL、NETBIOS、RPC
表示层:JPEG、MPEG、ASII
应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS
每一层的作用如下:
物理层:通过媒介传输比特,确定机械及电气规范(比特Bit)
数据链路层:将比特组装成帧和点到点的传递(帧Frame)
网络层:负责数据包从源到宿的传递和网际互连(包PackeT)
传输层:提供端到端的可靠报文传递和错误恢复(段Segment)
会话层:建立、管理和终止会话(会话协议数据单元SPDU)
表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
应用层:允许访问OSI环境的手段(应用协议数据单元APDU)

8.简述ARP地址解析协议工作原理

1:首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。
2:当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机 IP地址,源主机MAC地址,目的主机的IP 地址。
3:当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。
4:源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
广播发送ARP请求,单播发送ARP响应。

9.简述ICMP、TFTP、HTTP、NAT、DHCP协议

ICMP协议: 因特网控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。
TFTP协议: 是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。
HTTP协议: 超文本传输协议,是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。
NAT协议:网络地址转换属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,
DHCP协议:动态主机配置协议,是一种让系统得以连接到网络上,并获取所需要的配置参数手段,使用UDP协议工作。具体用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。

10.RARP协议

RARP是逆地址解析协议,作用是完成硬件地址到IP地址的映射,主要用于无盘工作站,因为给无盘工作站配置的IP地址不能保存。工作流程:在网络中配置一台RARP服务器,里面保存着IP地址和MAC地址的映射关系,当无盘工作站启动后,就封装一个RARP数据包,里面有其MAC地址,然后广播到网络上去,当服务器收到请求包后,就查找对应的MAC地址的IP地址装入响应报文中发回给请求者。因为需要广播请求报文,因此RARP只能用于具有广播能力的网络。

11.


12.

13.

14.

15.

16.

17.

18.

19.

20.




这篇关于IT名企常见面试题总结之计算机网络篇(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

关于C++中的虚拟继承的一些总结(虚拟继承,覆盖,派生,隐藏)

1.为什么要引入虚拟继承 虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下: class A class B1:public virtual A; class B2:pu

嵌入式软件常见的笔试题(c)

找工作的事情告一段落,现在把一些公司常见的笔试题型整理一下,本人主要是找嵌入式软件方面的工作,笔试的也主要是C语言、数据结构,大体上都比较基础,但是得早作准备,才会占得先机。   1:整型数求反 2:字符串求反,字符串加密,越界问题 3:字符串逆序,两端对调;字符串逆序,指针法 4:递归求n! 5:不用库函数,比较两个字符串的大小 6:求0-3000中含有9和2的全部数之和 7

Java面试题:通过实例说明内连接、左外连接和右外连接的区别

在 SQL 中,连接(JOIN)用于在多个表之间组合行。最常用的连接类型是内连接(INNER JOIN)、左外连接(LEFT OUTER JOIN)和右外连接(RIGHT OUTER JOIN)。它们的主要区别在于它们如何处理表之间的匹配和不匹配行。下面是每种连接的详细说明和示例。 表示例 假设有两个表:Customers 和 Orders。 Customers CustomerIDCus

十五.各设计模式总结与对比

1.各设计模式总结与对比 1.1.课程目标 1、 简要分析GoF 23种设计模式和设计原则,做整体认知。 2、 剖析Spirng的编程思想,启发思维,为之后深入学习Spring做铺垫。 3、 了解各设计模式之间的关联,解决设计模式混淆的问题。 1.2.内容定位 1、 掌握设计模式的"道" ,而不只是"术" 2、 道可道非常道,滴水石穿非一日之功,做好长期修炼的准备。 3、 不要为了

人工智能机器学习算法总结神经网络算法(前向及反向传播)

1.定义,意义和优缺点 定义: 神经网络算法是一种模仿人类大脑神经元之间连接方式的机器学习算法。通过多层神经元的组合和激活函数的非线性转换,神经网络能够学习数据的特征和模式,实现对复杂数据的建模和预测。(我们可以借助人类的神经元模型来更好的帮助我们理解该算法的本质,不过这里需要说明的是,虽然名字是神经网络,并且结构等等也是借鉴了神经网络,但其原型以及算法本质上还和生物层面的神经网络运行原理存在

Java注解详细总结

什么是注解?         Java注解是代码中的特殊标记,比如@Override、@Test等,作用是:让其他程序根据注解信息决定怎么执行该程序。         注解不光可以用在方法上,还可以用在类上、变量上、构造器上等位置。 自定义注解  现在我们自定义一个MyTest注解 public @interface MyTest{String aaa();boolean bbb()

tensorboard-----summary用法总结

Tensorflow学习笔记——Summary用法         最近在研究tensorflow自带的例程speech_command,顺便学习tensorflow的一些基本用法。 其中tensorboard 作为一款可视化神器,可以说是学习tensorflow时模型训练以及参数可视化的法宝。 而在训练过程中,主要用到了tf.summary()的各类方法,能够保存训练过程以及参数分布图并在

vscode-创建vue3项目-修改暗黑主题-常见错误-element插件标签-用法涉及问题

文章目录 1.vscode创建运行编译vue3项目2.添加项目资源3.添加element-plus元素4.修改为暗黑主题4.1.在main.js主文件中引入暗黑样式4.2.添加自定义样式文件4.3.html页面html标签添加样式 5.常见错误5.1.未使用变量5.2.关闭typescript检查5.3.调试器支持5.4.允许未到达代码和未定义代码 6.element常用标签6.1.下拉列表

七种排序方式总结

/*2018.01.23*A:YUAN*T:其中排序算法:冒泡排序,简单排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序*/#include <stdio.h>#include <math.h>#include <malloc.h>#define MAXSIZE 10000#define FALSE 0#define TRUE 1typedef struct {i

【SparkStreaming】面试题

Spark Streaming 是 Apache Spark 提供的一个扩展模块,用于处理实时数据流。它使得可以使用 Spark 强大的批处理能力来处理连续的实时数据流。Spark Streaming 提供了高级别的抽象,如 DStream(Discretized Stream),它代表了连续的数据流,并且可以通过应用在其上的高阶操作来进行处理,类似于对静态数据集的操作(如 map、reduce、