首页 > 其他分享 >[笔记]网络原理4 -应用层及其相关协议

[笔记]网络原理4 -应用层及其相关协议

时间:2024-07-11 11:33:08浏览次数:8  
标签:IP地址 笔记 域名 服务器 DNS DHCP 原理 应用层 客户端

1. 常见的协议

  • HTTP/HTTPS
  • FTP,文件传输
  • DHCP,动态主机配置
  • DNS,域名系统

2. DNS,Domain Name System

  • 域名的出现是因为IP不好记,而且不能表达组织/公司的名字和性质。
  • 市面上的网页虽然是域名访问,但是实际还是要靠IP,毕竟服务器过路由器只能通过IP。
  • 域名申请注册的一个链接
  • DNS的作用是把域名换算成IP,传输层可以是基于UDP或者是TCP,服务器占用端口53。
  • DNS常用指令
    • ipconfiig/displaydns 展示dns
    • ipconfig/flushdns 清空dns缓存记录
    • ping 域名
    • nslookup 域名
  • DNS访问逻辑
    • 首先客户端访问最近的一台DNS服务器
    • 所有的DNS服务器都记录了DNS根域名服务器的IP地址
    • 上级的DNS服务器记录下一级DNS服务器的IP地址
    • 全球一共13台IPv4的DNS根域名服务器,25台IPv6的根域名服务器
    • 下图中的设置就可获取离客户端最近的DNS服务器

3. DHCP

  • 相比于自己设置的静态IP地址,动态IP地址则由DHCP配置,DHCP可以从服务器中自动获取IP地址。
  • DHCP基于UDP协议,客户端是68端口,服务器是67端口。
  • DHCP服务器会从IP池中挑选一个IP地址出租给客户端一段时间,时间到期就回收。
  • 很多时候,路由器就可以充当DHCP的服务器。
  • DHCP的工作流:
    • DISCOVER:发现服务器:发广播包(源IP是0.0.0.0,目标IP是255.255.255.255,目标MAC是FFFF.FFFF.FFFF)
    • OFFER:提供租约:服务器返回可以租用的IP地址,以及租用期限,子网掩码,网关,DNS信息等;可能会有多个服务器同时回应,因为是广播包
    • REQUEST:选择IP地址:客户端选择一个OFFER,发送广播包回应
    • ACKNOWLEDGE:确认:被选中的服务器发送ACK数据包给客户端
    • 分配完毕,流程图如下:
  • DHCP可以跨网段分配,但是需要DHCP中继代理实现。
  • DHCP常用指令
    • ipconfig /all 看到DHCP的详细信息
    • ipconfig /release 手动释放租约
    • ipconfig /renew 重新申请IP,申请租约

4.HTTP,超文本传输协议

  • 80是HTTP常用的端口,8080是HTTP测试常用的备用端口

  • 如下图,测试了一个http的get请求

    • wireshark抓到了get的url
    • 在wireshark中,选择想看的报文,右键,追踪流,HTTP流,可以看到一些清晰的数据流。橙色是客户端请求的流,蓝色是服务器返回的流。
    • 在一个get指令中,客户端发给服务器的数据有下面这些
    • 服务器返回的数据,此时返回的状态是304
    • 当服务器返回的状态是200时,返回的报文回包括html文件本身
  • 如下截图,HTTP在发送请求时的格式可以参考下图(请求方法可以变,不一定非得get),包括爬虫的时候也就按照这个格式来模仿。记得报文里面每一行都有回车换行符16#20,空格符也不要忘记。

    • HTTP报文格式,注意空格位置和回车换行符位置,都需要用ascii表达出来
    • 在wireshark里面也把这种对应关系表现出来了
    • GET请求不同于post请求,没有请求体,也有长度限制。就算发账户和密码也是以Url的形式明文格式展示:
  • 请求头字段格式

  • 响应头字段格式


  • 状态码

    • 状态码的分类
  • 针对上文出现过HTTP返回的状态码为304:此表示虽然客户端的Get请求已经被允许,但是文档的内容自从上次访问后一直没有变化。

标签:IP地址,笔记,域名,服务器,DNS,DHCP,原理,应用层,客户端
From: https://www.cnblogs.com/xiacuncun/p/18295105

相关文章

  • 入门的第一课-随笔记录
    Markdown学习标题一级标题:#+空格+标题名称二级标题:##+空格+标题名称三级标题:###+空格+标题名称(最多支持六级标题)字体Hello,World!字体两边各加两个*成为粗体Hello,world!字体两边各加一个*成为斜体Hello,World!斜体加粗则是两边各加三个*9.99两边加两个~则......
  • Linux学习笔记(02)——文件相关知识
    文件系统结构/bin存放二进制可执行文件,这些命令在单用户模式下也能够使用。可以被root和一般的账号使用。/bootUbuntu内核和启动文件,比如vmlinuz-xxx。gurb引导装载程序。/dev设备驱动文件/etc存放一些系统配置文件,比如用户账号和密码文件,各种服务的起始地址。/h......
  • TCP协议三次握手和四次挥手原理图文解析
    前言TCP协议(TransmissionControlProtocol)是计算机网络中最常用的传输层协议之一,负责提供可靠、面向连接的数据传输服务。它存在的目的就是为了让传输更可靠,也更稳定,但同样也会对端口与端口之间的传输速率造成影响。它一般采用两种方式来使传输更加可靠。一种是面向连接,而另......
  • 深入理解 CompletableFuture 的底层原理
    引言在现代Java编程中,异步编程变得越来越重要。为了实现高效和非阻塞的代码,Java8引入了CompletableFuture,一个用于构建异步应用程序的强大工具。本文将详细探讨CompletableFuture的底层原理,展示其工作机制,并通过代码示例说明如何在实际应用中使用它。异步编程的背景......
  • 线段树分治学习笔记
    线段树分治是一种通过线段树维护时间轴,实现一些可撤销的信息维护问题的手段。线段树分治是离线算法。具体地,对于若干个修改与询问,按照时间戳像区间修改一样挂在线段树的节点上,然后遍历整棵线段树,将节点上的操作计入贡献,对于一个时间戳为\(t\)的询问,线段树上区间\([t,t]\)即......
  • 【持续更新】平衡树笔记
    目录1从BST到平衡树2替罪羊树2.1替罪羊树的维护2.2替罪羊树的基本操作2.2.1替罪羊树的结点信息2.2.2替罪羊树的空间利用2.2.3替罪羊树的重建2.2.4替罪羊树的插入、删除2.2.5替罪羊树的按数找排名、按排名找数2.2.6替罪羊树的找前驱、后继2.3替罪羊树完整代码1从BS......
  • 文件系统(九):一文看懂yaffs2文件系统原理
    liwen012024.07.07前言yaffs是专为nandflash设计的一款文件系统,与jffs类似,都是属于日志结构文件系统。与jffs不同的是,yaffs文件系统利用了nandflash一些特有属性,所以在数据读写擦除和回收上都有较大的差异。关于jffs2文件系统的介绍可以查看《文件系统(八):LinuxJFFS......
  • Systemd 学习笔记
    Unit的配置文件[Unit]区块通常是配置文件的第一个区块,用来定义Unit的元数据,以及配置与其他Unit的关系[Install]通常是配置文件的最后一个区块,用来定义如何启动,以及是否开机启动[Service]区块用来Service的配置,只有Service类型的Unit才有这个区块Unit文件[Unit......
  • Python学习笔记(一)(更新中)
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档Python基础语法(一)一、变量1、变量命名的规则2、变量的常见类型二、注释提示:以下是本篇文章正文内容,下面案例可供参考一、变量变量是指存储信息的容器。变量的赋值包括变量名、等号、存储的信息这......
  • 《未来世界的幸存者》读书笔记
    信息《未来世界的幸存者》阮一峰https://www.ruanyifeng.com/survivor/摘录以前,我们常听到的口号是“技术让生活更美好”,但现在不是这样,技术只是刺激消费的工具。理想中,技术应该发扬人性的正面因素,实际上技术却被用来放大和推动人性的负面因素。比如,我们动用大量的金钱和能......