网络基础之协议

网络基础

  • 一、基础介绍
    • 数据包的传输过程
    • 上网方式
      • 电话线入户
      • 光纤入户
      • 网线入户
    • NAT 网络地址转换
    • 信道
      • 数据请求过程
  • 二、OSI七层模型
    • 物理层
    • 数据链路层
    • 网络层
    • 传输层
      • TCP/UDP
      • TCP的三次握手
    • 应用层
      • 递归查询和迭代查询的区别
      • HTTP/HTTPS
      • http和https的差异
      • http的方法区别
      • 常见状态码介绍
    • 密钥
      • 对称加密
      • 非对称加密
      • 混合密码
    • 证书
    • ICMP协议
    • FTP协议
    • 邮件相关协议
    • VPN
    • 网络爬虫

一、基础介绍

数据包的传输过程

在这里插入图片描述

数据传输过程中,源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)面向连接:双方必须建立连接才能进行数据通信。
2)可靠传输:

  • tcp采用发送应答机制
  • 超时重传
  • 错误校验
  • 流量控制和阻塞管理

1.可靠性传输:
ARQ停止等待协议(四种传输情况:无差错情况,超时重传,确认丢失,确认迟到)
连续ARQ协议+滑动窗口协议:多个连续标识的数据一起传输,接收端只对最后一个数据进行确认。
即数据若丢失或是超时未收到,进行重传

2.流量控制:通过TCP的头部窗口大小来控制流量。
若此时目的主机接受窗口为0,发送方就不会再发送数据了。解决方法:搞一个定时器,每隔一段时间咨询一下接收方是否可以发送数据。

3.拥塞控制:整个网络的通信量的控制
开始通过慢启动算法发送数据量成指数型增长,到达启动阈值,改为加法增长。此时若到达拥塞峰值,则重新从慢启动开始发数据。一直循环指导数据发送完成。

TCP的三次握手

ChatGPT
TCP三次握手是建立TCP连接的过程,它由客户端和服务器之间的三个步骤组成,具体如下:1.客户端向服务器发送一个SYN(同步)包,其中包含一个随机生成的初始序列号(ISN)。
2.服务器收到SYN包后,回复一个SYN-ACK(同步-确认)包,其中包含确认号(ACK)和服务器的初始序列号。
3.客户端收到服务器的SYN-ACK包后,再发送一个ACK(确认)包,其中包含确认号,表示客户端已经准备好建立连接。这样,TCP连接就建立成功了,客户端和服务器可以开始进行数据传输了。需要注意的是,在第一次握手时,客户端向服务器发送SYN包,服务器回复SYN-ACK包,这时候连接还没有完全建立,因为客户端还需要发送一个ACK包确认。因此,TCP三次握手是必须的,它可以保证连接的可靠性和正确性。

四次挥手

TCP四次挥手是指TCP连接的关闭过程,它由四个步骤组成。下面是每个步骤的简要描述:第一次挥手(FIN):客户端发送一个FIN报文,用于关闭客户端到服务器的数据传输。第二次挥手(ACK):服务器收到FIN报文后,发送一个ACK报文确认收到了客户端的关闭请求。第三次挥手(FIN):服务器发送一个FIN报文,用于关闭服务器到客户端的数据传输。第四次挥手(ACK):客户端收到服务器的FIN报文后,发送一个ACK报文确认收到了服务器的关闭请求。在这个过程中,每个报文都需要对方确认收到。这是因为TCP是一个可靠的协议,它保证了数据传输的可靠性和有序性。四次挥手的过程确保了双方都关闭了连接,并且没有任何数据丢失。需要注意的是,如果在四次挥手过程中出现任何一个报文丢失或超时,那么TCP连接将会一直保持打开状态,直到超时时间到达。因此,四次挥手的过程需要非常谨慎和可靠。

应用层

直接给用户提供服务。

作用:文件传输、管理,电子邮件,远程操作等。

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,工作在OSI模型的应用层;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
在这里插入图片描述

http的方法区别

  • GET在浏览器回退不会再次请求;POST会再次提交请求
  • GET请求会被浏览器主动缓存;POST不会,需要手动设置
  • GET请求参数会完整被放到浏览器的url上,或者历史记录中;POST中的参数不会
  • GET请求参数由于浏览器显示,因此长度是有限制的;POST没有限制,并且post支持文件类参数等
  • GET参数暴露在浏览器中,不安全,POST放在报文内部更安全
  • GET参数通过URL传递;POST放在request body中
  • GET一般用于查询信息,POST一般用于提交信息
  • GET产生一个TCP数据包;POST产生两个TCP数据包

常见状态码介绍

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库

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常用开发板接口执行器

0、常用开发环境 1. cubMX 1.STM32CubeMX_GPIO配置 GPIO配置 2.STM32CubeMX_UART配置 UART配置 3.STM32CubeMX_外部中断 外部中断 4.STM32CubeMX_定时器配置 定时器配置 5.STM32CubeMX_PWM配置 PWM配置 6.STM32CubeMX_ADC配置 ADC配置 7.STM32CubeMX_ 8.STM32Cu…

【LabVIEW FPGA图形化】IP集成节点:IIC通信实验

目录 一、前情提要二、FPGA蔡氏定律三、LabVIEW FPGA IP集成节点网表文件的编写四、IIC时序仿真五、FPGA图形化程序编写总结 一、前情提要 上一节内容介绍了图形化FPGA的USB通信,USB通信主要用于FPGA与上位机之间的通信,对于器件(芯片&#…

人工智能前沿知识

本来想着初试完学习一下李沐大神的《动手学深度学习》这本书的,但是时间仓促,完全来不及。只能先自行了解一些知识,之后再深入了解。 这里为面试应答,问了chatgpt一些关于AI前沿的知识: 还需要再了解一番:…

Squid代理服务器应用及配置(图文详解)

Squid缓存代理 Squid代理服务器代理的工作机制代理的基本类型传统代理透明代理反向代理 使用代理的好处 实验环境部署squid代理安装关闭防护墙安装依赖环境编译安装Squid脚本解释创建软连接及用户,改组 修改Squid的配置文件squid检查启动 编写Squid服务脚本服务启动…

chatgpt赋能python:Python方法重写:提升代码复用性和性能优化

Python方法重写:提升代码复用性和性能优化 Python是一门简洁、易读易写的语言,但在实际的编程开发中,我们往往会遇到代码复用性不高、性能不够优化等问题。而方法重写是一种有效的方式来解决这些问题。 什么是方法重写? 方法重…

chatgpt如何联网?访问2021年之后的信息

介绍 一般来说,chatgpr稚嫩恶搞访问2021年之前的事。 chatgpt如何联网? 如何访问2021年之后的信息? 方法 打开edge浏览器啊,添加拓展 “webchatgpt” 举例子

白痴学日语系列之模拟题

题型一、单词 汉字对应的假名 1、小卖部 2、杂志 3、礼物 おみやげ 4、公司职员 5、老师 假名对应的汉字 6、社长,总经理 7、星期六 8、房间 9、迟到 10、下个月 选平假名对应的片假名 11、美国 12、足球 13、出租车 14、百货商场 15、便利店 题型二、选择题 1…

白痴学日语系列之初识日语(三)

每日记单词 足/脚[あし]2 a shi 脚;腿 【记】あ(恶)し(像)→身上脏的地方→腿;脚 联想记忆,阿西吧(阿西吧,意思类似于我去,是表示对某一事件或者某一事物感…

chatgpt赋能python:PythonRPG游戏:带你进入主角的魔幻冒险世界

Python RPG游戏:带你进入主角的魔幻冒险世界 Python是一种广泛使用的高级编程语言,被用于开发各种应用程序和游戏。其中,RPG游戏是其中最受欢迎的游戏之一。Python的各种优点使其成为开发RPG游戏的一个理想选择。在这篇文章中,我…

游戏思考26:游戏服务器压力测试文档(新增linux相关命令,02/10未完待续)

文章目录 一、压力测试关注点二、计算最耗时的加载操作1)从数据库读取数据,对加载的类型进一步划分各种类型,计算最耗时操作2)查看CPU随着在线人数的变化所占百分比3)查看内存变化4)备注 三、MMORPG服务器对…

C语言——飞机游戏

目录 前言 一、飞机游戏的代码 二、代码解析 1、代码重构 1)主函数 2)其它函数 2、新的子弹 3、敌机 1)静止的敌机 2)敌机的移动 3)击中敌机 4、清屏功能 总结 前言 代码参考了《C语言课程设计与游戏开发…

谈一谈游戏AI - 综述

成功者总是善于发现 “可学之处”,执着精进;失败者总是善于发现 “不可学之处”,怨天尤人。 郑重说明:本文适合对游戏开发感兴趣的小白初学者,本人力图将事物用简单的语言表达清楚,但水平有限,能…

安卓版ChatGPT要上线了!

Datawhale干货 最新:ChatGPT安卓版, 来源:机器之心 自发布以来,ChatGPT 一直受到高度关注,在全球范围内吸引了大量用户。有机构统计认为,早在今年 1 月,ChatGPT 的用户量就已经超过了一亿。彼时…

必看!大语言模型调研汇总!!

作者:guolipa 知乎 自从ChatGPT出现之后,各种大语言模型是彻底被解封了,每天见到的模型都能不重样,几乎分不清这些模型是哪个机构发布的、有什么功能特点、以及这些模型的关系。比如 GPT-3.0 和 GPT 3.5 就有一系列的模型版本…

一网打尽!国内外50多个大模型调研汇总

因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享 点击关注#互联网架构师公众号,领取架构师全套资料 都在这里 0、2T架构师学习资料干货分 上一篇:ChatGPT研究框架(80页PPT,附下载)…

大语言模型调研汇总

自从ChatGPT出现之后,各种大语言模型是彻底被解封了,每天见到的模型都能不重样,几乎分不清这些模型是哪个机构发布的、有什么功能特点、以及这些模型的关系。比如 GPT-3.0 和 GPT 3.5 就有一系列的模型版本和索引,还有羊驼、小羊驼、骆驼 ...... 于是浅浅的调研了一下比较有…

总结从T5、GPT-3、Chinchilla、PaLM、LLaMA、Alpaca等近30个最新模型

自从ChatGPT出现之后,各种大语言模型是彻底被解封了,每天见到的模型都能不重样,几乎分不清这些模型是哪个机构发布的、有什么功能特点、以及这些模型的关系。比如 GPT-3.0 和 GPT 3.5 就有一系列的模型版本和索引,还有羊驼、小羊驼…

一网打尽!国内外大模型调研汇总

作者 | guolipa 整理 | NewBeeNLP https://zhuanlan.zhihu.com/p/614766286 大家好,这里是 NewBeeNLP。 自从ChatGPT出现之后,各种大语言模型是彻底被解封了,每天见到的模型都能不重样,几乎分不清这些模型是哪个机构发布的、有什…

学习笔记借助chatGPT生成excel统计公式

要求:通过Excel公式提取ExcelB列表格中邮箱名称(之前的字符) 知道老板要求后,我们就需要写出对应的提取公式,可是对于Excel公式使用不熟练的人来说,这个公式如何写呢?这时候我们就需要借助chatG…

《辉煌优配》6G技术推进下,CPO引领光通信发展新方向

3月1日,中国工业和信息化部部长金壮龙在国务院新闻办新闻发布会上表明,工信部将研究制定未来产业开展行动计划,加快布局人形机器人、元宇宙、量子科技等前沿范畴,全面推动6G技能研制。2月27日,2023年世界移动通讯大会&…