- 3.2、组播:一对多,在以太网中的部分主机通信,相当于只跟我关系好的通信。
- 3.3、广播:一对多,以太网中的所有主机都能接收,相当于是大喇叭。
4、数据帧的传输

- 第一步:主机检查帧头中的目的MAC地址,如果目的MAC地址不是本机MAC地址,也不是 本机侦听的组播或广播MAC地址,则主机会丢弃收到的帧。如果目的MAC地址是本机MAC 地址,则接收该帧。
- 第二步:检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧在传输过程中 是否保持了完整性。
- 第三步:如果检查通过,就会剥离帧头和帧尾,然后根据帧头中的Type字段来决定把数 据发送到哪个上层协议进行后续处理。
5、数据帧的发送和接收

- 当主机接收到的数据帧所包含的目的MAC地址是自己时,会把以太网封装剥掉后送往上层协议。
- 其中就是通过Type来判断发送给上层哪个协议来处理。
九、网络层
网络层位于数据链路层与传输层之间。网络层中包许多协议,其中最为重要的协议就是IP协议。网络层提供了IP路由功能。理解IP路由除了要熟悉IP协议的工作机制之外,还必须理解IP编址以及如何合理地使用IP地址来设计网络。
十、网络层——协议
1、ICMP
- 控制报文协议。面向无连接的协议,对应UDP,一般用来传输报错的信息(报告错误,交换机受限制等相关信息的传递)
2、ARP
- 地址解析协议。根据IP地址来获得MAC地址的(IP——>ARP——>物理地址)。
- 常见攻击手法有ARP欺骗,因为ARP协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自 主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入 本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法 到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。(协议缺少核验导致的)
3、RARP
- 反向地址转换协议。假如一个设备不知道它自己的IP地址,但是知道自己的物理地址(物理地址——>RARP——>IP)。
十一、IP地址
1、IP报文头部


1.1、TTL:time to live,报文的生存时间,防止协议呈环状。
- 报文在网段间转发时,如果网络设备上的路由规划不合理,就可能会出现环路,导致报文在网络中无限循环,无法到达目的端。环路发生后,所有发往这个目的地的报文都会被循环转发,随着这种报文逐渐增多,网络将会发生拥塞。
为避免环路导致的网络拥塞,IP报文头中包含一个生存时间TTL(Time To Live)字段。报文每经过一台三层设备,TTL值减1。初始TTL值由源端设备设置。当报文中的TTL降为0时,报文会被丢弃。同时,丢弃报文的设备会根据报文头中的源IP地址向源端发送ICMP错误消息。 - 默认情况下,
Linux系统的TTL值为64或255,Windows NT/2000/XP系统的TTL值为128,Windows 98系统的TTL值为32,UNIX主机的TTL值为255,当数据包传送到一个路由器之后,TTL就自动减1, 所以:52 = 系统TTL默认值 - 经过的路由个数。
1.2、Protocol
- 协议号,其中:TCP(6) 、UDP(17)、 ICMP(1) 、IGMP(2)
2、网络通信
- 同网段不过路由,不同网段需要路由
3、IP编址

- 3.1、IP = 网络位 + 主机位
- 3.2、同网段的IP地址数量是256-2=254个,减去的两个分别是网络地址(00000000)和广播地址(11111111)
4、IP地址类型
分为两大类:私有地址和特殊地址
4.1、私有地址范围
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
4.2、特殊地址范围
127.0.0.0 ~ 127.255.255.255
0.0.0.0
255.255.255.255
5、子网掩码


5.1、子网掩码作用
- 用来区分IP地址的网络号与主机号。用来将网络分割为多个子网,减少网络上的通信量,节省IP地址,便于管理。
5.2、常见的IP地址包含子网掩码写法
- 192.168.1.1/24,后面的24就是代表子网掩码的网络位,是C类掩码。
5.3、地址规划

- 网络地址 = IP地址 * 子网掩码
- 可用的主机数量就是子网掩码主机位0的个数,如上图是:2的8次方-2=256-2=254个。
5.4、缺省子网掩码:会导致地址使用率过低
5.5、变长子网掩码:解决地址使用率过低

上图IP地址书写一般是:192.168.1.7/25。网络位借用了一位主机位,把一个子网划分为两个子网,分别是子网掩码:255.255.255.128 和 255.255.255.0,每一个子网的主机数量是2的7次方-2 = 128 – 2 = 126个 。
十二、网关

- 网关用来转发来自不同网段之间的数据包。
十三、传输层
传输层定义了主机应用程序之间端到端的连通性。传输层中最为常见的两个协议分别是传输控制协议TCP(Transmission Control Protocol )和 用户数据包协议UDP(User Datagram Protocol)。
1、TCP协议特点
- 1.1、使用TCP协议,必须双方先建立连接,它是一种面向连接的可靠通信协议。
- 1.2、传输前,采用“三次握手”方式建立连接,所以是可靠的 。
- 1.3、在连接中可进行大数据量的传输 。
- 1.4、连接、发送数据都需要确认,且传输完毕后,还需释放已建立的连接,通信效率较低。
2、TCP协议通信场景
- 对信息安全要求较高的场景,例如:文件下载、金融等数据通信。
3、TCP端口号,端口号用来区分不同的网络服务

4、TCP的头部


4.1、16位端口号
告知主机该报文段是来自哪里(源端口)以及传给哪个上层协议或应用程序(目的端口)的。请注意:进行TCP通信时,客户端通常使用系统自动选择的临时端口号,而服务器则使用知名服务端口号。
4.2、32位序号(seq)
一次TCP通信(从TCP连接建立到断开)过程中某一个传输方向上的字节流的每个字节的编号。可为随机数生成。
4.3、32位确认号(ack)
用作对另一方发送来的TCP报文段的响应。其值是收到的TCP报文段的序号值加1。
4.4、4位数据偏移(头部长度)
标识该TCP头部有多少个32bit字(4字节)。因为4位最大能表示15,所以TCP头部最长是60字节。
4.5、6位标志位:
4.5.1、URG
- 表示紧急指针是否有效
4.5.2、ACK
- 表示确认号是否有效,ACK = 1时才有效,,表示期望收到的下一个字节的序号
4.5.3、PSH
- 提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间(如果应用程序不将接收到的数据读走,它们就会一直停留在TCP接收缓冲区中)
4.5.4、RST
- 表示要求对方重新建立连接,我们称携带RST标志的TCP报文段为复位报文段
4.5.5、SYN
- 表示请求建立一个连接。我们称携带SYN标志的TCP报文段为同步报文段
4.5.6、FIN
- 表示:通知对方本端要关闭连接了,我们称携带FIN的TCP报文段为结束报文段
4.6、16位端口号
- 告知主机该报文段是来自哪里(源端口)以及传给哪个上层协议或应用程序(目的端口)的。请注意:进行TCP通信时,客户端通常使用系统自动选择的临时端口号,而服务器则使用知名服务端口号。
4.7、16位校验和
- 由发送端填充,接收端对TCP报文段执行CRC算法以检验TCP报文段在传输过程中是否损坏。注意:这个校验不仅包括TCP头部,也包括数据部分,这也是TCP可靠传输的一个重要保障。
4.8、16位紧急指针
- 是一个正的偏移量。TCP的紧急指针是发送端向接收端发送紧急数据的方法。
5、TCP建立连接的过程(三次握手)

TCP是一种可靠的,面向连接的全双工传输层协议。TCP连接的建立是一个三次握手的过程。
- 第一次:主机A(通常也称为客户端)发送一个标识了SYN=1的数据段,表示期望与服务器A建立连接,此数据段的序列号(seq)为a。
- 第二次:服务器A回复标识了SYN=1、ACK=1的数据段,此数据段的序列号(seq)为b,确认序列号为主机A的序列号加1(a+1),以此作为对主机A的SYN报文的确认。
- 第三次:主机A发送一个标识了ACK的数据段,此数据段的序列号(seq)为a+1,确认序列号为服务器A的序列号加1(b+1),以此作为对服务器A的SYN报文段的确认。
6、TCP关闭连接(四次挥手)

TCP支持全双工模式传输数据,这意味着同一时刻两个方向都可以进行数据的传输。在传输数据之前,TCP通过三次握手建立的实际上是两个方向的连接,因此在传输完毕后,两个方向的连接必须都关闭。
主机在关闭连接之前,要确认收到来自对方的ACK。
- 第一次挥手:主机A想终止连接,于是发送一个标识了FIN,ACK的数据段,序列号为a,确认序列号为b。
- 第二次挥手:服务器A回应一个标识了ACK的数据段,序列号为b,确认序号为a+1,作为对主机A的FIN报文的确认。
- 第三次挥手:服务器A想终止连接,于是向主机A发送一个标识了FIN,ACK的数据段,序列号为b,确认序列号为a+1。
- 第四次挥手:主机A回应一个标识了ACK的数据段,序列号为a+1,确认序号为b+1,作为对服务器A的FIN报文的确认。以上四次交互便完成了两个方向连接的关闭。
7、UDP协议特点
- 7.1、UDP是一种无连接、不可靠传输的协议。
- 7.2、将数据源IP、目的地IP和端口封装成数据包,不需要建立连接
- 7.3、每个数据包的大小限制在64KB内
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。






既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)

写在最后
在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。
需要完整版PDF学习资源私我
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
们的辉煌篇章。**
需要完整版PDF学习资源私我
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
本文介绍了计算机网络基础知识,包括数据帧的传输和接收,重点关注网络层的IP协议、ICMP、ARP、RARP等协议,以及IP地址的类型、子网掩码和网关的作用。详细讲解了IP报文头部的TTL和Protocol字段,同时探讨了TCP协议的三次握手和四次挥手过程,以及TCP和UDP协议的特点。内容适合网络安全和计算机网络初学者学习。
757

被折叠的 条评论
为什么被折叠?



