初识网络七层模型

2023-05-16

  • OSI 模型(Open System Interconnection model)是一个由国际标准化组织􏰁提出的概念模型,试图􏰁供一个使各种不同的计算机和网络在世界范围内实现互联的标准框架。

  • 它将计算机网络体系结构划分为七层,每层都可以􏰁供抽象良好的接口。了解 OSI 模型有助于理解实际上互联网络的工业标准——TCP/IP 协议。

一、七层网络模型的介绍

7应用层

  • OSI 的应用层协议包括文件的传输、访问及管理协议(FTAM) ,以及文件虚拟终端协议(VIP)和公用管理系统信息(CMIP)等;

  • 例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP

6表示层

  • 表示层􏰁供多种功能用于应用层数据编码和转化,以确保以一个系统应用层发送的信息 可以被另一个系统应用层识别;

  • 例如XDR、ASN.1、SMB、AFP、NCP

5会话层

  • 会话层建立、管理和终止表示层与实体之间的通信会话;

  • 例如ASAP、TLS、SSH、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、Winsock、BSD sockets

4传输层

  • 传输层向高层􏰁提供可靠的端到端的网络数据流服务。

  • 例如TCP、UDP、RTP、SCTP、SPX、ATP、IL

3网络层

  • 网络层负责在源和终点之间建立连接;

  • 例如IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、 X.25

2数据链路层

  • 数据链路层通过物理网络链路􏰁供数据传输。不同的数据链路层定义了不同的网络和协 议特征,其中包括物理编址、网络拓扑结构、错误校验、数据帧序列以及流控;

  • 例如以太网、令牌环、HDLC、帧中继、ISDN、ATM、IEEE 802.11、FDDI、PPP

1物理层

  • 物理层负责最后将信息编码成电流脉冲或其它信号用于网上传输;

  • 例如线路、无线电、光纤、信鸽

二、常用的协议

    • TCP(传输层)/IP(网络层)连接

  • 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。

  • 建立起一个TCP连接需要经过“三次握手”:

  1. 第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

  1. 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

  1. 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

  • 握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”(过程就不细写了,就是服务器和客户端交互,最终确定断开).

    • HTTP连接(应用层)

  • HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。

  • HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。

  • 由于HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”,要保持客户端程序的在线状态,需要不断地向服务器发起连接请求。通常的做法是即时不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道客户端“在线”。若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。

1)在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。

2)在HTTP 1.1中,则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。

    • SOCKET原理(会话层)

    • 套接字(socket)概念

套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。

应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。应用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。

    • 建立socket连接

在该文中以详细讲解

https://blog.csdn.net/m0_67407774/article/details/128207099
    • SOCKET连接与TCP/IP连接

具体在该文中详细讲解

https://blog.csdn.net/m0_67407774/article/details/128207099
  • “TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。这个就像操作系统会提供标准的编程接口,比如win32编程接口一样,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。”

  • 实际上,传输层的TCP是基于网络层的IP协议的,而应用层的HTTP协议又是基于传输层的TCP协议的,而Socket本身不算是协议,就像上面所说,它只是提供了一个针对TCP或者UDP编程的接口。socket是对端口通信开发的工具,它要更底层一些.

    • Socket连接与HTTP连接

  • 由于通常情况下Socket连接就是TCP连接,因此Socket连接一旦建立,通信双方即可开始相互发送数据内容,直到双方连接断开。但在实际网络应用中,客户端到服务器之间的通信往往需要穿越多个中间节点,例如路由器、网关、防火墙等,大部分防火墙默认会关闭长时间处于非活跃状态的连接而导致 Socket 连接断连,因此需要通过轮询告诉网络,该连接处于活跃状态。

  • 而HTTP连接使用的是“请求—响应”的方式,不仅在请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据。

  • 很多情况下,需要服务器端主动向客户端推送数据,保持客户端与服务器数据的实时与同步。此时若双方建立的是Socket连接,服务器就可以直接将数据传送给客户端;若双方建立的是HTTP连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端,因此,客户端定时向服务器端发送连接请求,不仅可以保持在线,同时也是在“询问”服务器是否有新的数据,如果有就将数据传给客户端。

  • http协议是应用层的协义

  1. 有个比较形象的描述:HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。

  1. 两个计算机之间的交流无非是两个端口之间的数据通信,具体的数据会以什么样的形式展现是以不同的应用层协议来定义的`如HTTP`FTP`...

三、TCP/IP分层模型

  • 由于OSI是一个理想的模型,因此一般网络系统只涉及其中的几层,很少有系统能够具有所有的7层,并完全遵循它的规定。

  • 在7层模型中,每一层都提供一个特殊的网络功能。从网络功能的角度观察:下面4层(物理层、数据链路层、网络层和传输层)主要提供数据传输和交换功能,即以节点到节点之间的通信为主;第4层作为上下两部分的桥梁,是整个网络体系结构中最关键的部分;而上3层(会话层、表示层和应用层)则以提供用户与应用程序之间的信息和数据处理功能为主。简言之,下4层主要完成通信子网的功能,上3层主要完成资源子网的功能

┌────------────┐┌─┬─┬─-┬─┬─-┬─┬─-┬─┬─-┬─┬─-┐

  │        ││D│F│W│F│H│G│T│I│S│U│ │

  │        ││N│I│H│T│T│O│E│R│M│S│其│

  │第四层,应用层 ││S│N│O│P│T│P│L│C│T│E│ │

  │        ││ │G│I│ │P│H│N│ │P│N│ │

  │        ││ │E│S│ │ │E│E│ │ │E│它│

  │        ││ │R│ │ │ │R│T│ │ │T│ │

  └───────------─┘└─┴─┴─-┴─┴─-┴─┴─-┴─┴─-┴─┴-─┘

  ┌───────-----─┐┌─────────-------┬──--------─────────┐

  │第三层,传输层 ││   TCP   │    UDP    │

  └───────-----─┘└────────-------─┴──────────--------─┘

  ┌───────-----─┐┌───----──┬───---─┬────────-------──┐

  │        ││     │ICMP│          │

  │第二层,网间层 ││     └──---──┘          │

  │        ││       IP            │

  └────────-----┘└────────────────────-------------─-┘

  ┌────────-----┐┌─────────-------┬──────--------─────┐

  │第一层,网络接口││ARP/RARP │    其它     │

  └────────------┘└─────────------┴─────--------──────┘

       TCP/IP四层参考模型

  TCP/IP协议被组织成四个概念层,其中有三层对应于ISO参考模型中的相应层。ICP/IP协议族并不包含物理层和数据链路层,因此它不能独立完成整个计算机网络系统的功能,必须与许多其他的协议协同工作。

  TCP/IP分层模型的四个协议层分别完成以下的功能:

第一层:网络接口层

  包括用于协作IP数据在已有网络介质上传输的协议。实际上TCP/IP标准并不定义与ISO数据链路层和物理层相对应的功能。相反,它定义像地址解析协议(Address Resolution Protocol,ARP)这样的协议,提供TCP/IP协议的数据结构和实际物理硬件之间的接口。

第二层:网间层

  对应于OSI七层参考模型的网络层。本层包含IP协议、RIP协议(Routing Information Protocol,路由信息协议),负责数据的包装、寻址和路由。同时还包含网间控制报文协议(Internet Control Message Protocol,ICMP)用来提供网络诊断信息。

第三层:传输层

  对应于OSI七层参考模型的传输层,它提供两种端到端的通信服务。其中TCP协议(Transmission Control Protocol)提供可靠的数据流运输服务,UDP协议(Use Datagram Protocol)提供不可靠的用户数据报服务。

第四层:应用层

  对应于OSI七层参考模型的应用层和表达层。因特网的应用层协议包括Finger、Whois、FTP(文件传输协议)、Gopher、HTTP(超文本传输协议)、Telent(远程终端协议)、SMTP(简单邮件传送协议)、IRC(因特网中继会话)、NNTP(网络新闻传输协议)等,这也是本书将要讨论的重点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

初识网络七层模型 的相关文章

  • 中文乱码问题

    解决HTML的表单中文乱码问题 step1 在html文件中 xff0c 添加 lt meta http equiv 61 content type content 61 text html charset 61 utf 8 gt 另外 x
  • IDEA mybatis XML文件格式化问题

    IDEA mybatis XML文件格式化问题 问题描述问题定位解决方案 问题描述 在Idea中 xff0c 对mybatis的xml文件进行格式化 xff0c 格式化的排版并不是我们想要的 xff0c 如下图 xff1a 问题定位 SQL
  • C#.NET视频C#网络编程 基础篇

    C NET视频 C 网络编程 基础篇 11 P2P应用编程下 C 网络编程 基础篇 9 同步TCP接收电子邮件 C 网络编程 基础篇 8 UDP网络会议 C 网络编程 基础篇 7 UDP组播 C 网络编程 基础篇 6 UDP广播 C 网络编
  • docker Got permission denied while trying to connect to the Docker daemon socket at unix

    为了让普通用户也能操作docker容器 xff0c 需要进行相应的配置 xff0c 否则报 Got permission denied while trying to connect to the Docker daemon socket
  • Dubbo+Zookeeper入门实例

    现在的公司接口调用是通过dubbo来实现的 xff0c 所以这两天就了解了一下dubbo是如何进行通信的 xff0c 写了一个最简单的例子 自上得来终觉浅 xff0c 绝知此事要躬行 前言 dubbo介绍 Dubbo是一个分布式服务框架 x
  • Dubbo之注册与发现

    从官网可以得到下面的架构图 角色说明 Provider 暴露服务的服务提供方 Consumer 调用远程服务的服务消费方 Registry 服务注册与发现的注册中心 Monitor 统计服务的调用次调和调用时间的监控中心 Container
  • dubbo泛化调用 http接口 随意调用dubbo服务

    dubbo支持泛化调用 1 开发工程中 有时候想要测试dubbo接口 需要自定义用例 xff0c 比较麻烦 2 无法调用服务器上的dubbo测试 3 无法随意调用多版本的服务 由于dubbo支持泛化调用 所以这些问题就迎刃而解了 Copyr
  • eclipse打包springboot项目

    eclipse打包springboot项目 右键项目run as中的maven build 输入clean package
  • elasticsearch7.x在k8s中的部署

    目录 一 说明 二 思路 三 部署 1 建nfs服务器 2 建持久卷 3 部署elasticsearch 四 附件 pv yaml内容 elasticsearch yaml内容 一 说明 本文章内容主要的参考来源是https www cnb
  • ERROR 2002 (HY000) Can‘t connect to local MySQL server through socket ‘varrunmysqldmysqld.sock‘

    今天执行mysql操作的时候出现了错误 xff1a ERROR 2002 HY000 Can t connect to local MySQL server through socket 39 var run mysqld mysqld s
  • HADDOP安装配置过程(新手初学)

    最近刚开始学习HADOOP xff0c 跟着一个视频初步了解了一些HADOOP的基本的安装过程 xff0c 感觉有必要总结一下 xff0c 以便后续可以温习一下 外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 img X
  • 重定向与转发

    什么是重定向 服务器向浏览器发送一个状态码302及一个消息头location xff0c 浏览器收到后 xff0c 会立即向 location所指向的地址发送请求 2 如何重定向 response sendRedirect String u
  • Hadoop家族学习路线图

    主要介绍Hadoop家族产品 xff0c 常用的项目包括Hadoop Hive Pig HBase Sqoop Mahout Zookeeper Avro Ambari Chukwa xff0c 新增加的项目包括 xff0c YARN Hc
  • ElasticSearch查询大于10000条的数据

    注 xff1a 部分概念介绍来源于网络 在使用es进行数据查询时 xff0c 由于es官方默认限制了索引一次性最多只能查询10000条数据 xff0c 查询第10001条数据开始就会报错 xff0c 错误的内容大致为 xff1a Resul
  • IDEA2021.3设置全局maven

    1 打开IDEA xff0c 点击File gt Close Project 2 关闭项目后出现如下界面 xff0c 点击 Customize gt All settings 3 在左侧搜索框内搜索maven 3 1更改Maven home
  • java -jar 参数说明

    jvm 选项 Java启动参数共分为三类 xff1b 其一是标准参数 xff0c 所有的JVM实现都必须实现这些参数的功能 xff0c 而且向后兼容 xff1b 其二是非标准参数 X xff0c 默认jvm实现这些参数的功能 xff0c 但
  • java 获取当前时间的三种方法

    1 通过Util包中的Date获取 Date date 61 new Date SimpleDateFormat dateFormat 61 new SimpleDateFormat 34 yyyy MM dd hh mm ss 34 Sy
  • Java中json字符串转换成maplist

    import java util ArrayList import java util HashMap import java util Iterator import java util List import java util Map
  • Java基础知识(知识点)

    1 Java是一种高级计算机语言 xff0c 是可以编写跨平台应用软件 完全面向对象的程序设计语言 2 Java划分为三个技术平台 xff1a Java SE Java EE Java ME Java SE是桌面应用 xff0c Java
  • Java short数据类型

    短 short 整型数据类型是16位有符号Java原始整数数据类型 其范围是 32768至32767 或 2 15至2 15 1 short整型数据类型没有字面量 但是 xff0c 可以将任何位于short 32768到32767 范围内的

随机推荐

  • Java面试题内容聚合

    往期内容聚合 设计模式内容聚合 面试技术文 Java岗 面试考点精讲 xff08 基础篇01期 xff09 Java岗 面试考点精讲 xff08 基础篇02期 xff09 Java岗 面试考点精讲 xff08 网络篇03期 xff09 Ja
  • JVM原理和优化

    JVM工作原理和特点主要是指操作系统装入JVM是通过jdk中Java exe来完成 通过下面4步来完成JVM环境 1 创建JVM装载环境和配置 2 装载JVM dll 3 初始化JVM dll并挂界到JNIENV JNI调用接口 实例 4
  • 抽象类与接口

    抽象方法 xff1a 只有行为的概念 xff0c 没有具体的行为实现 1 使用 xff1a abstract 关键字修饰 xff0c 并且没有方法体 2 包含抽象方法的类 xff0c 就一定是抽象类 3 抽象类不能直接创建实例 可以定义引用
  • Linux 下查看java进程

    Linux下查看和停止所有java进程 1 ps ef grep java 在Linux下查看所有java进程命令 xff1a ps ef grep java 停止特定java进程命令 xff1a kill 9 java进程序号 停止所有j
  • SpringCloud + Oauth2.0 + ShiroRedis + JWT + Gateway + Nacos + Nginx + ant-design-vue 电商 java 项目

    该项目是一套电商系统 xff0c 包括前台商城系统及后台管理系统 xff0c 基于SpringBoot 43 MyBatis实现 xff0c 采用Docker容器化部署 前台商城系统 xff1a 首页 商品推荐 商品搜索 商品展示 购物车
  • JavaEE进阶 - Spring Boot 日志文件 - 细节狂魔

    文章目录 1 志有什么 xff1f 2 志怎么 xff1f 3 自定义日志打印 准备工作 xff1a 创建一个 Spring Boot 项目 并在其中创建一个UserController类 xff0c 用来演示 在程序中得到 志对象 常 的
  • Spring注解详解

    一 Spring注解驱动开发入门 spring在2 5版本引入了注解配置的支持 xff0c 同时从Spring 3版本开始 xff0c Spring JavaConfig项目提供的许多特性成为核心Spring框架的一部分 因此 xff0c
  • hadoop启动HDFS命令

    启动命令 xff1a hadoop sbin start dfs sh 停止命令 xff1a hadoop sbin stop dfs sh
  • 女生学java开发难吗?女生适合学java吗?

    女生学java开发 xff1f Java开发看上去是一项系统性很强 入门很难的 高大上 学科 xff0c 前端 代码这些普通人基本不会接触到的名词 xff0c 吓怕了众多初学者 大部分人对于Java程序员都有一个既定印象 xff0c 那就是
  • 女生学java软件开发怎么样?就业前景如何?

    学java目前现状是男生多于女生 xff0c 从事java工作的也是男生多于女生 xff0c 那么这种现状是说女生学java不好找工作吗 一 女生适合从事java吗 在很多人的潜意识里 xff0c 认为女生是不适合从事java工作的 xff
  • 【 Docker Desktop stopped...】--------已经解决

    windows10系统 xff0c 安装docker 4 6 1版本 xff0c 提示Docker Desktop stopped xff0c 如图所示 在Stackoverflow有此问题 xff0c 底下给出的解决方案是卸载4 6 1版
  • JVM参数配置详解

    JVM调优总结 默认设置 Xms为JVM启动时申请的最小内存 xff0c 默认为操作系统物理内存的1 64但小于1G Xmx为JVM可申请的最大内存 xff0c 默认为物理内存的1 4但小于1G xff0c 默认当空余堆内存小于40 时 x
  • 认识MyBatis与Mybatis-plus及两者的区别

    一 认识Mybatis MyBatis 是持久层框架 xff0c 它支持定制化 SQL 存储过程以及高级映射 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集 MyBatis 可以使用简单的 XML 或注解来配置
  • 线程

    创建线程 xff1a 方法一 xff09 继承Thread类 实现步骤 xff1a 继承Thread类 覆盖run 方法 提供并发运程的过程 创建这个类的实例 使用start 方法启动线程 xff08 方法二 xff09 实现Runnabl
  • Linux中实现cp命令

    一 main函数的原型 main int argc char argv argc是所有参数的总数量 argv为参数 如该程序所示 xff1a 程序运行结果如图所示 xff1a 二 实现cp指令的思路 1 打开src c 2 通过lseek函
  • Linux系统编程—进程

    一 相关概念 1 进程与程序 xff1a 程序是一个静态的概念 如gcc xxx c o pro xff0c 磁盘中生成的Pro文件 xff0c 叫做程序 进程就是程序运行起来 xff0c 系统中就多了一个进程 2 查看进程的方法 xff1
  • Linux系统编程——进程间通信

    目录 一 无名管道 相关概念 相关函数介 相关说明 实战 二 有名管道 有名管道和无名管道的区别 有名管道和无名管道的相同点 有名管道的相关函数 实战 三 消息队列 消息队列的介绍 消息队列的特点 相关函数 实战 四 共享内存 共享内存优缺
  • 树莓派——初级编程

    一 没有屏幕的树莓派如何使用 通过串口连接树莓派 通过官方给的相关文件和软件 xff0c 对树莓派进行刷系统 设备破解 默认情况 xff0c 树莓派的串口和蓝牙连接 想办法断开蓝牙连接 xff0c 把串口用来数据通信 默认账号 xff1a
  • 树莓派gpio驱动编写——不使用wiringPi

    一 相关概念 总线地址 总线地址 xff1a cpu能够访问内存的范围 可以通过cat proc meminfo 来查看内存条大小 物理地址 物理地址 xff1a 硬件的实际地址或绝对地址 虚拟地址 虚拟地址 xff1a 逻辑 xff08
  • 初识网络七层模型

    OSI 模型 Open System Interconnection model 是一个由国际标准化组织 x10fc01 提出的概念模型 试图 x10fc01 供一个使各种不同的计算机和网络在世界范围内实现互联的标准框架 它将计算机网络体系