跳至主要內容
应用层常见协议总结(应用层)

HTTP:超文本传输协议

超文本传输协议(HTTP,HyperText Transfer Protocol) 是一种用于传输超文本和多媒体内容的协议,主要是为 Web 浏览器与 Web 服务器之间的通信而设计的。当我们使用浏览器浏览网页的时候,我们网页就是通过 HTTP 请求进行加载的。

HTTP 使用客户端-服务器模型,客户端向服务器发送 HTTP Request(请求),服务器响应请求并返回 HTTP Response(响应),整个过程如下图所示。


JavaGuidePro大约 6 分钟计算机基础计算机网络
ARP 协议详解(网络层)

每当我们学习一个新的网络协议的时候,都要把他结合到 OSI 七层模型中,或者是 TCP/IP 协议栈中来学习,一是要学习该协议在整个网络协议栈中的位置,二是要学习该协议解决了什么问题,地位如何?三是要学习该协议的工作原理,以及一些更深入的细节。

ARP 协议,可以说是在协议栈中属于一个偏底层的、非常重要的、又非常简单的通信协议。

开始阅读这篇文章之前,你可以先看看下面几个问题:

  1. ARP 协议在协议栈中的位置? ARP 协议在协议栈中的位置非常重要,在理解了它的工作原理之后,也很难说它到底是网络层协议,还是链路层协议,因为它恰恰串联起了网络层和链路层。国外的大部分教程通常将 ARP 协议放在网络层。
  2. ARP 协议解决了什么问题,地位如何? ARP 协议,全称 地址解析协议(Address Resolution Protocol),它解决的是网络层地址和链路层地址之间的转换问题。因为一个 IP 数据报在物理上传输的过程中,总是需要知道下一跳(物理上的下一个目的地)该去往何处,但 IP 地址属于逻辑地址,而 MAC 地址才是物理地址,ARP 协议解决了 IP 地址转 MAC 地址的一些问题。
  3. ARP 工作原理? 只希望大家记住几个关键词:ARP 表、广播问询、单播响应

JavaGuidePro大约 10 分钟计算机基础计算机网络
DNS 域名系统详解(应用层)

DNS(Domain Name System)域名管理系统,是当用户使用浏览器访问网址之后,使用的第一个重要协议。DNS 要解决的是域名和 IP 地址的映射问题

DNS:域名系统
DNS:域名系统

在实际使用中,有一种情况下,浏览器是可以不必动用 DNS 就可以获知域名和 IP 地址的映射的。浏览器在本地会维护一个hosts列表,一般来说浏览器要先查看要访问的域名是否在hosts列表中,如果有的话,直接提取对应的 IP 地址记录,就好了。如果本地hosts列表内没有域名-IP 对应记录的话,那么 DNS 就闪亮登场了。


JavaGuidePro大约 7 分钟计算机基础计算机网络
HTTP 常见状态码总结(应用层)

HTTP 状态码用于描述 HTTP 请求的结果,比如 2xx 就代表请求被成功处理。

常见 HTTP 状态码
常见 HTTP 状态码

1xx Informational(信息性状态码)

相比于其他类别状态码来说,1xx 你平时你大概率不会碰到,所以这里直接跳过。


JavaGuidePro大约 3 分钟计算机基础计算机网络
HTTP vs HTTPS(应用层)

HTTP 协议

HTTP 协议介绍

HTTP 协议,全称超文本传输协议(Hypertext Transfer Protocol)。顾名思义,HTTP 协议就是用来规范超文本的传输,超文本,也就是网络上的包括文本在内的各式各样的消息,具体来说,主要是来规范浏览器和服务器端的行为的。

并且,HTTP 是一个无状态(stateless)协议,也就是说服务器不维护任何有关客户端过去所发请求的消息。这其实是一种懒政,有状态协议会更加复杂,需要维护状态(历史信息),而且如果客户或服务器失效,会产生状态的不一致,解决这种不一致的代价更高。


JavaGuidePro大约 10 分钟计算机基础计算机网络
HTTP 1.0 vs HTTP 1.1(应用层)

这篇文章会从下面几个维度来对比 HTTP 1.0 和 HTTP 1.1:

  • 响应状态码
  • 缓存处理
  • 连接方式
  • Host 头处理
  • 带宽优化

响应状态码

HTTP/1.0 仅定义了 16 种状态码。HTTP/1.1 中新加入了大量的状态码,光是错误响应状态码就新增了 24 种。比如说,100 (Continue)——在请求大资源前的预热请求,206 (Partial Content)——范围请求的标识码,409 (Conflict)——请求与当前资源的规定冲突,410 (Gone)——资源已被永久转移,而且没有任何已知的转发地址。


JavaGuidePro大约 7 分钟计算机基础计算机网络
NAT 协议详解(网络层)

应用场景

NAT 协议(Network Address Translation) 的应用场景如同它的名称——网络地址转换,应用于内部网到外部网的地址转换过程中。具体地说,在一个小的子网(局域网,Local Area Network,LAN)内,各主机使用的是同一个 LAN 下的 IP 地址,但在该 LAN 以外,在广域网(Wide Area Network,WAN)中,需要一个统一的 IP 地址来标识该 LAN 在整个 Internet 上的位置。

这个场景其实不难理解。随着一个个小型办公室、家庭办公室(Small Office, Home Office, SOHO)的出现,为了管理这些 SOHO,一个个子网被设计出来,从而在整个 Internet 中的主机数量将非常庞大。如果每个主机都有一个“绝对唯一”的 IP 地址,那么 IPv4 地址的表达能力可能很快达到上限()。因此,实际上,SOHO 子网中的 IP 地址是“相对的”,这在一定程度上也缓解了 IPv4 地址的分配压力。


JavaGuidePro大约 5 分钟计算机基础计算机网络
网络攻击常见手段总结

本文整理完善自TCP/IP 常见攻击手段 - 暖蓝笔记 - 2021这篇文章。

这篇文章的内容主要是介绍 TCP/IP 常见攻击手段,尤其是 DDoS 攻击,也会补充一些其他的常见网络攻击手段。

IP 欺骗

IP 是什么?

在网络中,所有的设备都会分配一个地址。这个地址就仿佛小蓝的家地址「多少号多少室」,这个号就是分配给整个子网的,「」对应的号码即分配给子网中计算机的,这就是网络中的地址。「号」对应的号码为网络号,「」对应的号码为主机号,这个地址的整体就是 IP 地址


JavaGuidePro大约 37 分钟计算机基础计算机网络
OSI 和 TCP/IP 网络分层模型详解(基础)

OSI 七层模型

OSI 七层模型 是国际标准化组织提出一个网络分层模型,其大体结构以及每一层提供的功能如下图所示:

OSI 七层模型
OSI 七层模型

每一层都专注做一件事情,并且每一层都需要使用下一层提供的功能比如传输层需要使用网络层提供的路由和寻址功能,这样传输层才知道把数据传输到哪里去。


JavaGuidePro大约 13 分钟计算机基础计算机网络
2