IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 计算机网络基础知识总结 -> 正文阅读

[Python知识库]计算机网络基础知识总结

前言

从去年入职新公司后,博客基本停更了,开始一段时间确实忙,工作主要是做网络爬虫,所谓的爬虫,就是模拟请求获取数据,有些简单的可以直接获取数据或者解析html页面获取数据,有些需要登陆或者验证码,还有反爬验证ip、请求的频率等等。由于公司需要,博主不再负责爬虫相关工作,转向python和golang的开发,因此想总结下爬虫的相关经验(有时间会写些案例),先介绍下计算机网络,帮助新手预习,老手复习。

1、什么是计算机网络

什么是计算机网络?这个问题你是否想过。你发送一个消息,在远在的朋友就能收到你的消息,是不是很神奇,这中间是如何实现的呢?

计算机网络简单的理解就是能够使计算机互联的网络,它的核心是一系列的网络通信协议,网络通信协议就是网络中(包括互联网)传递、管理信息的一些规范,理解了这些协议,就理解了计算机网络。

2、网络通信协议

在网络通信协议标准化之前,一帮牛人对网络体系结构相关的问题进行了充分的探讨,最终提出了作为通信协议设计指标的 OSI 参考模型(图片来自百度百科)
在这里插入图片描述

稍微扫一眼图片,每一层叫什么名字不需要特别的记忆,只要知道越靠近下面越接近硬件,越靠近上面越接近用户就行,我们从右边的接收过程开始,自下而上的了解每一层的功能。

2.1、物理层

大家回忆下,我们在家里使用电脑需要先办理一个宽带,在外面手机上网需要有3G/4G/5G移动信号,这些宽带(连接着光缆、电缆)、移动信号(本质是无线电波)将电脑连接起来,组成了一个庞大的计算机网络,这就是物理层。物理层主要规定了网络的一些电气特性,作用是负责传送0和1的电信号(0表示低电平,1表示高电平)。

2.2、数据链路层

2.2.1、作用

数据链接层的功能,就是在"物理层"的上方,确定了0和1的分组方式

2.2.2、以太网协议在这里插入图片描述

现在的互联网主要使用的是“以太网”协议,一组电信号就是一个数据包,分成两个部分:标头(Head)和数据(Data)。"标头"包含数据包的一些说明项(发送者、接收者等等),"数据"则是数据包的具体内容。"标头"的长度固定为18字节,"数据"的长度最长为1500字节,如果数据很长,就必须分割成多个数据包进行发送。

2.2.3、MAC地址

连接网络的所有设备都有网卡,数据的传输是从一块网卡传送到另外一块网卡,而网卡的地址(也叫MAC地址)就是发送者、接收者的地址,每块网卡出厂的时候都有独一无二的MAC地址。

2.2.4、发送方式

在子网络中采用广播的方式,向所有的计算机发送消息,子网络计算机通过判断接收者的MAC地址与自己的MAC地址是否相同来决定接收或者丢弃。

2.3、网络层

2.3.1、作用

通过数据链路层,我们知道了MAC地址只能在子网络中广播消息,因此,网络层引进了新的一套地址,区分不同的计算机是否属于同一个子网络,这套地址称为网络地址。

2.3.2、IP协议

规定网络地址的协议,叫做IP协议,IP协议定义的地址是IP地址。IP地址分为网络和主机两部分,前一段代表网络,后一段代表主机,子网络中网络部分是相同的。单从IP地址我们无法判断到底是前几位代表网络,因此需要一个“子网掩码”,通过IP地址和子网掩码&运算,如果两个计算机地址计算的结果相同就表示处于同一个子网络中

2.3.3、IP数据包

在这里插入图片描述
以太网协议中数据包的格式是"标头"和"数据"两个部分,IP数据包也分为"标头"和"数据"两个部分,IP数据包的"标头"包含了IP协议的版本、地址等信息,IP数据包放入以太网协议数据包的Data中,就变成了上图的样子了。

2.3.4、发送方式

IP数据包的发送方式分为两种情况:

  • 如果两台主机不在同一个子网络,只能把数据包传送到两个子网络连接处的"网关",让网关去处理。
  • 如果两台主机在同一个子网络,就可以用ARP协议,得到对方的MAC地址,然后完成数据包的发送。

2.4、传输层

有了MAC地址和IP地址,我们已经可以在互联网上任意两台主机上建立通信。我们还需要一个端口,表示这个数据包到底供哪个程序(进程)使用。

2.4.1、作用

"传输层"的作用就是建立"端口到端口"的通信。相比之下,"网络层"的功能是建立"主机到主机"的通信。只要确定主机和端口,我们就能实现程序之间的交流。

2.4.2、TCP/UDP协议

在这里插入图片描述
同上面的网络层一样,加入了端口,就要提供新的协议,TCP是可靠的传输层协议,UDP是不可靠的传输层协议,TCP/UDP数据包,也是由"标头"和"数据"两部分组成,“标头”定义了发出端口和接收端口,放到了网络层的Data中,整个以太网数据包变成上图的样子了。

2.5、会话层

“会话层”主要作用是用来管理网络设备的会话连接,建立、维护、终止会话。
建立会话:在建立会话的过程中主要会有身份验证,权限鉴定等环节;
保持会话:维护会话一定的时长,期间不需要再次建立会话;
断开会话:会话超时、意外情况下,OSI会话层才会释放这条会话。

2.6、表示层

“表示层”基本作用就是对数据格式进行编译,加解密处理。
表示层接收的数据是二进制形式的,必须通过数据处理才能转换为图片、文字、视频等格式。

2.6、应用层

"应用层"的作用,就是规定应用程序的数据格式,提供应用程序间的服务。应用层的协议非常的多,现在的网络工具,大多是基于这些程序所开发。

结束语

本文对计算机网络自下而上进行了一个简单的介绍,详细过程需要大家自己去看计算机网络的书籍。
写的比较花时间,如果有任何不正确的,欢迎评论区留言指正,对你有帮助的,请点个赞再走,谢谢大家!

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-19 07:56:01  更:2021-09-19 07:56:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 16:02:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计