当前位置: 首页 > news >正文

【网络】IP总结复盘

前置知识:

什么是IP协议:

IP协议是一种网络层协议,负责将数据可靠的从源主机跨网络找到目的主机传输过去

1.ARP和RAPR分别是什么?有什么区别?

答:

都是地址解析协议,两者都是数据链路层上的协议

ARPip地址mac地址

RARPmac地址ip地址

由于网络通讯时,只知道对方ip和端口,不知道对方mac地址

数据包需要首先被网卡收到,如果收到数据包的硬件地址与本机不符,直接丢弃,因为必须获取对方的mac地址

获取到对方的mac地址再封装成数据帧-》数据链路层的传输单位

发送数据时,先查缓存表有没有ip<-->mac映射关系,没有就通过ARP广播获取对方mac地址

RARP则是反向的,从mac到ip的转换

2.为什么要需要ARP协议?

答:

当数据在同一局域网传输时,底层物理设备只认识MAC地址,不认识IP地址

因此,只知道目标IP也必须要通过MAC地址把数据帧准确发送到目标设备

并且ARP还有缓存机制,第一次获取到对方的MAC地址后,会把IP地址和MAC的映射关系存入本地缓存表,后续直接从缓存中读取,无需重复广播,但是不会永久存储

3.为什么仅靠IP地址无法通信?

答:

注意:如果跨网段,获得的MAC地址是下一站的MAC地址 不是目的设备MAC,一层一层找到

局域网内的设备、网卡只处理数据链路层的帧、而帧的头部需要目标MAC地址才能转发

如果没有MAC地址无法确定该数据是要发给哪个设备的(相当于只知道对方身份证,但是不知道在哪个房间)

IP地址无法直接用于物理层传输,IP地址是逻辑地址,依赖网络层协议解析,物理层是网线、信号等传输的是数据帧,帧的格式由数据链路层定义,必须包含MAC地址才能被物理设备识别和转发

跨网段通信也依赖于MAC地址,即使目标设备在其他网段(需要路由器转发),你的设备也需要通过ARP先获取本地路由器接口的MAC地址,才能将数据发送到路由器,再由路由器转发到目标

网络

4.IP报文字段有哪些?

答:

        32位源地址IP

        32位目的地址IP

        16位校验和 

        16位字节总长度 表示报文总长度

        4位首部长度 表示报头长度

        4位版本 表示IPV4还是IPV6

        8位协议 表示TCP还是UDP

        8位生存时间TTL 防止目标主机一直找不到,一直在网络里转发,就是一个计数器,过一个路由器减1,=0就不转发了,可以理解为这种

        8位服务类型TOS 3位启用了,4位TOS字段,和一位保留字段(必须为0),4位TOS分别表示 最小延迟、最大吞吐量、最高可靠性,这四者冲突,只可以选择一位,根据情况选择,例如对于ssh/telnet这样的应用程序,延迟低重要,对于ftp这样的程序 吞吐量重要

        16位标识 用来标识哪个报文 区分分片的原始报文包用的

        13位片偏移 用来组装报文

        3位标志 判断是否是分片

        选项 除选项外报头长度固定20字节

5.关于分片的相关知识(MTU MSS)

答:

每个数据链路层的完整报文大小不能超过MTU最大传送单元 1500字节

IP层报文除了选项报头固定20字节,所以IP层最大有效载荷1500-20=1480字节

TCP层报文除了选项报头也是固定20字节,所以TCP层最大有效载荷1480-20=1460字节

所以 1460就是MSS 最大传输量/最大段尺寸 应用层传输数据就是这个大小了,传给TCP的

因为数据链路层最大每次传输一个MTU单元1500字节,所以如果上层的单次数据量超过这个

会进行分片(也就是分多次进行发送同一个报文,分开来发)

所以就产生了分片这个概念

6.分片的坏处?

答:

任何一个分片丢失,都会导致整个报文丢失(如果一个完整的报文分成多份来发送,一个丢了,整个就不完整了,判定为整个丢包了)

所以分片会大大增加丢包的概率,丢包就需要重传,也就是在TCP层增加了拥塞控制过于保守的情况,每次从1开始扩大拥塞窗口

滑动窗口一段一段的发也是为了减少分片,尽量不要一次超量发

TCP在建立连接的过程中,通信双方会进行MSS协商,最理想的情况 MSS的值正好就是不会被分片的长度,双方在发送SYN的时候会在TCP报头选项里面写入自己能支持的MSS值,然后双方得知对方的MSS值后,选择较小的作为最终MSS

7.如何分片组装呢?

答:

16位标识符判断是哪个原始报文包

再看3位标识,第一位保留位不用看,看第二位和第三位

第二位为1代表禁止分片,超过MTU就丢弃报文

第三位为1代表后面还有一个分片,为0而且13位偏移量大于0代表也是分片

没有分片的话就是第三位是0,且片偏移量也是0

IP网络层通过16位标识符找到属于哪个原始报文,通过片偏移量标识在该原始报文的第几个位置开始,接受方将同一原始报文的所有分片放入一个临时缓冲区,等待组装完传给上层

8.什么时候分片,什么时候组装?

答:

都是在IP网络层进行的

有时路由器的IP层从也能负责分片但是路由器禁止组装(提供路由效率,避免分片太多),只能目的设备IP层组装

如果数据报大小超过了下一站网络的MTU,路由器的IP层会进行分片

9.你对IP的理解,为什么要分类?

答:

五类网络 通过网络号+主机号定位一个IP

为了满足不同规模的网络需求,方便硬件快速查表,判断网段在哪里

10.为什么要子网划分、子网掩码?

答:

IP分类虽然解决了早期的地址分配问题,但是有明显缺陷,如果有人申请B类网络,但是用不完这么多主机号,造成浪费

于是提出了子网划分+子网掩码,将大网络拆分成子网络,提高地址利用率,优化网络性能

然后通过子网掩码,将一个大网络拆分多个子网,每个子网仅分配需要用的主机号数,例如将一个B类网络分成256个C类大小的子网

缩小了广播域,在ARP协议中,可以广播整个网络,但是通过子网划分,缩小了广播范围,提高了性能

11.IPV4和IPV6有什么区别?

答:

IPV4 4字节 点分制 靠DHCP配置网关ip 发送端和路由器均可分片

IPV6 16字节 冒号分割制 靠SLAAC自动配置 仅发送端可以分片

IPV4  地址可能变化(NAT) IPV6可能保持一个地址 

12.既然IP层会分片,为什么TCP还需要MSS

答:

TCP可以用MSS最大段尺寸把数据长度限制住,限制在MTU内减少分片

因为分片缺点大,本身是被迫才创立的分片机制,能不分片尽量不分片

分片增大了ip头部,增大了丢包概率,ip还需组装分片,不分片可以提供吞吐量

13.NAT的作用是什么?

答:

网络地址转换

将内网私有地址端口映射到公网地址端口

节约了IPV4地址,因此了内网结构,提供端口转发

地址复用:让大量私有IP主机共用一个公网IP

静态NAT:一对一 内网IP永久对应一个公网IP

动态NAT:内网拨出时,从公网IP池分配一个,用完放回

14.什么是MAC地址?

答:

6字节,网卡的唯一标识,相当于车牌号,用于在网络中投递帧,同一局域网根据MAC地址交付到主机

ARP映射 IP->MAC 完成ip包->以太网帧的封装

15.你对DNS的理解?

答:

用于域名解析

16.如何获取客户端真实IP

答:

直接建立连接,从请求上下文拿取

17.什么时候用MAC,什么时候用MAC

答:

MAC地址用于局域网内的直接数据传输,工作在数据链路层标识一个唯一设备

IP地址用于标识对方地址,工作在网络层

18.数据链路层看到IP却不用IP而是用MAC?

答:

注意点:如果跨网段ARP获得的MAC地址是下一条的MAC地址 不是目的MAC地址

如果需要跨网段,则MAC地址在别的网段会失效,路由器需要剥离MAC头部,解析出IP数据包,拿到对方的IP地址,根据路由表找到下一站路由器的IP
然后重新封装成新的帧,用下一条路由器的MAC地址作为目的MAC地址

19.DNS劫持是什么?如何应对?

答:

DNS劫持是攻击者篡改域名解析流程,返回了伪造的IP,导向了恶意站点

常见有钓鱼诈骗,广告注入,恶意软件分发,流量控制

可以通过加密传输来应对、或者删除本地Host缓存文件(木马可能篡改本地文件),清除DNS缓存

20.什么是网段划分

答:

网段划分是将IP地址划分为网络号和主机号,相同网段内的网络号可以相同,主机号不同,通过IP地址和子网掩码按位与获得网络号

21.WAN口IP和LAN口IP的作用

答:

路由器LAN口IP连接的主机 都从属于当前这个路由器的子网中

WAN口IP就是一个公网IP,上级子网给自己分配的,子网内的主机需要和外网通信时路由器把子网主机IP替换为WAN口IP

22.为什么DNS域名解析用UDP协议?

答:

因为UDP,DNS协议只需要一个请求一个应答就行

而TCP需要三次握手 四次挥手

而且一般返回内容不超过512字节,UDP正好不能传输超过512的

23.为什么区域传送用TCP协议?

答:

因为TCP可靠性高,并且TCP传输内容大

24.DNS负载均衡是什么策略?

答:

为同一个域名配置多个IP地址,选择合适的IP地址返回,选择就近的或者根据负载量决定

25.额外补充

为了应对IP地址不足,提出了子网划分和子网掩码,最大化利用了IP地址

但是IP地址终究会数量不够,最大化利用也没用

所以又提出了

        DHCP动态分配IP地址,入网才给地址,否则不给

        NAT技术 公网和子网映射

        IPV6

        私有IP和公有IP 私有IP可以重复 公有IP不可以重复 (私有IP不可以出现公网中)

http://www.lryc.cn/news/621916.html

相关文章:

  • Claude Opus 4.1深度解析:抢先GPT5发布,AI编程之王主动出击?
  • day31 UDP通信
  • Ansible 学习笔记:变量事实管理、任务控制与文件部署
  • 计算机视觉(opencv)实战四——图片阈值处理cv2.threshold()
  • Android RxJava变换操作符详解
  • 从0开始学习Java+AI知识点总结-15.后端web基础(Maven基础)
  • 使用 PyQt5 构建 Python 人脸采集系统实战指南
  • 16进制pcm数据转py波形脚本
  • 来火山引擎「算子广场」,一键处理多模态数据
  • 标题:移动端安全加固:发散创新,筑牢安全防线引言:随着移动互联网
  • OpenCV Python——VSCode编写第一个OpenCV-Python程序 ,图像读取及翻转cv2.flip(上下、左右、上下左右一起翻转)
  • 【数据结构初阶】--排序(三):冒泡排序、快速排序
  • 有红帽认证证书可以0元置换华为openEuler-HCIA/HCIP认证
  • html抽奖功能
  • 【Twincat3】IO的SCAN 不可选中,SCAN中后扫描不到设备
  • langGraph--2--langServe+langGraph示例
  • 高等数学 8.3 平面及其方程
  • 开发Chrome/Edge插件基本流程
  • 使用 Serverless 架构快速构建基于 Iceberg 的事务型实时数据湖
  • redis6的多线程原理
  • 永磁同步电机控制 第一篇、认识电机
  • 图像生成适配器对比与选择:LoRA、ControlNet、T2I-Adapter 与 IP-Adapter
  • UE UDP通信
  • tun/tap 转发性能优化
  • 记录一下 StarRocks 点查的 Profile Metrics
  • C++结构体详解
  • 局部变量与全局变量的关系及应用
  • 【swift开发】SwiftUI概述 SwiftUI 全面解析:苹果生态的声明式 UI 革命
  • Unity_导航网格
  • 什么是国产化防爆平板?有哪些功能特点?应用在什么场景?