一、OSI七层模型
(1)物理层(Physical,PH)仅作为原始的比特流提交给上层——数据链路层。
(2)数据链路层(Data-link,D)数据帧传输。每一帧包括一定的数据和必要的控制信息实现的主要功能有:帧的同步、差错控制、流量控制、寻址、帧内定界、透明比特组合传输等。
(3)网络层(Network,N)网络层数据传输的单位是分组(Packet)。网络层的主要任务是为要传输的分组选择一条合适的路径。
(4)传输层(Transport,T)传输层的主要任务是通过通信子网的特性,最佳地利用网络资源,并以可靠与经济的方式为2个端系统的会话层之间建立一条连接通道,以透明地传输报文。传输层向上一层提供一个可靠的端到端的服务,使会话层不知道传输层以下的数据通信的细节。传输层只存在端系统中,传输层以上各层就不再考虑信息传输的问题了。
(5)会话层(Session,S)在会话层以及以上各层中,数据的传输都以报文为单位,会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立以及维护应用之间的通信机制。如服务器验证用户登录便是由会话层完成的。
(6)表示层(Presentation,P)这一层主要解决用户信息的语法表示问题。它将要交换的数据从适合某一用户的抽象语法,转换为适合OSI内部表示使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压缩、加密和解密等工作都由表示层负责。
(7)应用层(Application,A)这是OSI参考模型的最高层。应用层确定进程之间通信的性质以满足用户的需求,以及提供网络与用户软件之间的接口服务。
TCP /IP:数据链路层、网络层(IP协议)、传输层(包括TCP和UDP协议)和应用层
二、访问百度发生了什么,
第一步:DNS解析、因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。(根据域名得到IP地址)
第二部:建立TCP连接
已经得到一个ip地址在应用层,传输层进一步包装。利用TCP的三次握手,四次挥手,TCP包打包到网络层的ip包,ip进行封装到链路层转为数据帧结构,再传到物理层利用比特流的形式进行数据传输。
第三步:浏览器向web服务器发送http请求
HTTP超文本传输协议是基于C/S架构进行通信的,面向连接的。
(1)客户与服务器建立连接;
(2)客户向服务器提出请求;
(3)服务器接受请求,并根据请求返回相应的文件作为应答;
(4)客户与服务器关闭连接。
第四步:web服务器响应请求,并返回指定url的数据(或错误信息,或重定向的新的url地址);
第五步:浏览器下载web服务器返回的数据及解析html源文件;生成DOM树,解析css和js,渲染页面,直至显示完成;
三、TCP与UDP的区别
UDP协议
UDP协议定义了端口,同一个主机上的每个应用程序都需要指定唯一的端口号,并且规定网络中传输的数据包必须加上端口信息,当数据包到达主机以后,就可以根据端口号找到对应的应用程序了。UDP协议比较简单,实现容易,但它没有确认机制,数据包一旦发出,无法知道对方是否收到,因此可靠性较差,为了解决这个问题,提高网络可靠性,TCP协议就诞生了。
TCP协议
TCP即传输控制协议,是一种面向连接的、可靠的、基于字节流的通信协议。简单来说TCP就是有确认机制的UDP协议,每发出一个数据包都要求确认,如果有一个数据包丢失,就收不到确认,发送方就必须重发这个数据包。为了保证传输的可靠性,TCP协议在UDP基础之上建立了三次对话的确认机制,即在正式收发数据前,必须和对方建立可靠的连接。