• 服务器域名不是必备的,只是为了方便访问的一个别名地址。域名一般需要备案
  • 内网穿透:外网访问内网 外网穿透相反

计算机网络结构

  • 分为2种体系:OSI 七层模型或 TCP/IP 五层模型,tcp协议是简化为了4层(tcp/ip协议族指的是一系列基于tcp/ip的协议,如ftp,http..)
  • 5层tcp/ip即没有合并物理层和数据链路层
    • 现在主要是以tcp/ip协议的4层体系为主,因为osi7层过于细分,实施复杂,缺乏实际意义
  • 这里的4层的链路层应该叫网络接口层貌似

    OIS七层功能

    计算机网络 - 图2

    TCP/IP四层结构详解

    应用层

  • 应用层协议定义了网络通信规则,对于不同的网络应用需要不同的应用层协议。

image.png

HTTP/HTTPS

● 默认端口:http80``https443

  • HTTP (超文本传输协议)协议优点,扩展性强、速度快、跨平台支持性好
  • HTTP 协议是”无状态”的协议,它无法记录客户端用户的状态,一般我们都是通过 Session 来记录客户端用户的状态。

● HTTP 协议运行在 TCP 之上,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。
HTTPS 是运行在 SSL/TLS 之上的 HTTP 协议,SSL/TLS 运行在 TCP 之上。所有传输的内容都经过加密。如http的传输内容能直接在浏览器控制台里看到,而https的请求头,cookies等可能会加密传输
○ 另外https是将域名与ssl证书关联起来了,必须走域名访问https的安全检测才气作用。浏览器识别不到ssl证书就会警告不安全。(如走http或者走ip访问)

HTTP 1.0 vs HTTP 1.1

  • HTTP/1.0 默认使用短连接(每进行一次 HTTP 操作,就建立一次连接,任务结束就中断连接)。HTTP/1.1 优化为默认长连接模式 (实现长连接需要客户端和服务端都支持长连接)
    • 1.0可以添加请求头开启长连接Connection: Keep-alive
    • 1.1中,如果不希望使用长连接选项,也可以在请求头中加入Connection: close
  • 1.1在请求头加入了Host字段(即域名)
  • 1.1增加了很多状态码
  • 1.1允许请求只请求资源的某个部分,即返回码是 206(Partial Content),如断点续传功能
  • 1.1的缓存处理更加细

    ftp

  • FTP 是基于客户—服务器(C/S)模型而设计的,在客户端与 FTP 服务器之间建立两个连接(一条传控制命令,一条传数据,这种将命令和数据分开传送的思想大大提高了 FTP 的效率。)

    Telnet

  • 远程登陆协议。Telnet 协议的最大缺点之一是所有数据(包括用户名和密码)均以明文形式发送,因此被更安全的ssh取代

    SSH

  • 安全网络传输协议。专为远程登录会话和其他网络服务提供安全性的协议。基于tcp。SSH 协议会对传输的数据进行加密保证数据安全性

    tcp三次握手

    计算机网络 - 图4
    ● 客户端–发送带有 SYN 标志的数据包–一次握手–服务端

    • 第一次握手,Server 确认了对方发送正常,自己接收正常

● 服务端–发送带有 SYN&ACK 标志的数据包–二次握手–客户端

  • 第二次:Client 确认了:自己发送、接收正常,对方发送、接收正常;Server 确认了:对方发送正常,自己接收正常
  • 回传 SYN 则是为了建立并确认从服务端到客户端的通信。

● 客户端–发送带有带有 ACK 标志的数据包–三次握手–服务端

  • 第三次握手:Client 确认了:自己发送、接收正常,对方发送、接收正常;Server 确认了:自己发送、接收正常,对方发送、接收正常

    tcp四次挥手

  • 因为tcp断开要保证尽可能数据不丢失,因此需要比连接更复杂的步骤

计算机网络 - 图5
● 客户端-发送一个 FIN,用来关闭客户端到服务器的数据传送
● 服务器-收到这个 FIN,它发回一 个 ACK,确认序号为收到的序号加 1 。和 SYN 一样,一个 FIN 将占用一个序号
● 服务器-关闭与客户端的连接,发送一个 FIN 给客户端
● 客户端-发回 ACK 报文确认,并将确认序号设置为收到序号加 1

● A 和 B 打电话,通话即将结束后,A 说“我没啥要说的了”,B 回答“我知道了”,但是 B 可能还会有要说的话,A 不能要求 B 跟着自己的节奏结束通话,于是 B 可能又巴拉巴拉说了一通,最后 B 说“我说完了”,A 回答“知道了”,这样通话才算结束。

传输层

  • 传输层主要任务就是负责向两台终端设备进程之间的通信提供通用的数据传输服务
  • 主要使用以下两种协议:
  1. 传输控制协议 TCP—提供面向连接的,可靠的数据传输服务。传输的是字节流
    1. 传输更慢,耗费资源更多
    2. 一般用于即时通信),比如: QQ 语音、 QQ 视频 、直播等等
  2. 用户数据协议 UDP—提供无连接(不需要像tcp那样建立连接)的,尽最大努力的数据传输服务(不保证数据传输的可靠性)。传输的是数据报文段
    1. 传输更快,耗费资源更少
    2. TCP 一般用于文件传输、发送和接收邮件、远程登录

      网络层

  • 网络层负责为分组交换网上的不同主机提供通信服务。网络层又名网际层或者ip层。到这层开始就算是底层了,我们一般就深入到传输层

    网络接口层

  • 网络接口层即OSI的数据链路层和物理层的合体。作用即数据链路层和物理层 的作用

    浏览器请求全过程

  1. DNS 解析
  2. TCP 连接
  3. 发送 HTTP 请求
  4. 服务器处理请求并返回 HTTP 报文
  5. 浏览器解析渲染页面
  6. 连接结束
  7. 计算机网络 - 图6

    IP地址

  • 一台联入互联网的计算机肯定有一个IP地址,但也可能有多个IP地址。
    • 有多个接入网络的网卡就会有多少个ip(不包括本机地址)
  • IP地址分为IPv4和IPv6两种。
    • IPv4采用32位地址,类似101.202.99.12,IPv4地址总共有232个(大约42亿)
    • 而IPv6采用128位地址,类似2001:0DA8:100A:0000:0000:1020:F2F3:1428,而IPv6地址则总共有2128个(大约340万亿亿亿亿)
    • IPv4的地址目前已耗尽,而IPv6的地址是根本用不完的。
  • IP地址又分为公网IP地址和内网IP地址。公网IP地址可以直接被访问,内网IP地址只能在内网访问。内网IP地址类似于:192.168.x.x``10.x.x.x
  • 有一个特殊的IP地址,称之为本机地址,它总是127.0.0.1

  • 如果两台计算机位于同一个网络,那么他们之间可以直接通信,因为他们的IP地址前段是相同的,也就是网络号是相同的。网络号=IP & 子网掩码

    域名

  • 因为直接记忆IP地址非常困难,所以我们通常使用域名访问某个特定的服务。域名解析服务器DNS负责把域名翻译成对应的IP,客户端再根据IP地址访问服务器。

  • nslookup 域名可以查看域名对应的IP地址

    端口

  • 端口号为0-65535

    • 小于1024的端口属于特权端口,需要管理员权限
    • 大于1024的端口可以由任意用户的应用程序打开。