1.HTTP(超文本传输协议):
官方定义:一种用于分布式、协作式和超媒体信息系统的应用层协议,是万维网数据通信的基础。
用途:主要用于在 Web 浏览器和 Web 服务器之间传输超文本,如网页、图像、视频等资源。
数据结构:请求报文包括请求行、请求头部、空行和请求体;响应报文包括状态行、响应头部、空行和响应体。
学习网站及网址:
“MDN Web Docs”:https://developer.mozilla.org/zh-CN/docs/Web/HTTP 。提供了非常详细的 HTTP 协议介绍、教程和参考资料。
“RFC 文档”:https://www.rfc-editor.org/rfc/rfc2616.txt 。可直接查看 HTTP 协议的原始定义文档 RFC 2616。
2.HTTPS(安全超文本传输协议):
官方定义:是以安全为目标的 HTTP 通道,在 HTTP 基础上通过传输层安全(TLS)或安全套接字层(SSL)进行加密。
用途:用于在 Web 浏览器和 Web 服务器之间进行安全的通信,保护数据在传输过程中的机密性和完整性。
数据结构:与 HTTP 类似,在传输之前会对请求和响应消息进行加密处理,还包含一些与加密和认证相关的额外信息。
学习网站及网址:
“SSL.com”:https://www.ssl.com/ 。提供关于 SSL/TLS 协议以及 HTTPS 的详细介绍、技术文档、常见问题解答等。
“RFC 文档”:https://www.rfc-editor.org/rfc/rfc2818.txt 。可查看 HTTPS 相关的标准文档。
3.TCP(传输控制协议):
官方定义:一种面向连接的、可靠的、基于字节流的传输层通信协议。
用途:适用于对数据传输可靠性要求高的场景,如网页浏览、文件传输、电子邮件和远程登录等。
数据结构:TCP 报文段头部包括源端口、目的端口、序列号、确认序列号、数据偏移、控制标志、窗口大小、校验和、紧急指针等字段;还有控制缓冲区和套接字数据结构等相关数据结构。
学习网站及网址:
“MDN Web Docs”:https://developer.mozilla.org/zh-CN/docs/Web/API/WindowOrWorkerGlobalScope/fetch 。提供了网络协议知识,包括 TCP 协议的详细介绍、原理、使用方法等。
“RFC 文档”:https://www.rfc-editor.org/rfc/rfc793.txt 。可直接查看 TCP 协议的原始定义文档。
4.UDP(用户数据报协议):
官方定义:是一种无连接的传输层协议。
用途:常用于对实时性要求较高、对数据准确性要求相对较低的场景,如实时视频、音频传输、在线游戏等。
数据结构:UDP 数据报包含源端口号、目的端口号、数据长度和校验和等字段。
学习网站及网址:
“MDN Web Docs”:https://developer.mozilla.org/zh-CN/docs/Web/API/DatagramSocket 。对 UDP 协议的特点、用法等有详细说明。
“RFC 文档”:https://www.rfc-editor.org/rfc/rfc768.txt 。可查看 UDP 协议的原始定义文档。
5.IP(网际互连协议):
官方定义:是 TCP/IP 协议体系中的网络互联层协议,主要作用是将不同类型的物理网络互联在一起,详细规定了网络中的计算机在通信时应该遵循的全部规则。
用途:负责在不同网络之间寻址和路由数据包,实现网络间的通信。
数据结构:IP 数据包由 IP 头部和数据部分组成,IP 头部包含源 IP 地址、目的 IP 地址、协议类型、生存时间、头部校验和等字段。
学习网站及网址:
“MDN Web Docs”:https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest 。有关于 IP 协议的基本概念和作用的介绍。
“RFC 文档”:https://www.rfc-editor.org/rfc/rfc791.txt 。可获取 IP 协议的原始定义文档。
6.SMTP(简单邮件传输协议):
官方定义:是一种用于在网络系统间传输电子邮件的协议,建立在 TCP 之上。
用途:负责将电子邮件从发送方的邮件服务器发送到接收方的邮件服务器。
数据结构:SMTP 协议的通信过程包括一系列的命令和响应,如 HELO、MAIL FROM、RCPT TO、DATA 等命令,以及相应的响应码。邮件的内容格式包括邮件头和邮件体。
学习网站及网址:
“RFC 文档”:https://www.rfc-editor.org/rfc/rfc5321.txt 。RFC 5321 是 SMTP 协议的最新标准文档,详细规定了 SMTP 协议的技术细节和操作规范。
“Wikipedia - Simple Mail Transfer Protocol”:https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol 。维基百科上对 SMTP 协议的介绍,包括其历史、工作原理、命令等。
7.FTP(文件传输协议):
官方定义:一种用于在网络上两台计算机之间传输文件的协议,运行在 TCP 之上。
用途:允许用户在客户端和服务器之间上传和下载文件,支持目录和文件的访问、管理等操作。
数据结构:FTP 通信过程中会有控制连接和数据连接,控制连接用于传输命令和响应,数据连接用于传输文件数据。
学习网站及网址:
“Wikipedia - File Transfer Protocol”:https://en.wikipedia.org/wiki/File_Transfer_Protocol 。维基百科上的 FTP 页面,对 FTP 协议的历史、工作原理、命令集、安全问题等方面进行了详细的介绍。
“RFC 文档”:https://www.rfc-editor.org/rfc/rfc959.txt 。可查看 FTP 协议的原始定义文档。
8.Telnet(远程登录协议):
官方定义:是 TCP/IP 中的一种应用协议,为终端仿真提供支持。
用途:允许用户通过网络远程登录到其他计算机系统,在远程计算机上执行命令和操作。
数据结构:Telnet 协议的数据主要是用户输入的命令和远程计算机返回的响应,通信过程中的数据格式是基于文本的。
学习网站及网址:
“Wikipedia - Telnet”:https://en.wikipedia.org/wiki/Telnet 。维基百科上的 Telnet 页面,介绍了 Telnet 协议的发展历程、工作原理、安全问题等方面的信息。
“RFC 文档”:https://www.rfc-editor.org/rfc/rfc854.txt 。可查看 Telnet 协议的原始定义文档。
9.DNS(域名系统协议):
官方定义:是互联网的一项服务,用于将域名解析为 IP 地址,以便用户可以通过易于记忆的域名访问网站,而不是难以记住的数字 IP 地址。
用途:在互联网中,当用户在浏览器中输入域名时,DNS 协议会将该域名转换为对应的 IP 地址,使得计算机能够找到并访问目标服务器。例如,当用户输入 “www.example.com” 时,DNS 会将其解析为对应的 IP 地址,如 “192.0.2.1”,这样浏览器才能与该服务器建立连接并获取网页内容。
数据结构:DNS 消息包含头部和正文部分。头部包含一些标志位、查询 ID、问题数量等信息;正文部分则包含查询的域名、查询类型(如 A 记录表示将域名解析为 IPv4 地址,AAAA 记录表示解析为 IPv6 地址等)、响应的 IP 地址等。
学习网站及网址:
“RFC 文档”:https://www.rfc-editor.org/rfc/rfc1034.txt 。RFC 1034 和 RFC 1035 是 DNS 协议的官方定义文档,详细描述了 DNS 的技术规范和工作原理。
“DNS 原理与实践 - 知乎专栏”:https://zhuanlan.zhihu.com/p/349422556 。知乎专栏上有一些关于 DNS 原理、解析过程、常见问题等方面的详细介绍和案例分析。
10.ICMP(Internet 控制报文协议):
官方定义:是 TCP/IP 协议族的一个子协议,用于在 IP 主机、路由器之间传递控制消息,如错误报告、网络状态信息等。
用途:主要用于报告 IP 数据报在传输过程中发生的错误,以及进行网络诊断和控制。例如,当 IP 数据报无法到达目的地、TTL(生存时间)超时、数据报参数错误等情况发生时,路由器或目的主机就会发送 ICMP 报文给源主机,告知错误信息。此外,ICMP 还可以用于一些网络探测工具,如 Ping 和 Traceroute。
数据结构:ICMP 报文由头部和数据部分组成。头部包含类型、代码、校验和等字段,用于标识报文的类型和具体的错误信息;数据部分则根据不同的类型和代码,可能包含一些额外的信息,如 IP 数据报的首部等。
学习网站及网址:
“RFC 文档”:https://www.rfc-editor.org/rfc/rfc792.txt 。RFC 792 是 ICMP 协议的官方标准文档,对 ICMP 的报文格式、类型、代码、处理规则等进行了详细的定义。
“ICMP 协议详解 - 51CTO 博客”:https://blog.51cto.com/u_15077562/2860473 。51CTO 博客上的这篇文章对 ICMP 协议的原理、工作过程、常见应用等进行了详细的讲解和分析。
11.ARP(地址解析协议):
官方定义:是将 IP 地址映射到物理地址(MAC 地址)的一种协议,在以太网等局域网中使用。
用途:在局域网中,当一台主机想要向另一台主机发送数据时,需要知道对方的 MAC 地址。ARP 协议就是用于在已知对方 IP 地址的情况下,获取对方的 MAC 地址。例如,主机 A 想要向主机 B 发送数据,但是只知道主机 B 的 IP 地址,此时主机 A 会发送一个 ARP 请求广播,询问网络中谁的 IP 地址是主机 B 的 IP 地址,主机 B 收到请求后会回复自己的 MAC 地址,这样主机 A 就可以使用该 MAC 地址向主机 B 发送数据。
数据结构:ARP 报文分为请求报文和响应报文两种。报文包含硬件类型(如以太网)、协议类型(如 IP)、硬件地址长度、协议地址长度、操作类型(请求或响应)、发送方的 MAC 地址、发送方的 IP 地址、目标的 MAC 地址(请求时未知,响应时填写)、目标的 IP 地址等字段。
学习网站及网址:
“RFC 文档”:https://www.rfc-editor.org/rfc/rfc826.txt 。RFC 826 是 ARP 协议的标准文档,详细规定了 ARP 报文的格式、操作流程等。
“ARP 协议原理与实战 - 腾讯云开发者社区”:https://cloud.tencent.com/developer/article/1773018 。腾讯云开发者社区的这篇文章结合实际案例,详细介绍了 ARP 协议的工作原理、ARP 欺骗等相关知识。
12.RARP(逆向地址解析协议):
官方定义:与 ARP 协议相反,RARP 是将物理地址(MAC 地址)映射到 IP 地址的一种协议。
用途:主要用于无盘工作站等设备在启动时获取自己的 IP 地址。因为无盘工作站没有硬盘,无法存储 IP 地址等配置信息,所以在启动时需要通过 RARP 协议向 RARP 服务器请求自己的 IP 地址,RARP 服务器根据其 MAC 地址查询对应的 IP 地址并返回给无盘工作站。
数据结构:RARP 报文的格式与 ARP 报文类似,包含硬件类型、协议类型、硬件地址长度、协议地址长度、操作类型(RARP 的操作类型与 ARP 不同)、发送方的 MAC 地址、目标的 IP 地址(请求时未知,响应时填写)等字段。
学习网站及网址:
“RFC 文档”:https://www.rfc-editor.org/rfc/rfc903.txt 。RFC 903 是 RARP 协议的官方定义文档。
“RARP 协议的工作原理及应用场景 - CSDN 博客”:https://blog.csdn.net/qq_36330643/article/details/79108807 。CSDN 博客上的这篇文章对 RARP 协议的原理、应用场景等进行了介绍。
13.IGMP(Internet 组管理协议):
官方定义:是 Internet 协议家族中的一个组播协议,运行在主机和组播路由器之间,用于管理 IP 组播通信。
用途:在 IP 组播中,多个接收者可以同时接收来自一个发送者的数据包。IGMP 协议用于主机加入或离开组播组,以及组播路由器管理组播组成员关系。例如,当一台主机想要接收某个组播组的数据包时,它会向本地的组播路由器发送 IGMP 加入消息,组播路由器收到消息后,会将该主机加入到相应的组播组中,并在后续的组播数据传输中,将数据包转发给该组的成员。
数据结构:IGMP 报文包含版本号、类型、校验和、组地址等字段。类型字段用于表示报文的类型,如成员查询、成员报告、离开组等;组地址字段则表示组播组的 IP 地址。
学习网站及网址:
“RFC 文档”:https://www.rfc-editor.org/rfc/rfc1112.txt 。RFC 1112 是 IGMP 协议的标准文档,详细描述了 IGMP 的协议规范和操作流程。
“IGMP 协议详解 - 简书”:https://www.jianshu.com/p/677c6d89763c 。简书上的这篇文章对 IGMP 协议的基本概念、工作原理、报文格式等进行了详细的解读。
14.SNMP(简单网络管理协议):
官方定义:是 TCP/IP 协议中的一部分,为本地和远端的网络设备管理提供了一个标准化途径,是分布式环境中的集中化管理的重要组成部分。
用途:用于网络管理员对网络中的设备进行监控和管理,如获取设备的状态信息、配置设备参数、接收设备的告警信息等。例如,网络管理员可以通过 SNMP 协议获取路由器的接口状态、CPU 利用率、内存使用情况等信息,以便及时发现和解决网络中的问题。
数据结构:SNMP 协议使用管理信息库(MIB)来定义被管理设备的信息结构,SNMP 报文包含版本号、团体名、PDU(协议数据单元)等字段。PDU 又分为 GetRequest、GetNextRequest、SetRequest、GetResponse、Trap 等类型,分别用于获取信息、获取下一个信息、设置信息、响应请求、发送告警等操作。
学习网站及网址:
“RFC 文档”:https://www.rfc-editor.org/rfc/rfc1157.txt 。RFC 1157 是 SNMP 协议的第一个版本的标准文档,后续还有 RFC 1901、RFC 1905 等对其进行了更新和扩展。
“SNMP 协议入门教程 - 华为技术支持”:https://support.huawei.com/enterprise/zh/doc/EDOC1100057476 。华为技术支持网站上的这篇教程对 SNMP 协议的基本概念、工作原理、配置方法等进行了详细的介绍,适合初学者学习。
15.TLS/SSL(传输层安全协议 / 安全套接层协议):
官方定义:是为网络连接提供加密和身份认证的安全协议,位于传输层和应用层之间。
用途:用于保护在网络上传输的敏感信息,如信用卡号、密码、个人信息等,防止被窃听、篡改和伪造。例如,在进行网上银行转账、登录电子邮箱等操作时,浏览器和服务器之间会使用 TLS/SSL 协议进行加密通信,确保数据的安全性。
数据结构:TLS/SSL 协议的握手过程涉及多个报文的交互,包括 Client Hello、Server Hello、Certificate、Server Key Exchange、Client Key Exchange、Change Cipher Spec、Finished 等报文。这些报文包含了协议版本号、加密算法、随机数、证书等信息,用于建立安全连接和协商加密参数。
学习网站及网址:
“RFC 文档”:https://www.rfc-editor.org/rfc/rfc5246.txt 。RFC 5246 是 TLS 协议的标准文档,详细描述了 TLS 协议的握手过程、加密算法、报文格式等。
“SSL/TLS 协议详解 - 腾讯云开发者社区”:https://cloud.tencent.com/developer/article/1427057 。腾讯云开发者社区的这篇文章对 SSL/TLS 协议的原理、工作流程、安全机制等进行了深入的分析和讲解。
16.DHCP(动态主机配置协议):
官方定义:是在 TCP/IP 网络上使客户机获得配置信息的协议,它基于 BootP 协议,并在其基础上添加了自动分配可用网络地址等功能。
用途:用于自动为网络中的主机分配 IP 地址、子网掩码、默认网关、DNS 服务器等网络配置信息,减少网络管理员的手动配置工作量,提高网络配置的效率和准确性。例如,当一台新的计算机接入网络时,它会向 DHCP 服务器发送请求,DHCP 服务器会根据其配置策略为该计算机分配一个可用的 IP 地址,并将其他相关的网络配置信息一起返回给计算机,使计算机能够快速地接入网络。
数据结构:DHCP 报文包含消息类型(如 Discover、Offer、Request、ACK 等)、客户端 MAC 地址、服务器 IP 地址、分配的 IP 地址、子网掩码、默认网关、租约时间等字段。
学习网站及网址:
“RFC 文档”:https://www.rfc-editor.org/rfc/rfc2131.txt 。RFC 2131 是 DHCP 协议的标准文档,对 DHCP 的工作原理、报文格式、配置选项等进行了详细的规定。
“DHCP 协议原理与配置 - 51CTO 学院”:https://edu.51cto.com/course/13438.html 。51CTO 学院的这门课程对 DHCP 协议的原理、配置方法、常见问题等进行了系统的讲解和演示。
17.NAT(网络地址转换协议):
官方定义:是一种将私有(保留)地址转换为合法 IP 地址的技术,属于接入广域网(WAN)的技术。
用途:在 IPv4 地址资源有限的情况下,NAT 技术可以使多个内部网络设备共享一个或多个公共 IP 地址访问互联网,提高 IP 地址的利用率,同时也可以隐藏内部网络的结构和 IP 地址,增强网络的安全性。例如,一个公司内部的局域网中,所有的计算机都使用私有 IP 地址,当这些计算机需要访问互联网时,NAT 设备会将它们的私有 IP 地址转换为一个公共 IP 地址,然后与互联网上的服务器进行通信。
数据结构:NAT 设备会维护一个地址转换表,记录内部私有 IP 地址与外部公共 IP 地址的映射关系。当内部设备发送数据包时,NAT 设备会将数据包的源 IP 地址替换为公共 IP 地址,并记录下转换信息;当收到外部服务器返回的数据包时,NAT 设备会根据地址转换表将目的 IP 地址替换为内部设备的私有 IP 地址,然后将数据包转发给内部设备。
学习网站及网址:
“RFC 文档”:https://www.rfc-editor.org/rfc/rfc3022.txt 。RFC 3022 是 NAT 协议的相关标准文档,对 NAT 的技术原理、实现方式、应用场景等进行了描述。
“NAT 技术原理与实战 - 阿里云开发者社区”:https://developer.aliyun.com/article/747237 。阿里云开发者社区的这篇文章结合实际案例,详细介绍了 NAT 技术的原理、配置方法、常见问题及解决方案。
18.BOOTP(引导程序协议):
官方定义:是一种用于无盘工作站从服务器获取启动信息的网络协议。
用途:主要用于无盘工作站在启动时从服务器获取 IP 地址、子网掩码、默认网关、服务器 IP 地址等启动信息,以便能够正常启动并连接到网络。例如,在一些企业网络环境中,为了降低成本和管理难度,可能会使用无盘工作站,这些工作站在启动时需要通过 BOOTP 协议从服务器获取启动信息,然后才能正常运行。
数据结构:BOOTP 报文包含操作码、硬件类型、硬件地址长度、跳数、事务 ID、秒数、未使用、客户端 IP 地址、你的 IP 地址、服务器 IP 地址、网关 IP 地址、客户端硬件地址、服务器主机名、启动文件名等字段。
学习网站及网址:
“RFC 文档”:https://www.rfc-editor.org/rfc/rfc951.txt 。RFC 951 是 BOOTP 协议的官方定义文档。
“BOOTP 协议详解 - CSDN 博客”:https://blog.csdn.net/qq_34801169/article/details/80555827 。CSDN 博客上的这篇文章对 BOOTP 协议的原理、报文格式、应用场景等进行了介绍