osi七层协议,哪七层,每层有哪些

一 网络的定义

# 上网的本质其实就是:上传和下载数据的过程

"""

最开始的时候,世界上的计算机是不能互相通信的,只是在局域网中通信随着技术的发展,世界范围的计算机开始通信了,通过网络来通信,这就是我们现在所说的互联网.

"""

网络的组成部分:物理连接设备(网线、交换机、路由器等) + 计算机通信协议(英语)

二 互联网通信协议:

1. OSI的七层协议

OSI七层协议是Open Systems Interconnection(开放式系统互联)模型中定义的计算机网络体系结构的概念模型。它将网络通信的功能划分为七个层次

1.1 物理层

功能:它是专门用来发送高低电频的,高电频对应数字1,低电频对应数字0 (01)1010(10101110)101010(1010)

物理介质

网线

ISO2110,IEEE802,IEEE802.2

'''单纯的发送高低电频是没有意义的,需要对电频进行分组,来表示不同的意思'''

物理层是不能做分组的

1.2 数据链路层:专门用来做分组的

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

该层中的数据称之为是一个数据帧(电信号的分组方式),数据帧由两部分组成:head(报头)+data(真实数据)

head部分:固定18个字节

发送者/源地址,6个字节

接收者/目标地址,6个字节

数据类型,6个字节

data:

最短46字节,最长1500字节

数据报的具体内容:head长度+data长度=最短64字节

PPP:点对点协议(Point to Point Protocol,PPP)为在点对点连接上传输多协议数据包提供了一个标准方法

ARP:地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议

mac地址:以太网协议

"""该层使用的是以太网协议,以太网协议规定,任何接入互联网的计算机都应该有一个

网卡,默认的就叫以太网(ethernet),以太网协议规定了每一个接入互联网的计算机都要有一

个网卡,每一个网卡出厂就印上了唯一的Mac地址"""

mac地址:每一个网卡都要有一个mac地址,每块网卡出厂时都被烧制上一个世界唯一的

mac地址,长度为48位2进制,通常由12位16进制数表示((前六位是厂商编号,后六位是流水

线号)

)

# Mac地址可以确定局域网中唯一一台计算机

1.3 网络层

网络层中的数据我们称之为是数据包

由来:弥补以太网广播方式的的局限性,必须找出一种方法来区分那些计算机属于同一片广播域,哪些不是,如果是就采用广播的方式发送,不是就采用路由的方式(向不同广播域/子网分发数据包),而mac地址是无法区分的

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

icmp协议:ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用

IP协议:规定网络地址的协议叫IP地址

这一层使用的是IP协议,该协议规定接入互联网的计算机都必须要有一个IP地址,该层的数据称之为是数据包. IP地址的分类:IPv4、IPv6

ip地址可以确定世界范围内任意的一个局域网

IP地址的组成:

# IPv4地址的格式:

范围:0.0.0.0----->255.255.255.255

IPV4版本规定网络地址由32位2进制表示:00000000.00000000.00000000.00000000---->11111111.11111111.11111111.11111111

一个ip地址通常写成四段十进制数,例:172.16.10.1

如何查看自己电脑的IP地址:

-Windows系统:ipconfig

-linux(macOS): ifconfig

1. 公网Ip:固定的,不变,需要购买的(服务器), 阿里云、腾讯云、百度云等,172.12.1.101

2. 内网IP:192.168.1.63,会变的

一个单纯的ip地址其实是不能唯一确定一台计算机,只能确定一个局域网,

确定一个局域网中的唯一一台计算机:IP地址+子网掩码

"""IP地址+MAC地址可以确定世界范围内唯一一台计算机!"""

# 其实,这里只需要IP地址就可以确定世界范围内的唯一一台计算机,为什么?

因为:有一个叫arp协议,可以根据IP地址计算出来Mac地址,所以,有了IP地址就相当于有了Mac地址

需要记忆:本地回环地址:127.0.0.1(就是找自己的电脑)

1.4传输层

由来:网络层的ip帮我们区分子网,以太网层的mac帮我们找到主机,大家使用的都是应用程序,因此需要识别这台主机上的应用程序

功能:如何标识这台主机上的应用程序,答案就是端口,端口即应用程序与网卡关联的编号,建立端口到端口的通信

该层使用的是TCP协议和UDP协议(暂时忽略),也称为是端口协议,我们一般使用端口来表示一个个的应用程序

# 一个端口表示一个正在运行的应用程序.

端口范围:0-65535、0-1023为系统占用端口

"""

1. 0-1024之间的端口号一般是系统使用的,我们尽量不要使用,否则有可能会造成端口冲突

2. 1025-8000之间的端口号一般是常用软件软件的端口号

MySQL的默认端口号:3306

Django的默认端口号:8000

3. 以后我们自己开发的软件,尽量使用8000之后的

"""

常用软件的端口号:

应用程序 FTP(端口21,20)

TFTP(69)

TELNET(23)

SMTP(25)

DNS(53)

HTTP(80)

SSH(22)

MYSQL(3306)

DNS:域名解析

baidu.com

jd.com

"""域名的本质其实就是IP地址,域名最终还是要解析成对应的IP地址,才能找到IP地址对应的计算机"""

baidu.com ---------DNS--------->172.1.1.1

# 我们有一个地方保存了域名和IP地址的对应关系

baidu.com 127.0.0.1

jd.com 127.0.0.2

taobao.com 127.0.0.3

...

# 文件的后缀名是给我们看的,文件可以有后缀名也可以没有,Linux中,一切皆文件.

1. 先从你自己电脑的hosts文件中查找的

2. 如果hosts文件没有找到对应的关系, 在去对应平台的关系中去找

3. 域名是需要去购买的,并且是需要备案的

1.5 会话层

负责建立、管理和终止表示层实体之间的会话连接

1.6 表示层

https=http+ssl 的加密

1.7 应用层

由来:用户使用的都是应用程序,均工作于应用层,互联网是开发的,大家都可以开发自己的应用程序,数据多种多样,必须规定好数据的组织形式

功能:规定应用程序的数据格式。

应用层协议:http,ftp,https,dns,SMTP,Telnet

1. 客户端,想用什么协议就用什么协议,客户端是我们自己开发的

2. 浏览器,我们就不能随便使用协议了,就要按照浏览器的协议,HTTP协议(先忽略)

3. HTTP协议

HTTPS协议

网址:https://www.baidu.com/?tn=49055317_42_hao_pg

协议://域名:端口/v1/v2?参数

"""

http特征:

1. 不安全,因为经过http协议的数据都是明文传输的

https协议:

2. 安全,经过https协议传输的数据都是密文传输

https = http + ssl证书

ssl证书:要去机构申请,国际组织,怎么用呢?

NGINX服务器,需要在nginx服务器的配置文件中配置一些代码才能使用.

"""

2.TCP/IP五层协议

物理层

数据链路层

网络层

传输层

应用层(会话层,表示层,应用层)

3.TCP/IP 四层协议

网络接口层(数据链路层,物理层)

网络层

传输层

应用层

"""每层都运行特定的协议,越往上越靠近用户,越往下越靠近硬件"""