网络基础知识

1. OSI七层网络模型

1 目的: 实现网络上的机器互联;
2 七层结构:
在这里插入图片描述
注:
1)比特流是在哪层传输的?
–》物理层
2)从数据链路层开始往上到表示层,都是字节流形式传输么?
–》是的,应用层开始转成可读的语言。
3) ARP协议是在哪层使用?
–》网络层,网络层有三大协议: ARP协议、路由协议、IP协议
4)传输层有哪些协议?区别是啥?
–》TCP协议、UDP协议。 TCP协议有三次握手和四次挥手的过程,保证传输的准确性,但是速度慢,通常用于对于传输准确性高的应用层协议(http/https等)。UDP协议传输速度快,但是不保证传输的准确性,通常用于准确性要求不高的应用层协议(DNS)

2. 数据封装过程

在这里插入图片描述
源目IP在发起请求时,就已经被DNS在应用层解析出来了。

3. TCP/IP 四层模型 vs OSI 七层模型

在这里插入图片描述

4. 网络层协议–ARP协议

  1. 概念: ARP协议又叫“地址解析协议”(Adress Resolution Protocol), 实现通过对方的IP地址(域名)寻找到对方MAC地址的功能。(以提供给数据链路层进行封装)
  2. ARP表查询方式
  1. 显示当前机器所有以获取到的MAC地址: cmd-》arp a
    在这里插入图片描述
    动态表示: 通过ARP协议寻找获得
    静态表示:通过本机配置

2) 清除所有的动态arp( 需要使用管理员权限)
arp -d *
在这里插入图片描述
3) ARP寻找IP对应的MAC地址过程:
在这里插入图片描述
决定两台主机是否能直接通信,是通过IP协议判断的。同一个子网则能直接通讯。
4) 通过wireshark抓包 具体分析:
a. ping 域名操作,让本机去寻找服务器对应的mac
在这里插入图片描述
b. 有疑惑? 为何ping b站后,在wireshark中抓包看不到ARP协议? 是因为不在同一个局域网?只会走网关?
在这里插入图片描述
c. 寻找MAC成功后,会在请求方和接收方本地的arp表中新增一条IP和MAC的映射关系,下次再遇到该IP时,直接从本地中寻找。
在这里插入图片描述

5. 网络层协议–IP协议

1) IPv4 和IPv6:
IPV4: 32位二进制(10进制表示)
IPV6: 128位二进制(16进制表示):
在这里插入图片描述
2) 如何判断是属于同一个子网:
根据子网掩码来判断网络号和主机号。子网掩码不一定全是255.255.255.0类型,也可能时255.255.234.0 ,只要前面非0 ,全是认为属于网络号在这里插入图片描述在这里插入图片描述
如子网掩码为:255.255.255.0,主机A:192.168.0.101, 主机B:192.168.0.109.
则:
前三段全是1, 表示前三段是网络号
后一段全是0, 表示后一段是主机号
A的主机号:101, B的主机号:109, 则A和B在同一个网段, A和B能直接通讯。

如果A和B不在同一个网段,则需要通过“路由协议”进行通讯;

6. 网络层协议–路由协议

路由协议的引出时针对“如果主机A和B在同一个网段里,则A和B可以直接通讯,如果A和B不在同一个网段里,则需要路由协议进行转发”
1) 查看本机路由表:
cmd -》 route print
在这里插入图片描述
跃点数越小,表示优先级越高; “在链路上”,表示直连, 可以直接通讯,不需要路由。
2) 每行的解释:
在这里插入图片描述
第一行:如果目标IP没有记录在本机路由表中,则是通过接口–本机(192.168.0.109)向网关–路由器(192.168.0.1)发送,然后目标IP会被记录在路由器自身的路由表中。所以,本地路由表只会记录同一个网段的IP,公网的会记录在路由器的7路由表中;
第二、三、四行:单独保留的127网段
第5行:本机的网关是192.168.0.1, 所以如果目标前缀是192.168.0.*,表示通过本机192.168.0.109直接访问。
第6行:本机访问本机
第7行:网络号(同本机一致)+主机号ip末尾为255,表示本地广播,即给192.168.0.*的主机发送广播
第9行:组播(组播:为了减少在广播中涉及的不必要的开销,可以只向特定的一部分接收方(可以是域内也可以是域间)发送流量。
广播:指将报文发送到网络中的所有可能的接收者)
第11行:广播,当主机没有找到目标机器时,会通过广播寻找,找到后,再经过第7行的内部广播进行通讯。

7. 传输层–TCP协议:

  1. TCP 传输控制协议,TCP的头部组成:
    在这里插入图片描述
    http/https 协议属于应用层协议,而TCP协议属于传输层协议。前者建立在TCP 协议的基础上
    各标志位含义:
    1) 序号:表示编号(sequence num),在TCP包过大时,需要分段,每段都会给一个编号,服务器在接收到后,会将接收到的包按照顺序重组;
    2)确认号:ack number, 客户端发出一个消息后,如何确认服务器已经收到?,需要通过ack number进行响应。ack = seq+1, 表示我希望客户端下一个包发的序号是seq+1
    3) 状态控制码:用于表示包的类型
    ACK–acknowledge : 确认位,=1时, 表示这是一个确认消息
    RST–Reset:重置位,=1时,表示这是消息释放连接。当TCP连接出现错误(如主机服务器崩溃时,申请断开连接后重新连接)
    SYN–同步,=1时,表示:1. 发起连接的消息;2. 确认接收连接的消息
    FIN–Final,终止=1, 表示报文发送完毕,请求释放连接,进入TCP四次挥手流程。

  2. TCP三次握手:建立连接
    TCP四次挥手:断开链接

  3. TCP三次握手过程:
    在这里插入图片描述
    三次握手示例:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    通常我们根据标志位来说改包类型,可以说SYN包、SYN ACK 包、ACK包。注意,HTTPS默认端口是443, HTTP默认端口是:80

  4. TCP 四次挥手:
    在这里插入图片描述
    四次挥手过程:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

8. 传输层协议–UDP协议

  1. 引入:
    因为TCP协议的安全性高,但是速度慢,而有些场景根本不需要保证不丢包,只要保证速度就行,如直播等,所以引入了传输层另一个协议:UDP协议;UDP全称:user datagram protocol 用户数据报协议。
  2. 头部结构:
    在这里插入图片描述
    UDP协议不会建立连接,所以属于无连接的传输协议。UDP协议没有各种标志位,所以属于不可靠协议。
    通常在:
    1)不需要可靠机制,只要求传输速度
    2)流媒体、多媒体游戏、IP电话
    3) 资源消耗小
  3. 这些应用层协议可以使用UDP协议: DNS, SNMP, DHCP(动态获取IP地址),RIP(路由协议)
    这些应用层协议可以使用TCP协议: HTTP,HTTPS,FTP(文件传输协议)
  4. 抓包演示:
    cmd中ping一个域名,发起DNS域名解析。

    在这里插入图片描述
    DNS默认端口53
  5. TCP和UDP的协议差别–面试常问:
    在这里插入图片描述

9. 应用层协议–http协议

  1. 引入: 应用层协议是规定客户端和服务器之间的数据传输格式

  2. 特点:1) 基于请求和响应模式
    2)无状态
    3)无连接
    在这里插入图片描述3. 各种请求类型的作用
    在这里插入图片描述

  3. http请求头部信息:
    在这里插入图片描述
    由于http协议无状态,引入Cookie机制
    示例:
    在这里插入图片描述

  4. http响应状态码:
    在这里插入图片描述

  5. http响应头部信息:
    在这里插入图片描述

  6. connection 解决无连接问题
    无连接含义:限制每次连接只处理一个请求,服务器在处理完客户端请求,并收到客户端的应答后,即断开连接。
    在这里插入图片描述
    在这里插入图片描述

  7. 无状态应用协议:
    在这里插入图片描述
    Cookie存在客户端,在用户关闭浏览器时,即消失。Session保存在服务器,在传递给客户端时,保存在客户端的内存里在这里插入图片描述比如:充值界面需要使用到前面登录返回的响应信息,如果是无状态,在充值时,就需要用户再次获取服务器返回的响应消息。Cookie中不单单存放用户名认证信息,还有一些商品信息等也会存放。

  8. http协议响应体格式:
    在这里插入图片描述

10. 应用层协议–https协议

  1. 引入:由于http协议是明文传输,导致有安全隐患,所以引入https协议,默认端口:443(http是80)
    在这里插入图片描述
    【注】:客户端证书主要是根据服务端的ssl证书而命名的,主要是用于验证浏览器的系统中客户端用户的身份证明的数字证书。一般可以通过网络用户的电子邮箱,使得客户端的用户信息与服务端的用户信息相匹配,以达到身份验证的效果。并且因为网络用户的电子邮箱中涉及到客户的身份信息,所以也能够对电子邮件中的数字签名和电子邮件进行加密措施。客户端证书,也就是客户端数字证书。
  2. https流程:
    在这里插入图片描述在这里插入图片描述
    【注】: 公钥是加密,私钥是解密。
    SSL协议版本:SSLv3, TLS1.0, TLS1.2 , 所以我们在抓取https协议的时候,看的是TLS的版本
    在这里插入图片描述
  3. Client Hello
    在这里插入图片描述
    Server hello:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

11. Wireshark 抓包:

1) 选择经过数据流的网卡或者无线网:
一般有数据流经过时,会有折线
在这里插入图片描述
2)点击鲨鱼图标开始抓包:
在这里插入图片描述
3) 操作,之后点击暂停。

12. Wireshark 抓包https请求:

  1. 通过设置SSLKEYLOGFILE环境变量,可以指定浏览器在访问SSL/TLS网站时将对应的密钥保存到本地文件中,有了这个日志文件之后wireshark就可以将报文进行解密了。
    在这里插入图片描述

  2. 配置wireshark,首选项->Protocls->TLS:
    在这里插入图片描述

  3. 重启浏览器,进行抓包:

同样的可以抓取到 HTTP 明文。
注:不抓包时记得把环境变量删掉,以避免性能浪费和安全性问题,电脑会非常卡。。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AsiaFT.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值