概述
前言
从去年入职新公司后,博客基本停更了,开始一段时间确实忙,工作主要是做网络爬虫,所谓的爬虫,就是模拟请求获取数据,有些简单的可以直接获取数据或者解析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、应用层
"应用层"的作用,就是规定应用程序的数据格式,提供应用程序间的服务。应用层的协议非常的多,现在的网络工具,大多是基于这些程序所开发,以下列举了常见的应用程序:
应用程序 | FTP | TFTP | TELNET | SMTP | DNS | HTTP |
---|---|---|---|---|---|---|
端口 | 21,20 | 69 | 23 | 25 | 53 | 80 |
传输层协议 | TCP | UDP | TCP | TCP | UDP | TCP |
结束语
本文对计算机网络自下而上进行了一个简单的介绍,详细过程需要大家自己去看计算机网络的书籍。
写的比较花时间,如果有任何不正确的,欢迎评论区留言指正,对你有帮助的,请点个赞再走,谢谢大家!
最后
以上就是霸气橘子为你收集整理的计算机网络基础知识总结的全部内容,希望文章能够帮你解决计算机网络基础知识总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复