一、网路通信三要素
1、IP地址:互联网协议地址,分为公网地址和私有地址
1.1、公网地址的范围
- A类:地址范围1.0.0.0~127.255.255.255,主要分配给主机数量多、局域网数量少的大型网络;
- B类:地址范围为128.0.0.0至191.255.255.255,一般为国际大公司及政府机构使用;
- C类:地址范围为192.0.0.0至223.255.255.255,为一般小型公司校园网研究机构;
1.2、私网地址的范围
- 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
2、端口
2.1、周知端口:
- 0~1023,被预先定义的知名应用占用(如:HTTP占用 80,FTP占用21)
2.2、注册端口:
- 1024~49151,分配给用户进程或某些应用程序。(如:Tomcat占 用8080, MySQL占用3306)
2.3、动态端口:
- 49152到65535,之所以称为动态端口,是因为它 一般不固定分配某种进程, 而是动态分配。
3、协议
- 数据在网络中传输的规则,常见的协议有UDP协议和TCP协议。
- 通信协议:计算机网络中,连接和通信数据的规则被称为网络通信协议。
二、两个终端间通信的五大要素
- 1、发送者
- 2、接收者
- 3、介质
- 4、数据
- 5、协议
通信时双向的。主机A要发送数据给主机B,主机B也要回复。
三、设备
- 交换机:可以实现多台主机互联,分为广域交换机和局域网交换机
- 路由器:可以跨网段通信
四、企业网络基本架构
五、OSI模型(理论上是七层模型,实际使用的五层模型)
1、七层模型结构
- 通俗易懂就是:小明要寄快递(应用层),把快递打包(表示层),选择快递公司(会话层),选择快递保价还是不保价(传输层),填写寄件的目的地址(网络层),快递公司开始运输并且打电话叫收件人来收件(数据链路层),收件人处理快递方式(物理层)
2、TCP/IP模型
3、各层对应的
- 3.1、应用层、表示层、会话层
(应用层)
:HTTP、FTP、DNS、SMTP,应用程序要关注的:浏览器、邮箱,程序员一般是在这一层开发。 - 3.2、传输层:TCP、UDP这两种,选择数据传输的方式。
- 3.3、网络层:IP、ICMP、ARP、RARP,封装源和目的IP,进行路径选择。
- 3.4、数据链路层:
MAC(物理地址)
- 3.5、物理层:常见为IEEE 802中定义的规范
六、数据封装(从上往下一级一级封装)
七、数据链路层
数据链路层功能是:向该层用户提供透明的和可靠的数据传送服务。
- 1、透明性是指该层上传输的数据的内容、格式及编码没有限制,也没有必要解释信息结构的意义;可靠的传输使用户免去对丢失信息、干扰信息及顺序不正确等的担心。
- 2、在物理层中这些情况都可能发生,在数据链路层中必须用纠错码来检错与纠错。
- 3、数据链路层是基于MAC地址进行帧的传输。
(洪泛攻击)
八、数据链路层——以太网帧格式
1、Ethernet_II
1.1、D.MAC:目的地址、C.MAC:源地址
- 两者的区别:
*假设:A和B通信
A——>B
Refer——>host
C.MAC——>D.MAC
1.2、Type
- 标识符。使用的协议的标识符,用于区别上层使用什么协议。例如:0x0800(IP协议)、0x0806(ARP协议)
1.3、Data
- 也称为载荷。是所传输的上层数据帧,而这个数据帧的长度在64-1518字节之间。其中Windows最长在1518字节,Linux数据最长在1500个字节
1.4、FCS
- 帧检验的序列,相当于校验码。用来保证数据完整性,检验传输的数据有没有出错,一般长度是4个字节。
2、以太网的MAC地址
- MAC地址由两部分组成,分别是供应商代码(OUI)和序列号。其中前24位代表该供应商代码,由IEEE管理和分配。剩下的24位序列号由厂商自己分配。
3、MAC地址(单播、组播、广播)
- 3.1、单播:就是一对一通信。其中就是通过MAC地址识别通信目标的。
- 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。文章来源:https://www.toymoban.com/news/detail-720059.html
- 第一次挥手:主机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内
- 7.4、发送不管对方是否准备好,接收方收到也不确认,故是不可靠的
- 7.5、可以广播发送 ,发送数据结束时无需释放资源,开销小,速度快。
8、UDP协议通信场景
- 语音通话,视频会话等。
9、UDP头部
文章来源地址https://www.toymoban.com/news/detail-720059.html
- UDP头部仅占8字节,传输数据时没有确认机制。
10、UDP传输过程
- 使用UDP传输数据时,由应用程序根据需要提供报文到达确认、排序、流量控制等功能。
- UDP不提供重传机制,占用资源小,处理效率高。
- 一些时延敏感的流量,如语音、视频等,通常使用UDP作为传输层协议。
到了这里,关于网络安全入门学习第九课——计算机网络基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!