1、计算机网络协议与标准
- 协议:计算机网络中互相通信的对等实体之间交换信息时所必须遵守的规则的集合(可以理解为规则)
- 协议的三要素:
- 语法:用户数据与控制信息的结构与格式,以及数据出现的顺序
- 语义:解释控制信息每个部分的意义
- 同步:对事件发生顺序的详细说明
- 标准:一致同意的规则(标准一般由各权威组织制定)
- 常见的标准组织:
- ISO:国际标准化组织
- ITU:国际电信联盟
- IEEE:电气与电子工程师协会
- …………………
2、计算机网络分类(外网WAN和内网LAN)
- 广域网 WAN(Wide Area Netwrok),这种网络是一种远程网络,涉及长距离的通信,覆盖的范围是从几十公里到几千公里,完成省与省、国与国之间的主机数据运送。由于广域网地理上的距离非常大,所以信息的衰减很严重,这种网络一般要建设专线,如运营商的长途传输主干;当然也可以将这些专线通过接口信息处理协议和线路连接起来形成网状结构解决寻径问题,例如 Internet;连接广域网各节点交换机的链路一般都是高速链路,具有较大的通信容量。
- 城域网 MAN(Metropolitan Area Network),城域网是作用范围在广域网与局域网之间的网络,其作用距离一般在 5~10 公里;一般借助光缆将多个局域网进行互联形成大型网络。例如运营商的城域网、教育局的教育城域网等。目前很多城域网采用的是以太网技术,因此有时也常并入局域网的范围进行讨论
- 局域网 LAN(Local Area Network),局域网是指在小区域内由多台计算机组成的网络,覆盖范围通常局限在 10 公里范围以内。例如校园网、企业网等。局域网就是我们重点讨论的内容。
3、计算机网络参考模型
- 应用层:网络服务与最终用户的一个接口(将原始数据转换电脑能识别的二进制数)
- 表示层:数据的表示、安全、压缩
- 会话层:建立、管理、中止会话
- 传输层:定义传输数据的协议端口号,以及流控和差错校验
- 网络层:进行逻辑地址寻址,实现不同网络之间的路径选择
- 数据链路层:建立逻辑连接、进行硬件地址寻址、差错校验等功能
- 物理层:建立、维护、断开物理连接(将二进制数转换为传输的电信号或光信号)
4、TCP/IP参考模型
- 物理层和数据链路层:在物理层和数据链路层,TCP/IP 并没有定义任何特定的协议,它支持所有标准的,专用的协议,网络可以是局域网(如广泛使用的以太网)、城域网或广域网。所以,TCP/IP实际上只有三个层次。
- 网络层:在网络层,TCP/IP 定义了 IP(Internet Protocol 网际协议),而 IP 又由四个支撑协议组成:ARP(地址解析协议)、RARP(逆地址解析协议)、ICMP(网际控制报文协议)和 IGMP(网际组管理协议)。
- 传输层:传统上,TCP/IP 有两个传输层协议:TCP(传输控制协议)和 UDP(用户数据报协议)。TCP 协议传输更加稳定可靠,UDP协议传输效率更高。
- 应用层:在应用层,TCP/IP 定义了许多协议,如 HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)、DNS(域名系统)等。TELNET、SSH、HTTPS、TFTP、NTP、POP3、IMAP
(1)TCP协议(传输控制协议)
- 面向连接的、可靠的、面向字节流、有发送缓冲区和接收缓冲区,大小不受限
- 使用场景:用于文件传输,重要状态更新等场景
- 报文
-
- URG:紧急报文,当发送方希望一些数据尽快被接收方的上层拿到的时候,就需要用到这个标记位
- ACK:确认应答标记位,客户端和服务端任意一方发送数据后,另一方都需要给予应答以表明自己收到数据,应答的报文中该标记位需要置1,同时应答的报文也可以携带数据
- PSH:催促标记位,Server接收缓冲区快满了或者说已经满了,此时Client给在发送的报文里设置PSH标记位来催促对方尽快取走缓冲区的数据
- RST:复位标记位,用于非正常的关闭连接
- SYN:同步标记位,申请建立连接的标记位
- FIN:结束标记位,断开连接的标记位
- TCP建立连接的三次握手
-
- client->server 发起请求建立连接:SYN=1,seq = x
- server->client 同意连接请求,并向client发起连接请求:SYN=1,ACK=1,ack=x+1,seq=y
- client->server 同意连接请求: ACK=1,seq=x+1,ack=y+1
- TCP断开连接的四次挥手
-
- client->server 发送断开连接请求:FIN=1,seq=x,客户端状态由 ESTABLISHED 变为 FIN_WAIT_1
- server->client 接收请求,发送确认报文:ACK=1,seq=y,ack=x+1,服务器状态由 ESTABLISHED 变为 CLOSE_WAIT;客户端接收到ACK将状态设置为FIN_WAIT_2
- server->client 发送断开连接请求:FIN=1,ACK=1,seq=z,ack=x+1服务器的状态由CLOSE_WAIT变为 LAST_ACK
- client->server 发送确认请求:ACK=1,seq=z+1,ack=x+1
(2) SYN 攻击
-
SYN攻击属于DoS攻击(Denial of Service 拒绝服务)的一种。大量发送伪造源IP的第一次握手SYN包,服务器每接收到一个SYN包就会为这个连接信息分配核心内存并放入半连接队列,当攻击的SYN包超过半连接队列的最大值时,正常的客户发送SYN数据包请求连接就会被服务器丢弃
- 实施SYN攻击:在kali linux上是使用hping3工具
- 防御SYN攻击:(1)使用TCP代理 (2)TCP源探测(防火墙)(3)限制ip连接次数(4)增大半连接状态的连接数容量(不推荐)(5)延迟分配连接资源,等到第三次握手确认连接无误后再分配资源
(3)UDP协议(用户数据报协议)
- 协议特点:
- 无连接:不需要建立连接,直接发送数据
- 不可靠:如果传输过程中失败,不会返回错误信息
- 面向数据报:发送端一次发送的数据,接收端也必须一次接收,应用层交给UDP的报文,UDP原样发送
- 有接收缓冲区,没有发送缓冲区:接收端处理数据的速度可能比接收数据的速度慢,需要缓冲区;发送端直接将数据交给系统内核,不关心接收端是否接收到数据,无需缓冲区
- 大小受限:协议首部有一个16位UDP长度,代表UDP一次能传输数据的最大长度为64k
- 使用场景:用于语音传输,视频传输等场景
- 基于UDP的应用层协议:
- NFS:网络文件系统
- TFTP:简单文件传输协议
- DHCP:动态主机配置协议
- BOOTP:启动协议(用于无盘设备启动)
- DNS:域名解析协议
- DHCP协议
- 动态主机配置协议,给客户机提供TCP/IP参数(IP地址,子网掩码,网关,DNS登)
- DHCP服务工作流程:
- 搜索阶段,首先客户端广播发送DHCP Discover报文来寻找DHCP服务器
- 提供阶段,DHCP服务器接收到DHCP Discover报文后,查看自己的地址池中是否有可用地址,如果有,会在这个IP上做一个标记,并用DHCP Offer报文回复给客户端(广播)
- 选择阶段,客户端在接收到第一个DHCP Offer报文后,会选择此报文中提供的IP地址,并广播发送DHCP Request报文,其他服务器会知道客户端拒绝了自己提供的IP地址
- 确认阶段,服务器接收到客户端的DHCP Request报文后,会发送一个DHCP ACK报文,告诉客户端你可以使用那个IP地址
- DHCP攻击:
- DHCP攻击针对的目标是网络中的DHCP服务器,原理是耗尽DHCP服务器所有的IP地址资源,使其无法正常提供地址分配服务。然后在网络中再架设假冒的DHCP服务器为客户端分发IP地址,从而来实现中间人攻击
- 攻击方式1:攻击者发送大量的DHCP Discover报文,堵塞DHCP服务器处理速度,以至于瘫痪DHCP服务器
- 攻击方式2:制造大量的伪造MAC地址来请求地址,导致DHCP服务器中的IP地址耗尽
- 防御:构建一个ip-mac-接口-vlan的映射表,也就是DHCP Snooping技术,保证DHCP客户端从合法的DHCP服务器获取IP地址,并记录DHCP客户端IP地址与MAC地址等参数的对应关系
- DHCP Snooping应用场景:
-
-
-
- 防止DHCP Server仿冒者攻击导致用户获取到错误的IP地址和网络参数
- 防止非DHCP用户攻击导致合法用户无法正常使用网络
- 防止DHCP报文泛洪攻击导致设备无法正常工作
- 防止仿冒DHCP报文攻击导致合法用户无法获得IP地址或异常下线
- 防止DHCP Server服务拒绝攻击导致部分用户无法上线
-
-
- DNS协议
- 域名系统,将ip地址映射成为域名或者将域名映射成为ip的一种服务
-
- DNS欺骗(https://www.cnblogs.com/nLesxw/p/dns_cheating.html)
- dns欺骗又可以叫作中间人人攻击,主要是通过拦截受害人在访问某个网站时设备向外发送的dns请求,然后给出伪造的dns应答,实现欺骗过
(4)HTTP协议
- 工作流程、原理:
- 用户在浏览器输入访问地址:http://www.baidu.com
- 浏览器请求DNS进行域名解析,从而得到域名对应的IP地址
- 浏览器将端口号(默认80)从访问地址中解析出来
- 浏览器通过解析出来的IP和端口号与服务器之间进行tcp 3次握手建立一条可靠的tcp连接
- 3次握手建立好tcp连接后,浏览器向服务器发送一条http请求报文
- 服务器响应并读取浏览器的请求信息,然后返回响应报文
- 服务器关闭http连接,关闭tcp连接,浏览器显示访问内容到网页上
- HTTP和HTTPS的区别:
- HTTP:超文本传输协议;HTTPS:安全套接字层超文本传输协议
- HTTPS,为了数据传输的安全,在HTTP的基础上加入了SSL/TLS协议,SSL/TLS依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密
- HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443
标签:网络安全,协议,计算机,报文,TCP,服务器,DHCP,连接 From: https://www.cnblogs.com/Will-Zh/p/16972249.html