网络协议栈介绍

一、各个协议层上有什么协议

网络协议

二、你在浏览器输入一个url,会经过哪些网络协议

  • 首先使用协议DNS去查找域名对应的ip地址
  • 知道了目标地址,浏览器就开始打包它的请求,使用https协议,经过应用层封装后,将包交给下一层
  • 下一层是传输层,这里有两种协议,一种是无连接的协议udp,一种是面向连接的协议tcp
  • 假设使用tcp协议,这里会有两个端口,一个是浏览器监听端口,一个是服务器监听的端口,这里端口的作用是用来让操作系统判断,它得到的包该给哪个进程
  • 传输层封装完毕后,浏览器将包交给操作系统的网络层。
  • 网络层的协议是ip协议,在ip协议里面会有源ip地址和目标ip地址,分别表示浏览器所在机器的ip地址和服务器的ip地址
  • 如果服务器和浏览器不在同一个局域网,则包还要经过网关
  • 通过arp协议知道网关的mac地址,将浏览器所在机器的mac地址和网关的mac地址填入链路层的mac头中,然后通过网卡发出去,到达网关。
  • 网关收到包后,由于往往网关是一个路由器,所以它会有一个路由表的东西来告诉到某个目的ip地址该怎么走。
  • 找到目标ip后,检查mac地址,取下mac头,发送给操作系统的网络层,
  • 检查ip地址,取下ip头,然后交给传输层
  • 然后用过传输层的端口号,找到服务器中监听这个端口号的进程,将包中内容发给这个进程进行解析。

三、二层设备和三层设备分别是什么意思

  • 二层设备就是只把数据包的MAC头摘下来,看看到底是丢弃、转发还是自己留着。
  • 三层设备就是把MAC头摘下来检查后,再把IP头摘下来,看看是丢弃、转发还是自己留着。

四、动态主机配置协议(DHCP)

  • 每一个新接入的机器都可以通过DHCP申请一个ip地址。

  • 一开始机器只有自己的MAC地址,所以只能发送广播包(ip目的地址255.255.255.255,源ip地址0.0.0.0,还有目的mac地址ff:ff:ff:ff:ff:ff)

  • 这个广播包使用的是UDP协议。


    Boot request
  • 网络管理员配置的DHCP Server收到了这个广播包,就会租给这个机器一个IP地址,这个过程称为DHCP Offer。

  • 这个DHCP Offer数据包也是一个广播包,以广播地址作为目的地址。

  • 除了分配的IP,服务器还发送了子网掩码、网关和IP地址租用期等信息。

  • 如果有多个DHCP Server,这台新机器就会收到多个IP地址,它会选择其中一个DHCP Offer(一般是最先到达的那个)。


    DHCP Offer
  • 新机器在接受了DHCP Offer后,会向网络发送一个DHCP Request广播数据包。

  • 其中包含客户端的MAC地址,接受的租约中的IP地址、提供此租约的DHCP服务器地址等,并告诉所有DHCP Server它将接受哪一台服务器提供的IP地址,让其他服务器撤销它们提供的IP地址。

  • 此时客户端荏苒使用0.0.0.0为源IP地址、255.255.255.255作为目标地址进行广播,因为还没有得到DHCP Server最后的确认。


    DHCP Request
  • 当DHCP Server接收到客户机的DHCP Request时,会广播返回给客户端一个DHCP ACK消息包,表明已经接受客户端的选择,并将这一IP地址的合法租用信息和其他的配置信息都放入该广播包,发给客户端。


    DHCP ACK

你可能感兴趣的:(网络协议栈介绍)