1. OSI每一层作用1.1 应用层应用层: 用户操作电脑界面(用户操作后,如果电脑提供的反馈,电脑就会向下进行传输)1.2 表示层表示层: 为数据提供表示,加密,压缩(计算机只认识二进制, 把人能识别的数据(文字图片)和二进制相互转换)1.3 会话层会话层: 确认数据是本地访问还是网络访问1.4 传输层传输层: 作用对报文进行分组和组装提供传输协议的选择: (相当于平邮和快递的区别)① TCP(传输控制协议Transmission Control Protocol): 可靠的, 面向连接的传输协议优点: 可靠, 准确缺点: 慢, 消耗资源传输数据的时候会进行TCP三次握手,建立连接, 相当于打电话,需要确认对方在不在② UDP(用户数据报协议User Datagram Protocol): 不可靠的, 面向无连接的传输协议优点: 快缺点: 不可靠直接发送, 和发短信差不多, 不管对方在不在补充:安全: 数据不被篡改,不被窃取可靠: 数据不传丢,不传漏dns,https协议 是在应用层的协议,程序员写好了直接放在客户端里面的协议, 相当于信的内容tcp,udp协议是传输层协议, 用在网络传输中, 相当于信封(俩个信封是收件人来选择)sctp协议是新加的协议,了解即可3) 端口封装: 源端口(10001,1w的随机端口号) 目标端口(程序员把端口号写入了客户端程序里面, 因此只要我们用户点击, 就可以获取目标端口号)作用: 写入双方的端口号常见服务, 常见程序都在1W以内, 1W以外的端口可以随机借用4) 差错校验: TCP: 差错重传 UDP: 差错丢弃TCP 因为建立了连接, 查出发错了数据包, 就会让A重新传UDP 因为是无连接, 查出发错了数据包, 直接把错误数据包丢了传输层: IP地址编址: 写入 源IP 和 目标IP 路由选择: 路由器工作原理有详细介绍1.4.1 加密解密对称加密: 加密和解密密码一致①优点: 简单②缺点: 1) 加密密码和解密密码一致, 有泄露风险. 2) 加密位数较低,容易被暴力破解(zip: 128bit,.rar:256bit)非对称钥匙对加密: 加密密码和解密密码可以不一致①优点: 1) 加密密码和解密密码, 可以不一致. 2) 加密位数高, 1024 bit 起.②缺点: 1) 对技术要求高 2) 没有密码破解后门用法: 使用pgp加密软件(学会用pgp加密),公钥可以看成是锁,私钥可以看成是钥匙1.4.2 PGP加解密原理电脑A和B都下载pgp,并且设置自己的原始密码, 分别生成一对公钥和私钥电脑B把自己的公钥导出给电脑A, 电脑A给文件加密的时候,使用A和B的公钥进行加密电脑A打开文件, 需要使用A的私钥进行解密, A电脑想看里面的内容, 需要使用A电脑设置的原始密码… 同理B也是,并且B使用的也是自己设置的原始密码(校验了: 非对称密码: 加密密码和解密密码可以不一致)注意: 只有拥有A/B的私钥的电脑才可以把文件打开, 没有的话把文件发给别人的电脑,别人文件都打不开, 因为没有A/B的私钥, 私钥公钥加密就是为了限制电脑使用私钥解密后还要输入原始的密码的原因: 为了限制人(原始密码只有本人知道,别人如果来你的电脑上看你的文件, 文件虽然能够打开, 但是看不见里面的内容)1.5 网络层IP地址编址: 写于源IP和目标IP路由选择1.6 数据链路层MAC地址编制, MAC地址48bit4.7 物理层数据实际传输电气特性定义(网线8根线, 哪几根进,哪几根出, 都是物理层说了算)2. TCP/IP模型2.1 OSI 模型 VS TCP/IP模型对比TCP: 传输控制协议IP: 网际协议(互联网协议)TCP/IP四层模型 因为时间原因设计的不太合理(模型出现,早于互联网), 因此提出了五层模型五层模型是把应用层,表示层,会话层合并成应用层一个层2.2 TCP/IP 各层的常见协议TCP/IP/MAC/ARP 最重要, 其他晓得名字就可以了应用层常见协议:HTTP: 超文本传输协议 网站访问WEB(Apache,nginx,IIS)FTP: 文件传输协议 File Transfer Protocol 网络文件传输TFTP: console口-智能设备口之间的协议(交换机和路由器重装系统): Trivial File Transfer Protocol 简单文件传输协议SMTP: 简单邮件传输协议 Simple Mail Transfer Protocol 发信POP3: 邮局协议3代 收信 Post Office ProtocolSNMP: 服务器监控集群之间的协议 简单网络管理协议 Simple Network Management Protocol(后面会详细讲)电脑健康监控任务管理器作用:1 监控健康: 70/90 原则( 内存占比不能超过或者接近70%,CPU占比不能超过或者接近90%), 电脑就没有死机风险2 显示所有进程3 杀死进程监控单台电脑 vs 监控一群电脑解决方式: 监控集群DNS: 域名系统 域名和IP解析 Domain Name SystemTELNET: 端口:23 用于远程登录管理服务器(传输层常见协议:TCP: 传输控制协议 Transfer Control ProtocolUDP: 用户数据报协议 User Datagrame Protocol网络层常见协议ICMP: ping 命令, tracert 命令使用的是这个协议, Linux 是 traceroute 命令 互联网控制消息协议 Internet Control Message Protocolping 只能看双方网通不通.tracert可以看见网络断在哪里了(访问的路径都会显示) A ping 路由1, 通了再 ping 路由2…不通会显示网络断在哪IGMP: 互联网组控制协议 Internet Group Management ProtocolARP: 已知IP查MAC 地址解析协议 Reverse Address Resolution ProtocolRARP: 已知MAC查IP 反向地址解析协议Windows系统中查找ARP的命令arp -a: 查看ARP缓存表(电脑主机的MAC表)arp -d: 清除ARP缓存 需要使用administrator管理员权限这俩个协议在网络层可以这么记: 路由器识别MAC和IP, 因此ARP和RARP可以使用数据链路层常见协议PPP: 点对点协议 Point To PointPPPOE: 点对点拨号协议 Point To Point Protocol Over Ethernet物理层常见协议: 通信类相关协议和运维,网络工程师关系不大补充: MAC地址是有包头的, 数据帧: 包头上一层数据2.3 网络设备和TCP/IP模型对应关系应用层: 计算机传输层: 防火墙为什么防火墙能够识别数据包里面的数据?(软防火墙,补丁技术)为什么传输层的防火墙认识应用层的数据? 理论是不能识别的,但是Linux或者Windows 模拟防火墙,模拟出了软件防火墙(没有硬件), 啥都能干, 但是性能差总结: 要想防火墙能够识别数据包里面的数据: ① 软防火墙. ② 打了特殊补丁网络层: 路由器, 网卡数据链路层: 交换机物理层:网卡接口,网线3.剩余计分问题3.1 MAC地址: 2^48位, 够不够用?够, 因为网卡都会坏(可以重复利用),芯片5-10年会坏,后面的MAC用完了,前面的MAC网卡也差不多坏完了, 然后可以重复使用ARP欺骗, 就是伪造MAC(让俩台电脑MAC一致,这样发数据,有一定概率给发给伪造MAC的电脑),欺骗同局域网内的其他电脑网络攻击分类:主动扫描攻击: A主动发探测数据包给B, B返回数据包,A查找B的漏洞, 找到漏洞后进行攻击优点: 攻击成功概率高缺点: 容易被发现被动嗅探攻击: A藏起来, 等B不小心发数据包给A, A再进行攻击优点: 不容易被发现缺点: 攻击成功概率低ARP欺骗攻击就是被动嗅探攻击, 但是太明显了,人就能看出来了解决方案:没中毒前的防范, 直接把电脑B放在和路由器相连的另一个教室中毒后的方案: 直接重装系统3.2 积分问题4: 俩电脑MAC一致, 是否会有故障?情况1: A和B俩电脑MAC一致, 相互通信A和B永远不会进行通信, A在封装包的时候, 发现源MAC和目标MAC是一致的, 因此就连封装包都封装不了,更不用说是发出去了.情况2: A和B俩电脑MAC一致, C电脑给B发消息① 交换机最后一次通信的是A交换机的MAC表里面记录1口对应A的MAC, 于是数据包从1口发出, A接收数据后, 进行拆包, 确认IP的时候, 发现目标IP不是A的IP, 于是整个数据包丢弃,C和B不通② 交换机最后一次通信的是B交换机的MAC表记录了B的MAC地址对应的是2口, 数据从2口进行发出,到达B, B进行MAC,IP地址的确认,并且拆包, 最终B原路返回C一个数据包,C和B通总结: C给B发消息有50%的概率通, 50%的概率不通解决方案: 把B放在路由器连接的另一个网段的交换机上就行3.3 积分问题5: 某一台电脑网络不通?(伽卡不能用)网线有问题网卡故障防火墙IP故障两台电脑MAC一样伽卡坏了没开网络连接(也就是没有把网卡启动)网卡驱动故障手动设置了代理(但是没有代理服务器)3.4 积分问题6: 成片电脑网络不通,大概是什么问题?(顺序解决)交换机没插电交换机死机交换机串联线故障交换机坏了3.5 积分问题7: 成片电脑网络不通, 重启后另外一片电脑网络不通?一个交换机和另一个交换机串联起来了(串联线故障)交换机环路引起的广播风暴: 俩台串联交换机会形成一个顺时针,一个逆时针的泛洪环, 直到有一个交换机死机(到达访问极限)为止, 然后重启再继续形成新的环解决方案: 线标找到那根串联的线4.IP地址,网际协议4.1 IP地址的分类A类: IP 地址的二进制位, 必须以0开头的00000000.00000000.00000000.00000000 0.0.0.001111111.11111111.11111111.11111111 126.255.255.255(127.255.255.255) 255-128 127人为硬性规定, 排除了0网段; 排除了127网段, 只留下了:127.0.0.1(本机回环地址)默认子网掩码: 255.0.0.0IP地址前8位,是网络地址位(1对应网段位,0对应主机位)IP地址后24位,是主机地址位B类: IP地址的二进制位, 必须以10开头10000000.00000000.00000000.00000000 128.0.0.010111111.11111111.11111111.11111111 191.255.255.255 255-64191默认子网掩码: 255.255.0.0IP地址前16位,是网络地址位IP地址后16位,是主机地址位C类地址: IP地址的二进制位, 必须以110开头11000000.00000000.00000000.00000000 192.0.0.011011111.11111111.11111111.11111111 223.255.255.255 255-32223默认子网掩码: 255.255.255.0IP地址前24位, 是网络地址位IP地址后8位, 是主机地址位D类地址: IP地址的二进制位, 必须以1110开头 (组播地址:路由器动态路由组播相互学习用的)11100000.00000000.00000000.00000000 224.0.0.011101111.11111111.11111111.11111111 239.255.255.255 255-16239默认子网掩码: 255.255.255.255E类地址: IP地址的二进制位, 必须以1111开头(保留,不让用)11110000.00000000.00000000.00000000 240.0.0.011111111.11111111.11111111.11111111 255.255.255.255补充: C类IP去套用B类子网掩码是不合理的, 因为网络主机位变多了, 交换机根本连不了那么多电脑,A和B类C类IP去套用C类以上的(网络地址位24)的子网掩码是合理的, 因为网络的主机位变少了, 方便交换机来连(掩码和IP分类是没有关系的,不是1-1关系)4.2 私有IPA类: 10.0.0.0 - 10.255.255.255B类: 172.16.0.0 - 172.31.255.255C类: 192.168.0.0 - 192.168.255.2554.3 网络地址位和主机地址位(默认情况)(默认子网掩码)A类: IP地址的前8位, 为网络地址位 2^7-2126IP地址的后24位, 为主机地址位 2^24-216777214B类: IP地址的前16位, 为网络地址位 2^14 16384IP地址的后16位, 为主机地址位 2^16-2 65534C类: IP地址的前24位, 为网络地址位 2^212097152IP地址的后8位, 为主机地址位 2^8-2 254问题: 默认情况下, 网段数太少, 而每个网段的主机数太多, 多到A类和B类,交换机根本无法使用167777214/65534 没有这么厉害的交换机可以连完解决方案: 分割逻辑网段, 把大的广播域分割成可以被交换机连上的数量-子网掩码分割网段4.4 默认子网掩码原则: 子网掩码必须和IP地址同时出现,否则没有意义没有强制写子网掩码,写完ip后会自动补全是哪一类的子网掩码作用:子网掩码就是用来分割逻辑网段的和子网掩码1对应的IP地址位是网络地址位, 和子网掩码0对应的IP地址位是主机地址位可用标准: 子网掩码中只要1是连续的, 就是正确的子网掩码255.255.255.0 - 0/24 就是表示24个1,前3组都是1的子网掩码子网掩码划分的目的节约IP地址(把完整网段划分成小的子网,提高IP地址的利用率)降低成本(公司可以直接买小子网,不必买整个网段)小题目192.168.1.240255.255.255.128 11111111.11111111.11111111.10000000 连续的1就是合格的子网掩码35/24主机是否可以和240/25主机进行通信画图演示不能0-255是完整网段,但是 240/25,多了一倍的网络地址,减少了1/2的主机地址校验了: 子网掩码可以划分逻辑网段图片报错的原因:240/25, 240主机因为25掩码的原因, 认为是在128-255这个网段,但是网关是的配置是166.1, 是在1-127这个网段里面, 说明路由器不在128-255这个网段里面, 起不了作用, 只能进行局域网通信, 不能进行跨网段通信4.5 子网掩码的计算公式4.5.1 计算公式网络地址: 把IP地址和子网掩码的二进制, 按位进行逻辑与运算广播地址: 有效子网掩码中, 有几个0, 就把IP地址后几位换算为1子网个数: 有效子网掩码中, 有几个1, 子网数就是2的几次方主机个数: 有效子网掩码中, 有几个0, 主机数就是2的几次方减2网络地址位和主机地址位: IP地址中哪一部分IP是网段, 哪一部分IP是主机网络地址: 当前网段的起始IP,不能使用(表示当前网段)广播地址: 当前网段的结束IP,不能使用(表示当前网段广播)这俩个是确认当前网段的范围子网: 通过子网掩码把网段划分成一个个的小子网有效子网: 出现10相交后面的所有掩码是子网掩码10相交在点的后面,那么后面的就是子网掩码10相交在点的中间, 点后面的就是有效子网掩码10相交在点的前面,那么包含点前面8位数,都是有效子网掩码4.5.2 计算题网络位占主机位192.168.1.240: 11000000.10101000.00000001.11110000255.255.255.128: 11111111.11111111.11111111.10000000网络地址: 11000000.10101000.00000001.10000000 192.168.1.128(IP地址和子网掩码与操作)广播地址: 11000000.10101000.00000001.11111111 192.168.1.255子网数: 2^1 (几个1,说明就是多占了一位的主机位,网络位增加一倍)主机数: 2^7-2126 (几个0,说明就是主机数, 0和255是不用的)192.168.1.135 11000000.10101000.00000001.10000111255.255.255.224 11111111.11111111.11111111.11100000网络地址: 11000000.10101000.00000001.10000000 - 192.168.1.128广播地址: 11000000.10101000.00000001.10011111 - 192.168.1.159子网数: 2^38主机数: 2^5-230192.168.1.99 11000000.10101000.00000001.01100011255.255.255.192 11111111.11111111.11111111.11000000网络地址: 11000000.10101000.00000001.01000000 - 192.168.1.64广播地址: 11000000.10101000.00000001.01111111 - 192.168.1.127子网数: 2^24主机数: 2^6-262192.168.1.211 11000000.10101000.00000001.11010011255.255.255.240 11111111.11111111.11111111.11110000网络地址: 11000000.10101000.00000001.11010000 - 192.168.1.208广播地址: 11000000.10101000.00000001.11011111 - 192.168.1.223子网数: 2^4 16主机数: 2^4-2 14IP是网络地址192.168.1.152 11000000.10101000.00000001.10011000255.255.255.248 11111111.11111111.11111111.11111000网络地址: 11000000.10101000.00000001.10011000 - 192.168.1.152广播地址: 11000000.10101000.00000001.10011111 - 192.168.1.159子网数: 2^532主机数: 2^3-26结论: 此IP地址是当前网段的网络地址, 此IP地址不能使用这里如果设置的话, 也会报错, 因为网络地址和主机地址是不能用的IP是广播地址192.168.1.35 11000000.10101000.00000001.00100011255.255.255.252 11111111.11111111.11111111.11111100网络地址: 11000000.10101000.00000001.00100000 - 192.168.1.32广播地址: 11000000.10101000.00000001.00100011 - 192.168.1.35子网数: 2^664主机数: 2^2-24当前网段可以用于电脑的主机数只有1个, 网络地址和广播地址排除, 还有2个可用地址, 但是需要一个IP给网卡(路由器), 那么只有1个可用用的主机数了(真正在显示中分配给服务器/电脑的IP需要在主机数的基础上-1)结论: 此IP是当前网段的广播地址, 此IP地址不能使用C类地址可用子网掩码: (IP和掩码必须绑定出现)网络地址和广播地址是不能作为当前网段的IP来使用的, 我们最多划分64个子网段,不能再划分了主机位占网络位192.168.1.0 11000000.10101000.00000001.00000000255.255.254.0 11111111.11111111.11111110.00000000网络地址: 11000000.10101000.00000000.00000000 - 192.168.0.0广播地址: 11000000.10101000.00000001.11111111 - 192.168.1.255子网数: 2^7128主机数: 2^9-2510子网数减少了一倍, 主机数增加了一倍(/24-/23)此IP是当前网段的普通地址, 可用使用(网段合并, 合并后就不是网络地址了)是否合理?不合理, 因为子网掩码就是用来把网段划分成小子网,用来节约IP地址,提高IP地址的利用率,并且降低了成本.(也就是拿网络位占主机位), 而现在是把俩个小子网合并成一个大网段,和子网掩码的初衷相违背注意: 上面拿的都是私有IP来划分子网,因为好算,但是在实际中是没有价值的原因: 因为私有IP不能用来子网划分(私有IP可重复,不要钱),子网划分是为了节约IP,降低成本,所以根本不需要拿私有IP来进行子网划分私有IP地址严禁进行子网掩码划分4.5.2 简答题四组服务器, 每组服务器不超过50台,如何分配IP地址比较合理一组C类地址, 分给四组服务器, 比较合理子网掩码使用/26,一组C类分4组,每组64-2-1个主机IP地址,符合使用需求256/2/264, 主机地址减少2位, 网络地址增加2位, 把0-255分成4份五组服务器, 第一组100台, 第二组50台,第三组20台,第四组10台,第5组4台,如何分配IP地址合理?VLSM: 可变长子网掩码划分 Variable-Length Subnet Masking差不多就是对子网进一步来划分可用电脑主机数一定要小于最大IP总数,这样子网划分才能起作用比如64台, 放不进128-191里面, 解决方案: 把多出来的当备用机/再买8个IP(买单独网段)/扩展成128个直接和运营商说就行了(2的次方的服务器),上面的了解即可补充:IPV4的地址数:2^32IPV6的地址数:2^128MAC的地址:2^485. TCP/UDP 传输层协议详解TCP(传输控制协议 Transfer Control Protocol): 2^1665535UDP(用户数据报协议 User Datagram Protocol): 2^1665535TCP和UDP的端口是不一样的, 一般默认都是使用的是TCP的端口号(可靠)问: 端口够用吗?够用, 因为大部分程序用的端口都是重复的(应用程序的流行度), 流行度高的程序才配抢到一个同样的端口, 后面我们搭建服务, 端口都要不同(一个电脑商不允许占用同样的端口)5.1 连接状态和标志介绍Windows 使用 netstat -an 来查看本机网络状态-a all 显示所有的信息-n number 显示数字(www服务-80),看是别人连的我还是我连的别人连接状态LISTENING 端口开放(有端口,说明打开了,没端口发现没打开),但是没有人访问SYN_SENT 询问对方在不在(对方端口是否能访问)SYN_RCVD 说明收到了对方的询问ESTABLISHED 建立连接FIN_WAIT_1: 第一次挥手后发送方进入CLOSE_WAIT: 接收方收到FIN后回复第二次挥手进入FIN_WAIT_2: 发送发收到接收方ACK后进入LAST_ACK: 接收方发送第三次挥手(FIN报文)序号:Seq序号: 是用来标记用的, 因为同时可能会给多个目标发数据, 需要分清楚是哪个人来进行回复生成随机码, 通过序列码看是发给谁的Ack序号: 确认收到了多少从从哪到哪的数据包,标志介绍: 哪个标志是1,说明正在用SYN: 请求建立连接ACK: 应答/确认FIN: 断开连接RSH: 接收方尽快把报文发给应用层RST: 重置连接5.2 TCP三次握手第一次握手: (SYN1,SEQJ)客户端给服务器发送一个SYN(请求连接)标志为1的报文, 并随机生成一个初始序列号J;客户端状态: 进入SYN_SENT(同步已发送)第二次握手: (SYN1,ACK1,SEQK,AcknumJ1)服务器收到请求后,也要建立连接, 回复SYN(请求向客户端建立连接)和ACK(确认收到了)标志位. 服务器随机生成自己的序列号K(也是打标记,因为可能回复多个人), 并将确认号acknum设置为J1服务器状态: 进入SYN_RCVD第三次握手: (SYN1,SEQJ1,ACKnumk1)客户端给服务器发送确认报文ACK, 序列号还是原先的J1,确认号为k1服务器,客户端状态: ESTABLISHEDJ表示客户端给服务器发送数据的序列号J1表示服务器收到了序列号, 并且1表示收到了K表示服务器给客户端发数据生成的序列号K1表示客户端收到了序列号, 并且1表示收到了5.3 TCP四次挥手第一次挥手(FIN1,SQEm)客户端给服务器发送FIN断开连接请求, 序列号为m客户端状态: 进入FIN_WAIT_1(终止等待1)第二次挥手(ACK1,ACKnumm1)服务器回复客户端, 收到FIN请求后, 回复ACK表示同意,并且确认序号ACKnum设置为m1服务器状态: 进入CLOSE_WAIT(关闭等待); 客户端收到后进入FIN_WAIT_2(终止等待2)第三次挥手(FIN1,ACK1,ACKnumm1,SEQn)服务器给客户端发送FIN断开连接请求,序列号为n服务器状态: LAST_ACK(最后确认)第四次挥手(ACK1,SEQm1,ACKnumn1)客户端给服务器回复, ACK1, 表示确认收到了报文, 确认号为n1服务器状态: 收到ACK后进入CLOSED前两次是客户端和服务器断开连接, 后两次是服务器和客户端断开连接俩次m1, 第一次表示是我同意和你断开连接,第二次表示,我也要和你断开连接, 此时m1也是一个标记作用(可能此时多个服务器和客户端断开连接)5.4 DOS攻击(拒绝服务攻击)SYN DOS 攻击一台机子给你不断发送连接请求且不给你回复解决方案: 防火墙封禁IPSYN DDOS 攻击分布式随机IP去攻击解决方案: 没有实质性的解决方案, 换IP, 二次确认是哪些端口是恶意攻击5.5 端口作用补充端口作用: 底层向数应用层对应服务传输数据的通道一般的服务只会占用TCP和UDP其中一个协议的端口, DNS会占用UDP和TCP俩个的53端口号,因为他们都要进行域名解析TELNET: 端口:23 用于远程登录管理服务器(服务器端严禁使用),因为是明文传输客户端是常规探测命令, 没有安全风险,探测对方指定端口是否可用连接端口连接命令: telnet IP 端口退出命令: ctrll -- quit服务器一般都要关闭,使用22-ssh密文传输netstat vs telnetnetstat 是看自己的服务端口是否开着, 但是服务是否会死机不能确认, 能不能访问telnet 是看对方的端口是否能够访问(死机,能不能访问都能确定)telnet 更加可靠安装telnet命令: 控制面板-程序-默认程序-添加Telnet Client-确定 windows常见的组件都放再在这里面进行下载
基础知识-ISO模型常见协议和每一层作用
发布时间:2026/7/3 3:07:37
1. OSI每一层作用1.1 应用层应用层: 用户操作电脑界面(用户操作后,如果电脑提供的反馈,电脑就会向下进行传输)1.2 表示层表示层: 为数据提供表示,加密,压缩(计算机只认识二进制, 把人能识别的数据(文字图片)和二进制相互转换)1.3 会话层会话层: 确认数据是本地访问还是网络访问1.4 传输层传输层: 作用对报文进行分组和组装提供传输协议的选择: (相当于平邮和快递的区别)① TCP(传输控制协议Transmission Control Protocol): 可靠的, 面向连接的传输协议优点: 可靠, 准确缺点: 慢, 消耗资源传输数据的时候会进行TCP三次握手,建立连接, 相当于打电话,需要确认对方在不在② UDP(用户数据报协议User Datagram Protocol): 不可靠的, 面向无连接的传输协议优点: 快缺点: 不可靠直接发送, 和发短信差不多, 不管对方在不在补充:安全: 数据不被篡改,不被窃取可靠: 数据不传丢,不传漏dns,https协议 是在应用层的协议,程序员写好了直接放在客户端里面的协议, 相当于信的内容tcp,udp协议是传输层协议, 用在网络传输中, 相当于信封(俩个信封是收件人来选择)sctp协议是新加的协议,了解即可3) 端口封装: 源端口(10001,1w的随机端口号) 目标端口(程序员把端口号写入了客户端程序里面, 因此只要我们用户点击, 就可以获取目标端口号)作用: 写入双方的端口号常见服务, 常见程序都在1W以内, 1W以外的端口可以随机借用4) 差错校验: TCP: 差错重传 UDP: 差错丢弃TCP 因为建立了连接, 查出发错了数据包, 就会让A重新传UDP 因为是无连接, 查出发错了数据包, 直接把错误数据包丢了传输层: IP地址编址: 写入 源IP 和 目标IP 路由选择: 路由器工作原理有详细介绍1.4.1 加密解密对称加密: 加密和解密密码一致①优点: 简单②缺点: 1) 加密密码和解密密码一致, 有泄露风险. 2) 加密位数较低,容易被暴力破解(zip: 128bit,.rar:256bit)非对称钥匙对加密: 加密密码和解密密码可以不一致①优点: 1) 加密密码和解密密码, 可以不一致. 2) 加密位数高, 1024 bit 起.②缺点: 1) 对技术要求高 2) 没有密码破解后门用法: 使用pgp加密软件(学会用pgp加密),公钥可以看成是锁,私钥可以看成是钥匙1.4.2 PGP加解密原理电脑A和B都下载pgp,并且设置自己的原始密码, 分别生成一对公钥和私钥电脑B把自己的公钥导出给电脑A, 电脑A给文件加密的时候,使用A和B的公钥进行加密电脑A打开文件, 需要使用A的私钥进行解密, A电脑想看里面的内容, 需要使用A电脑设置的原始密码… 同理B也是,并且B使用的也是自己设置的原始密码(校验了: 非对称密码: 加密密码和解密密码可以不一致)注意: 只有拥有A/B的私钥的电脑才可以把文件打开, 没有的话把文件发给别人的电脑,别人文件都打不开, 因为没有A/B的私钥, 私钥公钥加密就是为了限制电脑使用私钥解密后还要输入原始的密码的原因: 为了限制人(原始密码只有本人知道,别人如果来你的电脑上看你的文件, 文件虽然能够打开, 但是看不见里面的内容)1.5 网络层IP地址编址: 写于源IP和目标IP路由选择1.6 数据链路层MAC地址编制, MAC地址48bit4.7 物理层数据实际传输电气特性定义(网线8根线, 哪几根进,哪几根出, 都是物理层说了算)2. TCP/IP模型2.1 OSI 模型 VS TCP/IP模型对比TCP: 传输控制协议IP: 网际协议(互联网协议)TCP/IP四层模型 因为时间原因设计的不太合理(模型出现,早于互联网), 因此提出了五层模型五层模型是把应用层,表示层,会话层合并成应用层一个层2.2 TCP/IP 各层的常见协议TCP/IP/MAC/ARP 最重要, 其他晓得名字就可以了应用层常见协议:HTTP: 超文本传输协议 网站访问WEB(Apache,nginx,IIS)FTP: 文件传输协议 File Transfer Protocol 网络文件传输TFTP: console口-智能设备口之间的协议(交换机和路由器重装系统): Trivial File Transfer Protocol 简单文件传输协议SMTP: 简单邮件传输协议 Simple Mail Transfer Protocol 发信POP3: 邮局协议3代 收信 Post Office ProtocolSNMP: 服务器监控集群之间的协议 简单网络管理协议 Simple Network Management Protocol(后面会详细讲)电脑健康监控任务管理器作用:1 监控健康: 70/90 原则( 内存占比不能超过或者接近70%,CPU占比不能超过或者接近90%), 电脑就没有死机风险2 显示所有进程3 杀死进程监控单台电脑 vs 监控一群电脑解决方式: 监控集群DNS: 域名系统 域名和IP解析 Domain Name SystemTELNET: 端口:23 用于远程登录管理服务器(传输层常见协议:TCP: 传输控制协议 Transfer Control ProtocolUDP: 用户数据报协议 User Datagrame Protocol网络层常见协议ICMP: ping 命令, tracert 命令使用的是这个协议, Linux 是 traceroute 命令 互联网控制消息协议 Internet Control Message Protocolping 只能看双方网通不通.tracert可以看见网络断在哪里了(访问的路径都会显示) A ping 路由1, 通了再 ping 路由2…不通会显示网络断在哪IGMP: 互联网组控制协议 Internet Group Management ProtocolARP: 已知IP查MAC 地址解析协议 Reverse Address Resolution ProtocolRARP: 已知MAC查IP 反向地址解析协议Windows系统中查找ARP的命令arp -a: 查看ARP缓存表(电脑主机的MAC表)arp -d: 清除ARP缓存 需要使用administrator管理员权限这俩个协议在网络层可以这么记: 路由器识别MAC和IP, 因此ARP和RARP可以使用数据链路层常见协议PPP: 点对点协议 Point To PointPPPOE: 点对点拨号协议 Point To Point Protocol Over Ethernet物理层常见协议: 通信类相关协议和运维,网络工程师关系不大补充: MAC地址是有包头的, 数据帧: 包头上一层数据2.3 网络设备和TCP/IP模型对应关系应用层: 计算机传输层: 防火墙为什么防火墙能够识别数据包里面的数据?(软防火墙,补丁技术)为什么传输层的防火墙认识应用层的数据? 理论是不能识别的,但是Linux或者Windows 模拟防火墙,模拟出了软件防火墙(没有硬件), 啥都能干, 但是性能差总结: 要想防火墙能够识别数据包里面的数据: ① 软防火墙. ② 打了特殊补丁网络层: 路由器, 网卡数据链路层: 交换机物理层:网卡接口,网线3.剩余计分问题3.1 MAC地址: 2^48位, 够不够用?够, 因为网卡都会坏(可以重复利用),芯片5-10年会坏,后面的MAC用完了,前面的MAC网卡也差不多坏完了, 然后可以重复使用ARP欺骗, 就是伪造MAC(让俩台电脑MAC一致,这样发数据,有一定概率给发给伪造MAC的电脑),欺骗同局域网内的其他电脑网络攻击分类:主动扫描攻击: A主动发探测数据包给B, B返回数据包,A查找B的漏洞, 找到漏洞后进行攻击优点: 攻击成功概率高缺点: 容易被发现被动嗅探攻击: A藏起来, 等B不小心发数据包给A, A再进行攻击优点: 不容易被发现缺点: 攻击成功概率低ARP欺骗攻击就是被动嗅探攻击, 但是太明显了,人就能看出来了解决方案:没中毒前的防范, 直接把电脑B放在和路由器相连的另一个教室中毒后的方案: 直接重装系统3.2 积分问题4: 俩电脑MAC一致, 是否会有故障?情况1: A和B俩电脑MAC一致, 相互通信A和B永远不会进行通信, A在封装包的时候, 发现源MAC和目标MAC是一致的, 因此就连封装包都封装不了,更不用说是发出去了.情况2: A和B俩电脑MAC一致, C电脑给B发消息① 交换机最后一次通信的是A交换机的MAC表里面记录1口对应A的MAC, 于是数据包从1口发出, A接收数据后, 进行拆包, 确认IP的时候, 发现目标IP不是A的IP, 于是整个数据包丢弃,C和B不通② 交换机最后一次通信的是B交换机的MAC表记录了B的MAC地址对应的是2口, 数据从2口进行发出,到达B, B进行MAC,IP地址的确认,并且拆包, 最终B原路返回C一个数据包,C和B通总结: C给B发消息有50%的概率通, 50%的概率不通解决方案: 把B放在路由器连接的另一个网段的交换机上就行3.3 积分问题5: 某一台电脑网络不通?(伽卡不能用)网线有问题网卡故障防火墙IP故障两台电脑MAC一样伽卡坏了没开网络连接(也就是没有把网卡启动)网卡驱动故障手动设置了代理(但是没有代理服务器)3.4 积分问题6: 成片电脑网络不通,大概是什么问题?(顺序解决)交换机没插电交换机死机交换机串联线故障交换机坏了3.5 积分问题7: 成片电脑网络不通, 重启后另外一片电脑网络不通?一个交换机和另一个交换机串联起来了(串联线故障)交换机环路引起的广播风暴: 俩台串联交换机会形成一个顺时针,一个逆时针的泛洪环, 直到有一个交换机死机(到达访问极限)为止, 然后重启再继续形成新的环解决方案: 线标找到那根串联的线4.IP地址,网际协议4.1 IP地址的分类A类: IP 地址的二进制位, 必须以0开头的00000000.00000000.00000000.00000000 0.0.0.001111111.11111111.11111111.11111111 126.255.255.255(127.255.255.255) 255-128 127人为硬性规定, 排除了0网段; 排除了127网段, 只留下了:127.0.0.1(本机回环地址)默认子网掩码: 255.0.0.0IP地址前8位,是网络地址位(1对应网段位,0对应主机位)IP地址后24位,是主机地址位B类: IP地址的二进制位, 必须以10开头10000000.00000000.00000000.00000000 128.0.0.010111111.11111111.11111111.11111111 191.255.255.255 255-64191默认子网掩码: 255.255.0.0IP地址前16位,是网络地址位IP地址后16位,是主机地址位C类地址: IP地址的二进制位, 必须以110开头11000000.00000000.00000000.00000000 192.0.0.011011111.11111111.11111111.11111111 223.255.255.255 255-32223默认子网掩码: 255.255.255.0IP地址前24位, 是网络地址位IP地址后8位, 是主机地址位D类地址: IP地址的二进制位, 必须以1110开头 (组播地址:路由器动态路由组播相互学习用的)11100000.00000000.00000000.00000000 224.0.0.011101111.11111111.11111111.11111111 239.255.255.255 255-16239默认子网掩码: 255.255.255.255E类地址: IP地址的二进制位, 必须以1111开头(保留,不让用)11110000.00000000.00000000.00000000 240.0.0.011111111.11111111.11111111.11111111 255.255.255.255补充: C类IP去套用B类子网掩码是不合理的, 因为网络主机位变多了, 交换机根本连不了那么多电脑,A和B类C类IP去套用C类以上的(网络地址位24)的子网掩码是合理的, 因为网络的主机位变少了, 方便交换机来连(掩码和IP分类是没有关系的,不是1-1关系)4.2 私有IPA类: 10.0.0.0 - 10.255.255.255B类: 172.16.0.0 - 172.31.255.255C类: 192.168.0.0 - 192.168.255.2554.3 网络地址位和主机地址位(默认情况)(默认子网掩码)A类: IP地址的前8位, 为网络地址位 2^7-2126IP地址的后24位, 为主机地址位 2^24-216777214B类: IP地址的前16位, 为网络地址位 2^14 16384IP地址的后16位, 为主机地址位 2^16-2 65534C类: IP地址的前24位, 为网络地址位 2^212097152IP地址的后8位, 为主机地址位 2^8-2 254问题: 默认情况下, 网段数太少, 而每个网段的主机数太多, 多到A类和B类,交换机根本无法使用167777214/65534 没有这么厉害的交换机可以连完解决方案: 分割逻辑网段, 把大的广播域分割成可以被交换机连上的数量-子网掩码分割网段4.4 默认子网掩码原则: 子网掩码必须和IP地址同时出现,否则没有意义没有强制写子网掩码,写完ip后会自动补全是哪一类的子网掩码作用:子网掩码就是用来分割逻辑网段的和子网掩码1对应的IP地址位是网络地址位, 和子网掩码0对应的IP地址位是主机地址位可用标准: 子网掩码中只要1是连续的, 就是正确的子网掩码255.255.255.0 - 0/24 就是表示24个1,前3组都是1的子网掩码子网掩码划分的目的节约IP地址(把完整网段划分成小的子网,提高IP地址的利用率)降低成本(公司可以直接买小子网,不必买整个网段)小题目192.168.1.240255.255.255.128 11111111.11111111.11111111.10000000 连续的1就是合格的子网掩码35/24主机是否可以和240/25主机进行通信画图演示不能0-255是完整网段,但是 240/25,多了一倍的网络地址,减少了1/2的主机地址校验了: 子网掩码可以划分逻辑网段图片报错的原因:240/25, 240主机因为25掩码的原因, 认为是在128-255这个网段,但是网关是的配置是166.1, 是在1-127这个网段里面, 说明路由器不在128-255这个网段里面, 起不了作用, 只能进行局域网通信, 不能进行跨网段通信4.5 子网掩码的计算公式4.5.1 计算公式网络地址: 把IP地址和子网掩码的二进制, 按位进行逻辑与运算广播地址: 有效子网掩码中, 有几个0, 就把IP地址后几位换算为1子网个数: 有效子网掩码中, 有几个1, 子网数就是2的几次方主机个数: 有效子网掩码中, 有几个0, 主机数就是2的几次方减2网络地址位和主机地址位: IP地址中哪一部分IP是网段, 哪一部分IP是主机网络地址: 当前网段的起始IP,不能使用(表示当前网段)广播地址: 当前网段的结束IP,不能使用(表示当前网段广播)这俩个是确认当前网段的范围子网: 通过子网掩码把网段划分成一个个的小子网有效子网: 出现10相交后面的所有掩码是子网掩码10相交在点的后面,那么后面的就是子网掩码10相交在点的中间, 点后面的就是有效子网掩码10相交在点的前面,那么包含点前面8位数,都是有效子网掩码4.5.2 计算题网络位占主机位192.168.1.240: 11000000.10101000.00000001.11110000255.255.255.128: 11111111.11111111.11111111.10000000网络地址: 11000000.10101000.00000001.10000000 192.168.1.128(IP地址和子网掩码与操作)广播地址: 11000000.10101000.00000001.11111111 192.168.1.255子网数: 2^1 (几个1,说明就是多占了一位的主机位,网络位增加一倍)主机数: 2^7-2126 (几个0,说明就是主机数, 0和255是不用的)192.168.1.135 11000000.10101000.00000001.10000111255.255.255.224 11111111.11111111.11111111.11100000网络地址: 11000000.10101000.00000001.10000000 - 192.168.1.128广播地址: 11000000.10101000.00000001.10011111 - 192.168.1.159子网数: 2^38主机数: 2^5-230192.168.1.99 11000000.10101000.00000001.01100011255.255.255.192 11111111.11111111.11111111.11000000网络地址: 11000000.10101000.00000001.01000000 - 192.168.1.64广播地址: 11000000.10101000.00000001.01111111 - 192.168.1.127子网数: 2^24主机数: 2^6-262192.168.1.211 11000000.10101000.00000001.11010011255.255.255.240 11111111.11111111.11111111.11110000网络地址: 11000000.10101000.00000001.11010000 - 192.168.1.208广播地址: 11000000.10101000.00000001.11011111 - 192.168.1.223子网数: 2^4 16主机数: 2^4-2 14IP是网络地址192.168.1.152 11000000.10101000.00000001.10011000255.255.255.248 11111111.11111111.11111111.11111000网络地址: 11000000.10101000.00000001.10011000 - 192.168.1.152广播地址: 11000000.10101000.00000001.10011111 - 192.168.1.159子网数: 2^532主机数: 2^3-26结论: 此IP地址是当前网段的网络地址, 此IP地址不能使用这里如果设置的话, 也会报错, 因为网络地址和主机地址是不能用的IP是广播地址192.168.1.35 11000000.10101000.00000001.00100011255.255.255.252 11111111.11111111.11111111.11111100网络地址: 11000000.10101000.00000001.00100000 - 192.168.1.32广播地址: 11000000.10101000.00000001.00100011 - 192.168.1.35子网数: 2^664主机数: 2^2-24当前网段可以用于电脑的主机数只有1个, 网络地址和广播地址排除, 还有2个可用地址, 但是需要一个IP给网卡(路由器), 那么只有1个可用用的主机数了(真正在显示中分配给服务器/电脑的IP需要在主机数的基础上-1)结论: 此IP是当前网段的广播地址, 此IP地址不能使用C类地址可用子网掩码: (IP和掩码必须绑定出现)网络地址和广播地址是不能作为当前网段的IP来使用的, 我们最多划分64个子网段,不能再划分了主机位占网络位192.168.1.0 11000000.10101000.00000001.00000000255.255.254.0 11111111.11111111.11111110.00000000网络地址: 11000000.10101000.00000000.00000000 - 192.168.0.0广播地址: 11000000.10101000.00000001.11111111 - 192.168.1.255子网数: 2^7128主机数: 2^9-2510子网数减少了一倍, 主机数增加了一倍(/24-/23)此IP是当前网段的普通地址, 可用使用(网段合并, 合并后就不是网络地址了)是否合理?不合理, 因为子网掩码就是用来把网段划分成小子网,用来节约IP地址,提高IP地址的利用率,并且降低了成本.(也就是拿网络位占主机位), 而现在是把俩个小子网合并成一个大网段,和子网掩码的初衷相违背注意: 上面拿的都是私有IP来划分子网,因为好算,但是在实际中是没有价值的原因: 因为私有IP不能用来子网划分(私有IP可重复,不要钱),子网划分是为了节约IP,降低成本,所以根本不需要拿私有IP来进行子网划分私有IP地址严禁进行子网掩码划分4.5.2 简答题四组服务器, 每组服务器不超过50台,如何分配IP地址比较合理一组C类地址, 分给四组服务器, 比较合理子网掩码使用/26,一组C类分4组,每组64-2-1个主机IP地址,符合使用需求256/2/264, 主机地址减少2位, 网络地址增加2位, 把0-255分成4份五组服务器, 第一组100台, 第二组50台,第三组20台,第四组10台,第5组4台,如何分配IP地址合理?VLSM: 可变长子网掩码划分 Variable-Length Subnet Masking差不多就是对子网进一步来划分可用电脑主机数一定要小于最大IP总数,这样子网划分才能起作用比如64台, 放不进128-191里面, 解决方案: 把多出来的当备用机/再买8个IP(买单独网段)/扩展成128个直接和运营商说就行了(2的次方的服务器),上面的了解即可补充:IPV4的地址数:2^32IPV6的地址数:2^128MAC的地址:2^485. TCP/UDP 传输层协议详解TCP(传输控制协议 Transfer Control Protocol): 2^1665535UDP(用户数据报协议 User Datagram Protocol): 2^1665535TCP和UDP的端口是不一样的, 一般默认都是使用的是TCP的端口号(可靠)问: 端口够用吗?够用, 因为大部分程序用的端口都是重复的(应用程序的流行度), 流行度高的程序才配抢到一个同样的端口, 后面我们搭建服务, 端口都要不同(一个电脑商不允许占用同样的端口)5.1 连接状态和标志介绍Windows 使用 netstat -an 来查看本机网络状态-a all 显示所有的信息-n number 显示数字(www服务-80),看是别人连的我还是我连的别人连接状态LISTENING 端口开放(有端口,说明打开了,没端口发现没打开),但是没有人访问SYN_SENT 询问对方在不在(对方端口是否能访问)SYN_RCVD 说明收到了对方的询问ESTABLISHED 建立连接FIN_WAIT_1: 第一次挥手后发送方进入CLOSE_WAIT: 接收方收到FIN后回复第二次挥手进入FIN_WAIT_2: 发送发收到接收方ACK后进入LAST_ACK: 接收方发送第三次挥手(FIN报文)序号:Seq序号: 是用来标记用的, 因为同时可能会给多个目标发数据, 需要分清楚是哪个人来进行回复生成随机码, 通过序列码看是发给谁的Ack序号: 确认收到了多少从从哪到哪的数据包,标志介绍: 哪个标志是1,说明正在用SYN: 请求建立连接ACK: 应答/确认FIN: 断开连接RSH: 接收方尽快把报文发给应用层RST: 重置连接5.2 TCP三次握手第一次握手: (SYN1,SEQJ)客户端给服务器发送一个SYN(请求连接)标志为1的报文, 并随机生成一个初始序列号J;客户端状态: 进入SYN_SENT(同步已发送)第二次握手: (SYN1,ACK1,SEQK,AcknumJ1)服务器收到请求后,也要建立连接, 回复SYN(请求向客户端建立连接)和ACK(确认收到了)标志位. 服务器随机生成自己的序列号K(也是打标记,因为可能回复多个人), 并将确认号acknum设置为J1服务器状态: 进入SYN_RCVD第三次握手: (SYN1,SEQJ1,ACKnumk1)客户端给服务器发送确认报文ACK, 序列号还是原先的J1,确认号为k1服务器,客户端状态: ESTABLISHEDJ表示客户端给服务器发送数据的序列号J1表示服务器收到了序列号, 并且1表示收到了K表示服务器给客户端发数据生成的序列号K1表示客户端收到了序列号, 并且1表示收到了5.3 TCP四次挥手第一次挥手(FIN1,SQEm)客户端给服务器发送FIN断开连接请求, 序列号为m客户端状态: 进入FIN_WAIT_1(终止等待1)第二次挥手(ACK1,ACKnumm1)服务器回复客户端, 收到FIN请求后, 回复ACK表示同意,并且确认序号ACKnum设置为m1服务器状态: 进入CLOSE_WAIT(关闭等待); 客户端收到后进入FIN_WAIT_2(终止等待2)第三次挥手(FIN1,ACK1,ACKnumm1,SEQn)服务器给客户端发送FIN断开连接请求,序列号为n服务器状态: LAST_ACK(最后确认)第四次挥手(ACK1,SEQm1,ACKnumn1)客户端给服务器回复, ACK1, 表示确认收到了报文, 确认号为n1服务器状态: 收到ACK后进入CLOSED前两次是客户端和服务器断开连接, 后两次是服务器和客户端断开连接俩次m1, 第一次表示是我同意和你断开连接,第二次表示,我也要和你断开连接, 此时m1也是一个标记作用(可能此时多个服务器和客户端断开连接)5.4 DOS攻击(拒绝服务攻击)SYN DOS 攻击一台机子给你不断发送连接请求且不给你回复解决方案: 防火墙封禁IPSYN DDOS 攻击分布式随机IP去攻击解决方案: 没有实质性的解决方案, 换IP, 二次确认是哪些端口是恶意攻击5.5 端口作用补充端口作用: 底层向数应用层对应服务传输数据的通道一般的服务只会占用TCP和UDP其中一个协议的端口, DNS会占用UDP和TCP俩个的53端口号,因为他们都要进行域名解析TELNET: 端口:23 用于远程登录管理服务器(服务器端严禁使用),因为是明文传输客户端是常规探测命令, 没有安全风险,探测对方指定端口是否可用连接端口连接命令: telnet IP 端口退出命令: ctrll -- quit服务器一般都要关闭,使用22-ssh密文传输netstat vs telnetnetstat 是看自己的服务端口是否开着, 但是服务是否会死机不能确认, 能不能访问telnet 是看对方的端口是否能够访问(死机,能不能访问都能确定)telnet 更加可靠安装telnet命令: 控制面板-程序-默认程序-添加Telnet Client-确定 windows常见的组件都放再在这里面进行下载