网络知识总结及常见面试题

1、 路由表:(路由表)
1)路由表包含内容
ID;目的ip;下一跳;flags;度量值;出接口
Flags:U:启用 g:网关 s:静态 i:接口 l:本地回还 c:直连 h:主机
Metric度量值:所需的跃点数,优先级
在这里插入图片描述
2)路由器路由匹配顺序总结:
1.路由策略匹配。若路由器上有路由策略,首先执行路由策略,若无路由策略,则查询路由表。
2.最长子网掩码匹配。即当在路由表中有多条 到达某个IP地址的路由时,优先选择子网掩码最长的路由。
3.管理距离最小匹配。若执行最长子网掩码匹配后,路由表中 仍有多条到达某个IP地址的路由,优先选择管理距离(AD)最小的。
4.负载均衡。若执行管理距离最小匹配后,路由表中仍有多条达到某个IP地址的路由,则 在剩余的多条链路上执行负载均衡。注意:这里的负载均衡可能是等价的,也可能不是等价的,具体要看使用的路由协议。
3)策略路由》静态路由》动态路由》默认路由
2、 ARP表(ARP缓存表)
1)出接口 IP地址 MAC
Eth1 A B
2)免费arp报文
•ARP工作在二层和三层之间,属于三层协议(是TCP/IP的附属协议)。
•免费ARP是指主机发送ARP查找自己的IP地址。
在免费ARP报文中,源协议地址和目的协议地址都为自己的IP,而源硬件地址和目标硬件地址都是自己的MAC地址。
•免费arp作用:
Ø 宣告广播,告诉整个广播域,目前这个IP对应的MAC地址是什么。
Ø 看看广播域内有没有别的主机使用自己的IP,如果有,则提示IP冲突。

网络设备up时,会首先发送免费ARP在广播域内通告自己的arp信息,以宣告并确认没有IP冲突。

3)报文
以太网传输层
• 目标以太网地址:目标MAC地址。ff:ff:ff:ff:ff:ff 为广播地址。
• 源以太网地址:发送方MAC地址。
• 帧类型:以太类型,ARP为0x0806。
以太网报文数据
• 硬件地址类型:如以太网(0x0001)、分组无线网。
• 协议地址类型:如网际协议(0x8000)、IPv6(0x86DD)。
• 硬件地址长度:每种硬件地址的字节长度,一般为6。
• 协议地址长度:每种协议地址的字节长度,一般为4。
• 操作码:1为请求,2为回显。
• 源硬件地址:n个字节,n由硬件地址长度得到,一般为发送方MAC地址。
• 源协议地址:m个字节,m由协议地址长度得到,一般为发送方IP地址。
• 目标硬件地址:n个字节,n由硬件地址长度得到,一般为目标MAC地址。
• 目标协议地址:m个字节,m由协议地址长度得到,一般为目标IP地址。
3、 MAC地址表
在这里插入图片描述
Mac–进入FW时记录的主机MAC地址
vlan–vlan编号
dev–端口号
static–静态为1 ,动态为0;
ref–交换模式下某一条MAC地址被连接表引用的次数
在这里插入图片描述
二层转发:
1) 源MAC学习:从端口收到的帧读出源MAC地址,生成MAC地址表。
2) 根据VLAN ID和目的MAC地址,查询mac地址表找到出接口,进行数据转发。
3) 如表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以学习目的MAC地址与端口对应的表项,在下次传送数据时就不再需要对所有端口进行广播了。

三层转发:
1.防火墙收到数据包后,解封以太网帧头部,提取目的MAC地址,查看目的MAC地址是不是自己本身的MAC地址;如果不是自己的MAC地址则丢弃;如果是自己的MAC地址,上传到上层解析,解析IP层。
2、提取目的IP地址,判断目的IP地址是不是指向本机,;如果是指向本机,则上传到上层,有上层解析;如果不是指向自己而是转发,则去查路由表,匹配出接口。
3、如果匹配的路由是直连路由,则使用目的地址查ARP表。
4、如果匹配的路由不是直连路由,则使用下一跳的IP地址查ARP表,查下一跳的IP地址对应的MAC地址;把MAC地址封装到帧的目的MAC中,然后封装物理层发送出去
4、 NAT
同时存在SNAT和DNAT优先匹配DNAT
5、 VLAN
ACCESS:收—没VID标签,打上pvid进入
有VID标签,直接丢弃
发—对应的vid接口,剥离标签进行转发
Trunk:收—没VID标签,打上pvid(native vlan)进入
有VID标签,在允许之列,进入
不在允许之列,直接丢弃
发—pvid == naïve vlan ,剥离标签,发出
pvid != naïve vlan,带标签转发

6、 以太帧格式
在这里插入图片描述
0x0800:IP协议网络
Ethernet II类型以太网帧的最小长度为64字节(6+6+2+46+4),最大长度为1518字节(6+6+2+1500+4)。其中前12字节分别标识出发送数据帧的源节点MAC地址和接收数据帧的目标节点MAC地址。(注:ISL封装后可达1548字节,802.1Q封装后可达1522字节)。
接下来的2个字节标识出以太网帧所携带的上层数据类型,如下:
IPv4: 0x0800
ARP:0x0806
PPPoE:0x8864
802.1Q tag: 0x8100
IPV6: 0x86DD

FCS(CRC):在不定长的数据字段后是4个字节的帧校验序列:源节点发送数据帧时,由帧的帧头和数据部分计算得出FCS,目的节点接收到后,用同样的方式再计算一遍FCS,如果与接收到的FCS不同,则认为帧在传输过程中发生了错误,从而选择丢弃这个帧。
7、 VLAN帧格式(8021Q)
在这里插入图片描述
在这里插入图片描述
Type:帧类型;取值为0x8100时表示802.1Q Tag帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。
PRI:表示帧的优先级,取值范围为0~7
CFI:CFI为0说明是标准格式,CFI为1表示为非标准格式。在以太网中,CFI的值为0。
8、 MTU和MSS
MTU最大传输单元:为IP层服务 (46-1500)
MSS最大报文段长度:为TCP服务 最大1460
MTU:以太网最大的数据帧是1518字节,以太网帧的帧头14字节和帧尾CRC校验部分4字节,承载上层协议的地方也就是Data域最大就只能有1500Bytes. 这个值我们就把它称之为MTU。
MSS:MSS就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能
TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的
时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的
包头20Bytes)所以往往MSS为1460。通讯双方会根据双方提供的MSS值得最小
值确定为这次连接的最大MSS值。

9、 speed和duplex
speed:连接速率
duplex:半/全双工
接口统计信息:netstat –a

10、 IP报文结构
三层转发:
哪些字段会改变:源MAC,目的mac,TTL,首部校验和
哪些字段不会改变:其他字段
在这里插入图片描述
IP头字段解释
字段 长度 含义
版本 4比特 • 4:表示为IPV4;
• 6:表示为IPV6。
首部长度 4比特 首部长度,如果不带Option字段,则为20,最长为60,该值限制了记录路由选项。以4字节为一个单位。
区分服务 8比特 服务类型。只有在有QoS差分服务要求时这个字段才起作用。
总长度 16比特 总长度,整个IP数据报的长度,包括首部和数据之和,单位为字节,最长65535,总长度必须不超过最大传输单元MTU。
标识 16比特 标识,主机每发一个报文,加1,分片重组时会用到该字段。
标志 3比特 标志位:
• Bit 0: 保留位,必须为0。
• Bit 1: DF(Don’t Fragment),能否分片位,0表示可以分片,1表示不能分片。
• Bit 2: MF(More Fragment),表示是否该报文为最后一片,0表示最后一片,1代表后面还有。
片偏移 12比特 片偏移:分片重组时会用到该字段。表示较长的分组在分片后,某片在原分组中的相对位置。以8个字节为偏移单位。
生存时间 8比特 生存时间:可经过的最多路由数,即数据包在网络中可通过的路由器数的最大值。
协议 8比特 协议:下一层协议。指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个进程处理。
常见值:
• 0: 保留Reserved
• 1: ICMP, Internet Control Message [RFC792]
• 2: IGMP, Internet Group Management [RFC1112]
• 3: GGP, Gateway-to-Gateway [RFC823]
• 4: IP in IP (encapsulation) [RFC2003]
• 6: TCP Transmission Control Protocol [RFC793]
• 17: UDP User Datagram Protocol [RFC768]
首部校验和 16比特 首部检验和,只检验数据包的首部,不检验数据部分。这里不采用CRC检验码,而采用简单的计算方法。
源地址 32比特 源IP地址。
目的地址 32比特 目的IP地址。
可选字段 可变 选项字段,用来支持排错,测量以及安全等措施,内容丰富(请参见下表)。选项字段长度可变,从1字节到40字节不等,取决于所选项的功能。
填充字段 可变 填充字段,全填0。
1、总长度指首部和数据之和的长度,单位为字节。总长度字段为6位,因此数据报的最大长度为2的16次方减1=65535字节。=。
2、在IP层下面的每一种数据链路层协议都规定了一个数据帧中的数据字段的最大长度,这称为最大传输单元MTU,,以太网规定其MTU值是1500字节。
3、 标识 IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段,当数据报由于长度超过网络中的MTU值而必须进行分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。相同标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。
4、标志 占3位,但目前只有两位有意义。壁纸字段的最低位记为最低位MF,MF=0表示这是最后一片,MF=1标识后面还有分片;标志字段中间的一位记为DF,DF=0时才允许分片。
5、生存时间 当TTL减值为0时,就丢弃这个数据报

报文:
在这里插入图片描述
11、 ICMP报文
在这里插入图片描述
类型Type 代码Code 描述
0 0 回显应答(ping应答)reply
3 0 网络不可达
3 1 主机不可达
3 2 协议不可达
3 3 端口不可达
5 0 对网络重定向
5 1 对主机重定向
8 0 请求回显(ping请求)request

12、 TCP报文
TCP报文学习
在这里插入图片描述
Source Port 16比特 源端口,标识哪个应用程序发送。
Destination Port 16比特 目的端口,标识哪个应用程序接收。
Sequence Number 32比特 序号字段。TCP链接中传输的数据流中每个字节都编上一个序号。序号字段的值指的是本报文段所发送的数据的第一个字节的序号。
Acknowledgment Number 32比特 确认号,是期望收到对方的下一个报文段的数据的第1个字节的序号,即上次已成功接收到的数据字节序号加1。只有ACK标识为1,此字段有效。
Data Offset 4比特 数据偏移,即首部长度,指出TCP报文段的数据起始处距离TCP报文段的起始处有多远,以32比特(4字节)为计算单位。最多有60字节的首部,若无选项字段,正常为20字节。
Reserved 6比特 保留,必须填0。
URG 1比特 紧急指针有效标识。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。
ACK 1比特 确认序号有效标识。只有当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。
PSH 1比特 标识接收方应该尽快将这个报文段交给应用层。接收到PSH = 1的TCP报文段,应尽快的交付接收应用进程,而不再等待整个缓存都填满了后再向上交付。
RST 1比特 重建连接标识。当RST=1时,表明TCP连接中出现严重错误(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立连接。
SYN 1比特 同步序号标识,用来发起一个连接。SYN=1表示这是一个连接请求或连接接受请求。
FIN 1比特 发端完成发送任务标识。用来释放一个连接。FIN=1表明此报文段的发送端的数据已经发送完毕,并要求释放连接。
Window 16比特 窗口:TCP的流量控制,窗口起始于确认序号字段指明的值,这个值是接收端正期望接收的字节数。窗口最大为65535字节。
Checksum 16比特 校验字段,包括TCP首部和TCP数据,是一个强制性的字段,一定是由发端计算和存储,并由收端进行验证。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。
Urgent Pointer 16比特 紧急指针,只有当URG标志置1时紧急指针才有效。TCP的紧急方式是发送端向另一端发送紧急数据的一种方式。紧急指针指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在软件开发的多线程面试中,可能会遇到以下几个经典题: 1. 线程和进程的区别是什么?请举例说明。 2. 什么是线程同步?有哪些常见的线程同步方法? 3. 什么是线程死锁?如何避免线程死锁? 4. 什么是线程池?为什么要使用线程池? 5. 什么是线程安全?如何保证线程安全? 6. 什么是信号量和互斥量?它们有什么区别? 7. 什么是线程调度?常见的线程调度算法有哪些? 8. 什么是线程阻塞和线程唤醒?如何实现线程的阻塞和唤醒? 9. 什么是线程间通信?有哪些常见的线程间通信方式? 10. 如何创建和销毁线程?有哪些常见的线程创建和销毁的方法? 请注意,以上题只是软件开发多线程面试可能会遇到的一部分题,具体面试题目还取决于面试官的要求和特定岗位的要求。建议在面试前仔细准备和复习相关知识,以便能够回答面试官的题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [C++后台开发面试题总结(涉及C++基础、多线程多进程、网络编程等)](https://blog.csdn.net/qq_42302962/article/details/123433951)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值