当前位置: 首页 > article >正文

Linux复习--网络基础(OSI七层、TCP三次握手与四次挥手、子网掩码计算)

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除

一、ISO/OSI七层模型的分层与作用

1、ISO/OSI的七层模型

2、作用

  • 应用层为用户提供服务,给用户一个操作界面
  • 表示层数据提供表示;加密;压缩;
  • 会话层确定数据是否需要进行网络传递
  • 传输层
    • 对报文进行分组(发送时)、组装(接收时)
    • 提供传输协议的选择:
      • UDP(用户数据报协议):不可靠的,面向无连接的传输协议(快,不可靠)
      • TCP(传输控制协议):可靠的,面向连接的传输协议(可靠,准确,慢)
      • 端口封装
      • 差错校验
  • 网络层
    • IP地址编码
    • 路由选择:静态路由、动态路由
  • 传输链路层MAC地址编制、MAC地址寻址、差错校验
  • 物理层数据实际传输、电气特性定义

3、扩展

TCP/IP协议族的组成:

二、TCP三次握手和四次挥手

1、传输层协议

  • TCP协议(传输控制协议):可靠的,面向连接的传输协议
  • UDP协议(用户数据报协议):不可靠的,面向无连接的传输协议

2、TCP协议数据格式

3、TCP包头作用

  • 序号Seq序号,占32位,用来标记从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记
  • 确认号Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1
  • 标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下:
    • URG:紧急指针(urgent pointer)有效
    • ACK:确认序号有效
    • PSH:接收方应该尽快将这个报文交给应用层
    • RST:重置连接
    • SYN:发起一个新连接
    • FIN:释放一个连接

4、TCP三次握手

  • 第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
  • 第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack序号J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。
  • 第三次握手:Client收到确认后,检查ack序号是否为J+1,标志位ACK是否为1,如果正确则将标志位ACK置为1,ack序号=K+1,并将该数据包发送给Server;Server检查ack序号是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client和Server之间可以开始传输数据了。

5、TCP四次挥手

  • 第一次挥手:Client发送一个标志位为FIN包,Seq序号=m,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态
  • 第二次挥手:Server收到标志位FIN包后,发送一个标志位ACK给Client,Ack确认序号为m+1,Server进入CLOSE_WAIT状态
  • 第三次挥手:Server发送一个标志位FIN=1,ACK=1,Seq序号=n,Ack确认号=m+1,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态
  • 第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK标志给Server,Ack确认序号=n+1,Server进入CLOSED状态,完成四次挥手

三、子网掩码的计算

1、子网掩码的作用

  • 子网掩码必须和IP地址成对出现,否则没有意义
  • 子网掩码是用于给IP地址划分网络地址与主机地址
  • 和子网掩码1对应的IP地址,代表网络位;和子网掩码0对应的IP地址,代表主机位
  • 子网中只要1是连续的,就是合理子网掩码

2、网络地址与主机地址

3、标准子网掩码

4、子网掩码计算公式

  • 网络地址:把IP地址和子网掩码的二进制,按位进行逻辑与运算
  • 广播地址:有效子网掩码中,有几个0,就把IP地址的后几位换位1
  • 子网个数:有效子网掩码中,有几个1,子网数就是2的几次方
  • 主机个数:有效子网掩码中,有几个0,主机数就是2的几次方减2

5、IP地址分类

6、私有IP地址

致谢

在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。 

学习永无止境,让我们共同进步!!


http://www.kler.cn/news/317761.html

相关文章:

  • Docker学习笔记(四)单主机网络
  • 【Elasticsearch】-实现向量相似检索
  • Spring MVC 基本配置步骤 总结
  • Kafka 3.0.0集群部署教程
  • 【Proteus单片机仿真】基于51单片机的循迹小车避障+气体传感器和温度传感器系统
  • conda环境下module ‘numba.types‘ has no attribute ‘Macro‘问题解决
  • 【Qt】控件样式案例
  • 后端开发刷题 | 最小的K个数(优先队列)
  • Github上开源了一款AI虚拟试衣,看看效果
  • 20240924软考架构-------软考191-195答案解析
  • iOS 18 正式上線,但 Apple Intelligence 還要再等一下
  • 完结马哥教育SRE课程--服务篇
  • 02【Matlab系统辨识】白噪声
  • 【论文阅读】Act3D: 3D Feature Field Transformers for Multi-Task Robotic Manipulation
  • CSS 复合选择器简单学习
  • 128页4W字精品文档 | 某智慧能源集团数字化管理平台项目建议书
  • python:django项目知识点02——搭建简易授权码核销系统
  • Llama 3.1 技术研究报告-3
  • Superset 使用指南之优化数据可视化性能与扩展
  • SpringBoot整合InfluxDB(实战)
  • 视频美颜SDK核心功能解析:打造高效直播美颜工具方案详解
  • 力扣6 N字形变换
  • Python 方法传参详解
  • 【裸机装机系列】11.kali(ubuntu)-优化-扩展root分区存储空间
  • 快递预约取件API接口代码
  • 手机上轻松解压并处理 JSON 文件
  • [单master节点k8s部署]22.构建EFK日志收集平台(一)
  • 网站服务器怎么计算同时在线人数?
  • python基础(1)pyenv安装和对Django使用
  • Python编码系列—Python外观模式:简化复杂系统的快捷方式