【 理论重点】
网络是什么?
(网络是载体,目的是传输互联网中的数据,数据是终端产生<手机、电脑、服务器等>。)
如何组件网络(良性网络架构)?有网络架构思维,得按层次来组!
网络运行得遵循一定的规则和标准!
配置:不只是连接在一起,还要考虑它的层次和它的网络质量,还包括带宽、峰值都要考 虑。 交换机、路由器、防火墙、无线控制器、服务器(在服务器里面配网)【硬件设备】
如何配置? 输入命令配置 GUI(图形用户界面) CLI(命令行界面)
【网络 internet】
通过网络把计算机连系在一起,共享数据和资源。
三大要素
1: 终端设备(phone pad ......) PC server(服务器) ---->能承载应用程序的设备
2:传输介质(线缆) 通过线缆传输数据信号(有线,骨干) 无线设备--->无线电磁波
3:网络设备 路由器、交换机...... AP(access point 无线接入点)---->数据封装
一、网络架构
1、园区网络架构(企业网络)【经典园区网络平面架构图】
企业、学校、公司、医院、厂房他们的网络架构都大差不差!只不过有大有小!
分部A、分部B、分部C和总部是一个网段吗?不可能是同一个网段!
2、网络园区基本拓扑结构
三层交换机 二层交换机
【网络协议】:在计算机网络中,为了保障数据交换的约束和标准,是网络上所有设备之间通信规则的集合,规定了通信必须要采用的数据格式,遵循协议才可以完成点到点的网络通信,实现某些特定功能。由于网络采用分层体系结构,所以每一层网络都存在诸多协议。
二、网络协议栈
1、OSI参考模型:根据网络功能规定了七个功能模块。 【背会】
由于私有标准的不规范,国际组织iso规定了网络运行的公有标准OSI。遵循同一个标准,无论使用任何厂商的网络设备,都会兼容。
7应用层 ------->为应用程序提供网络服务 (PC MAC IOS Andorid)
6表示层 ------->数据格式化,加密、解密、压缩、解压缩、编码、解编码!
5会话层 ------->建立、维护、管理会话连接 (应用程序的连接会话)
4传输层 ------->建立、维护、管理端到端连接 (数据流切片)(TCP / UDP)
3网络层 ------->ip寻址和路由选择 (在因特网中遵循的协议 IP协议 ICMP)
2数据链路层 ------->控制网络层与物理层之间的通信(局域网协议--->以太网协议 (令牌环网) )
1物理层 ------->比特流传输 (分解为比特,转换为脉冲信号,通过物理介质发送出去)
- 2【数据链路层】最重要的标准就是以太网协议。以太网可以说是占据99.99%。MAC地址是以太网独有的。
- 3【网络层】最重要的协议是IP协议。(IPV4和IPV6)
- 4【传输层】主要的协议是TCP 和UDP,传输层的作用就是建立端口、维护和管理端到端的直接的连接。
程序一旦运行起来就变成进程了,有对应的PID。
【端口号】就是已经运行的网络对应进程的标识!
在网络传输中,端口号不是无限的,极限值是65535个!【范围是1-65535!】
【1-1023】 特权用户、是固定分配给内核的!不能注册的! 例:80
【1024-30000多】约定俗成的端口 例:3306 数据库
【30000】客户端端口、随机端口。
在传输层之内也是要进行数据封装的,被称为数据段。段是可以进行切片的,会以MSS的方式进行切,最大分片大小为1460【极限】
MTU:最大传输单元 1500 MSS(最大分片大小)
TCP协议:是一种面向连接协议(保证应用程序数据连接的可靠性)
UDP协议:是一种无连接协议 (只管发送的传输,但不保证能传到。)
【win+R 】——>【cmd】——>【netstat -tan】
例:
- 下层为上层提供服务,上层依赖下层。网络问题【由下而上】依次排查!
- 上层必须依赖于下层!上层脱离下层,数据传输不出去!
- 【封装】从上到下 【解封装】从下到上
【封装】:
- 首先应用层要提供网络服务,如:在QQ的进程里写上“祝你一切都好”,纯数据载荷部分。
- 在表示层里标示用什么编码,用什么压缩方式,用什么加密方式,要表示清楚。
- 要通知对应的QQ端,要建立会话,会话层
【这三个是应用层的】
- 到了传输层要告诉对端主机,我是用哪个应用程序发出来的,我要发给哪个应用程序,端口号,HTTP:80(浏览网页服务默认的端口号都是80)
- 网络层,进入路由器,路由器不管你是从哪个应用程序发出来的,负责转包,要找到对应的IIP地址(原IP和目标IP)。
- 数据链路层交换机:能看懂MAC地址,识别以太网,封装原MAC和目标MAC。本局域网的话,原、目标MAC都知道;非本局域网的封装目标MAC为路由器网关的MAC地址。
- 打碎交给操作系统,再交给网卡,打碎,变成比特流物理层,基于网线就发过去了。
【解封装】:从下到上的解封装,将上面的流程逆向走一遍!如下图所示!
数据报文也叫数据包!!!
无论是什么样的数据报文、数据段、数据帧在网上传输是有规定的范围大小的,最大是1500字节。.1500是加了报头的,纯数据部分可能最多只有1460,要是做了扩展报文,可能不到1400。
MTU:最大传输单元 1500 对于数据帧来说,数据报头和纯数据部分不能超过1500.。
MSS(最大分片大小):在传输层,去掉包头部分,剩下的内容主体部分最大为1460.。超过1460就要分片。
2、TCP/IP协议栈(TCP/IP四层模型,当前使用的,主流!功能强大、简单!)
传输层(主机-主机层):对接上层,有个特定的文件表示网络传输的状态叫套接字(socket)。
网络层 :以太网协议可以认为是硬件加上软件的一个合体的协议。规定了物理层标准,用什么样的网线,传输介质标准。
- Linux中的哲学思想, 一切皆文件!
- 网络传过来的流量,要以文件的形式存储在我们的文件系统里面。这个文件就叫套接字文件! IP:port
- OSI七层模型的上四层叫资源子网,下三层叫通信子网,通信子网和资源子网之间是需要套接的,有特定的文件叫套接字。
- 网络连进来形成端对端的连接,就会形成一个紫色的套接字文件!端对端释放了,套接字就不存在了。
三、网络层协议(IP协议)
网络层是OSI模型中的第三层。网络层提供路由和寻址的功能,使两终端系统能够互连且决定最佳路径,并具有一定的拥塞控制和流量控制的能力。
【IPV4】 传统意义上做数据封装,最少要20字节!
版本:IPV4或者IPV6(但这里是IPV4)
生存时间(TTL):跳数(数据包在网络中转发,经过的路由器的数量 255跳之内)
协议:和IP层x相关的一些协议,上层协议!
IPV4的缺陷:1:地址太少 2:不算太安全 3:传输质量比IPV6稍弱
四、传输层(TCP和UDP)协议和报头 【重点】
作用:
①:应用程序产生的数据流进行4层切片
②:每一个数据切片前面添加传输层报头(包含原应用程序的端口号)。
端口号 1-65535
可以使用的端口号:
1-1023 (知名的应用端口号 一一对应,不更改。例如http)
1024-65535 (非知名应用端口号 随机对应)
TCP协议:是一种面向连接协议(保证应用程序数据连接的可靠性)连接完成之后才能创建协议。
UDP协议:是一种无连接协议 (尽力而为的传输,但不保证)没有状态,会丢包。
【TCP可靠连接原理】:
①流控功能
②防止传输乱序
③确定传输是否丢包,具有重传能力
④完整性检查
【TCP报头】
确认号(ack)要和标志位的ACK同步使用的!
【TCP的六大基本标志位】:每一个标志位表示一个控制功能。【重点必背】
1)URG:紧急指针标志,为1时表示紧急指针有效,为0则忽略紧急指针。
2)ACK:确认序号标志,为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段。
3)PSH:push标志,为1表示是带有push标志的数据,指示接收方在接收到该报文段以后,应尽快将这个报文段交给应用程序,而不是在缓冲区排队。
4)RST:重置连接标志,用于重置由于主机崩溃或其他原因而出现错误的连接。或者用于拒绝非法的报文段和拒绝连接请求。
5)SYN:同步序号,用于建立连接过程,在连接请求中,SYN=1和ACK=0表示该数据段没有使用捎带的确认域,而连接应答捎带一个确认,即SYN=1和ACK=1。
6)FIN:finish标志,用于释放连接,为1时表示发送方已经没有数据发送了,即关闭本方数据流。
【UDP报头】
五、TCP三次握手和四次断开 【重点】
【TCP和UDP优缺点】
TCP
优点:可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。
缺点:传输效率偏慢,效率一般,消耗带宽高,占用系统资源高。
安全性相对弱,例如DOS攻击(拒绝服务攻击) ddos 网咯流入流量突然很大,导致正常服务无法运行,服务器崩溃。
拒绝三次握手(消耗CPU、内存、带宽)
TCP是点到点协议,比较死板。只能单播。
UDP
优点:效率高、快、比TCP相对安全,无需三次握手四次断开,被攻击的漏洞少。
缺点:不稳定、不可靠,网络质量不好的时候,很容易丢包。
六、一个完整的数据封装
Ethernet2 | ipv4 | TCP | HTTP | FCS
Ethernet2 |ipv4 |UDP| rtp| Voip | FCS (Voip语音控制协议)
TCP对应的应用层的一些协议【背】 |
(21):FTP文件传输协议 |
22:安全的远程登录协议 SSH |
23:telnet协议(不完全的远程登陆协议) |
25:简单邮件传输协议(SMTP) |
53:域名解析协议 (DNS) |
80:超文本传输协议 (HTTP) |
443:安全的超文本传输协议 (HTTPS) |
110:POP3(收邮件的) |
143:imap(收邮件的) |