一、情景再现:ISP网络为学校提供了DNS服务,所以,DNS服务器驻留在ISP网络内,而不再学校网络内。DHCP服务器运行在学校网络的路由器上
小明拿了一台电脑,通过网线,接入到校园网内部。其目的是为了访问谷歌网站,即谷歌的web服务器
二、访问谷歌(百度)服务器前的准备工作——计算机对人类语言的加工
表示层:定义了数据的格式,对数据进行加密、解密、压缩、解压缩等
会话层:提供会话进程----session ID,建立、维护、断开一个会话,区分同一应用程序的多个进程
传输层:建立端到端的连接(端口号)----MSS---1500字节,提供分段
端口号范围:0-65535,(0和65535系统保留端口号)
DNS:53--TCP UDP
网络层:通过IP寻址(范围寻址)、提供路由、转发数据,MTU---1500字节----提供分片
数据链路层:MAC寻址(精确寻址)、封装成帧、差错检测、流量控制
LLC:逻辑链路控制子层:为数据的传输提供一个可靠性的保证,减少数据帧出现丢失、重复、失序
MAC:媒体接入控制子层:负责识别网络层的协议,然后对它们进行数据帧的封装、解封装、差错检测、MAC寻址
物理层:传输电信号、传输比特流,定义了一些物理参数(电压、接口、线缆标准、传输距离、传输介质、信号模式等等)
封装:在原始数据的基础上,添加一些字段信息,形成新的数据
(2)通讯过程(封装与解封装)
OSI参考模型的核心思想是分层,而分层的目的就是上层协议在其下层协议提供的服务的基础上提供增值服务。所以,OSI在设计协议的时候,层次之间还是存在依赖性的;
TCP/IP模型其本身就是先有的协议,后有的模型。TCP/IP协议簇里的协议本身都是相互独立的,每层中的协议可以根据系统的需要进行组合匹配。
(2)跨层封装的目的:提高封装和解封装的速度,加快传输效率。
TCP/IP的跨层封装一般应用在直连设备之间的通讯。一般有两种形式
正常封装,其上层是TCP或者UDP协议。TCP协议对应的协议号是6,UDP协议对应的协议号是17。但是我们这个协议号的取值范围是0 - 255(8位二进制),剩余的这些协议号都是用来标定跨层封装协议的。比如我们OSPF协议,对应的协议号是89。ICMP协议,对应协议号是1
三四层的工作需要二层完成,以太网Ⅱ帧里类型字段,可以用来区分上层协议,勉强能完成四层工作,但是三层的分片工作并无法完成。这时候我们就需要使用另外一种以太网的帧结构了,802.3帧。
1、主机需要一个IP地址才能上网(本场景中通过DHCP服务获取IP地址)
物理层+目标:FF:FF:FF:FF:FF:FF 源MAC: 00:16:D2:23:68:8A+目标IP:255.255.255.255 源IP:0.0.0.0 +目标端口:67 源端口:68+应用层+数据
路由器的转发原理:路由器收到一个数据包,依据包中的目标IP地址查表转发,如果能查到对应的路由条目,则无条件转发,反之,则丢弃
2、首先要得到 www.goole.com( www.baidu.com)的ip地址
域名解析系统----用于域名和IP地址的相互解析,采用C/S模式,是一个具有树状层次结构的、联机分布式的数据库系统;
基于TCP/UDP协议的53号端口,绝大多数的 DNS 查询来说都会使用 UDP 数据报进行传输,TCP 协议只会在区域传输
在浏览器的地址栏中输 www.goole.com( www.baidu.com)-----域名
域是因特网中一种管理范围的划分:根域、顶级域名、二级域名、三级域名等等
域名的特点:不同等级的域名之间使用点号隔开,级别最高的写在右边,低的在左边;
域名的根域用'.'表示,以点号结尾的域名被称为完全合格域名(FQND)
完全合格域名:www.sina.com.cn.
DNS服务器会返回一个已知的其他DNS服务器,由请求者自行查询
一般本地DNS服务器到根域名DNS服务器之间的查询交互采用迭代查询
这里我们回到情景里,看看小明是如何向本地DNS服务器发起查询操作的
物理层+目标MAC:路由器网关接口地址 源MAC:主机+目标IP:68.87.71.226 源IP:68.85.2.101+目标端口号:53 源端口(UDP):随机端口号+应用层+数据
3、客户端知道谷歌(百度)的ip地址后,会触发客户端与服务器建立TCP连接(TCP三次握手过程)
第一次:客户给服务器发一个包,请求建立连接,此时,这个包中SYN=1;
第二次:服务器给客户端回应一个ACK的确认包,同时服务器也表示想和对方建立连接,将此包中SYN=1;
第三次:客户端给服务器回复一个确认报文,确认收到对方也想建立连接的请求,此时包中ACK=1;
客户端发送数据包给谷歌(百度)服务器,谷歌(百度)服务器收到数据包后将数据返回给客户端的浏览器,浏览器通过渲染,最终用户看到了网站上的主页信息。
超文本传输协议,一个典型的C/S架构的协议,HTTP协议传输层是基于TCP协议来进行工作的,使用的端口号是80端口。
超文本(HyperText):是一种按照URL指示,将超文本文档从一台主机(Web服务器)传输到另一台主机(浏览器)的应用层协议,以实现超链接的功能。
超文本传输协议HTTP:包含有超链接(Link)和各种多媒体元素标记(Markup)的文本。这些超文本文件彼此链接,形成网状(Web),因此又被称为网页(Web Page)。这些链接使用URL表示。最常见的超文本格式是超文本标记语言HTML。
第一次:客户端向服务器发送连接断开请求,此时包中FIN=1;
第二次:服务器收到客户的连接断开请求,但并未同意断开连接,此时包中ACK=1;
第三次:服务端向客户端发送连接断开请求,同意断开连接,此时包中FIN=1,ACK=1;
第四次:客户端向服务器发送确认包,表示确认收到对方的连接断开请求包,此时包中ACK=1,等服务器收到确认包后,服务器会进入关闭状态,同时客户端也会进入关闭状态。