TCP+IP+DNS

  1. TCP/IP协议族内容
    分层、多协议通信体系,包含四层协议系统,分别是应用层、传输层、网络层、数据链路层。
    在这里插入图片描述
    1.1 数据链路层
    实现了 网卡接口 的驱动程序,通过mac地址访问介质,处理数据在物理媒介上的传输。(交换机)
    两个常用协议: ARP协议 以及 RARP协议, 实现ip地址与机器物理地址转换(mac地址)。
    1.2 网络层
    实现数据包的选路以及转发。 通信主机一般由多个中间节点连接的,网络层负责选择中间节点,确定主机之间的通信路径。(路由器)
    常用协议:IP协议(网络寻址)以及ICMP协议(用于检测网络连接, 但不是严格网络层协议,使用了IP协议)
    1.3 传输层
    负责为主机上的应用程序提供端到端通信, 不关心中间过程,只关心通信起始端以及目的端。
    常用协议: TCP(可靠、面向连接、基于流)、UDP(不可靠、无连接、基于数据报)
    1.4 应用层
    为应用程序提供服务。
    常用协议:telnet (远程登录)、DNS(域名到ip转换) 、ODPF(Open Shortest Path First)开放最短路由优先,动态更新路由。
    程序:ping

数据链路层、网络层、传输层负责处理网络通信细节,必须稳定、高效,在内核空间实现。

  1. TCP/IP 封装

通过封装使得上层协议使用下层协议提供的服务。应用层在数据发送到物理层之前,将数据沿着协议栈按照从上往下依次传递, 每一层协议都在上层数据基础上加上自己的头部信息,这个过程就叫封装

TCP报文段、UDP数据报、IP数据报、数据链路帧。其中帧才是最终在物理网络传送的字节序列。

  1. 分用
    与封装相对应的是分用。将物理网络传输的帧沿着协议栈自底向上传递,每一层处理本层负责的头部数据,最终将处理过后的帧交给目标应用程序。
    依靠头部信息中的类型字段来实现。

  2. DNS协议
    http协议是基于tcp连接的,而tcp是通过ip地址来识别访问的,因此需要将域名转化为ip地址。
    4.1 域名结构
    与IP地址、MAC地址类似,用于唯一性地确定连接在因特网上的主机。
    xxx.yyy.zzz.com
    com为顶级域名(国家、通用等),然后从右到左分别是二级域名、三级域名、四级域名。

4.2 域名服务器
主要分为: 根域名、顶级域名、主域名、本地域名等
其中本地域名服务器可以看做是默认的域名服务器,客户端收到查询请求之后,首先会请求本地的域名服务器, 可能是手工指定的或者dhcp分配的。如果直连运行商网络,那么就是dhcp分配的运行商服务器的地址。如果中间有路由等,路由本身有dns转发器,那么实际上就是路由器本身地址。

4.3 域名解析
主要分为递归查询以及迭代查询

浏览器输入网址之后,首先会进行的就是域名解析,然后才是tcp的三次握手的等等。

解析过程如下:

  1. 查看浏览器自身dns缓存(一分钟)

  2. 如果没找到,搜索操作系统自身的dns缓存以及hosts文件

  3. 如果没找到,浏览器发起dns系统调用,发起域名解析请求,但是过程中会查询路由器缓存以及运行商缓存

  4. 如果没找到,浏览器发起dns系统调用,向本地配置的首选dns服务器(一般是运行商或者google提供的)发起域名解析请求,这个属于递归请求,dns服务器会提供给浏览器解析结果。

  5. 运营商dns服务器首先查找缓存,如果找到且没有过期,则解析成功。否则,由运行商服务器发起迭代请求, 首先查找根域的ip地址,然后发起请求。

  6. 根域返回顶级域名服务器的ip地址,然后运行商服务器向顶级域名服务器发起请求。

  7. 顶级域名服务器返回主域名服务器的ip地址,然后运行商服务器继续向主域名服务器发起请求。这个时候一般能正确返回域名对应的ip地址,然后返回给浏览器。

  8. 如果还没有解析成功,此时会查找本地的NetBIOS cache, (保存最近一段时间通讯成功的ip地址以及域名)

  9. 如果还不成功,最后进行广播查找以及读取MHOSTS文件。

OSI开放网络互连模型

七层模型
应用层 ------- 为应用数据提供服务 -------第七层
表示层 ------- 数据格式转换、加密
会话层 ------- 建立、管理维护会话
传输层 ------- 提供主机之间端到端的连接
网络层 ------- ip选择以及路由选择
数据链路层 ------- 提供介质访问以及链路管理
物理层 ------- 物理层传输比特流 --------- 第一层

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值