TCP/IP 协议族
通常使用的网络是在 TCP/IP 协议族的基础上运行的,TCP/IP 是与互联网相关联的协议的总称。

协议中存在各式各样的内容。从电缆的规格到IP地址的选定方法、寻找异地用户的方法、双方建立通信的顺序,以及Web页面显示需要处理的步骤,等等。
TCP/IP 分层管理
TCP/IP协议族按层次分别分为以下4层:应用层、传输层、网络层和数据链路层。
应用层
应用层决定了向用户提供应用服务时通信的活动,HTTP协议也处于该层。
传输层
传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输,在传输层有两个性质不同的协议:TCP 和 UDP。
网络层
网络层用来处理在网络上流动的数据包,该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。
网络层
用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC,及光纤等物理可见部分。硬件上的范畴均在链路层的作用范围之内。
TCP/IP通信传输流

利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则往应用层往上走。
比如发送端的客户端在应用层(HTTP协议)发出一个HTTP请求,接着为了传输方便,在传输层(TCP协议)将从应用层处收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。在网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层。发往网络的通信请求完成。
接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,完成接收由客户端发送过来的HTTP请求。
发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层时会把对应的首部消去。
负责传输的IP协议
IP协议的作用是把各种数据包传送给对方。而要保证确实传送到对方那里,则需要满足各类条件。其中两个重要的条件是IP地址和MAC地址
IP地址指明了节点被分配到的地址,MAC地址是指网卡所属的固定地址。IP地址可以和MAC地址进行配对。IP地址可变换,但MAC地址基本上不会更改。
- 使用ARP协议凭借MAC地址进行通信
IP间的通信依赖MAC地址。在网络上,通信的双方在同一局域网(LAN)内的情况是很少的,通常是经过多台计算机和网络设备中转才能连接到对方。而在进行中转时,会利用下一站中转设备的MAC地址来搜索下一个中转目标。这时,会采用ARP协议,ARP是一种用以解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址。
确保传输可靠性的TCP协议
TCP 位于传输层,主要职责是将从应用层获取的大块数据分割成多个 HTTP 报文段,然后进行数据传输,那么如何保证数据传输可靠,确认是否成功送达?
- TCP 协议三次握手
用 TCP 协议把数据包送出去后,TCP 不会对传送后的情况置之不理,它一定会向对方确认是否成功送达。握手过程中使用了 TCP 的标志——SYN 和 ACK。发送端首先发送一个带 SYN 标志的数据包给对方。接收端收到后,回传一个带有 SYN/ACK 标志的数据包以示传达确认信息。最后,发送端再回传一个带 ACK 标志的数据包,代表 “握手” 结束。
若在握手过程中某个阶段莫名中断,TCP 协议会再次以相同的顺序发送相同的数据包。
DNS:域名解析
计算机可以访问一个 IP 地址(192.xxx.xxx),同样也可以访问一个域名(xxx.com/www.xxx.com,带www的为二级域名,不带的为一级域名),由于 IP 地址不方便记忆,通常使用域名进行访问。但是计算机要无法直接理解域名,所以需要对域名进行解析,翻译成对应的 IP 地址;
DNS协议提供通过域名查找IP地址,或逆向从IP地址反查域名的服务。
总结
用户如果想要访问一个 Web 页面
- 发送方:
- 发送域名到 DNS 服务,DNS 对域名进行解析为对应的 IP 地址,给 IP 地址发送请求;
- HTTP 协议生成针对目标服务器的请求报文,将数据交给 TCP;
- TCP 协议为了方便通讯传输,将 HTTP 报文分割为多个报文段,每个报文段通过三次握手(对报文段进行标志)保证正确传输给目标;
- IP 协议通过搜索对方地址,通过路由进行中转和传送;
- 接收方:
- 链路层接收到数据,按序往上层传送;
- IP 协议,经过中转传输接收到对方发送的数据;
- TCP 协议,和对方进行三次握手,接收对方发送来的报文段,并按照原来的顺序重组为完整的报文;
- HTTP 协议,接收到请求的内容,处理请求;
请求的结果同样利用 TCP/IP 协议对用户进行回传
*文章主要图文来源:《图解 HTTP》-上野宣
网友评论