一、情景再现:ISP网络为学校提供了DNS服务,所以,DNS服务器驻留在ISP网络内,而不再学校网络内。DHCP服务器运行在学校网络的路由器上
小明拿了一台电脑,通过网线,接入到校园网内部。其目的是为了访问谷歌网站,即谷歌的web服务器
二、访问谷歌(百度)服务器前的准备工作——计算机对人类语言的加工
应用层:将人类语言转换成编码(ascII、utf-8、unicode)
会话层:对通信双方间的会话,进行建立、维护、拆除---session id----区分同一应用程序间的不同进程
DHCP:动态主机分配协议---67(服务器端)、68(客户端)--UDP
网络层:根据IP寻址(范围)、提供路由、转发数据,路由器、三层交换机、防火墙----数据分片
数据链路层:根据MAC寻址(精确),封装成帧、差错检测、流量控制
物理层:传输电信号、传输比特流,定义一些物理参数标准(电压、接口、线缆标准、信号传输模式等)
(2)跨层封装的目的 --- 提高封装和解封装的速度,加快传输效率。
TCP/IP的跨层封装一般应用在直连设备之间的通讯。一般有两种形式
跨四层封装 --- 应用层封装后的数据直接封装网络层。(传输层的功能将由网络层代替----协议号代替端口号,将数据填充到IP报头,分片代替分段)
正常封装,其上层是TCP或者UDP协议。TCP协议对应的协议号是6,UDP协议对应的协议号是17。但是我们这个协议号的取值范围是0 - 255(8位二进制),剩余的这些协议号都是用来标定跨层封装协议的。比如我们OSPF协议,对应的协议号是89。ICMP协议,对应协议号是1
三四层的工作需要二层完成,以太网Ⅱ帧里类型字段,可以用来区分上层协议,勉强能完成四层工作,但是三层的分片工作并无法完成。这时候我们就需要使用另外一种以太网的帧结构了,802.3帧。
LLC:逻辑链路控制子层,负责分片和提供帧类型号,为传输提供一个可靠的保证,减少出现帧丢失、失序、重复
MAC:媒体接入控制子层,负责正常的MAC地址,负责识别网络层协议,差错检测
1、主机需要一个IP地址才能上网(本场景中通过DHCP服务获取IP地址)
租期到达50%,如果客户端在线,会向服务器发起租约更新的请求。
租期到达87.5%,如果客户端在线,会向服务器发起租约更新的请求。
如果客户端不再使用服务器分配的IP地址,也可以主动向DHCP服务器发送DHCP RELEASE(DHCP释放报文)报文,释放该IP地址。
DHCP NAK:DHCP响应拒绝报文,这是服务器端对客户端的DHCP request报文的响应拒绝,比如:租期到期,客户端不在线。服务器端出现故障,导致其没法分配IP地址,则会给客户端发送一个DHCP NAK报文。
DHCP decline:DHCP拒绝报文,当客户端发现服务器端分配给自己的IP地址发生冲突,会给服务器端发送一个DHCP decline报文
DHCP inform:DHCP通告报文,客户端已经获取到了IP地址,此时客户端会向服务发送一个DHCP inform报文,向服务器请求IP地址相应的掩码、网关、DNS服务器地址等信息
物理层+目标MAC:FF-FF-FF-FF-FF-FF 源MAC:00:16:D3:23:68:8A+目标IP:255.255.255.255 源IP:0.0.0.0+目标端口号:67 源端口号:68+应用层+数据
物理层+目标MAC:00:16:D3:23:68:8A 源MAC:00:22:6B:45:1F:1B+目标IP:68.85.2.101(临时借用) 源IP:68.85.2.1+目标端口号:68 源端口号:67+应用层+数据
物理层+目标MAC:FF-FF-FF-FF-FF-FF 源MAC:00:16:D3:23:68:8A+目标IP:68.85.2.1 源IP:68.85.2.101(临时借用)+目标端口号:67 源端口号:68+应用层+数据
物理层+目标MAC:00:16:D3:23:68:8A 源MAC:00:22:6B:45:1F:1B+目标IP:68.85.2.101(临时借用) 源IP:68.85.2.1+目标端口号:6 8源端口号:67+应用层+数据
发送端:目标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+数据
主机1寻找主机2的MAC地址时,会将此数据广播发送给网络所有的主机;此时发送的包是ARP request;
所有主机收到后会做个对比,对比一下数据包中的目的IP地址,如果数据中的IP地址和自身主机的IP地址是一致的,则认为这个主机1是找自己的,会给主机1做个回复,此时这个包是ARP reply ,告知主机1自己的MAC地址;同时主机2会学习主机1的IP和MAC,并将其写入ARP表中;
主机1收到后,会学习主机2的IP和MAC地址,并将其写入自己的ARP表中。
路由器收到数据包后,查找路由表,根据路由表中的目标IP去转发至相应的网络,若路由表中没有此路由条目,则丢弃
2、首先要得到 www.goole.com.( www.baidu.com.)的ip地址----DNS
域名解析系统----用于域名和IP地址的相互解析,采用C/S模式,是一个具有树状层次结构的、联机分布式的数据库系统;
基于TCP/UDP协议的53号端口,绝大多数的 DNS 查询来说都会使用 UDP 数据报进行传输,TCP 协议只会在区域传输(它的作用就是在多个命名服务器之间快速迁移记录,由于查询返回的响应比较大,所以会使用 TCP 协议来传输数据包)的场景中使用
在浏览器的地址栏中输 www.goole.com( www.baidu.com)-----域名
域是因特网中一种管理范围的划分:顶级域名、二级域名、三级域名等等
域名的特点:不同等级的域名之间使用点号隔开,级别最高的写在左边,低的在右边;
域名的根域用'.'表示,以点号结尾的域名被称为完全合格域名(FQND)
完全合格域名:www.sina.com.cn.
DNS服务器会返回一个已知的其他DNS服务器,由请求者自行查询
一般本地DNS服务器到根域名DNS服务器之间的查询交互采用迭代查询
这里我们回到情景里,看看小明是如何向本地DNS服务器发起查询操作的
3、客户端知道谷歌(百度)的ip地址后,会触发客户端与服务器建立TCP连接(TCP三次握手过程)
第二次:再由服务器回话个客户,让客户知道自己已经收到了它的连接建立的请求,同时也告诉客户端我也同意建立连接
第三次:客户端在此回话表示收到服务器同意建立连接的报文,此时双方方可以稳定建立连接,三次握手完成时就可以进行数据传输。
客户端发送数据包给谷歌(百度)服务器,谷歌(百度)服务器收到数据包后将数据返回给客户端的浏览器,浏览器通过渲染,最终用户看到了网站上的主页信息。
超文本传输协议,一个典型的C/S架构的协议,HTTP协议传输层是基于TCP协议来进行工作的,使用的端口号是80端口。
- (HyperText):是一种按照URL指示,将超文本文档从一台主机(Web服务器)传输到另一台主机(浏览器)的应用层协议,以实现超链接的功能。
- HTTP:包含有超链接(Link)和各种多媒体元素标记(Markup)的文本。这些超文本文件彼此链接,形成网状(Web),因此又被称为网页(Web Page)。这些链接使用URL表示。最常见的超文本格式是超文本标记语言HTML。
第二次:当服务器收到后,给客户端回复,表明收到断开连接的请求;