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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 网络基础之协议 -> 正文阅读

[网络协议]网络基础之协议

一、基础介绍

在这里插入图片描述
数据传输过程中,源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库

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-09 10:33:55  更:2021-08-09 10:34:41 
 
开发: 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/28 6:38:15-

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