python爬虫基本功(三)--爬虫所需网络协议知识超详细总结(下)

news2025/1/19 14:33:41

开头

前言

大家好,这里是Kaiser👏。本文内容是衔接
👉python爬虫基本功(二)—爬虫所需网络协议知识超详细总结(上)👈
一文,为达更好的阅读效果,以及防止知识点出现“断层”,使阅读本文时一头雾水。请读者先读完(上),再阅读本文,学习效果更佳。


本文目录

  • 前言
  • ✒️什么是TCP/IP参考模型
  • ✒️OSI参考模型和TCP/IP参考模型对应关系
  • ✒️TCP/IP 各层实现的协议
    • ✍️应用层各协议
    • ✍️传输层各协议
    • ✍️网络层各协议
  • 📃总结

✒️什么是TCP/IP参考模型

(上)文中我们已经讲过OSI参考模型,但随着互联网不断发展,一种更加符合工业事实标准的参考模型孕育而生:TCP/IP参考模型。TCP/IP一共分为五层(从上到下):应用层、传输层、网络层、数据链路层、物理层。与OSI相比,少了表示层和会话层。
TCP/IP五层


✒️OSI参考模型和TCP/IP参考模型对应关系

TCP/IP协议栈具有简单分层设计,与OSI参考模型是有清晰对应关系。为更好的表示,Kaiser为大家做了一个可视图,让大家更加直观的理解二者之间的对应关系。Kaiser对知识的分享毫不吝啬,所以大家也不要吝啬自己的三连额👍🤞。
二者对应关系
OSI七层中的应用层、表示层、会话层对应TCP/IP中的应用层,其它几层呈一一对应的关系,并且其对应层的功能也是一样的。


✒️TCP/IP 各层实现的协议

✍️应用层各协议

HTTP:超文本传输协议,基于TCP(一种传输层协议,下文会提到),使用80端口,是用于从Web服务器传输超文本到本地浏览器的传输协议。这个协议大家应该是很熟悉的,因为我们平时上网,浏览网页,都会见到此协议。同时该协议是我们爬虫学习中最常打交道的一个协议。

SMTP:简单邮件传输协议,基于TCP,使用25号端口,是一组用于由源地址到目的地址传送邮件的规则,用来控制信件的发送、中转。比如我们用的QQ邮箱、新浪邮箱,都是通过此协议进行传输的。

FTP:文件传输协议,基于TCP,一般上传下载用FTP服务,数据端口是20号,控制端口是21号。(上)文中Kaiser举的那个例子就是FTP协议,此协议常用于上传数据、下载数据。

TELNET:远程登录协议,基于TCP,使用23号端口,是Internet远程登陆服务器的标准协议和主要方式。为用户提供了在本地计算机上完成远程主机工作的能力,即远程调试路由器或交换机。在终端使用者的电脑上使用TELNET程序连接到服务器。缺点是明码传送、保密性差,因此此协议已逐渐被更安全的SSH应用层协议所取代。

SSH:安全外壳协议,基于TCP,使用22号端口,为建立在应用层和传输层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其它网络服务提供安全性的协议。

DNS:域名解析,基于UDP(一种传输层协议,下文会提到),使用53号端口,提供域名到IP地址之间的转换。

(PS:以上协议都有“基于XXX”,这里的“XXX”都是传输层协议,因为应用层下面就是传输层,传输层里的各协议是为应用层服务的。)


✍️传输层各协议

TCP:传输控制协议。一种面向连接的、可靠的、基于字节流的传输层通信协议。

UDP:用户数据报协议。一种面向无连接的通讯协议,不可靠的、基于报文的传输层通信协议。

SCTP:流量传输控制协议。一种面向连接的流传输协议。可看作TCP协议的一种改进。

MPTCP:多路径传输控制协议(仅供了解)。TCP的多路径版本。SCTP虽然在首发两端有多条路径,但实际只是使用一条路径传输,当该条路径出现故障时,不需要断开连接,而是转移到其它路径。MPTCP真正意义上实现了多路径并行传输,在连接建立阶段,建立多条路径,然后使用多条路径同时传输数据。


✍️网络层各协议

IP:Internet协议。通过路由选择将下一条IP封装后交给接口层。IP数据报是无连接服务。

ICMP:Internet控制报文协议。是网络层的补充。用于在主机、路由器之间传递控制消息,检测网络通不通、主机是否可达、路由器是否可用等网络本身的消息。
(扩展:打开电脑cmd后,输入“ping+网址”,它所发出的数据包就是ICMP数据包,用来检测两机之间网络联通是否正常,路由是否可达。同时也会显示网站的IP地址。以C站为例,如下图)
ping
ARP:地址解析协议。通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。局域网中,常用此协议进行路由的通信。比如有数据包到局域网里了,比方说家里,这时WiFi路由器或小区里的交换机就会有ARP协议产生,再去寻找接收设备。

RARP:反向地址解析协议。即通过MAC地址,去查询IP地址。

📃总结

(上)(下)两文,我们学习了协议的介绍,OSI参考模型,TCP/IP参考模型,两大参考模型间的关系,TCP/IP中应用层、传输层、网络层三层里的协议介绍。也许读者仍有许多疑问,比如什么是交换机?一个网站打开的通信过程是什么样的?这些Kaiser在后续文章中都会为大家详细讲解。所以大家记得关注Kaiser,折腾学习不迷路!
结尾图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/813652.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java方法的使用(重点:形参和实参的关系、方法重载、递归)

目录 一、Java方法 * 有返回类型,在方法体里就一定要返回相应类型的数据。没有返回类型(void),就不要返回!! * 方法没有声明一说。与C语言不同(C语言是自顶向下读取代码)&#…

数电基础知识学习笔记

文章目录: 一:逻辑门 1.逻辑门电路的分类 1.1 按逻辑(逻辑门) 1.1.1 逻辑定义 1.1.2 常见数字电路相关符号 1.1.3 电路图表示 1.1.4 逻辑门电路图像符号 1.2 按电路结构 1.3 按功能特点 2.高低电平的含义 3.常见的门…

给定长度值length,把列表切分成每段长度为length的N段列表,Kotlin

给定长度值length&#xff0c;把列表切分成每段长度为length的N段列表&#xff0c;Kotlin import kotlin.random.Randomfun main(args: Array<String>) {var source mutableListOf<String>()val end Random.nextInt(30) 1for (i in 0 until end) {source.add(i.…

[SV] 文件操作

Verilog 提供了很多对文件进行操作的系统任务。经常使用的系统任务主要包括&#xff1a; 文件开、闭&#xff1a;​$fopen​, ​$fclose​, ​$ferror​文件写入&#xff1a;​$fdisplay​, ​$fwrite​, ​$fstrobe​, ​$fmonitor​字符串写入&#xff1a;​$sformat​, ​$…

python结合tesseract-ocr识别汉字的训练库过程

一、安装python 例如&#xff0c;安装路径为&#xff1a;C:\rtkapp\python-3.8.0 二、安装opencv 三、安装tesseract-ocr 安装完成后&#xff0c;在系统环境变量path中&#xff0c;添加安装路径C:\rtkapp\Tesseract-OCR 四、打开python安装pytesseract 五、安装java运行环境…

TenserRT(四)在 PYTORCH 中支持更多 ONNX 算子

第四章&#xff1a;在 PyTorch 中支持更多 ONNX 算子 — mmdeploy 0.12.0 文档 PyTorch扩充。 PyTorch转换成ONNX&#xff1a; PyTorch有实现。PyTorch可以转化成一个或者多个ONNX算子。ONNX有相应算子。 如果即没有PyTorch实现&#xff0c;且缺少PyTorch与ONNX的映射关系&…

太猛了,靠“吹牛”过顺丰一面,月薪30K

说在前面 在40岁老架构师尼恩的&#xff08;50&#xff09;读者社群中&#xff0c;经常有小伙伴&#xff0c;需要面试美团、京东、阿里、 百度、头条等大厂。 下面是一个5年小伙伴成功拿到通过了顺丰面试&#xff0c;拿到offer&#xff0c;月薪30K。 现在把面试真题和参考答…

一起学算法(插入排序篇)

概念&#xff1a; 插入排序&#xff08;inertion Sort&#xff09;一般也被称为直接插入排序&#xff0c;是一种简单的直观的排序算法 工作原理&#xff1a;将待排列元素划分为&#xff08;已排序&#xff09;和&#xff08;未排序&#xff09;两部分&#xff0c;每次从&…

Python毕业设计可用小游戏:5个热门类型,引爆学生热情!每个类型附单独案例!

游戏大全 前言1.格斗技能类小游戏2.益智塔防类小游戏3.MMO类型游戏4.养成类游戏5.经济类游戏 总结 前言 大家好&#xff0c;我是辣条哥 在当今数字化时代&#xff0c;编程已经成为一项不可或缺的技能。而Python作为一门简洁易学的编程语言&#xff0c;正受到越来越多学生的青睐…

03_使用execle表生成甘特图

背景 每次排期都需要话很多时间 很可能排期还不对头 这时候需要一个表能看到 1.什么时候项目结束 开始 转阶段 2.当前手上的活能不能做完 当前阶段手上有多少活 3.产品经理每次修改完计划迅速排期 甘特图生成 execle表生成 1.需要使用亿图创建甘特图 2.把当前的甘特图数据进…

使用Excel建立贷款损失计算器

前几天上了一门Excel课程&#xff0c;掌握了一些新的小技能&#xff0c;比如模拟运算表和控件以及动态图表的使用&#xff0c;结合工作内容进行了下实操练习。 一、控件和动态图表的使用 以贷款产品的损益测算为例&#xff0c;计算在不同资金成本、获客成本、提前还款损失以及风…

SpringBoot2.5.6整合Elasticsearch7.12.1

SpringBoot2.5.6整合Elasticsearch7.12.1 下面将通过SpringBoot整合Elasticseach&#xff0c;SpringBoot的版本是2.5.6&#xff0c;Elasticsearch的版本是7.12.1。 SpringBoot整合Elasticsearch主要有三种方式&#xff0c;一种是通过elasticsearch-rest-high-level-client&am…

c++里的基础类 is_empty_v<_Ty1>

&#xff08;1&#xff09;为什么要研究这个问题&#xff0c;因为包括智能指针等很多源代码里都会使用 _Compressed_pair 这个类&#xff0c;其是一对值。研究这个类&#xff0c;就牵涉另一个更基础的类 is_empty_v<_Ty1> &#xff08;2&#xff09; is_empty_v<_Ty1&…

内部类(下)匿名内部类,静态内部类的使用

文章目录 前言一、匿名内部类二、静态内部类三、内部类的继承总结 前言 该文将会介绍匿名内部类、静态内部类的使用&#xff0c;补充完毕java中的内部类。补充内容为向上转型为接口、使用this关键字获取引用、内部类的继承。 一、匿名内部类 定义&#xff1a;没有名称的内部类。…

redis 淘汰策略和持久化

文章目录 一、淘汰策略1.1 背景1.2 淘汰策略 二、持久化2.1 AOF日志2.1.1 AOF配置2.1.2 AOF策略2.1.3 AOF缺点2.1.4 AOF Rewrite2.1.5 AOF Rewrite配置2.1.6 AOF Rewrite缺点2.1.7 fork进程时的写时复制2.1.8 大key对持久化的影响 2.2 RDB快照2.2.1 RDB配置2.2.2 RDB缺点 2.3 混…

二分查找算法(全网最详细代码演示)

二分查找也称 半查找&#xff08;Binary Search&#xff09;&#xff0c;它时一种效率较高的查找方法。但是&#xff0c;折半查找要求线性表必须采用顺序存储结构&#xff0c;而且表中元素按关键字 有序 排列。 注意&#xff1a;使用二分查找的前提是 该数组是有序的。 在实际开…

web前端常用调试工具

概述 当我们写 webapp 或者 移动端H5网页时&#xff0c;要在手机上调试并不容易。 alert&#xff1a;很早之前的调试办法&#xff08;已被抛弃&#xff09; vconsole&#xff1a;是2016年由微信公众平台前端团队推出&#xff08;目前大量使用&#xff09; eruda&#xff1a…

解读随机森林的决策树:揭示模型背后的奥秘

一、引言 随机森林[1]是一种强大的机器学习算法&#xff0c;在许多领域都取得了显著的成功。它由多个决策树组成&#xff0c;而决策树则是构建随机森林的基本组件之一。通过深入解析决策树&#xff0c;我们可以更好地理解随机森林模型的工作原理和内在机制。 决策树是一种树状结…

虚拟现实技术(VR)

目录 1.什么是虚拟现实技术 2.虚拟现实技术的由来 3.虚拟现实技术给人类带来的好处 4.虚拟现实技术未来的走向 1.什么是虚拟现实技术 虚拟现实技术&#xff08;Virtual Reality&#xff0c;简称VR&#xff09;是一种通过计算机生成的模拟环境&#xff0c;使用户能够身临其境…

【js】经纬度位置获取navigator.geolocation.getCurrentPosition:

文章目录 一、经纬度位置获取navigator.geolocation.getCurrentPosition二、getCurrentPosition()在google chrome上不起作用 一、经纬度位置获取navigator.geolocation.getCurrentPosition 【文档】https://developer.mozilla.org/zh-CN/docs/Web/API/Window/navigator // 获取…