后来因模型太过繁琐被压缩成了 TCP/IP 五层参考模型。
应用层
负责应用程序之间的沟通;是七层模型中最靠近用户的一层,为用户提供应用接口,也为用户直接提供各种网络服务。包含的协议有:HTTP、DNS、HTTPS、FTP、SNMP、DHCP、TELNET、TFTP等。
传输层
负责应用程序之间的数据传输;是通信子网和资源子网的接口和桥梁,主要向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。包含的协议有 TCP、UDP。
网络层
负责地址管理和路由选择;即通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。该层控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接。包含的协议有 IP、ICMP、IGMP。使用设备为 路由器。
数据链路层
负责相邻设备之间的数据传输和数据封装; 建立逻辑连接、进行硬件地址寻址、差错校验等。能将 bit 组合成字节进而组合成帧,用 MAC 地址访问介质,能发现错误但无法纠正。包含协议有 以太网协议 (Ethernet)。使用设备为 交换机。
物理层
负责物理光电信号的传输; 包含协议有 以太网协议 (Ethernet)。使用设备为 集线器。
字节序 : CPU 对于数据在内存中以字节为单位的存储顺序;即字节在电脑中存放时的序列与输入(输出)时的序列是先到的在前还是后到的在前。
网络字节序 :TCP/IP 中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用big endian(大端)排序方式,具有唯一性。
主机字节序 : 根据 CPU 的变化而变化,一个主机字节序的大小端取决于该主机的 CPU 架构 (X86、MIPS),所以其具有多样性。
大端字节序 : 低位存高位,高位存低位 ,例如存十进制的 8,00000000 00000000 00000000 00001000 (网络字节序的标准)
小端字节序: 低位存低位,高位存高位,例如存十进制的 8, 00010000 00000000 00000000 00000000
因为主机字节序的多样性,所以不同主机之间直接用主机字节序进行通信会造成数据二义和混淆,因此在进行网络通信的时候,通常会把主机字节序转化成具有唯一性的网络字节序来进行通信。当数据到达主机后,再将网络字节序转化成系统所能识别的主机字节序来进行数据处理。
区别
1、两者的使用不同
IP地址是 Internet 协议使用的地址,而 MAC 地址是 Ethernet 协议使用的地址。
2、二者的可更改性不同
IP 地址可以修改且一个人可以拥有多个 IP 地址,但是 MAC 地址无法修改且一个设备的 MAC 是设备出场是由厂家直接定义的,不存拥有多个的情况,当然这几年 MAC 地址也逐渐变得可以修改了。
3、地址长度不同
IP 地址为 uint32_t (32位无符号整形),MAC 地址为 uint8_t mac[6] (48位无符号整形)。
4、所应用的协议层不同
IP 地址应用于 TCP/IP 五层模型中的网络层,而 MAC 地址应用于数据链路层。
5、分配的依据不同
IP 地址的分配是基于网络拓朴,MAC地址的分配是基于制造商。
IP 地址是可以自动分配的,而MAC 地址在每个网卡出场的时候就有一个全球唯一的地址。
二者的联系
随着网络的不断发展,网络中的设备也在不断的增多,人们发现,单纯的通过 IP 寻址会使路由 (数据从发送方到接收方的传输的最优路径)变得越来越困难,所以人们把网络划分为一个一个的子网,每一个子网都拥有自己所对应的网络号 (我将其比作小区邮编),当数据到来后会根据目的地址的网络号找到对应的子网(小区),将数据先暂存在子网的网关中 (路由到此结束),再由该子网的网关在进行广播(请 xxx 用户来小区收件箱取你的邮件,这就是 ARP 请求),该子网中的主机在收到广播后会将数据的目的 IP 和自身的 IP 进行比对,不同则丢弃不管,相同则会向回复 ARP 请求并填充自己的 MAC 地址反馈给网关,网关收到后根据交换机自身所记录的 MAC 地址表查询对应的传输路径,将数据发送给目的主机。
路由器只能决定数据传输到哪一个局域网,而交换机决定数据具体传送到哪一台主机,通俗的讲就是 IP 寻址给你送到小区门口的收信箱,MAC 寻址给你送到家门口。
一、网络的划分
1、局域网 (1 KM以内)
2、城域网 (20 KM以内)
3、广域网 (大于 20 KM)
4、互联网
它 的英文是 internet,泛指有多个计算机网络互连而成的网络,这些网络之间的通信协议(即通信规则)是可以任意的。
5、因特网
它的英文名是 Internet,但它与 internet 不同,因为 Internet 是一个专有名词,它是指当前全球最大的、开放的、有众多网络互相连接而成的特定的计算机网络,它采用 TCP/IP 协议作为通信的规则,其前身是美国的ARPNET。
6、以太网(Ethernet)
是当今现有局域网采用的最通用的通信协议标准。以太网可以说是局域网的一种,但是目前局域网大多数都是使用以太网标准,故可认为以太网就是局域网。以太网的核心技术是随即争用介质访问控制方法,即带有冲突检测的载波侦听多路访问(CSMA/CD)源于无线分组交换网。使用的是 IEEE802.3 标准而令牌环网使用的是 IEEE802.5 标准。
⭐以太网和令牌环网并不是一种具体的网络,而是一种组网技术,也就是一种局域网的组网方式。
以太网的大概流程如下:
1、开始- 如果线路空闲,则启动传输,否则跳转到第4步。
2、发送- 如果检测到冲突,继续发送数据直到达到最小回报时间(min echo receive interval)以确保所有其他转发器和终端检测到冲突,而后跳转到第4步。
3、成功传输- 向更高层的网络协议报告发送成功,退出传输模式。
4、线路繁忙- 持续等待直到线路空闲。
5、线路空闲- 在尚未达到最大尝试次数之前,每隔一段随机时间转到第1步重新尝试。
6、超过最大尝试传输次数- 向更高层的网络协议报告发送失败,退出传输模式。
二、基础网络设备
1.交换机 : 根据自身所记录的该网段中的 MAC 地址表来进行数据的交换和传输。
2.路由器 : 在数据交换及传输的计数上新添了一个新的功能 —> 网络识别功能,它会根据自身所记录的路由表和目的 IP 的网络号进行比对,为每一条数据在网络中选择一条合适的路径将数据发送到目的主机上。
一、DHCP(动态主机配置协议,应用层协议)
主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、DNS服务器地址等信息,并提升地址的使用率。当 DHCP 服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。(谁使用就给谁分配地址),有三种分配方式 : 自动分配、动态分配、手动分配。
二、ICMP (报文控制协议,网络层协议)
主要用于进行网络探测以保障网络安全,用于探测网络是否通畅,网络延迟是多少。是一种面向无连接的协议,用于传输出错报告控制信息。当遇到 IP数据无法访问目标、IP 路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。它会在网络中逐层进行探测,直到出现故障探测不下去时才会返回报错,这样就能明确故障发生在哪里。
⭐ ping 的工作原理是向特点的目的主机发送 ICMP 请求,测试目的站是否可达及了解其有关状态。所以 ping 是通过 ICMP 实现的,而 ICMP 是网络层协议,所以 ping 并不会涉及到端口号的使用,端口号是传输层才会使用的。
端口号 : 用于在一台主机中唯一标识一个进程。
三、SNMP (简单网络管理协议,应用层协议)
使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。通过 SNMP 接收随机消息(及事件报告)网络管理系统获知网络出现问题。一个SNMP管理的网络由下列三个关键组件组成:<1>网络管理系统、
<2>被管理的设备、<3>代理者
四、ARP(地址解析协议,介于网络层和链路层的协议)
用于通过 目的主机的 IP 地址获取目的主机 MAC 地址;原主机发送数据时将包含了自己 IP 和 MAC 且包含了目的主机的 IP (目的主机 MAC 位置,故空出)的 ARP 请求广播到整个局域网中,目的主机在收到广播后进行响应并在 ARP 中填充自己的 MAC 地址。原主机在收到返回消息后将目的主机 IP 地址和 MAC 地址存入本机 ARP缓存中 并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
ARP 欺骗
因为 ARP 协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送 ARP 应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,伪装自己是目的主机,获取数据。
防御措施 : 1.管理员定期轮询,检查主机上的ARP缓存 2.设置防火墙白名单,连续监控网络等)
五、HTTP (超文本传输协议,应用层协议)
HTTP 是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。HTTP 是基于客户/服务器模式,且面向连接的。处理过程如下:
(1)客户与服务器建立连接;
(2)客户向服务器提出请求;
(3)服务器接受请求,并根据请求返回相应的文件作为应答;
(4)客户与服务器关闭连接。
客户与服务器之间的 HTTP 连接是一种一次性连接,它限制每次连接只处理一个请求,当服务器返回本次请求的应答后便立即关闭连接,下次请求再重新建立连接。这种一次性连接只能提供有限个连接,故服务器不会让一个连接处于等待状态,及时地释放连接可以大大提高服务器的执行效率。
HTTP 是一种无状态协议,即服务器不保留与客户交易时的任何状态。这就大大减轻了服务器记忆负担,从而保持较快的响应速度。此外 HTTP 还是一种面向对象的协议。
六、DNS (域名解析协议,应用层协议)
其主要用于域名(服务器地址的别名,便于人们记忆和使用,实际最终还是通过 IP 地址进行访问的,例如 www.baidu.com 就是 百度的别名)与 IP 地址的相互转换。
DNS : 域名系统,用于存储 IP 地址和域名之间的映射关系,提供域名解析,通过域名获取服务器 IP 地址的服务。
域名服务器的划分 : 根域名服务器、顶级域名服务器、二级域名服务器、三级域名服务器。
域名的解析流程
区别: 迭代式是由本地域名服务器去不断的访问其他域名服务器,而递归式是先访问根域名服务器,再由根域名服务器递归访问其他两个服务器。
七、FTP(文件传输协议,应用层协议)
FTP 允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。然而, 用户并不真正登录到自己想要存取的计算机上面成为完全用户,而是用 FTP 程序进行访问远程资源, 实现用户往返传输文件、目录管理以及访问电子邮件等等, 即使双方计算机可能配有不同的操作系统和文件存储方式。其次 FTP 使用 TCP 传输而非 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。
FTP 与 HTTP 的不同
1、功能上的区别
HTTP 用于访问 Internet 上的不同网站,将网页内容从 Web 服务器传输到客户端的 Web 浏览器,被称为单向系统。
FTP 用于在 FTP 服务器和 FTP 客户端之间上传和下载文件,可以将文件从一个主机传输到另一个主机,被称为双向系统。
2、连接上的区别的区别
HTTP仅建立一个链接:数据连接。
FTP建立两个链接:数据连接和控制连接。
3、使用端口的区别
HTTP 使用 TCP 的80端口,而 FTP 使用 TCP 的 20 和 21 端口。
4、传输的文件大小的区别
HTTP可以有效地传输较小的文件,如网页;而 FTP 则可以有效地传输大文件。
5、验证区别
HTTP不需要身份验证;而FTP使用密码进行身份验证。
6、数据储存的区别
使用 HTTP 传输到设备的网页或数据内容不会保存在该设备的内存中,而使用FTP传送到设备的数据会保存在该设备的内存中。
7、显示的区别
如果用户使用 HTTP,http 将显示在网站的 URL中;如果用户使用的是FTP,则会在URL中显示 ftp。
八、TFTP (简单文件传送协议,应用层)
TFTP 是一个传输文件的简单协议,它基于 UDP 协议而实现。此协议只要目的是进行小文件传输的。因此它不具备通常的 FTP 的许多功能,比如它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证,