一、基础介绍
数据传输过程中,源mac和目标mac会被路由器更改。
ISP ,因特网服务提供商,例如:移动,电信等
跨网段的主机,ping的时候,第一个数据包会被路由器丢掉。 原因: 第一次发送数据,需要先通过ARP请求找到目的mac,由于ARP请求响应时间超过需要响应的数据包的时间,导致路由器中ARP映射表没有目的IP和mac,此时路由器会将该包丢弃。在第一次ARP请求结束后,ARP映射表有了IP对应的mac,后续就能正常接收到数据包了。
上网方式
电话线入户
ADSL电话拨号上网。上网的时候不能通话,通话的时候不能上网。 非对称数字用户线路,提供上下行不对称的传输带宽。 路由器:以太网口连接局域网,串口连接其他路由器 猫:调试解调器,进行数字信号和模拟信号的转换。
光纤入户
光猫:光调试解调器,进行数字信号和光信号的转换。
网线入户
NAT 网络地址转换
私网主要用于局域网。例如公司内部网络。公网是得到的IP地址是Internet的公有地址。公网上的计算机可以和Internet上的计算机随意相互访问。
私网IP访问Internet需要进行NAT转换为公网IP。 特点:可以解决公网IP紧缺问题;隐藏内部真实IP,具有安全性。
PAT(PORT address teanslation)端口地址转换: 1,多对一转换,最大程度上节约公网IP资源; 2,采用端口多路复用方式,通过端口标识不同的数据流; 3,目前应用最广泛的NAT实现方式。
信道
信息传输的通道,一条传输介质,如网线上可以有多条信道。
单工通信,信号只能一个方向传输:无线电广播
半双工通信:信号可以双向传输,都是必须交替进行,同一时间只能往一个方向传输,如对讲机。
全双工通信:信号可以双向传输,如手机。
数据请求过程
二、OSI七层模型
这里介绍实际环境中基础使用到的5层模型。
物理层
利用传输介质,为数据链路层提供设备的物理连接。
作用:数据传输过程中,实现相邻的计算机之间进行比特流透明传输。
数据链路层
负责建立和管理节点间的链路。在物理层提供比特流的基础上,通过差错校验,流量控制,使有差错的物理链路变为无差错的数据链路。--------提供可靠的通过物理介质传输数据的方法。
相邻设备之间数据传输。一条链路上传输数据时,需要有对应的通信协议来控制数据的传输。 不同类型的数据链路,所用的通信协议可能不同: 广播信道:CSMA/CD协议(单工通信:集线器,同轴电缆之间),带冲突检测的载波侦听多路访问 点对点信道:PPP协议(如2个路由器之间的信道)
数据链路层的3个基本问题: 封装成帧 透明传输 差错检验
1、封装成帧:IP数据包+帧开始/结束符+帧首尾部。 2、透明传输:传输过程中,不管什么数据,都可以正确传输到目的地。使用转义字符进行区分部分与结束符冲突的数据,但是接收端接收到的数据还是原来发送的数据,从结果来看,是无感知的。 3、差错检验:防止数据传输中被影响的数据导致出错。 两种差错: ①比特差错:传输过程中可能产生的差错,0变成1,或1变成0 ②传输差错:收到的帧没有出现比特差错,出现了真丢失,重复和帧失序。
以太网的MTU为1500字节; 以太网帧:传输在网线上的数据帧
PPP帧:两个路由器之间传输的帧。(不需要源mac和目的mac,点对点传输)
作用:提供可靠的通过物理介质传输数据的方法。解决同一网络内节点之间的通信。
网卡:
网卡接收到一个帧,会先进行差错校验(FCS),校验通过则接受,否则丢弃; Wireshark抓到的帧没有FCS,因为它抓到的是差错校验通过的帧,FCS被网卡直接丢掉了。 Wi’re’shark抓不到差错校验失败的帧。 因此wireshark工作在数据链路层。
网络层
功能:在数据链路层的基础上,管理网络中的数据,控制数据链路层和传输层之间的数据转发,建立,维持和终止网络的连接,将数据从源端经过若干个节点传送到目的端,向传输层提供最基本的端到端的数据传输服务 解决不同子网间的通信。
网络层数据包由首部+数据组成;
标识:即ID 标识占16位,当数据包过大进行分片时,同一个数据包的所有片的标志都是一样的。 有一个计数器专门管理数据包的ID,每发出一个数据包,ID就+1
片偏移 占13位; 片偏移乘以8:字节偏移 每一片的长度一定是8的整数倍;用来辨别每个片所在的具体位置。
传输层
管理端到端的数据传输.
TCP/UDP差异
TCP协议: 特点:面向连接;点对点通信;可靠传输,全双工通信;面向字节流的协议。(适用于可靠传输,例如文件传输)
UDP协议: 特点:无连接;可以多对多通信;不可靠传输,没有拥塞控制;面向数据报。(适用于实时应用:视频会议,直播)
TCP传输 1.可靠性传输: ARQ停止等待协议(四种传输情况:无差错情况,超时重传,确认丢失,确认迟到) 连续ARQ协议+滑动窗口协议:多个连续标识的数据一起传输,接收端只对最后一个数据进行确认。 即数据若丢失或是超时未收到,进行重传
2.流量控制:通过TCP的头部窗口大小来控制流量。 若此时目的主机接受窗口为0,发送方就不会再发送数据了。解决方法:搞一个定时器,每隔一段时间咨询一下接收方是否可以发送数据。
3.拥塞控制:整个网络的通信量的控制 开始通过慢启动算法发送数据量成指数型增长,到达启动阈值,改为加法增长。此时若到达拥塞峰值,则重新从慢启动开始发数据。一直循环指导数据发送完成。
应用层
直接给用户提供服务。
作用:文件传输、管理,电子邮件,远程操作等。
DNS :域名系统 DNS解析原理 解说:(前提:本地浏览器和操作系统中,没有相关消息缓存记录的情况下。)
1、客户端先向local DNS发出请求,若local DNS中没有客户端要的数据记录,那么此时,local DNS会向根 dns请求 2、若根DNS 中有local DNS请求的数据,则直接返回数据;若没有,则将返回查询到的子域名DNS; 3、此时local DNS根据根DNS返回的线索,向com DNS发出查找请求。若com DNS中有相关记录,则直接返回给local DNS;若没有,则返回下级DNS; 4、此时若下级DNS中有记录,直接返回数据给local;若无数据,则返回local DNS二级DNS信息;一直循环直到最终查询到记录为止。
递归查询和迭代查询的区别
HTTP/HTTPS
HTTP (hyper text transfer protocol)超文本传输协议,规定了浏览器和服务器之间的通信规则。
特点如下: 简单快速:客户端向服务器请求数据时只需要提交请求路径与请求方法, 灵活:允许传输任意类型的数据,由context-type标记; 无连接:限制每次连接只处理一个请求,服务器处理完请求,并收到客户地应答后,就立马断开连接。 无状态:协议处理事务没有记忆。
工作流程:
- 浏览器分析URL
- 浏览器向DNS请求解析IP地址
- DNS解析出IP地址
- 浏览器与服务器建立TCP连接(3次握手)
- 浏览器发出HTTP请求
- 服务器通过HTTP响应把文件数据发送给浏览器
- 释放TCP连接(四次挥手)
- 浏览器解析文件数据,并将其通过页面展示给用户
https=http+ssl , 默认端口443 通信过程:
http和https的差异
- 安全性:http 明文传输,安全存在隐患;https时使用TLS/SSL加密的。密文传输,安全性高。
- 证书:http无证书;https依靠证书验证服务器身份,并对通信数据加密。
- 端口:http端口默认80;https端口默认443
- 连接:http 3次握手,四次挥手;https在此基础之前增加了ssl 连接
参见:https://blog.csdn.net/JAck_chen0309/article/details/105020259?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162838609216780269858503%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=162838609216780269858503&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-105020259.first_rank_v2_pc_rank_v29&utm_term=http%E5%92%8Chttps%E7%9A%84%E5%8C%BA%E5%88%AB&spm=1018.2226.3001.4187
常见状态码介绍
1xx :continue 2xx :请求成功 3xx:重定向 301:永久重定向;302临时重定向;304 not modify(当客户端已向server请求过,并且本地有该请求的数据缓存,此时Server就会返回304) 4xx:客户端出现问题 5xx:服务器出现问题
密钥
MD5和SHA是不可逆加密。 对称和非对称加密是可逆的。
对称加密
DES(Data Encryption Standard) :加密和解密时同一个密钥。
DES每次加密只能加密64bit,如果数据过大,需要迭代加密。 3DES,即将DES重复3次所得到的一种密码算法(加密->解密->加密的过程,3把密钥不一样),处理速度不高。
AES(Advanced Encryption Standard) 高级加密算法。安全等级比DES高。
作用:对传输的信息进行加密,防止非法窃听者盗取信息。
非对称加密
Asymmetric Cryptography 加密和解密不是同一个密钥。加密密钥是公钥,解密密钥是私钥。反之,私钥也可以用来加密。 公钥和私钥是一一对应的。一个公钥加密的数据,必须要是它的对应的私钥进行解密才行。
非对称加密RSA加密解密的速度比较慢,效率低。 解决密钥运输问题: 通过非对称加密将这个密钥进行运输。例如A要发数据给B,B将自己的公钥发送给A,A使用该公钥将对称密钥进行加密,传输给B,B通过自己的私钥对其进行解密,后续信息传输直接用对称密钥加密即可。
混合密码
会话密钥是随机生成的临时密钥。
最终接收方使用自己的私钥将公钥解密出来再看消息,后续数据都直接使用对称加密即可。加密解密速度快,效率高。
数字签名的作用仅仅是为了识别自己发送的消息是否有被篡改: 1.确认消息的完整性 2.识别消息是否有被篡改 3.防止消息发送人否认。
证书
公钥证书,具有权威性
ICMP协议
ICMP主要用于返回错误信息。比如:TTL值过期,目的机不可达。它判断的错误信息总是包括了源数据并返回给发送者。 例如ping使用的就是ICMP协议
FTP协议
文件传输服务协议
两种连接模式:主动和被动;不管是哪种模式,都需要客户端和服务器建立2个连接。 ①控制连接:用于传输状态信息(cmd) ②数据链接:用于传输文件和目录信息(data)
邮件相关协议
SMTP,简单邮件传输协议:基于TCP协议,服务器默认端口25,SSL/TLS使用465端口 POP收邮件的协议:服务器默认端口110,ssl/tls使用995端口;IMAP也是用来收邮件的协议。
pop和IMAP区别: pop:客户端连接服务端时,会下载服务端的所有邮件。 客户端和服务器之间是分开的,客户端的操作不会影响到服务器上的邮件。每个客户端都是独立的。
IMAP:客户端连接服务器,获取的是服务器上邮件的基本信息,不会下载邮件,打开邮件时,才会开始下载。 客户端和服务端的操作是可以同步操作的。可以允许删除服务器的东西。 所有客户端会看到相同的邮件和文件夹。
邮件传输过程:
VPN
Virtual Private Network 虚拟私人网络。客户端上需要安装规定的VPN软件。 可以在公共网络上建立专用网络,并进行加密通讯。
优点: 1、提高上网安全性 2、保护公司内部资料 3、隐藏上网者身份 4、突破网站的地域限制 5、突破网络封锁 中国长城防火墙(GFW)的限制,部分网站国内上不了。
网络爬虫
python 的 scrapy库
|