理解七层网络协议
osi体系结构
上三路(管数据)
应用层
通过http等,把传输的格式,数据打包
- 处理网络应用。直接为端用户服务,提供各类应用过程的接口和用户接口。
- 例如:HTTP、Tenlent、FTP、SMTP、NFS等。基于TCP的FTP、HTTP等都是可靠传输。基于UDP的TFTP、DHCP、DNS等都是不可靠传输
- FTP:可靠的文件传输协议,用于因特网上的控制文件的双向传输。
- HTTP:超文本传输协议,用于从WWW服务器传输超文本到本地浏览器的传输协议。使用SSL加密后的安全网
页协议为HTTPS。 - SMTP(发送方)和POP3(邮件接收方):简单邮件传输协议,是一组用于由源地址到目的地址传送邮件的规则,邮件报文采用ASCII训格
式表示 - Telnet:远程连接协议,是因特网远程登录服务的标准协议和主要方式。
- TFTP:不可靠的、开销不大的小文件传输协议。使用超时重传方式来保证数据的到达。
- SNMP:简单网络管理协议,由一组网络管理的标准协议,包含一个应用层协议、数据库模型和一组资源对象。该协议能够支持网络管理系统,泳衣监测连接到网络上的设备是否有任何引起管理师行关注的情况。
- DHCP:动态主机配置协议,基于UDP,基于C/S模型,为主机动态分配P地址,有三种方式:固定分配、动态分配、自动分配。
- DNS:域名解析协议,通过域名解析出P地址。
- 主要设备:网关
表示层
表示要传输的数据的格式(jpg或des加密数据等)
- 数据表示。使应用层可以根据其服务解释数据的涵义。通常包括数据编码的约定、本地句法的转换。
- 例如:JPEG、ASCII、GIF、DES、MPEG等
- 主要设备:网关
会话层
添加ssl协议等
- 互连主机通信。负责管理远程用户或进程间的通信,通常包括通信控制、检查点设置、重建中断的传输链路、名字查找和安全验证服务。
- 代表:RPC、SQL、https中的ssl等
- 主要设备:网关
传输数据(管 传输)
传输层
tcp进行传输。传输层主要有两个传输协议,分别是传输控制协议(Transmission Control Protocol,TCP)和用户数据报协议(User Datagram Protocol,UDP),这些协议负责提供流量控制、错误校验和排序服务。
- 端到端连接,传输报文段。实现发送端和接收端的端到端的数据分组传送,负责保证实现数据包无差错、按顺序、无丢失和无冗余的传输。其服务访问点为端口。
- 代表性协议有TCP、UDP、SPX等
- TCP:是整个TCP/IP协议族中最重要的协议之一,它在IP协议提供的不可靠数据服务的基础上,采用了重发技术,为应用程序提供了一个可靠的、面向连接的(要确保两端在线)、全双工的数据传输服务。CP协议一般用于传输数据量比较少,且对可靠性要求高的场合。如wx,打电话等一对一的。
- TCP建立在无连接的P基础之上,因此使用了3种机制实现面向连接的服务。比较有名的有tcp三次握手
- 使用序号对数据报进行标记。这种方式便于TCP接收服务在向高层传递数据之前调整失序的数据包。
- TCP使用确认、校验和定时器系统提供可靠性。当接收者按照顺序识别出数据报未能到达或发生错误时,接收者将通知发送者;当接收者在特定时间没有发送确认信息时,那么发送者就会认为发送的数据包并没有到达接收方,这时发送者就会考虑重传数据。
- TCP使用窗口机制调整数据流量。并且窗口的大小并不是固定的,而是会随着网络的情况进行调整。
- UDP:是一种不可靠的、无连接的协议,可以保证应用程序进程间的通信,与TCP相比,它的错误检测功能要弱得多。可以这样说,TCP有助于提供可靠性,而UDP则有助于提高传输速率。UDP协议一般用于传输数据量大,对可靠性要求不是很高,但要求速度快的场合。源主机在传送数据前不需要和目标主机建立连接。
- UDP是无连接的,发送数据之前不需要建立连接,因此比减少了开销和发送数据之前的时延。
- UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表。
- UDP是面向报文的。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。UDP一次交付一个完整的报文。(tcp分组、切割,udp不分组)
- UDP没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很适合多媒体通信的要求。
- UDP支持一对一、一对多、多对一和多对多的交互通信。
- UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短。
- TCP:是整个TCP/IP协议族中最重要的协议之一,它在IP协议提供的不可靠数据服务的基础上,采用了重发技术,为应用程序提供了一个可靠的、面向连接的(要确保两端在线)、全双工的数据传输服务。CP协议一般用于传输数据量比较少,且对可靠性要求高的场合。如wx,打电话等一对一的。
- 主要设备:网关
- 网关:高层(第4~7层)。最复杂的网络互联设备,用于连接网络层以上执行不同协议的子网。网关地址一般是
.1或.255,连接外网必经的 - 多层交换机:高层(第4~7层),带协议转换的交换机
- 网关:高层(第4~7层)。最复杂的网络互联设备,用于连接网络层以上执行不同协议的子网。网关地址一般是
下三路(管网络)
网络层
把ip地址包进来,像是写信人的地址、收信人地址。主要处理信息的路由和主机地址解析
-
分组传输和路由选择。通过网络连接交换传输层实体发出的数据,解决路由器选择(网段不同的问题解决)、网络拥塞、异构网络互联的问题。服务访问点为逻辑地址(1P网络地址)。
-
代表性协议有IP、IPX等
- IP:网络层最重要的核心协议,在源地址和目的地址之间传送数据报,无连接(源地址与目标地址之间不要求连接)、不可靠(容易丢失、被人截取)。它将差错检测和流量控制之类的服务授权给了其他的各层协议,这正是TCP/IP能够高效率工作的一个重要保证。网络层的功能主要由IP来提供,除了提供端到端的分组分发功能外,P还提供很多扩充功能。例如,为了克服数据链路层对帧大小的限制,网络层提供了数据分块和重组功能,这使得很大的IP数据包能以较小的分组在网络上传输。
- ICMP(Internet Control Message Protocol,网际控制报文协议):因特网控制报文协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。
- ARP(Address Resolution Protocol,地址解析协议)和RARP(Reverse Address Resolution Protocol,反向地址解析协议):地址解析协议ARP是将IP地址转换为物理地址;RARP是将物理地址转换为P地址。
- IGMP(Internet Group Management Protocol,网际组管理协议):网络组管理协议,允许因特网中的计算机参加多播,是计算机用做向相邻多目路由器报告多目组成员的协议,支持组播。
-
主要设备有:路由器
- 通过逻辑地址进行网络之间的信息转发,可完成异构网络之间的互联互通,只能连接使用相同网络层协议的子网
- 三层交换机:带路由功能的二层交换机
数据链路层
收件人等是mac地址
- 二进制位传输不安全,把二进制转化为以帧位的信息。建立、维持和释放网络实体之间的数据链路,把流量控制合并在一起。为MAC(媒介访问层)和LLC(逻辑链路层)两个子层。服务访问点为物理地址(MAC地址)。
- 代表性协议有IEEE802.3/.2、HDLC、PPP、ATM等
- 主要设备有:交换机、网桥
- 网桥:根据帧物理地址进行网络之间的信息转发,可缓解网络通信繁忙度,提高效率。只能够连接相同MAC层的网络
- 二层交换机:是指传统意义上的交换机,多端口网桥
物理层
转换为信号,通过网络传输。如双绞线等通信介质,光纤就是光转电
- 二进制位传输。通过一系列协议定义了通信设备的机械的、电气的、功能的、规程的特征。
- 代表性协议有RS232、V.35、RJ-45、FDD1等
- 主要设备有:中继器、集线器
- 中继器:对接收信号进行再生和发送,只起到扩展传输距离的作用,对高层协议是透明的,但使用个数有限(例如,在以太网中只能使用4个)
- 集线器:多端口中继器
相关文章:
理解七层网络协议
osi体系结构 上三路(管数据) 应用层 通过http等,把传输的格式,数据打包 处理网络应用。直接为端用户服务,提供各类应用过程的接口和用户接口。例如:HTTP、Tenlent、FTP、SMTP、NFS等。基于TCP的FTP、HTTP…...
网络协议——HTTP协议
目录 编辑 一,HTTP协议基本认识 二,认识URL 三,http协议的格式 1,发送格式 2,回应格式 四,服务端代码 五,http报文细节 1,Post与Get方法 2,Content_lenth 3&…...
八股面试——数据库——索引
索引的概念 B树的概念: 索引的作用 聚簇索引与非聚簇索引 聚簇索引就是主键值,在B树上,通过主键大小(数据在B树叶子节点按主键顺序排序)寻找对应的叶子节点,叶子节点保存的一整条记录。 非聚簇索引&#x…...
【二分查找】Leetcode 二分查找
题目解析 二分查找在数组有序可以使用,也可以在数组无序的时候使用(只要数组中的一些规律适用于二分即可) 704. 二分查找 算法讲解 当left > right的时候,我们循环结束,但是当left和right缩成一个点的时候&#x…...
Python+Vuecil笔记
Nginx 进入目录: C:\nginx-1.20.2\nginx-1.20.2 start nginx 开始 nginx -s stop 停止 nginx -s quit 退出CSS 通过标签去写css 循环展示数据 JS 点击时执行事件 Django 配置media 在seetings里面修改 STATIC_URL /static/ MEDIA_URL /upload/ MEDIA_ROOT os.pat…...
C语言关于随机数知识点的总结
在C语言中,随机数的生成通常依赖于特定的库函数,最常用的是 <stdlib.h> 头文件中的 rand() 函数。以下是对随机数知识点的总结、举例和分析: 随机数知识点总结 1.随机数种子:rand() 函数生成的随机数是伪随机数࿰…...
网络应用层和传输层
网络中有很多协议这些协议的不同导致了分层这一现象,不同层的主要功能不一样。 应用层:应用程序。数据具体如何使用 传输层:关注起点和终点 网络层:关注路径规划 数据链路层:关注相邻节点的转发 物理层࿱…...
Vue3:优化-从响应式数据中获取纯数据
一、情景说明 我们知道,Vue3中,创建变量时,常用ref、reactive来包裹,这样,这个变量就是响应式数据 然而,有时候,我们只需要纯数据 例如,我们在调用后端接口的时候,我们只…...
C#.手术麻醉系统源码 手麻系统如何与医院信息系统进行集成?
C#.手术麻醉系统源码 手麻系统如何与医院信息系统进行集成? 手术麻醉系统与医院信息系统的集成是一个关键步骤,它有助于实现信息的共享和流程的协同,从而提高医疗服务的效率和质量。手麻系统与lis、his、pacs等系统的对接是医院信息化建设的重…...
学习CSS Flexbox 玩flexboxfroggy flexboxfroggy1-24关详解
欢迎来到Flexbox Froggy,这是一个通过编写CSS代码来帮助Froggy和朋友的游戏! justify-content 和 align-items 是两个用于控制 CSS Flexbox 布局的属性。 justify-content:该属性用于控制 Flexbox 容器中子项目在主轴(水平方向)…...
springboot项目如何配置跨域?
在Spring Boot项目中配置跨域(CORS,Cross-Origin Resource Sharing)主要是为了允许来自不同源(不同的协议、域名或端口)的前端应用能够访问后端API。Spring Boot提供了多种方式来配置跨域支持。 1. 使用CrossOrigin注…...
实现第一个动态链接库 游戏插件 成功在主程序中运行 dll 中定义的类
devc 5.11编译环境 dll编译环境设置参考 Dev c C语言实现第一个 dll 动态链接库 创建与调用-CSDN博客 插件 DLL代码和主程序代码如下 注意 dll 代码中的class 类名需要 和主程序 相同 其中使用了函数指针和强制类型转换 函数指针教程参考 以动态库链接库 .dll 探索结构体…...
算法第三十九天-验证二叉树的前序序列化
验证二叉树的前序序列化 题目要求 解题思路 方法一:栈 栈的思路是「自底向上」的想法。下面要结合本题是「前序遍历」这个重要特点。 我们知道「前序遍历」是按照「根节点-左子树-右子树」的顺序遍历的,只有当根节点的所有左子树遍历完成之后…...
Rust---复合数据类型之字符串与切片(2)
目录 字符串操作删除 (Delete)连接 (Concatenate)字符串转义前情回顾: Rust—复合数据类型之字符串(1) 字符串操作 删除 (Delete) 删除方法仅适用于 String 类型,分别是: pop(),remove(),truncate(),clear(),此外还有drain() 方法。 pop 方法:pop() 方法返回一个 O…...
iOS 应用内网络请求设置代理
主要通过URLSessionConfiguration 的connectionProxyDictionary 属性 为了方便其他同学使用,我们可以通过界面来进行设定(是否开启代理、服务端、端口),从而达到类似系统上的设定 具体链接参考:为 iOS 网络请求设置代理…...
什么是MariaDB
2024年4月6日,周六晚上 今晚在Debian12上安装mysql时,运行后却发现是MariaDB MariaDB是一个开源的关系型数据库管理系统(RDBMS),它是MySQL的一个分支和替代品。MariaDB由MySQL的原始开发者之一Michael "Monty&qu…...
【面试八股总结】传输控制协议TCP(三)
参考资料 :小林Coding、阿秀、代码随想录 一、TCP拥塞控制⭐ 1. 慢启动 – Slow Start 慢启动是指TCP连接刚建立,一点一点地提速,试探一下网络的承受能力,以免直接扰乱了网络通道的秩序。 慢启动算法: 初始拥塞窗口…...
今年过去了多少天?(switch)
//今年已经过去了几天? #include <stdio.h> int monthday(int year,int month){switch(month){case 1:return 31;case 2:if ((year % 4 0 && year % 100 ! 0)||year % 400 0){return 29;}else{return 28;}break;case 3:return 31;case 4:return 30;…...
提升团队工程交付能力,从“看见”工程活动和研发模式开始
作者:张裕、雅纯 理想中的研发团队应当具有以下特征: 总是工作在最高优先级的事项上 理想的研发团队能够识别并始终集中精力在当前最紧迫和最有价值的任务上。这需要团队具备出色的项目管理能力和决策能力,以便能够正确评估优先级࿰…...
前端学习之DOM编程案例:全选反选案例
代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>全选反选</title> </head> <body><input type"checkbox" id"all">全选<ul><li><…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...
ThreadLocal 源码
ThreadLocal 源码 此类提供线程局部变量。这些变量不同于它们的普通对应物,因为每个访问一个线程局部变量的线程(通过其 get 或 set 方法)都有自己独立初始化的变量副本。ThreadLocal 实例通常是类中的私有静态字段,这些类希望将…...
接口 RESTful 中的超媒体:REST 架构的灵魂驱动
在 RESTful 架构中,** 超媒体(Hypermedia)** 是一个核心概念,它体现了 REST 的 “表述性状态转移(Representational State Transfer)” 的本质,也是区分 “真 RESTful API” 与 “伪 RESTful AP…...
