网络基础之协议

一、基础介绍

数据包的传输过程

在这里插入图片描述

数据传输过程中,源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库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值