Skip to main content

01 网络协议概览

协议三要素

计算机语言具备的三要素:

  • 语法,内容要符合一定的规则和格式(括号要成对,结束要使用分号等)。
  • 语义,内容要代表某种意义(数字减去数字是有意义的,数字减去文本一般没有意义)。
  • 顺序,先干啥,后干啥(可以先加上某个数值,然后再减去某个数值)。

只有通过网络协议,才能使多台机器互相协作、共同完成一件事。

HTTP 协议

HTTP/1.1 200 OK
Date: Tue, 27 Mar 2018 16:50:26 GMT
Content-Type: text/html;charset=UTF-8
Content-Language: zh-CN

<!DOCTYPE html>
<html>
<head>
<base href="https://pages.kaola.com/" />
<meta charset="utf-8"/> <title>周年主会场</title>

语法,只有按照这个格式,浏览器才认识(状态,头部,内容)。

语义,要按照约定来。(状态 200:网页成功返回,404:网页返回失败)。

顺序,浏览器网页上点击后,发送一个 HTTP 请求,然后才有对应的 HTTP 返回。

常用的网络协议

浏览器里面输入一个 URL,通过地址簿协议 DNS 或 HTTPDNS 去查找目标的 IP 地址。然后浏览器开始通过 HTTP 或 HTTPS 打包请求。

经过 DNS、HTTP、HTTPS 这些应用层封装后,浏览器将应用层的包交给下一层传输层 TCP 或 UDP 去完成,通过 socket 编程实现。

TCP 协议有两个端口,一个是浏览器监听的端口,一个是电商的服务器监听的端口。操作系统通过端口来判断,它得到的包应该给哪个进程。

传输层封装完毕后将包交给操作系统的网络层 IP 协议。

操作系统启动时会被 DHCP 协议配置 IP 地址,以及默认的网关的 IP 地址 192.168.1.1。

操作系统判断目标 IP 地址是否为同网段。不在同一网段时通过 ARP 协议找到网关的本地 MAC 地址。

路由协议 OSPF 和 BGP

网络协议