网络协议,各层功能,各层协议

一、OSI七层模型
OSI七层协议模型主要是:应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)。

二、五层体系结构
五层体系结构包括:应用层、运输层、网络层、数据链路层和物理层。
五层协议只是OSI和TCP/IP的综合,实际应用还是TCP/IP的四层结构。为了方便可以把下两层称为网络接口层。
三种模型结构:
在这里插入图片描述
在这里插入图片描述

三、各层的作用
1、物理层:比特
主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。

2、数据链路层:帧
定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。

3、网络层:数据报
在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。Internet的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层。

4、运输层:报文段/用户数据报
定义了一些传输数据的协议和端口号(WWW端口80等),如:
TCP(transmission control protocol –传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据)
UDP(user datagram protocol–用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层数据叫做段。

5、会话层:
通过运输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)

6、表示层:
可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。例如,PC程序与另一台计算机进行通信,其中一台计算机使用扩展二一十进制交换码(EBCDIC),而另一台则使用美国信息交换标准码(ASCII)来表示相同的字符。如有必要,表示层会通过使用一种通格式来实现多种数据格式之间的转换。

7.应用层:报文

1 第五层——应用层(application layer)
应用层(application layer):是体系结构中的最高。直接为用户的应用进程(例如电子邮件、文件传输和终端仿真)提供服务。
在因特网中的应用层协议很多,如支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议,DNS,POP3,SNMP,Telnet等等。
2. 第四层——运输层(transport layer)
运输层(transport layer):负责向两个主机中进程之间的通信提供服务。由于一个主机可同时运行多个进程,因此运输层有复用和分用的功能
复用,就是多个应用层进程可同时使用下面运输层的服务。
分用,就是把收到的信息分别交付给上面应用层中相应的进程。
运输层主要使用以下两种协议:
(1) 传输控制协议TCP(Transmission Control Protocol):面向连接的,数据传输的单位是报文段,能够提供可靠的交付。
(2) 用户数据包协议UDP(User Datagram Protocol):无连接的,数据传输的单位是用户数据报,不保证提供可靠的交付,只能提供“尽最大努力交付”。
3. 第三层——网络层(network layer)
网络层(network layer)主要包括以下两个任务:
(1) 负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫做IP数据报,或简称为数据报。
(2) 选中合适的路由,使源主机运输层所传下来的分组,能够通过网络中的路由器找到目的主机。
协议:IP,ICMP,IGMP,ARP,RARP
4. 第二层——数据链路层(data link layer)
数据链路层(data link layer):常简称为链路层,我们知道,两个主机之间的数据传输,总是在一段一段的链路上传送的,也就是说,在两个相邻结点之间传送数据是直接传送的(点对点),这时就需要使用专门的链路层的协议。
在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧(framing),在两个相邻结点之间的链路上“透明”地传送帧中的数据。
每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。典型的帧长是几百字节到一千多字节。
注:”透明”是一个很重要的术语。它表示,某一个实际存在的事物看起来却好像不存在一样。”在数据链路层透明传送数据”表示无力什么样的比特组合的数据都能够通过这个数据链路层。因此,对所传送的数据来说,这些数据就“看不见”数据链路层。或者说,数据链路层对这些数据来说是透明的。
(1)在接收数据时,控制信息使接收端能知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提取出数据部分,上交给网络层。
(2)控制信息还使接收端能检测到所收到的帧中有无差错。如发现有差错,数据链路层就简单地丢弃这个出了差错的帧,以免继续传送下去白白浪费网络资源。如需改正错误,就由运输层的TCP协议来完成。
5. 第一层——物理层(physical layer)
物理层(physical layer):在物理层上所传数据的单位是比特。物理层的任务就是透明地传送比特流。
6. 数据在各层之间的传递过程
这里写图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/557885.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vc2010 mysql5.7_VC2010利用MySQL++访问mysql. 及连接池示例

参加这个哥们的博客http://www.voidcn.com/article/p-mfnvxzca-cd.html 我的一个测试例子,用到了blob; #include #include #include #include #include using namespace mysqlpp; using namespace std; sql_create_3(sorttest,1,3,sql_int_unsigned,id,s…

java中下拉框select和单选按钮的回显操作

1.下拉框select的回显 <select name"departmentId" id"departmentId"><option value"0">请选择部门</option><c:forEach items"${departmentList }" var"department"><!-- 下拉框回显 -->&l…

fastdfs java token_fastdfs-client-java操作fastdfs

一、在https://github.com/happyfish100/fastdfs-client-java 下载客户端&#xff0c;解压后并执行ant命令&#xff0c;在E:\tools\libs\fastdfs\fastdfs-client-Java-master\src\build下会生成fastdfs_client.jar如图示二、mvn安装fastdfs_client.jar&#xff0c;在cmd中执行命…

idea编辑器中使用@Data注解无效解决办法

使用Data注解可以减少了以前的get和set等方法&#xff0c;但是在idea编辑器中不认识会在使用实体类元素时候找不到&#xff08;但是运行不会报错&#xff09; 所以可以添加插件

java spring 加载顺序_java – 如何执行spring配置类的加载顺序?

我正在一个多模块项目(maven)上使用spring-boot.每个模块都有自己的Configuration类.基本上我确实有如下的布局模块嵌入式(运行只调用SpringApplication.run())方法&#xff1a;ConfigurationEnableAutoConfigurationComponentScan("de.foobar.rootpackage")Import({…

@Mapper和@Repository的区别

Mapper和Repository的区别 1.相同点 Mapper和Repository都是作用在dao层接口&#xff0c;使得其生成代理对象bean&#xff0c;交给spring 容器管理 对于mybatis来说&#xff0c;都可以不用写mapper.xml文件 2.不同点 Mapper不需要配置扫描地址&#xff0c;可以单独使用&#x…

java xstream jar_Java库使用----xstream1.3.1

package com.xstream;import java.util.Map;/*** XStream可以自动生成相关的xml配置*/public class XstreamTest{private String moduleName;private Map env;public String getModuleName(){return moduleName;}public void setModuleName(String moduleName){this.moduleName…

在Spring Boot + Mybatis 中,使用@Repository失效

在Spring Boot Mybatis 中&#xff0c;使用Repository失效 在springboot 中&#xff0c;给mapper的接口上加上Repository&#xff0c;无法生成相应的bean,从而无法Autowired&#xff0c;这是因为spring扫描注解时&#xff0c;自动过滤掉了接口和抽象类&#xff0c;这种情况下可…

java中arg函数_main函数必须要带参数(String[] args)吗?

String[] args是main函数的形式参数,可以用来获取命令行用户输入进去的参数。java 本身不存在不带String args[]的main函数&#xff0c;java程序中去掉String args[]会出现错误。建个test类 在cmd中运行时输入java test a b c,并且在你的main函数里面加这段话&#xff1a;Syste…

git本地库(操作具体命令)

在任何盘符下创建本地仓库repository&#xff08;除git目录下&#xff09; 在项目目录创建新的本地仓库&#xff0c;并把项目里的所有文件全部添加、提交到本地仓库中去&#xff1a; $ git init #在当前的目录下创建一个新的空的本地仓库 Initialized empty Git repository…

用java做一个小游戏源代码_用java编写的小游戏源代码分析

用java编写的小游戏源代码分析1/5/2008人气&#xff1a;12951import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;public class GreedSnake implements KeyListener{JFrame mainFrame;Canvas paintCanvas;JLabel labelScore;SnakeModel snake…

idea右键项目没有git 【解决方法】

右键项目&#xff0c;没有git选项 解决方法&#xff1a; 进入settings,然后搜索version,按下图点击即可&#xff1a; over&#xff0c;解决&#xff1a;

java注解执行顺序_如何确保java中的注释执行顺序?

您可以使用Order注释确保自定义注释的顺序.例&#xff1a;第一个注释&#xff1a;Retention(RetentionPolicy.RUNTIME)Target(ElementType.METHOD)public interface CustomAnnotation {}AspectComponentOrder(value 1)public class CustomAnnotationInterceptor {Before("…

用java设计秒表_运用Java编写 秒表程序

import java.awt.*;import java.awt.event.*;import javax.swing.*;public class SecondJFrame extends JFrame implements ActionListener,FocusListener{ //响应单击、焦点事件private JTextField text;private JB…

GIT commit问题 No errors and 30 warnings found. Would you like to review them?

GIT commit问题 No errors and 30 warnings found. Would you like to review them?

java spring 条件注解_【Spring】Spring高级话题-条件注解-@Condition

进行本示例的演示&#xff0c;需要先配置好Maven和Spring哦、见:【Spring】基于IntelliJ IDEA搭建Maven分析通过profile&#xff0c;我们可以获得不同的profile&#xff0c;我们可以获得不同的Bean。Spring4提供了一个更通用的基于条件的Bean的创建&#xff0c;即使用Condition…

META-INF目录是干啥用的?

平时写的web项目打包成jar文件之后会发现里面不知道为啥多出了一个叫做META-INF的目录&#xff0c;点开之后发现里面还出现了一个manifest.mf文件。出于好奇我在网上找了找这个目录的用途&#xff0c;结果还是没有找到一个比较通俗的解释&#xff0c;我这种菜鸟对那种比较正规的…

解决springBoot 的templates中html引入css文件失败

我的情况是网页打开没有css效果 文件结构&#xff1a; 解决办法1&#xff1a;修改路径&#xff08;springBoot已经默认静态资源在static文件夹&#xff09;只需href“css/你的.css” 解决办法2&#xff1a;增加配置文件 解决办法3&#xff1a;使用 templates语法引入

java并发 cpu高_java高并发核心要点|系列5|CPU内存伪共享

上节提到的&#xff1a;伪共享&#xff0c;今天我们来说说。那什么是伪共享呢&#xff1f;这得从CPU的缓存结构说起。以下如图&#xff0c;CPU一般来说是有三级缓存&#xff0c;1 级&#xff0c;2级&#xff0c;3级&#xff0c;越上面的&#xff0c;越靠近CPU的&#xff0c;速度…

关于request.getRequestDispatcher()的两个方法

一、getRequestDispatcher() getRequestDispatcher()包含两个重要方法&#xff0c;分别是请求转发和请求包含。一个请求跨多个Servlet时&#xff0c;需要使用请求转发和请求包含。 首先需要获得一个RequestDispatcher 对象&#xff1a;RequestDispatcher rd request.getReque…