网络必知必会

网络模型与网络收发流程

我们经常说七层负载均衡、四层负载均衡,或者三层设备、二层设备等等,这里说的二层、三层、四层、七层都来自国际标准化组织制定的开放式系统互联通信参考模型(Open System Interconnection Reference Model),简称为 OSI 网络模型。OSI模型把网络互联的框架分为应用层、表示层、会话层、传输层、网络层、数据链路层以及物理层等七层,每个层负责不同的功能:
1、应用层,负责为应用程序提供统一的接口。
2、表示层,负责把数据转换成兼容接收系统的格式。
3、会话层,负责维护计算机之间的通信连接。
4、传输层,负责为数据加上传输表头,形成数据包。
5、网络层,负责数据的路由和转发。
6、数据链路层,负责 MAC 寻址、错误侦测和改错。
7、物理层,负责在物理网络中传输数据帧。
但是在 Linux 中,我们实际上使用的是另一个更实用的四层模型,即 TCP/IP 网络模型。TCP/IP 模型,把网络互联的框架分为应用层、传输层、网络层、网络接口层等四层:
1、应用层,负责向用户提供一组应用程序,比如 HTTP、FTP、DNS 等。
2、传输层,负责端到端的通信,比如 TCP、UDP 等。
3、网络层,负责网络包的封装、寻址和路由,比如 IP、ICMP 等。
4、网络接口层,负责网络包在物理网络中的传输,比如 MAC 寻址、错误侦测以及通过网卡传输网络帧等。
他们对应关系如下:

在这里插入图片描述

网络包的接收流程

1、当一个网络帧到达网卡后,网卡会通过 DMA 方式,把这个网络包放到收包队列中;
2、网卡通过硬中断,告诉中断处理程序已经收到了网络包。
3、网卡中断处理程序会为网络帧分配内核数据结构(sk_buff),并将其拷贝到 sk_buff 缓冲区中;
4、网卡中断处理程序,通过软中断,通知内核收到了新的网络帧。
5、内核协议栈从缓冲区中取出网络帧,并通过网络协议栈,从下到上逐层处理这个网络帧。比如,在链路层检查报文的合法性,找出上层协议的类型(比如IPv4还是IPv6),再去掉帧头、帧尾,然后交给网络层。
6、网络层取出IP头,判断网络包下一步的走向,比如是交给上层处理还是转发。当网络层确认这个包是要发送到本机后,就会取出上层协议的类型(比如 TCP 还是 UDP),去掉 IP 头,再交给传输层处理。
7、传输层取出 TCP 头或者 UDP 头后,根据 < 源 IP、源端口、目的 IP、目的端口 > 四元组作为标识,找出对应的 Socket,并把数据拷贝到 Socket 的接收缓存中。
8、应用程序就可以使用 Socket 接口,读取到新接收到的数据了。
发送流程就是接受流程的反过程,就不在赘述了。
收发流程可以总结成如下的图片:
在这里插入图片描述

TCP状态流转图

在这里插入图片描述
TCP状态流转图是一个很基础的问题,就不详细描述了,大家脑海里面一定要有这个知识体系。

网络常用命令与参数

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值