上面的文件里有思维导图哦~
一、情景再现:ISP网络为学校提供了DNS服务,所以,DNS服务器驻留在ISP网络内,而不再学校网络内。DHCP服务器运行在学校网络的路由器上。
小明拿了一台电脑,通过网线,接入到校园网内部。其目的是为了访问谷歌网站,即谷歌的web服务器
二、访问谷歌(百度)服务器前的准备工作----计算机对人类语言的加工:
1、计算机网络发展第一阶段人机交互的加工过程:
应用层:将人类语言转换为编码(ascII、utf-8、unicode);
表示层:将编码转换成二进制(0、1);
介质访问控制层:将二进制转换成电信号(高电平1、低电平0);
物理层:传输电信号;
2、OSI参考模型
(1)每层作用:
应用层:为应用程序提供网络服务;
表示层:定义数据格式,对数据进行加密、解密、压缩、解压缩等;
会话层:对通过双方间的会话,进行建立、维护、拆除----session id----区分同一程序间的不同进程;
传输层:建立端到端的链接,依靠端口号;
端口号:0-65535,其中0和605535是系统保留的。
知名端口号:知名的服务或者协议,1-1023
HTTP:超文本传输协议----80----TCP
HTTPS:安全超文本传输协议----443----TCP
FTP:文件传输协议----20、21----TCP
TFTP:简单文件传输协议----20、21----UDP
DHCP:动态主机分配协议----67(服务器端)、68(客户端)----UDP
DNS:域名解析协议----53----TCP/UDP
telnet:远程登录协议----23----TCP
SMTP:简单邮件传输协议(发邮件)----25----TCP
POP3:邮局协议(收邮件)----110----TCP
动态端口号:客户端随机使用,1024-65534
网络层:根据IP寻址(范围寻址)、提供路由、转发数据,路由器、三层交换机、防火墙
数据链路层:根据MAC寻址(精确寻址)、封装成帧、差错检测、流量控制
物理层:传输电信号、传输比特流、定义一些物理参数标准(电压、接口、线缆标准、信号输出模式等)
信号模式:
单工模式:设备只有一个操作,收或者发消息,收音机
半双工模式:收和发两个功能,不能同时使用
全双工模式:收和发两个功能,能同时使用
(2)通信过程(封装与解封装)
3、TCP/IP参考模型
(1)两种模型及其区别
(2)通讯过程(封装与解封装)
4、TCP/IP的跨层封装
(1)两种模型之间的不同点:
TCP/IP支持跨层封装,而OSI不行;
OSI参考模型的核心思想是分层,而分层的目的就是上层协议在其下层协议提供的服务的基础上提供增值服务。所以,OSI在设计协议的时候,层次之间还是存在依赖性的;
TCP/IP模型其本身就是先有的协议,后有的模型。TCP/IP协议簇里的协议本身都是相互独立的,每层中的协议可以根据系统的需要进行组合匹配。
(2)跨层封装的目的 --- 提高封装和解封装的速度,加快传输效率。
TCP/IP的跨层封装一般应用在直连设备之间的通讯。一般有两种形式
跨四层封装 --- 应用层封装后的数据直接封装网络层。(传输层的功能将由网络层代替----协议号代替端口号,将数据填充到IP报头,分片代替分段)
特点:一般用在直连路由设备之间
典型代表:OSPF协议
正常封装,其上层是TCP或者UDP协议。TCP协议对应的协议号是6,UDP协议对应的协议号是17。但是我们这个协议号的取值范围是0 - 255(8位二进制),剩余的这些协议号都是用来标定跨层封装协议的。比如我们OSPF协议,对应的协议号是89。
ICMP协议,对应协议号是1
跨三四层封装----应用层封装后的数据直接封装二层。
特点:应用在直连交换设备之间
典型代表: STP协议
三四层的工作需要二层完成,以太网工帧里类型字段,可以用来区分上层协议,勉强能完成四层工作,但是三层的分片工作并无法完成。这时候我们就需要使用另外一种以太网的帧结构了,802.3帧。
LLC:负责分片和提供帧类型号。逻辑链路控制层,为数据传输提供一个可靠的保障,减少出现帧丢失、失序、重复
MAC:负责正常的MAC地址和前导。媒体接入控制子层
抓取STP数据包
三、访问一个谷歌(百度)服务器的流程?
1、主机需要一个IP地址才能上网(本场景中通过DHCP服务获取IP地址)
(1)DHCP协议回顾:
在华三中,广播包
DHCP租期更新:(DHCP request)
租期到达50%,如果客户端在线,会向服务器发起租约更新的请求。
租期到达87.5%,如果客户端在线,会向服务器发起租约更新的请求。
DHCP地址释放(DHCP release):
租约到期,服务器端无响应,客户端会自动停止使用该IP地址;
如果客户端不再使用服务器分配的IP地址,也可以主动向DHCP服务器发送DHCP RELEASE(DHCP释放报文)报文,释放该IP地址。
DHCP的8个报文:
DHCP discover:
DHCP offer:
DHCP request:
DHCP Ack:
DHCP NAK:DHCP响应拒绝报文,这是服务器端对客户端的DHCP request报文的响应拒绝,比如:租期到期,客户端不在线。服务器端出现故障,导致其没法分配IP地址,则会给客户端发送一个DHCP NAK报文。
DHCP decline:DHCP拒绝报文,当客户端发现服务器端分配给自己的IP地址发生冲突,会给服务器端发送一个DHCP decline报文
DHCP release:
DHCP inform:DHCP通告报文,客户端已经获取到了IP地址,此时客户端会向服务发送一个DHCP inform报文,向服务器请求IP地址相应的掩码、网关、DNS服务器地址等信息
(2)DHCP的第一个报文通过网线来到了----交换机
DHCP discover:
物理层+目标MAC:FF:FF:FF:FF:FF:FF :源MAC:00:16:D3:23:68:8A+目标IP:255.255.255.255 源IP:0.0.0.0.0 +源端口号:68 目标端口号:67+应用层+数据
DHCP offer:
物理层+目标MAC:00:16:D3:23:68:8A :源MAC:00:22:6B:45:1F:1B+目标IP:68.85.2.101 (临时借用地址) 源IP:68.85.2.1 +源端口号:67 目标端口号:68+应用层+数据
DHCP request:
物理层+目标MAC:FF:FF:FF:FF:FF:FF :源MAC:00:16:D3:23:68:8A+目标IP:68.85.2.1 源IP:68.85.2.101 (临时借用地址)+源端口号:68 目标端口号:67+应用层+数据
DHCP Ack:
物理层+目标MAC:00:16:D3:23:68:8A : 源MAC:00:22:6B:45:1F:1B+目标IP:68.85.2.101 (临时借用地址) 源IP:68.85.2.1+源端口号:67 目标端口号:68+应用层+数据
交换机工作原理:
交换机收到此广播包后,执行泛洪操作(广播)
遇到广播帧 --- 即目标MAC地址为广播地址(全F)的数据帧;
遇到组播帧 --- 即目标MAC地址为组播地址的数据帧;
遇到未知的单播帧 --- 即在本地MAC地址表中没有记录的,目标地址为单播地址的数据帧;
(3)交换机泛洪后,数据将顺着网线,来到网关----路由器
路由器工作原理:路由器收到数据包后,查找路由表,根据路由表中的目标IP去转发至相应的网络,若路由表中没有此路由条目,则丢弃。
发送端:目标MAC:C源MAC:A+目标IP:10.2.0.1源IP:10.1.0.1+数据
接收端:目标MAC:B源MAC:D+目标IP:10.2.0.1源IP:10.1.0.1+数据
正向ARP:地址解析协议,根据IP解析MAC
反向ARP:根据MAC解析IP
免费ARP:自我介绍、检测IP地址冲突
ARP工作原理:
组网完成时,arp表是空的;
主机1寻找主机2的MAC地址时,会将此数据广播发送给网络所有的主机;此时发送的包是ARP request;
所有主机收到后会做个对比,对比一下数据包中的目的IP地址, 如果数据中的IP地址和自身主机的IP地址是一 致的, 则认为这个主机1是找自己的,会给主机1做个回复,此时这个包是ARP reply ,告知主机1自己的MAC地址;同时主机2会学习主机1的IP和MAC, 并将其写入ARP表中;
总结:广播请求,单播回复。
2、首先要得到www. goole. com(www. baidu. com)的ip地址
114.114.114.114----中国广电域名解析地址
8.8.8.8----谷歌域名解释地址
(1)DNS协议简介:
域名解析协议----用于域名和IP地址的相互解析,采用C/S模式,是一个具有树状层次结构的、联机分布式的数据库系统;
基于TCP/UDP协议的53号端口,绝大多数的 DNS 查询来说都会使用 UDP 数据报进行传输,TCP 协议只会在区域传输(它的作用就是在多个命名服务器之间快速迁移记录,由于查询返回的响应比较大,所以会使用 TCP 协议来传输数据包)的场景中使用
在浏览器的地址栏中输入www.goole.com(www.baidu.com)----域名
URL:统一资源定位符。
结构:协议+网站的域名信息+WEB服务器文件所在路径。
(2)DNS产生背景:
通过IP地址访问目标主机,不便于记忆;
通过容易记忆的域名来标识主机位置;
(3)域名的属性层次化结构:
域是因特网中一种管理范围的划分:顶级域名、二级域名、三级域名等等
域名结构:顶级域名、二级域名、三级域名等等
域名的特点:不同等级的域名之间使用点号隔开,级别最高的写在左边,低的在右边;
每一级域名都由字母和数字组成,不区分大小写;
域名的根域用'.'表示,以点号结尾的域名被称为完全合格域名(FQND)
域名结构树:
根域
顶级域:主机所在的国际/区域,注册人的性质
二级域:注册人自行创建的名称
主机名:区域内部的主机名称
完全合格域名:www.sina.com.cn.
(4)域名解析原理
域名解析工作通过调用服务器上的解析器软件完成的;
DNS域名解析按照域名空间的分层树状结构自顶至下进行;
DNS域名解析的完整过程:
com.cn
com
(5)DNS域名解析的两种工作模式
递归查询:UDP
客户端到本地DNS服务器之间的查询交互采用递归查询
DNS服务器一般会返回一个确切的查询结果
迭代查询:TCP
DNS服务器会返回一个已知的其他DNS服务器,由请求者自行查询
一般本地DNS服务器到根域名DNS服务器之间的查询交互采用迭代查询
这里我们回到情景里,看看小明是如何向本地DNS服务器发起查询操作的
3、客户端知道谷歌(百度)的ip地址后,会触发客户端与服务器建立TCP连接(TCP三次握手过程)
总结:
第一次:由客户端发出连接请求到服务器
第二次:再由服务器回话个客户,让客户知道自己已经收到了它的连接建立的请求,同时也告诉客户端我也同意建立连接
第三次:客户端在此回话表示收到服务器同意建立连接的报文,此时双方方可以稳定建立连接,三次握手完成时就可以进行数据传输。(第三次握手时就已经进行了数据传输)
4、建立连接后,客户端使用http协议发送数据包给服务器。
客户端发送数据包给谷歌(百度)服务器,谷歌(百度)服务器收到数据包后将数据返回给客户端的浏览器,浏览器通过渲染,最终用户看到了网站上的主页信息。
HTTP协议简介:
超文本传输协议,一个典型的C/S架构的协议,HTTP协议传输层是基于TCP协议来进行工作的,使用的端口号是80端口。
超文本(HyperText):是一种按照URL指示,将超文本文档从一台主机(Web服务器)传输到另一台主机(浏览器)的应用层协议,以实现超链接的功能。
超文本传输协议HTTP:包含有超链接(Link)和各种多媒体元素标记(Markup)的文本。这些超文本文件彼此链接,形成网状(Web),因此又被称为网页(Web Page)。这些链接使用URL表示。最常见的超文本格式是超文本标记语言HTML。
5、当所有数据都接受完毕后,取消连接(TCP的四次挥手)
通过四次挥手取消连接,我们就完成了访问百度服务器的全过程。
总结:
第一次:客户端给服务器发出连接断开请求;
第二次:当服务器收到后,给客户端回复,表明收到断开连接的请求;
第三次:再次由服务器给客户端发送关闭连接的请求;
第四次:客户端收到后,再次给服务器发送同意的信息时,不会立马关闭连接,等服务器关闭连接后,户端立马关闭连接。