1.实验环境

PC---------网线----互联网

实验过程:拔掉网卡网线,重启PC电脑,然后抓包分析.

2.基本流程

2.1 总体报文描述

A.PC首先申请本地IP地址,使用DHCP报文得到本地地址;

当PC获取到DHCP本地地址后,会在局域网触发三个arp请求IP地址冲突检测,如果IP地址有冲突(局域网被人手动设置了IP地址),则给DHCP服务器发送dhcp deline拒绝。然后重新发起DHCP流程。

B.在申请本地地址过程中,pc也获取到了DNS服务器地址;

C.网页输入www.baidu.com,触发PC发送DNS解析流程得到百度域名真是IP地址:

C.1 在发送DNS请求时,由于DNS地址非本地网络,需要PC本地查询路由表,查到下一跳地 址,在使用下一跳地址查ARP表获取下一跳MAC地址,但此时ARP表是查不到的。所以触发了 ARP学习.

D.到此,PC上网的环境都已具备.

2.2 DHCP

PC启动后,插上网线.

PC触发DHCP(以IPV4为例)报文,

PC----discover报文-->dhcp服务端

<----offer报文------

-----request报文---->

<----ack报文-------

2.2.1 discover报文

2.2.2 offer报文

2.2.3 request报文

2.2.4 ack报文

总结:

多个DHCP-server存在的情况下,dhcp收到广播报文,如何确定是发给自己的:

一般情况下部署1个DHCP-server就够了....如果有多个DHCP服务器,每个DHCP在回应的报文offer中会携带可选项server的本机地址。client在request中也携带dhcp server地址.

多个dhcp-client情况下,client如何区分报文是自己的:

报文中的事务ID,client收到和本身的事务ID不匹配的,则丢弃。

client一般都使用自己收到的第一个offer。假如2个client的事务ID真的相同,A收到第一个offer,触发了request给服务端。此时B也收到同样的offer,同样触发了request。服务端也是处理第一个收到的request,第二个request会回应一个NAK报文,收到NAK报文的client重新发起dhcp discover.

2.3 ARP报文

2.4 DNS报文

2.5 IP流

下面就是上网的IP流了.

2.6 IPV6过程(待补充)

网卡上网涉及到的基本协议和流程相关推荐

  1. virtio网络Data Plane卸载原理 —— vhost协议协商流程

    文章目录 基本原理 网卡初始化 网卡使能 数据结构 VhostUserMsg NetVhostUserState vhost_dev vhost_net 协商流程 初始化流程 chardev netd ...

  2. 树莓派搭载EC200U 4G模块(USB网卡上网和PPP拨号上网)

    文章目录 一.EC200U模块4G模块介绍 二.USB转串口驱动设置 (1)打开树莓派的串口 (2)lsusb是否有EC200U模块 (3)添加 VID 和 PID 信息 三.USB网卡驱动上网 四. ...

  3. 挂载 4G 网卡上网

    路由板为  MT7620A 4G 模块为  QUECTEL EC20 OpenWrt 源码版本为   Chaos Calmer 1505 目前已测试可以上网的网络为: 移动  3G/4G 联通  4G ...

  4. Ubuntu双网卡上网问题

    在搭建openstack时遇到了双网卡上网的问题:内网之间可以相互ping通,但ping不通外网.对于笔记本来说可以上网 环境: 内网:10.0.0.0/24    网关:10.0.0.1 外网:20 ...

  5. 网卡内卸载VMware Bridge Protocol协议报错:0x8007007E

    未能卸载VMware Bridge Protocol功能.错误是 0x8007007E 解决方法 VMware Workstation 安装/卸载时卡在"正在卸载网络驱动程序(Virtual ...

  6. ubuntu18.04安装 usb无限网卡上网

    ubuntu18.04安装 usb无限网卡上网 总结,千万不要在未联网的情况下安装ubuntu,否则会给你带来无尽灾难 下面我介绍一下我在未联网情况下安装Ubuntu后遇到的灾难: 1.ubuntu我 ...

  7. HTTP协议处理流程

    这篇文章来自HTTP协议 处理流程 我们平时在浏览网页的时候都是使用浏览器,输入你要的网址后回车,就会显示出我们所想要的内容,看似这个简单的用户操作行为的背后,Web的工作原理是怎样的呢?到底隐藏了些 ...

  8. 标定协议之CCP协议实现流程介绍

    之前两篇文章对CCP标定协议作了初步的介绍,大家也应该有了一定的了解,本文将对CCP标定协议的实现进行介绍,让大家能够进一步理解CCP标定协议.目前CCP协议最新版本是V2.1,在Vector的官网上 ...

  9. 授权使用服务器协议,RADIUS服务器使用RADIUS协议完成对用户主机的认证、授权和计费时,RADIUS协议工作流程如下:(a)用户 - 赏学吧...

    RADIUS服务器使用RADIUS协议完成对用户主机的认证.授权和计费时,RADIUS协议工作流程如下: (a)用户使用ADSL拨号上网: (b)BRAS从用户处获取用户名和口令,将其与用户其他信息( ...

最新文章

  1. 超全!CS 顶会历届最佳论文大列表,机器学习、深度学习一应俱全!
  2. shell实例第3讲:获取随机8位数字
  3. win10安装pip
  4. 如何自定义IHttpHandler
  5. Eclipse设置Courier New字体
  6. 加载resnet18的代码
  7. chattr和lsattr的基本用法
  8. ARM SMMU的原理与IOMMU
  9. 123f是什么c语言,123RF博客
  10. 红米note2能刷机没显示无服务器,红米Note2刷机失败怎么办
  11. 基于STM32的简易交通灯设计
  12. 少男杀手dodolook签约酷6网原创红人阵营
  13. python-scikit-learn基础
  14. Python编程:从入门到实践(课后习题:第6章 字典)
  15. android蓝牙配对 自动联接,如何实现android蓝牙开发 自动配对连接,并不弹出提示框...
  16. Windows程式开发设计指南(十五)与装置无关的点阵图
  17. eclipse的安装与下载
  18. 与已安装应用签名不同
  19. [华为机试真题]69.姓名的夫妻相
  20. 芯片验证学perl还是python_科学网—用python或perl语言简单验证RSA算法 - 康建的博文...

热门文章

  1. 安装和第一次使用Android Studio中的问题以及解决
  2. 列车matlab模型,【国家级精品课程】-中南大学-数学建模-lingo-matlab-优化建模-数模培训-全国赛论文-京沪线列车调度模型(B题)...
  3. oracle数据库实战教程 李兴华ORACLE入门到精通教程
  4. Etcd源码分析-存储3
  5. 5800xm上能用的QREADER看书工具
  6. 华为、小米频繁发布新机,消费者为何不买账?
  7. moment 取年月日_moment.js获取本周本月本年的开始日期和结束日期
  8. php初学者入门视频教程下载_第101讲到112讲_张恩民老师
  9. 收集最新jquery特效与psd常用素材资源
  10. 后疫情时期,老年消费创新的机会与挑战应对