关注这个证书的其他相关笔记:NISP 一级 —— 考证笔记合集-CSDN博客
0x01:Internet 和 TCP/IP 协议
因特网(Internet)通过 TCP/IP 协议将遍布在全世界各地的计算机互联,从而形成超级计算机网络。因特网为用户提供了非常丰富的服务,包括万维网,电子邮件,文件传输,远程登录等。
0x02:网络协议
-
网络中的协议(Protocol) ,是指实现约定或定义的一组通信规则。
-
它精确地规定了所交换数据的格式和传输方法。
-
不同网络必须遵守统一的协议才能相互通信。
-
TCP/IP 是一组不同层次上的多个协议组合。
-
其定义了电子设备如何接入互联网,以及数据如何在他们之间传输。
0x0201:网络模型 — OSI 模型 & TCP/IP 模型
下图中,左侧为 OSI 参考模型,右侧为 TCP/IP 模型:
0x0202:TCP/IP 协议分层
TCP/IP 模型共四层,每层都由众多协议组成,如下图所示,其中,网际层最终要的协议就是 IP 协议:
0x03:通信地址
0x0301:什么是通信地址?
-
通信其实就是将数据从一端传送到另一端的过程。这有点像发快递。
-
发快递需要知道寄出地址和寄到地址。
-
在网络中,寄出地址为源地址,寄到地址为目的地址。
0x0302:网络中的通信地址
通信中,每台计算机必须有一个全球唯一的物理地址。这个地址工作在网络接口层被称为 MAC 地址(48 bit) ,比如下图中,框住的地址就是该机的物理地址:
通信中,每台计算机还必须有一个逻辑地址。这个地址工作在 IP 层被称为 IP 地址(32 bit),比如下图中,被框住的就是该机的 IP 地址:
我们上面看到的 IP 地址叫做 IPv4,现在还有另外一种 IP 地址叫做 IPv6。目前 IPv4 地址已经不够用了。而 IPv6 地址比 IPv4 地址多。所以后面有可能会启用 IPv6。虽然有 “4” 和 “6” 之分但是它们都属于 TCP/IP 协议族。比如下面,被框住的部分就是 IPv6 地址:
拓展:IP 地址分类
目前被大量使用的地址是 IPv4 地址
IPv6 地址是由 IETF(Internet Engineering Task Force,互联网工程任务组) 设计的下一代 IP 协议
IPv6 不仅可以解决 IPv4 地址被耗尽的问题还可以提高 IP 协议本身的性能和安全性。
0x04:封装与解封装
封装(Encapsulation):当高层进程要进行数据传输时,会先将数据从高层向低层传送。经过低层时,会分别加上该低层的头部信息置于数据首部。如下图所示:
解封装(Decapsulation):执行封装的逆过程,如下图所示:
0x05:IPv4 包头格式
-
版本:IPv4 版本
-
包头长度:IPv4 包头长度
-
服务类型:针对该 IPv4 数据包定义转发优先级
-
数据包长度:IPv4 数据包总长度 = IPv4 包头长度+ IPv4 用户数据长度
-
标识:分片重组时保持统一
-
标记:第二 bit 置 1,表示不能分片;第三 bit 置 1,表示最后一片
-
偏移:分片重组时还原原始数据位置
-
生存期:每经过一跳此数值减 1,避免数据平面环路导致的无限转发
-
协议类型:表示上层协议类型
-
包头校验和:用于校验 IPV4 包头的正确性
-
原 IP 地址:发送方的 IPv4 地址
-
目的 IP 地址:接收方的 IPv4 地址
-
可选项:用于表示对 IPv4 数据包进行一些特殊处理的信息
-
用户数据:IPv4 头部上层负载的全部数据
0x06:端口 — Port
计算机中有一些协议常用端口,这些端口绑定了一些服务且明确表示使用某种服务协议。如 80 端口表示 HTTP 协议。黑客攻击常将各种协议端口作为入侵通道。端口通过端口号标记,范围是0 ~ 65535。
0x07:传输层协议:TCP & UDP
0x0701:TCP
传输控制协议 TCP:
-
提供面向连接的、可靠的字节流服务
-
提供可靠性服务
如下图,是 TCP 协议的包头:
0x0702:UDP
用户数据报协议 UDP:
-
提供面向事务的简单不可靠信息传送服务
-
无连接、不可靠。协议简单、占用资源少,效率高
如下图,是 UDP 协议的包头:
0x08:万维网(World Wide Web,WWW)
万维网是因特网上使用最广泛的一种信息服务,是因特网的主要组成部分。用户可以通过客户端程序(一般是浏览器)访问服务器端程序提供的页面。通过万维网用户可以阅读报刊、欣赏音乐、搜索资料,获取遍布全球的在线资源,也可以进行网上购物,网上支付等操作。
在万维网中一般使用超文本标记语言制作页面,在访问网站或网站资源时,用户通常需要输入网站的 URL 来访问站点,通过客户端浏览器,将网站的页面和资源传送给客户端。
如下图,就是一个典型的网页:
0x0801:超文本标记语言 HTML
超文本标记语言 HTML 是一种制作万维网页面的标准语言,为不同的计算机交换信息资源提供了统一的格式。超文本标记语言将各种不同格式的对象 比如文本、图像、音频和视频组织在一个一个的网页中,HTML 文件后缀为 html 或 htm。
0x0802:超文本传输协议 HTTP
超文本传输协议 HTTP 是用于从 WWW 服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网终传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪部分,以及哪部分内容首先显示(如文本先于图形)等。
HTTP 是客户端浏览器或其他程序与外部服务器之间的应用层通信协议,在 Internet 上的 Web 服务器存放的都是超文本信息,客户机需要通过 HTTP 协议传输所要访问的超文本信息,HTTP 包含命令和传输信息,不仅可以用于外部访问,也可以用于其他因特网内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。
0x0803:统一资源定位符 URL
用户在访问网站时,为了获取特定的信息资源,需要给出特定资源的地址,即统一资源定位符 (Uniform Resource Locator, URL)。它是用来标识万维网中每个信息资源的地址。
URL 由三部分组成,表示形式为:
http://主机域名或 IP 地址[:端口号]/文件路径/文件名