网络与IP

191 阅读3分钟

HTTP 协议的底层其实是由 TCP 协议和 IP 协议(简称 TCP/IP)构建的。

TCP 传输控制协议(Transmission Control Protocol)

  1. TCP与UDP的区别

答:TCP 可靠、面向连接、相对 UDP 较慢;UDP 不可靠,不面向连接、相对 TCP 较快。

  1. TCP的三次握手指的是什么?

答:

  1. 客户端:我要连接你了,可以吗
  2. 服务端:我准备好了,你连接我吧
  3. 客户端:那我开始连接了哦

IP 网络协议(英语:Internet Protocol)

只要你在互联网中,那么你就会有一个 IP。通俗上理解,IP 分为「内网 IP」 和「外网 IP」,以下图为例:

  • 电信提供DNS服务,路由器连接电信服务器,这时候就会有个外网IP(14.17.32.211),此IP不是固定不变的。能不能固定不变,能,多花钱租个就行了,不划算。
  • 内网IP指的就是路由器会创建个内网,内网中的设备使用内网IP(192.168.1.1)
  • 也就是说内网和外网就像两个隔绝的空间,无法互通,唯一的联通点就是路由器(因为路由器既有外网 IP 也有内网 IP),所以路由器有时候也被叫做「网关」,这个「关」是「一夫当关,万夫莫开」的「关」。如果路由器到电信的连接中断了,那么内网中所有的设备也就无法上网了。(这很好理解,相当于唯一一条出去的路断了)
  • 除了内网 IP 和外网 IP,还有两个特别特殊的 IP,就是本地 IP:127.0.0.1。本地 IP 永远表示设备自己。不信你可以 ping 127.0.0.1 一下,会发现只需要 0.01 ms 就得到了响应(你 ping qq.com 需要几十毫秒才得到响应)
  • 默认情况下,hosts 文件里会有一行127.0.0.1 localhost,意思就是 localhost 指向 127.0.0.1,所以 localhost 也表示设备自己。不信你 ping localhost 试试,会发现实际上是在 ping 127.0.0.1
  • 还有一个特别特殊的 IP:0.0.0.0,它不表示任何设备。这个 IP 不同的地方含义不同

端口

你想要访问一个设备(前提是你使用的是 TCP 或 UDP 协议。还记得吗,HTTP 就使用了 TCP),只指定 IP 是不够的,还必须指定端口(Port)。

端口其实就是一个编号,并不是一种硬件。

一个服务器(硬件)不一定只提供一种服务,比如一个服务器既提供 HTTP 服务,又提供 FTP 服务,还提供 SMTP 服务(邮件服务),那么只用一个 IP 是无法告诉服务器你想要使用哪种服务。

所以这里有一个重要的原则:一个端口对应一个服务。

比如:

  1. 要提供 HTTP 服务你最好使用 80 端口(能不能使用别的端口?可以,不过不建议你违反约定)
  2. 要提供 HTTPS 服务你最好使用 443 端口(能不能使用别的端口?可以,不过不建议你违反约定)
  3. 要提供 FTP 服务你最好使用 21 端口(能不能使用别的端口?可以,不过不建议你违反约定)

总结

使用 HTTP 协议访问另一个 IP 时,必须同时提供 IP 和端口号,缺一不可。