TCP/IP模型和OSI模型
这两个模型属于计算机网络的体系结构。
OSI模型是七层模型,从上到下包括:
应用层,表示层,会话层,传输层,网络层,数据链路层,物理层
TCP/IP模型是四层模型,从上到下包括:
应用层,传输层,网络层,网络接口层
OSI是一个理论上的网络通信模型,TCP/IP是实际上的网络通信模型。
OSI模型详解:
1、 应用层:通过应用进程之间的交互来完成特定的网络应用,应用层常见协议有:HTTP(TCP),FTP(TCP),SMTP(TCP),DNS(UDP)
2、 表示层:负责数据的表示,安全,压缩。确保一个系统的应用层发送的数据可以被另一个应用层读取。
3、 会话层:建立,管理,终止会话,是用户应用程序和网络之间的接口。
4、 传输层:为两台主机进程之间的通信提供数据传输服务。常见协议有TCP,UDP
5、 网络层:网络层负责将网络地址翻译成对应的物理地址,实现不同网络之间的路径选择。协议有:ICMP,IGMP,IP。
6、数据链路层:在物理层提供的比特流服务的基础上,建立相应结点间的数据链路。
7、物理层:建立、维护、断开物理连接。
TCP/IP模型详解:
1、应用层:包括了应用层,表示层,会话层。应用层交互数据单位称为报文。常见协议有HTTP,SMTP,FTP,Telent,SSH,RTP,DNS
2、传输层:就传输层。有TCP,UDP两种协议
TCP:提供面向连接的,可靠的传输协议。
UDP:提供无连接的,尽最大努力的数据传输服务,不保证可靠性,简单高效。
3、网络层:网络层负责为分组交换网上不同主机提供通信服务。在发送数据时,把传输层产生的报文封装成分组和包。
4、网络接口层:
其中,数据链路层将网络层的分组和包封装成帧。每一帧包括必要的控制信息,如同步信息,地址信息,差错控制。
其中重要功能和协议有:CSMA/CD,MAC,多路访问,以太网,差错检测。
每一层的网络协议:
数据在各层之间是怎么传输的呢?
对发送方而言,从上层到下层,层层包装,对接受方而言,从下到上,层层解封。
从输入URL到页面显示过程中发生了什么?
- 浏览器收到用户请求,先检查浏览器缓存中是否有缓存该资源,如果有,就直接返回;如果没有,进入下一步网络请求。
- 网络请求前,进行DNS解析,获取请求域名的IP地址(如果请求协议是HTTPS协议,那么还需要建立TLS连接)。DNS解析时按照本地浏览器->本地Host文件->路由器缓存->DNS服务器->根DNS服务器的顺序查询域名对应IP,直到找到为止。
- 浏览器与服务器IP建立TCP连接。建立连接后,浏览器端会构建请求行,请求头等信息,并把和该域名相关的Cookie等数据附加到请求头中,向服务器构建请求信息。
- 服务器收到请求信息,根据请求信息生成响应数据。
- 浏览器解析响应头。若响应头状态码为301,302,会重新定向到新地址;若响应数据类型是字节流类型,一般会将请求提交给下载管理器;若是HTML类型,则会进入进一步渲染流程。
- 浏览器渲染HTML文件,创建DOM树,解析CSS进行样式计算,然后将CSS和DOM合并,构建渲染树,完成页面展示。