文章目录
1 计算机网络基础知识储备
1.1 OSI七层模式每一层功能,与tcp/ip四层模型的关系?
- 两个协议之间在分层结构上的关系如下
TCP/IP结构 | OSI七层结构 |
---|---|
应用层 | 应用层、表示层、会话层 |
计算机到计算机层(TCP)(又称传输层) | 传输层 |
网络层(IP) | 网络层 |
网络接口层(链路层) | 数据链路层、物理层 |
- TCP/IP协议族包括许多子协议,其子协议与OSI七层协议的关系如下
OSI协议各层名(顶部到顶部) | 功能 | TCP/IP协议族 |
---|---|---|
应用层 | 用户程序与程序之间的通信,用于文件传输、邮件、文件服务、虚拟终端等 | HTTP、SNMP、TFTP、FTP、DNS、Telnet、等 |
表示层 | 决定数据的编码、加密、压缩;数据包括各种多媒体文件;功能涉及:加解密算法、压缩解压缩算法、格式转换算法 | 无子协议 |
会话层 | 建立、管理、终止不同机器上用户之间的会话 | 无子协议 |
传输层 | 实现端口到端口之间的通信,对数据报文的传输有可靠(TCP协议)和不可靠(UDP协议)两种传输方式适用于不同场景;有超时重传机制、流量控制机制; | TCP、UDP |
网络层 | 逻辑地址寻址,数据包进行转发,同时拥有对数据包的转发判断机制(路由选择算法);数据包分组传输;逻辑地址编址 | IP、ICMP、OSPF、IGMP、RIP等 |
数据链路层 | 设备物理寻址、对这一层传送的数据帧进行差错检测、向上将原始比特流转变为逻辑传输线路 | PPP、ARP、MTU等 |
物理层 | 对在信道传输的数据比特进行调制解调,意味着这一层决定了传输什么样的通信介质、接口标准 | IEEE802.2等 |
1.2 TCP/IP协议栈常用协议及其功能?
所在层 | 协议 | 功能 |
---|---|---|
网络接口层 | ARP | 用来寻找物理地址,只有确定物理地址,才能将数据帧转发出去 |
网络接口层 | MTU | 通知通信对方所能够接收对方传来的数据单元的最大值,除去数据帧头部和尾部,数据部分一般在46-1500字节之间 |
网络层 | RIP | 基于“距离-矢量”算法。自洽系统内部网关协议,用于动态路由选择。 |
网络层 | BGP | 用于不同自洽系统之间的路由信息交换,每一个自洽系统必须指定一个运行BGP的节点 |
网络层 | OSPF | 基于“开放式最短路径优先”路由算法的链路状态协议,工作在自洽系统内部,利用洪泛法与相邻节点交换路由信息。 |
网络层 | IP | 核心协议,主要包含:IP编址方案、IP包分片、分组封装格式及分组转发规则 |
网络层 | ICMP | 用于IP主机、路由器之间传递控制信息,包括:网络通畅情况、主机可达性(传送包)、超时等 |
传输层 | TCP | 核心协议,面相连接、可靠的协议,有数据校验、流量控制、超时重传、捎带确认功能 |
传输层 | UDP | 一种无需建立连接就可以发送封装的 IP 数据包的方法,不可靠。特点就是无连接 |
应用层 | HTTP | 超文本传输协议,基于TCP连接。指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应,主要应用于WEB端内容获取 |
应用层 | DNS | 域名系统。主要用于域名与 IP 地址的相互转换,类一个电话本 |
应用层 | FTP | 允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信;基于TCP协议 |
应用层 | SMTP | 可靠且有效的电子邮件传输的协议,基于TCP协议 |
1.3 描述TCP协议状态机及其三次握手四次挥手的过程
- 首先理解TCP报文内容
-
32位确认序号即ACK,致命下一个期待收到的字节序号
-
32位序号Seq:本报文段发送的数据组的第一个字节序号
-
控制位(报文段第13、14字节的后六位):
-
ACK:确认序号标志。仅当ACK = 1 时确认号字段才有效,当ACK = 0时,确认号无效。TCP规定,在连接建立之后所有的传送的报文段都必须把ACK置为1。
-
SYN:连接建立时用来同步序号。当SYN = 1时而ACK = 1时表示这是一个连接请求报文段。对*同意连接,则应在响应的报文段中是SYN = 1 和ACK = 1,因此SYN = 1就表示这是以恶搞连接请求或连接接受报文;
-
用来释放一个连接,当FIN = 1时,表示次报文段的发送方的数据已经发送完毕,并要求释放运输连接;
TCP三次握手分析如下:
-
第一次握手:客户端(Client)向服务器端(Server)发送第一个包,其中标志位:SYN=1、ACK=0,发送序号Seq=x。客户端进入:SYN发送状态,等待服务器确认;
第二次握手:服务器收到客户端发送的包,后发送第二个包,其中包的SYN=1、ACK=1,接收顺序号ack为x+1,发送序号Seq为y,服务器进入SYN接收状态;
第三次握手:客户端收到服务器端传过来的包后,向服务器发送最后一个包,其中标志位SYN=0、ACK=1,发送顺序号Seq为x+1,ack为y+1。此包发送完毕,客户端和服务器都进入ESTABLISHED即建立成功的状态。至此三次握手完成。
TCP四次挥手分析如下:
第一次挥手:主动方发送第一个包,FIN=1,发送顺序号seq=x;主动方进入FIN_WAIT 状态
第二次挥手:被动方收到主动方发送的包后发送第二个包标志位ACK=1,接收顺序号ack=x+1;被动方进入CLOSE_WAIT状态
第三次挥手:被动方再发送第三个包,其中FIN=1,发送顺序号seq=b,接收顺序号ack=x+1;被动房进入LAST_WAIT状态
第四次挥手:主动方接收到包后进入TIME_WAIT状态,主动方发送第四个包,ACK=1,其中发送顺序号seq=x+1。确认方收到后,进入CLOSED状态,至此,完成四次挥手;
1.4 回环网卡(Lookback Adaptor)功能?
定义:一种特殊的网络接口,不与任何实际设备连接,而是完全由软件实现,有了这个接口,就允许了运行在同一个主机上的客户程序和服务器程序通过TCP/IP进行通信。A类网络号127即为环回接口预留的。大多数系统会把ip地址为127.0.0.1分配给这一个接口,命名为localhost,ip数据包的传送不允许出现在网络上。
注意:
- 传给环回地址(一般:127.0.0.1)的任何数据均作为IP输入(传回给本地网络层);
- 根据广播/多播传送定义,传给广播/多播地址的数据报需要复制多一份传给环回接口,再继续传到以太网上
- 任何传给本主机IP地址的数据均会送到环回接口
1.5 描述数据报封装解封装过程
- 封装过程如下
-
应用层数据经过传输层封装头部形成TCP报文段或UDP数据报。
TCP报文段头部最少20个字节,剩下有40字节的选项;而UDP报文段最少8个字节。
-
传输层的报文段当做网络层传输单位的数据部分,再加上一个IP头部组成IP数据报。报头固定长度为20字节,还有40字节可选部分。
-
网络层的IP数据报作文数据链路层传输单位的数据部分(可能有分片),数据部分的头部有14个字节帧头,还有4个字节帧尾;数据帧的大小范围为64字节-1518字节(包括头部)。至此帧不再继续封装,帧数据最终成为了在物理网络上的传输的字节序列。
-
帧转化为比特流
- 解封装过程如下
-
如图,当数据帧到达目的主机的时候,沿着协议栈向上传递。每一个帧根据头部信息识别对应不同的协议,将数据部分(IP数据报)分发到不同网络协议指定的区域中;
-
同样的,网络层识别IP数据报的报头,将分片的数据部分组装成完整的传输层报文段,分发到报文段不同协议指定的区域中;
-
同样的,传输层根据报文段头部的端口号,将数据部分发送到指定的操作系统端口中,最后数据到达目标的APP;
-
到达应用层,APP(or ARP服务、RARP服务、ICMP服务)会收到被操作系统封装前的源应用数据(经过了各种解码/译码)。在APP看来,数据包封装/解封装好像是没有发生过一样。
1.6 端口号作用及常用协议端口号有哪些?
- 一个APP应用程序可能需要执行多种服务,那么多种服务执行过程中,传输层在往应用层传递数据中,为了识别不同类型的数据,势必就需要识别不同的端口,以此对应不同的服务。所以端口号的作用是区分服务类型。
- 另一个作用是,可以保证在同一时间进行多个会话(数据传输服务)。
基于TCP/IP的常见端口号 | 协议服务 |
---|---|
TCP 21 20 | FTP文件传输服务 |
TCP 23 | TELNET终端仿真服务 |
TCP 25 | SMTP邮件传输服务 |
UDP 53 | DNS域名解析服务 |
TCP 80 | HTTP超文本传输服务 |
TCP 110 | POP3 邮局协议版本3 使用的端口 |
TCP 443 | HTTPS加密的超文本传输服务 |
TCP 1521 | Oricle数据库服务 |
TCP 22 | SSH |
注意:
- 以上是服务器端使用的端口即熟知端口号,在端口号为1-1023之间。在服务器上使用。
- 1024-49151的端口号叫做登记端口号,为没有熟知端口号的应用程序使用。使用这类端口号必须在IANA按照规定的手续登记,以防止重复。在服务器上使用。
- 49152-65535位客户端使用的临时端口号,动态选择的端口号,C-S之间通信结束之后,端口号就释放出来,供其他客户进程使用。
1.7 IP模块
- ip地址功能
- 标识主机:标识其网络接口,即主机在网络中的具体位置
- 网络寻址:该功能的目的是将IP数据报从一个网络模块 送到 目的地。寻址的过程叫做路由,每个IP数据报包含了发送主机的IP地址和目的主机的IP地址
- ip地址分类
A类IPV4地址 | B类IPV4地址 | C类IPV4地址 | D类IPV4地址 | E类IPV4地址 | |
---|---|---|---|---|---|
网络标志位 | 0 | 10 | 110 | 1110 | 11110 |
IP地址范围 | 1.0.0.0~127.255.255.255 | 128.0.0.0~191.255.255.255 | 192.0.0.0~223.255.255.255 | 224.0.0.0~239.255.255.255 | 240.0.0.0~247.255.255.255 |
可用IP地址范围 | 1.0.0.1~127.255.255.254 | 128.0.0.1~191.255.255.254 | 192.0.0.1~223.255.255.254 | ||
主机可以使用? | √ | √ | √ | × | × |
网络个数 | 126(2^7-2) | 16384(2^14) | 2097152 (2^21) | ||
每个网络可以容纳主机数量 | 16777214 (2^24-2) | 65534 (2^16-2) | 254 (2^8-2) | ||
适用范围 | 拥有大量主机的大型网络 | 中等规模主机数的网络 | 小型局域网组播地址 | ** | 保留,仅作为搜索、Internet的实验和开发用 |
-
子网掩码功能
含义:一种用来指明一个IP地址的哪些位标识的是主机所在的网络地址以及哪些位标识的是主机地址的位掩码。
功能:将一个单一的大型网络按需求划分成若干个较小的网络。
-
网关作用
网关工作在OSI参考模型的高三层,因此,并不使用冲突域、广播域的概念。网关主要用来进行高层协议之间的转换。例如,充当两个基于不同邮件协议的邮件服务之间的邮件网关。
注意:这里网关的概念完全不同于PC主机以及路由器上配置的默认网关(default gateway).
-
什么是网络地址
把IP地址转成二进制和子网掩码进行与运算所得的IP地址
-
什么是广播地址
网络地址的主机位有5位全部变成1 所得的IP地址
-
什么是主机地址
主机位数介于网络地址主机位和广播地址主机位数之间(不包括)的IP地址:网络地址+1即为第一个主机地址,广播地址-1即为最后一个主机地址
-
给定一个地址 192.168.1.0/255.255.255.240,子网数为多少?每个子网可用主机地址数为多少
-
IP地址中的192换算成二进制为11000000,故得出这个IP地址是一个C类地址,子网掩码为255.255.255.0,有八位是主机位
-
实际子网掩码为255.255.255.240;240换算成二进制数为:
11100000,故该掩码向主机位借了四位,实际主机位只有4位;
-
子网数为2^4=16个(CIDR的计算方法)
-
每个子网用主机数(平均划分)为:2^4-2=14个,除去的两个是全零、全一,这两种情况:全零用于标识网段、全一用于广播;除此以外,这14个可用主机地址还包含了分配给路由器端口的情况。
-
1.8 基础路由和交换技术
-
交换机工作原理
- 封装和解封装
- MAC-端口表/广播寻址
- 转发
交换机工作在数据链路层。内部会形成一张MAC-端口对应表,在存储和转发一个TCP/IP数据包时会查看该包的目的MAC地址,再核对自己的表确认要从交换机的哪一个端口转发出去;如果没有找到,就需要广播搜索以得到目的MAC地址;同样的当收到一个包的时候也会检查这个包的目的MAC地址是不是自己本身,并不断维护这一个MAC-端口表。
-
路由器工作原理
- 解封装数据
- 查找/维护路由表寻址,转发
- 重新封装数据
主要任务是接收来自某个网络接口的数据包,根据其中所含的目的地址,决定转发到下一个目的地址。因此,路由器首先得在转发路由表中查找它的目的地址,若找到了目的地址,就在数据包的帧格前添加下一个MAC地址,同时IP数据包头的**TTL(Time To Live)**位也开始减1,并重新计算校验和。当数据包被送到输出端口时,它需要按顺序等待,以便被传送到输出链路上。
路由器的工作是通过协议来实现。
-
路由协议功能
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tlIVQwvH-1595226585460)(assets/2020-06-27_150310.jpg)]
-
LAN&WLAN区别
WLAN LAN 无线局域网 局域网 完全无线通信 连接包括无线和有线 容易受到外部干扰,信号不稳定 信号稳定 不安全 安全 不需有线连接交换机和路由器 需要物理连接交换机或路由器 不需要连接以太网电缆 相关中继设备需要连接以太网电缆 昂贵 便宜 应用在:无线路由器连接/热点连接,主要在电脑笔记本、平板电脑、手机普及 主要应用在类似大学里的计算机 -
NAT工作原理
网络地址转换(NAT)是为保护 IP 地址而设计的。 它使得使用未注册 IP 地址的私有 IP 网络能够连接到互联网。 工作原理如下:
- NAT 操作在一个路由器上,通常将两个网络连接在一起,在数据包转发到另一个网络之前,将内部网络中的私有地址(不是全局唯一的)转换成合法的地址。
- 涉及到多级NAT 转换
- 局域网内用私网地址,互联网用公有地址
作为此功能的一部分,NAT 可以被配置为只向外部世界发布整个网络的一个地址。 这可以有效地将整个内部网络隐藏在该地址后面,从而提供额外的安全性。 Nat 提供了安全和地址保护的双重功能,通常在远程访问环境中实现。
IPV4中,私有IP地址的范围有:
- 10.0.0.0-10.255.255.255 (8位网络号)
- 172.16.0.0—172.31.255.255(12位网络号)
- **192.168.0.0-192.168.255.255 **(16位网络号)