网络(一)
本文部分内容转载整合别人的资料,特此注明
1 分层
五层协议
- 应用层 :为特定应用程序提供数据传输服务,例如 HTTP、DNS 等协议。数据单位为报文。
- 传输层 :为进程提供通用数据传输服务。运输层包括两种协议:传输控制协议 TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。TCP 主要提供完整性服务,UDP 主要提供及时性服务。
- 网络层 :为主机提供数据传输服务。而传输层协议是为主机中的进程提供数据传输服务。网络层把传输层传递下来的报文段或者用户数据报封装成分组。
- 数据链路层 :网络层针对的还是主机之间的数据传输服务,而主机之间可以有很多链路,链路层协议就是为同一链路的主机提供数据传输服务。数据链路层把网络层传下来的分组封装成帧。
- 物理层 :考虑的是怎样在传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,使数据链路层感觉不到这些差异。
OSI
其中表示层和会话层用途如下:
- 表示层 :数据压缩、加密以及数据描述,这使得应用程序不必关心在各台主机中数据内部格式不同的问题。
- 会话层 :建立及管理会话。
五层协议没有表示层和会话层,而是将这些功能留给应用程序开发者处理。
TCP/IP
它只有四层,相当于五层协议中数据链路层和物理层合并为网络接口层。
TCP/IP 体系结构不严格遵循 OSI 分层概念,应用层可能会直接使用 IP 层或者网络接口层。TCP/IP可越层交流,但OSI不能(也即TCP/IP没有充分区分服务和协议)。
在向下的过程中,需要添加下层协议所需要的首部或者尾部,而在向上的过程中不断拆开首部和尾部。
设备
七层模型只有最下三层有实体设备,上四层都是软件层面的表示了。
第一层:物理层,代表设备:网卡,网线,光纤,atm线缆等。
第二层:数据链路层,代表设备:二层交换机。 (MAC,ARP :IP地址->Mac)
第三层:网络层,代表设备:路由器。(IP、ICMP)
第四层:传输层,代表协议:(TCP/UDP)
之后的5-7层就是各种协议的表示了。这个主要是开发人员用的多一些,如http,smtp,ftp等等。
会话层(RPC)、表现层(ASCII、JPEG)、应用层(FTP、DNS、Telnet、SMTP、HTTP)
网页解析流程
从输入网址到获取页面的过程
- 第一步,查询DNS, 获取域名对应的IP地址
- 搜索浏览器的 DNS 缓存,缓存中维护一张域名与 IP 地址的对应表
- 若没有命中,则继续搜索操作系统的 DNS 缓存,即本地host文件
- 若仍然没有命中,则操作系统将域名发送至本地域名服务器,本地域名服务器查询自己的 DNS 缓存
- 本地域名解析器还没有完成解析的话,那么发起一个DNS迭代调用,本地域名解析服务器
- (.)将向根域名服务器发起解析请求。根域名服务器返回顶级域名解析服务器地址。
- (.com)顶级域名解析服务器根据要解析的域名找到域名对应的权限域名服务器
- (baidu.com)权限域名服务器返回值给本地域名服务器。
- 本地域名服务器缓存解析后结果,并返回解析结果给用户
- 第二步,浏览器获得域名对应的IP地址后,与目标服务器发起TCP三次握手
- 第三步,TCP/IP建立连接后,浏览器可以向服务器发送HTTP请求了。服务器接收到请求后,根据路径参数映射到特定的请求处理器进行处理,并将处理结果及相应的视图返回给浏览器;
- 第四步,浏览器渲染页面,若遇到对js文件、css文件及图片等静态资源的引用,则重复上述步骤并向服务器请求这些资源
- 如果是HTTPS,还会有TLS协议