OSI七层协议

"""
七层模型,亦称OSI(Open System Interconnection)。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。
它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。
"""

互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层

每层运行常见物理设备

OSI七层协议数据传输的封包与解包过程

物理层(Physical Layer)

主要用于确保计算机之间的物理连接介质 接收数据(bytes类型、二进制)

物理层功能:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0

传输介质(有线、无线)

有线:同轴电缆、双绞线、光纤
同轴电缆:分为细缆和粗缆
细缆:传输速度10Mbps,传输距离185m
粗缆:传输速度10Mbps,传输距离500m
双绞线(RJ-45):
分为屏蔽(STP)和非屏蔽(UTP)—8根铜丝分4组,两两相绞(减小干扰)—传输距离100米
568A线序:白绿、绿、白橙、蓝、白蓝、橙、白棕、棕
568B线序:白橙、橙、白绿、蓝、白蓝、绿、白棕、棕 (是568A的3612线序,常用水晶头的线序)
平行线:又称为直通线,线序相同。不同层设备使用平行线。
交叉线:线序不同。同层设备使用交义线。
全反线:又称为console线,配置线,线序相反,用于用户控制网络设备。
光纤
分为单模和多模,通过光导纤维(玻璃)传输光信号
发送光信号需要由电信号转为光信号:
电信号—>光信号:发光二极管(多模) 或 注入式激光二极管(单模)
光信号—>电信号: 发电二极管 无线: 红外线、微波、蓝牙、无线电、wimax
无线电:标准IEEE 802.11
蓝牙:标准IEEE 802.15
wimax:标准IEEE 802.16
全球移动通信系统(GSM)
路由器:三层设备,识别IP地址。
具有隔离广播域的功能,一个接口就是一个广播域,不同的接口在不同的网段(广播域)
交换机(网桥):二层设备,使用MAC地址,所有的接口默认在同一个广播域,一个接口是一一个冲突域。
集线器(hub):放大器 放大信号,属于1层设备,识别bit流,hub 上所有的接口都在同一个冲突域中。

数据链路层(Datalink Layer)

数据链路层由来:单纯的电信号0和1没有任何意义,必须规定电信号多少位一组,每组什么意思
数据链路层的功能:定义了电信号的分组方式

以太网协议

早期的时候各个公司都有自己的分组方式,后来形成了统一的标准,即以太网协议ethernet

ethernet规定

  • 一组电信号构成一个数据包,叫做'帧'
  • 每一数据帧分成:报头head和数据data两部分
报头 数据
head data

head包含:(固定18个字节)

  • 发送者/源地址,6个字节
  • 接收者/目标地址,6个字节
  • 数据类型,6个字节

data包含:(最短46字节,最长1500字节)

  • 数据包的具体内容

head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送

mac地址(物理地址)

head中包含的源和目标地址由来:ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即mac地址

mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)

该数字也称为:以太网地址/MAC地址



广播

有了mac地址,同一网络内的两台主机就可以通信了(一台主机通过arp协议获取另外一台主机的mac地址)

ethernet采用最原始的方式,广播的方式进行通信,即计算机通信基本靠吼

网络层(Network Layer)

网络层功能:引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址

IP协议:规定了所有接入互联网的计算机都必须有一个IP地址 类似于身份证号
mac地址是物理地址可以看成永远无法修改
IP地址是动态分配的 不同的场所IP是不同的
编址协议: IP(IPV4/IPV6)、IPX、apple talk、novell、NSAP
IPV4(32位二进制)编址方式:点分十进制法(0、1组成) IPV6(128位二进制)编址方式:冒分十六进制法 地址比较多:能够给地球上每一粒沙分一个IP地址
完整IP地址:IP地址+子网掩码
IP地址:网络位+主机位(IPV4)
地址分类(A、B、C、D、E):
A类地址:第一位固定为0
0XXX XXXX---0-127(1-126),子网掩码默认为255.0.0.0
B类地址:第一位固定为10
10XX XXXX---128-191,子网掩码默认为255.255.0.0
C类地址:第一位固定为110
110X XXXX---192-223,子网掩码默认为255.255.255.0
D类地址:第一位固定为1110
1110 XXXX---224-239,子网掩码默认为255.255.255.255
E类地址:第一位固定为1111
1111 XXXX---240-255,科研地址
特殊地址:
1、0.X.X.X 无效地址(保留地址),0.0.0.0无效地址,用于占位
2、127.0.0.1 回路地址,用于本地测试
3、网络号,主机位全为0,用于描述一个网段
4、255.255.255.255为受限广播地址
5、主机位全为1,定向广播地址
6、本地链路地址:link-local (169.254.0.0 255.255.00) 公有地址:具有全球唯一性标识地址
私有地址:不具唯一标识地址
10.0.0.0 255.255.0.0
172.[16,31].0.0 255.255.0.0
192.168.X(0,255).0 255.255.0.0
ARP协议:
arp协议由来:计算机通信基本靠吼,即广播的方式,所有上层的包到最后都要封装上以太网头,然后通过以太网协议发送,在谈及以太网协议时候,我门了解到 通信是基于mac的广播方式实现,计算机在发包时,获取自身的mac是容易的,如何获取目标主机的mac,就需要通过arp协议
arp协议功能:广播的方式发送数据包,获取目标主机的mac地址

cmd 界面输入ipconfig/all获取本地硬件地址

传输层(Transport Layer)

传输层提供会话层和网络层之间的传输服务,这种服务从会话层获得数据,并在必要时,对数据进行分割。然后,传输层将数据传递到网络层,并确保数据能正确无误地传送到网络层。

传输层的功能是它提供了端口号码的概念(port)
作用: 1.区分流量 2.定义数据传输方式 (可靠传输TCP、不可靠传输UDP)
PORT协议(端口协议)
用来标识一台计算机上面的某一个应用程序
范围:0-65535
特征:动态分配 0-1024 系统默认需要使用
1024-8000 常见软件的端口号
8000之后的
常见端口号(<256):
21端口号:FTP 文件传输服务
22端口号:SSH 远程登录(安全性较高 加密认证)- TCP
23端口:Telnet 远程登录服务 TCP
25端口:SMTP 简单邮件传输服务
53端口:DNS 域名解析服务 TCP和UDP
80端口:HTTP 超文本传输协议 TCP
110端口:POP3 “邮局协议版本”使用的端口
443端口:HTTPS 加密的超文本传输协议 TCP
520端口:RIP UDP TCP(transmission control protocol –传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据)
三次握手建链接
1.TCP协议也称为可靠协议(数据不容易丢失)
造成数据不容易丢失的原因不是因为有双向通道 而是因为有反馈机制
给对方发消息之后会保留一个副本 直到对方回应消息收到了才会删除
否则会在一定的时间内反复发送
2.洪水攻击
同一时间有大量的客户端请求建立连接 会导致服务端一致处于SYN_RCVD状态
3.服务端如何区分客户端建立链接的请求
可以对请求做唯一标识
四次挥手断链接
1.四次不能合并为三次
因为中间需要确认消息是否发完(TIME_WAIT)
UDP(user datagram protocol–用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层数据叫做段。
也称之为数据报协议、不可靠协议
早期的QQ使用的是纯生的(没有加任何额外功能)UDP协议
现在的QQ自己添加了很多技术和功能
使用UDP的原因是因为很简单、快捷、粗暴、只要指定对方的地址就可以发消息了
"""
URL:统一资源定位符(网址)
网址本质是有IP和PORT组成的!!!
IP+PORT:能够定位全世界独一无二的一台计算机上面的某一个应用程序 域名解析:将网址解析成IP+PORT
IP:PORT 实际使用冒号连接
114.55.205.139:80
"""

七层模型所用到的协议

tcp报文

tcp三次握手建链接和四次挥手断链接



会话层(Session Layer)

计算机收到了发送的数据,但是有那么多进程,具体哪个进程需要用到这个数据,则把他输送到那个进程。例如:如果80端口要用,所以系统内数据通信,将接收端口数据送至需求端口。

作用:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路

建立、管理、终止会话。(在五层模型里面已经合并到了应用层)
对应主机进程,指本地主机与远程主机正在进行的会话

表示层(Presentation Layer)

现在正确接收到了需要的数据,但是因为数据在传输过程中可能基于安全性,或者是算法上的压缩,还有就是网络类型不同。那就得有一个沟通的桥梁来整理整理,还原出原本应该有的表示,类似于一个拆快递的过程。
作用:数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层) 也负责数据加密。其提供了四种常见的加密方式。
(1)对称加密: 加密方与解密方使用相同的密钥
(2)非对称加密:一把私钥、N种公钥
(3)HASH 256加密
(4)光密

应用层(Application Layer)

是其他层对用户的已经封装好的接口,提供多种服务,用户只需操作应用层就可以得到服务内容,这样封装可以让更多的人能使用它

应用层功能:规定应用程序的数据格式。
应用层是最靠近用户的OSI层。这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务。
主要协议:FTP(文件传送协议)、Telnet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传送协议),POP3协议(邮局协议),HTTP协议(Hyper Text Transfer Protocol) 主要负责对软件提供接口以使程序能使用网络服务。术语“应用层”并不是指运行在网络上的某个特别应用程序 ,应用层提供的服务包括文件传输、文件管理以及电子邮件的信息处理。

python之路28 网络编程基础之OSI七层协议模型的更多相关文章

  1. 网络编程:软件开发架构、架构总结、网络编程前戏、OSI七层协议简介、OSI七层协议之物理连接层、数据链路层、网络相关专业名词、OSI七层协议之网络层

    目录 软件开发架构 架构总结 网络编程前戏 OSI七层协议简介 OSI七层协议之物理连接层 OSI七层协议之数据链路层 网络相关专业名词 OSI七层协议之网络层 OSI七层协议之传输层 软件开发架构 ...

  2. 网络编程简介(OSI七层协议,TCP协议原理,三次握手与四次挥手)

    目录 网络编程 软件开发架构 C/S架构 B/S架构 网络编程的发展史 互联网协议 1.物理连接层 2.数据链路层 3.网络层 4.传输层 5.应用层 三次握手四次挥手 三次握手建链接 数据传输 四次 ...

  3. 网络编程前戏和OSI七层协议

    目录 一.软件开发架构 1.什么是软件开发架构 2.软件开发架构 架构方式一:c/s架构 架构方式二:b/s架构 架构优劣势 二.架构总结 三.网络编程前戏 1.什么是网络编程 2.学习网络编程的目的 ...

  4. 11月15日内容总结——软件开发架构、网络编程介绍和OSI七层协议介绍

    目录 一.软件开发架构 1.什么是软件开发架构 2.软件开发架构 架构方式一:c/s架构 架构方式二:b/s架构 架构优劣势 二.架构总结 三.网络编程前戏 1.什么是网络编程 2.学习网络编程的目的 ...

  5. 软件开发架构,网络编程简介,OSI七层协议,TCP和UDP协议

    软件开发架构 什么是软件开发架构 1.软件架构是一个系统的草图. 2.软件架构描述的对象是直接构成系统的抽象组件. 3.各个组件之间的连接则明确和相对细致地描述组件之间的通讯. 4.在实现阶段,这些抽 ...

  6. 计算机网络基础知识-OSI七层协议模型

    一.物理层 物理层主要规定了物理设备的标准,如网线的类型.光纤的接口类型.各种传输介质的传输速率,物理层的数据以比特流(二进制)的形式存在,传输时将比特流转化为电流强弱,达到目的地之后再转化为比特流. ...

  7. 网络之OSI七层协议模型、TCP/IP四层模型

    13.OSI七层模型各层分别有哪些协议及它们的功能 在互联网中实际使用的是TCP/IP参考模型.实际存在的协议主要包括在:物理层.数据链路层.网络层.传输层和应用层.各协议也分别对应这5个层次而已. ...

  8. 01网络编程(基础知识+OSI七层协议+TCP与UDP)

    目录 01 网络编程 一.软件开发架构 1.1 CS架构 1.2 BS架构 二.网络理论前戏 2.1 简介 2.2 常见硬件 三.OSI七层协议(五层) 3.1 七层协议 3.2 五层协议 3.3 知 ...

  9. 网络编程---scoket使用,七层协议,三次挥手建连接,四次挥手断连接

    目录 == 网络编程 == 软件开发架构 网络编程 互联网协议 TCP协议的工作原理 Socket == 网络编程 == 软件开发架构 开发软件 必须要开发一套 客户端与服务端 客户端与服务端的作用 ...

随机推荐

  1. js红宝书学习笔记(一)引用类型

    一.引用类型 ECMAScript中,引用类型是一种数据结构称之为对象定义,,引用对象不同于传统面向对象语言所支持的类和接口等基本结构 创建Object 实例的两种方式: new操作符跟Object构 ...

  2. LeetCode题目答案及理解汇总(持续更新)

    面试算法题 dfs相关 全排列 #include<bits/stdc++.h> using namespace std; const int N = 10; //用一个path数组来存储每 ...

  3. python 矩阵切片

    假设n是一个numpy或者torch.tensor张量,那么 n[a:b,c:d]则代表从a到b行(不含b行),c到d列(不含d列)的切片 当然,ab.cd中的数是可以省略掉,只要abcd中有一个数即 ...

  4. 如何免安装使用 Python?推荐 17 个在线的 Python 解释器!

    作者:Al Sweigart 译者:豌豆花下猫@Python猫 英文:https://inventwithpython.com/blog/2022/10/30/17-online-python-ide ...

  5. .net 温故知新:【8】.NET 中的配置从xml转向json

    一.配置概述 在.net framework平台中我们常见的也是最熟悉的就是.config文件作为配置,控制台桌面程序是App.config,Web就是web.config,里面的配置格式为xml格式 ...

  6. costool - 腾讯云cos快捷工具。

    目录 使用截图 使用方法 配置文件 安装方法 其他 一个腾讯云cos(对象存储)非官方快速上传和下载的工具,使用官方go-sdk二次开发.可以用于以下场景. 备份一些配置文件,比如.bashrc .v ...

  7. 长事务 (Long Transactions)

    长事务 长事务用于支持 AutoCAD 参照编辑功能,对于 ObjectARX 应用程序非常有用.这些类和函数为应用程序提供了一种方案,用于签出实体以进行编辑并将其签回其原始位置.此操作会将原始对象替 ...

  8. BlockingQueue家族成员一览

    最近在复习多线程的知识,必然少不了要扫描一遍JUC包下的各个类或接口,今天就先来聊一聊阻塞队列BlockingQueue: BlockingQueue是jdk1.5发布的JUC包下的一个工具类,他提供 ...

  9. Asp.Net Core6.0中MediatR的应用CQRS

    1.前言 对于简单的系统而言模型与数据可以进行直接的映射,比如说三层模型就足够支撑项目的需求了.对于这种简单的系统我们过度设计说白了无异于增加成本,因为对于一般的CRUD来说我们不用特别区分查询和增删 ...

  10. [CS61A] Lecture 1&2&3. Introduction&Functions&Control

    [CS61A] Lecture 1&2&3. Introduction&Functions&Control 前言 CS61A是加州大学伯克利分校一门计算机专业课程,用于 ...