一、网络基础
1.1 什么是通信协议
计算机与网络设备要相互通信,需要有一套相同的操作规则,例如怎么发起通信,使用什么语言进行通信,如何传输数据,怎么结束通信等。不同的硬件,操作系统之间的通信,都需要约定好相同的操作规则。这种规则就称之为协议(protocol)。
1.2 TCP/IP协议族
网络通信是非常复杂的交互过程,这其中需要制定的通信协议也是多种多样,从电缆的规格到IP地址的选定方法,建立通信的顺序,以及数据传输需要处理的步骤等。像这样把与互联网相关联的协议集合起来总称为TCP/IP。
1.3 TCP/IP协议的分层管理
tcp/ip协议按照层次分为四层:应用层、传输层、网络层、数据连接层。协议的分层是为了解耦,每个层次之间按照约定好的接口进行通信,即使某个协议的设计需要修改,只要接口不改变,就不会影响其他层的设计。
二、TCP/IP通信传输流
利用TCP/IP协议进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则往应用层上走。
以Http协议举例:
- 首先作为发送端的客户端(例如:浏览器)在应用层(Http协议)发出一个想看某个web网站的http请求。
- 在传输层(TCP协议)把从应用层收到的数据(HTTP请求报文)进行分割,并在各个报文上打标记号和端口号后发送到网络层。
- 在网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层。
- 接收端的服务器在链路层接收数据,仍然按照上述顺序逆向发送,一直到应用层,这样客户端的请求就到达了服务器。
示意图如下
三、 与Http相关的协议
3.1 负责传输的IP协议
IP协议指的是网际协议,它的作用是把各个数据包传送给对方。为了确保数据可以传送给对方,需要满足各类条件。其中两个重要的条件是IP地址和MAC地址(Media Access Control Address)。IP地址指明了节点被分配到的地址,MAC地址是指网卡所属的固定地址。IP地址可以和MAC地址进行配对。IP地址可变换,但是MAC地址基本上不会更改。
3.2 确保可靠性的TCP协议
TCP负责字节流数据的传输,TCP协议会把大数据块分割成以报文段为单位的数据包进行传输,TCP协议为了准确发送数据,采用三次握手策略。TCP协议发送数据后,会确认对方是否成功收到。
3.3 负责域名解析的DNS服务
DNS服务也位于应用层,它提供域名到IP地址的解析服务,它的工作过程如下