基于OSI七层参考模型了解网络协议原理

本文深入探讨了OSI七层参考模型及其在网络通信中的作用,特别是TCP协议在模型中的实现。从应用层到物理层,详细解释了各层的功能,包括TCP的三次握手和四次分手过程,以及网络层的IP协议和链路层的ARP协议。通过实例展示了数据如何在不同层次间传输,揭示了网络通信的基本原理。
摘要由CSDN通过智能技术生成

学习网络首先要了解osi七层参考模型

为什么要有osi七层参考模型?
1.分层解耦,只要对应上下层的接口没有改变,每一层只需要关注自己的实现即可
2.应用层只需要关心业务实现,无需重复造轮子
七层参考模型图:
在这里插入图片描述

TCP协议是基于osi七层参考模型实现的
TCP分层:应用层(会话层、表示层),传输控制层,网络,数据链路,物理层
一.应用层
应用层协议举例:如http nc命令 和redis通讯等。
应用层协议主要是数据如何表示,如何封装,这叫做协议标准(固定的格式http请求,客户端与服务端都要遵循,才能正常解析对方的数据进行通讯)
举例:
linux演示和www.baidu.com进行简单通讯
nc:表示和服务器建立一个TCP连接
在TCP连接的基础上使用HTTP协议规范的字符串去访问百度的主页
HTTP协议规范:请求方式+path+协议版本+换行符
在这里插入图片描述

二、传输控制层

应用层协议准备好数据发送时,调用传输控制层(包含TCP UDP)。
TCP协议:面向连接,可靠的传输控制协议
1)面向连接:连接是什么 就是客户端与服务器之间发送syn数据包,经过3次握手,双方在内存里开劈相互对应的资源,资源的开劈就代表了连接的建立
连接建立后在内核表示为所谓的socket
Socket:源ip:port−>目标ip:port唯一连接
举例:查看所谓的socket
使用nc建立一个tcp连接
在这里插入图片描述

使用命令查看建立的连接:箭头所指就是我与百度建立的连接,Recv-Q,Send-Q就是开辟的资源(输入与输出)
在这里插入图片描述

2)可靠性:3次握手是为了建立连接,双方都会发送确认的数据包ack,确认双方的输入输出都没有问题,并且客户端或者服务端每发一个包对方都会回送一个确认收到ack,这就是TCP的可靠性。
简单查看3次握手过程:
首先对某一块网卡进行抓包
在这里插入图片描述

使用curl对百度进行访问:
在这里插入图片描述

然后看抓包情况:
在这里插入图片描述

三次握手之后双方可以进行数据传输,传输完毕,四次分手
数据传输:如上图 经过三次握手后,客户端向服务器发送一个HTTP协议的字符串来请求百度的资源,百度立刻回复一个ack来确认,我收到你得请求了,然后再给客户端发送数据包,这也说明了TCP的可靠性。
四次分手:具体交互见上图
数据传输完毕之后双方要释放资源
为什么要释放资源:因为资源是有限的 ,一台服务器端口号最大(65535),就和java使用连接或者流之类的道理是一样的。
总结:三次握手->数据传输->四次分手 成为一个最小粒度 不可被分割

三、网络层(IP)
传输控制层从三次握手建立连接−数据传输-四次分手断开连接。这个流程是线性的,完成这些工作还需要调用其他层次
应用程序想要建立连接socket,首先调用内核,内核会先准备三次握手的第一个包,调用网络层(ip协议),由网络层决定这个包怎么走
Rute -n 显示路由表,通过网卡配置生成 网卡配置:cat /etc/sysconfig/network-scripts/ifcfg-eth0
在这里插入图片描述

文字描述:
网络层决定从交换机直接把消息发出去还是从下一跳网关把这个消息发出去,这要看目标地址是否是本局域网。
如何计算是否走下一跳机制:通过目标地址与Genmak做按位与运算,然后与路由表Destination进行匹配
如果计算后是10.0.2.0就从交换机直接把数据包发出去,如果是0.0.0.0就会走下一跳机制,把数据包发送给默认网关,但目标ip不变
四、链路层(arp)
arp协议: 根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源
arp -a 查看MAC地址
arp协议抓包tcpdump -nn -i -eth0 port 80 or arp
在这里插入图片描述

3次握手的第一个包发送时首先在当前局域网由arp协议进行广播请求mac地址,找到下一跳网关的硬件地址并缓存,然后把目标地址和数据包发送给下一跳网关,网关发现目标ip不是自己,继续发给自己的下一跳网关,直到跳转到目标地址,这就是链路层。
最终跳转图如下:目标地址不变 变得是mac地址
在这里插入图片描述

总结:TCP/IP协议基于下一跳机制,ip是端点间的(发送端点->目标端点),mac是节点间的(每个节点间要换来换去)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值