文章涉及知识点较多,篇幅较长,阅读时间较久,建议对照目录慢慢看,有错误欢迎指出。
一、osi七层模型 & osi五层模型
1.osi的基本概念和原则
osi模型是什么:
- 开放式系统互联开放式系统互联(一种概念模型)
- 七层结构的体系模型,每一层都包含多个实体,处于同一层的实体称为对等实体。
- 采用分层结构技术,每层实现不同的功能,每层功能以协议形式正规描述,协议定义了某层同远方一个对等层通信所使用的一套规则和约定。每一层向相邻上层提供一套确定的服务,使用与之相邻的下层所提供的服务。
- 每一层都与一个远方对等层通信,但实际上该层所产生的协议信息单元是借助于相邻下层所提供的服务传送的。因此,对等层之间的通信称为虚拟通信。
osi有什么用:
为计算机互连构成网络提供标准框架
osi层次划分原则:
1)同一层中各个网络节点具有相同的层次结构,具有相同的功能
2)同一节点内相邻层之间通过接口进行通信
3)七层结构中的每一层使用下一层提供的服务,并且向其上层提供服务
4)不同节点的同等层按照协议实现对等层之间的通信
借鉴图片理解:
2.osi七层模型各个层功能概述
1)物理层 Physical
-
定义: 定义系统的电气、机械、过程和功能的标准,主要负责比特流和电压、光线等传输方式之间建立互换模式,并且依据【比特】流进行实时性传输
-
主要功能:利用传输介质为数据链路层提供物理链接,实现比特流
物理层传输的基本单位是比特流,即0和1,也就是最基本的电信号或光信号,是最基本的物理传输特征。
的透明传输,尽可能屏蔽掉具体传输介质和物理设备的差异,使其上面的数据链路层不必考虑网络的具体传输介质是什么
2)数据链路层 Date Link
-
定义:在通信实体间建立数据链路联接,传输的基本单位为【帧】
-
主要功能:为网络层提供差错控制和流量控制服务。数据链路层由MAC(介质访问控制子层)和LLC(逻辑链路控制子层)组成。
介质访问控制子层的主要任务是规定如何在物理线路上传输帧。逻辑链路控制子层对在同一条网络链路上的设备之间的通信进行管理。数据链路控制子层主要负责逻辑上识别不同协议类型,并对其进行封装。
也就是说数据链路控制子层会接受网络协议数据、分组的数据报并且添加更多的控制信息,从而把这个分组传送到它的目标设备。
3)网络层 Network
-
定义:互联网是由多个网络组成在一起的一个集合,正是借助了网络层的路由路径选择功能,才能使得多个网络之间的联接得以畅通,信息得以共享。【包】
-
主要功能:为数据在节点之间传输创建逻辑链路,通过路由选择算法为分组选择最佳路径,从而实现拥塞控制、网络互联等功能。网络层是以路由器为最高节点俯瞰网络的关键层,它负责把分组从源网络传输到目标网络的路由选择工作。
4)传输层 Transport
-
定义:传输层是网络体系结构中高低层之间衔接的一个接口层。传输层不仅仅是一个单独的结构层,而是整个分析体系协议的核心。【段】
-
主要功能:为用户提供End—to—End(端到端)服务,处理数据报错误、数据包次序等传输问题。【它向高层屏蔽了下层数据的通信细节,使用户完全不用考虑物理层、数据链路层和网络层工作的详细情况。】传输层使用网络层提供的网络联接服务,依据系统需求可以选择数据传输时使用面向联接的服务或是面向无联接的服务。
5)会话层 Session
- 主要功能:负责维护两个节点之间的传输联接,确保点到点传输不中断,以及管理数据交换等功能。会话层在应用进程中建立、管理和终止会话。会话层还可以通过对话控制来决定使用何种通信方式(全双工或半双工)。会话层通过自身协议对请求与应答进行协调。 会话层主要管理不同主机上不同进程的通信内容,打造更加完整的协调机制,从而确保用户之间无论是建立对话还是释放会话连接,都能最大程度保证数据交换的及时性和规范性。【段文】
6)表示层 Presentation
- 主要功能:为在应用过程之间传送的信息提供表示方法的服务。表示层以下各层主要完成的是从源端到目的端可靠地的数据传送,而表示层更关心的是所传送数据的语法和语义。表示层的主要功能是处理在两个通信系统中交换信息的表示方式,主要包括数据格式变化、数据加密与解密、数据压缩与解压等。
在网络带宽一定的前提下数据压缩的越小其传输速率就越快,所以表示层的数据压缩与解压被视为掌握网络传输速率的关键因素。表示层提供的数据加密服务是重要的网络安全要素,其确保了数据的安全传输,也是各种安全服务最为重视的关键。
表示层为应用层所提供的服务包括:语法转换、语法选择和联接管理。表示层为应用层所提供的服务包括:语法转换、语法选择和联接管理。
7)应用层 Application
-
定义:模型中的最高层,直接面向用户
-
原则:用户的通信内容要由应用进程解决,这就要求应用层采用不同的应用协议来解决不同类型的应用要求,并且保证这些不同类型的应用所采用的低层通信协议是一致的。
-
作用:应用层中包含了若干独立的用户通用服务协议模块,为网络用户之间的通信提供专用的程序服务。需要注意的是应用层并不是应用程序,而是为应用程序提供服务。
3.osi五层
1) 物理层
- 通过光缆,电缆,双绞线,无线电波的联系方式去与交换机或是某些其他的网络机器连接。
- 负责发送电信号bit(会把数据链路层发过来的数据转换成电信号)
2) 数据链路层
- 以太网协议:
数据链路的由来:
- 单纯的电信号0和1没有任何意义,必须规定电信号多少位一组,每组什么意思
数据链路层的功能:
- 定义了电信号的分组方式即以太网协议 Ethernet
Ethernet 规定:
- 一组电信号构成一个数据包,叫做‘帧’
- 每一数据帧分成:报头head(固定18字节)和数据data(最短46字节,最多1500字节)两部分
head包含:(固定18个字节)
- 发送者/源地址,6个字节
- 接收者/目标地址,6个字节
- 数据类型,6个字节
data包含:(最短46字节,最长1500字节)
- 数据包的具体内容
- 超过最大限制就分片发送
- mac地址
head中包含的源和目标地址的由来:
- ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即mac地址
mac地址:
- 每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)
广播:
- 有了mac地址,同一网络内的两台主机就可以通信了(一台主机通过arp协议获取另外一台主机的mac地址)
要注意需要在同一个局域网内通信
3) 网络层
网络层的由来:
有了ethernet、mac地址、广播的发送方式,世界上的计算机就可以彼此通信了。
但问题是,世界范围的互联网是由一个个彼此隔离的小的局域网组成的,那么如果所有的通信都采用以太网的广播方式,那么一台机器发送的包全世界都会收到。
这就不仅仅是效率低的问题了,这会是一种灾难
通讯处理方式:
- 所以我们在传输数据的时候,路由器或者是交换机会先进行校验。
- 如果我校验到了我们是同一个局域网内的用户,那么就采用广播的方式去发送数据。
- 如果不是,就采用路由的方式:向不同广播域/子网分发数据包,mac地址是无法区分的,它只跟厂商有关
网络层的功能:
- 引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址
网络层协议的内容:
- IP协议
规定网络地址的协议叫ip协议,它定义的地址称之为ip地址,广泛采用的v4版本既ipv4,它规定网络地址由32位的二进制表示
范围0.0.0.0 - 255.255.255.255
一个ip地址同城写成四段十进制数,栗:172.16.10.1
#前面的是32位的2进制(每八位分为一段)
00000000.00000000.00000000.00000000=0.0.0.0
#后面的是四段十进制数,每一段对应的是8位2进制数
11111111.11111111.11111111.11111111=255.255.255.255
- IP地址分成两部分
- 网络部分:标识子网
- 主机部分:表示主机
注意:单纯的ip地址段只是标识了ip地址的种类,从网络部分或主机部分都无法辨识一个ip所处的子网
例:172.16.10.1与172.16.10.2并不能确定二者处于同一子网
子网掩码:
子网掩码是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。
比如,IP地址172.16.10.1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。
子网掩码运算(AND):
知道”子网掩码”,我们就能判断,任意两个IP地址是否处在同一个子网络。
方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。
IP数据包:
分为head部分(20~60 type)和data部分(最长为 65,515 type),无需位IP定义单独的栏位,直接放入以太网的data部分
而以太网数据包的”数据”部分,最长只有1500字节。因此,如果IP数据包超过了1500字节,它就需要分割成几个以太网数据包,分开发送了。
ARP协议:
ARP协议的由来:
因为计算机通信基本靠吼,即广播的方式,所有上层的包到最后都要封装上以太网头,然后通过以太网协议发送,在谈及以太网协议时候我们了解到通信是基于mac的广播方式实现,计算机在发包时,获取自身的mac是容易的,如何获取目标主机的mac,是一个很重要的问题,那就需要通过arp协议ARP协议功能:
广播的方式发送数据包,获取目标主机的mac地址
4) 传输层
传输层的由来:
网络层的ip帮我们区分子网,以太网层的mac帮我们找到主机,然后大家使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,等多个应用程序,那么我们通过ip和mac找到了一台特定的主机,如何标识这台主机上的应用程序,答案就是端口,端口即应用程序与网卡关联的编号。
传输层的功能:
建立端口到端口的通信。
5) 应用层
应用层的由来:
用户使用的都是应用程序,均工作于应用层,互联网是开发的,大家都可以开发自己的应用程序,数据多种多样,必须规定好数据的组织形式
应用层的功能:
规定应用程序的数据格式。
4.OSI参考模型与TCP/IP模型对比
1)层次结构(如图)
- 相同之处:都采用了分层体系结构;
- 不同之处:TCP/IP参考模型比OSI参考模型更简化
2)层次关系
- 相同之处:都是对等的层间通信;
- 不同之处:TCP/IP参考模型比OSI参考模型层次更清晰简练。
3)功能
- 在功能上,大致相同,在两个模型中,传输层及以上的各层都是为了通信的进程提供点到点、与网络无关的传输服务;
- TCP/IP参考模型比OSI参考模型有更好的网络管理功能。
二、常见的服务器系统和Web容器,以及服务器类型
1.前置概念理解
-
服务器系统和Web容器都是为了提供稳定、安全和高性能的服务器环境,以满足不同类型的应用程序的需求。
-
服务器系统和服务器类型是两个不同的概念。服务器系统通常指的是安装在服务器硬件上的操作系统,
比如Windows Server、Linux等。
而服务器类型则是指服务器用途或功能的分类,比如Web服务器、数据库服务器、文件服务器等。
-
Web容器通常与服务器系统配合使用。
比如,在Windows Server上可以安装IIS作为Web服务器,并在其上托管ASP.NET或其他Web应用程序。而在Linux服务器上可以安装Tomcat或Nginx来托管Java应用程序或静态网页。
2.常见的服务系统
1)Windows Server
由Microsoft开发的服务器操作系统,适用于Windows环境下的服务器应用。
2) Linux
1. 一种自由和开放源代码的操作系统,具有高度的稳定性和安全性,广泛用于各种服务器应用。
3) Unix
一类多用户、多任务操作系统,具有良好的稳定性和可靠性,常用于大型服务器和企业级应用。
4) macOS Server
基于Unix的操作系统,适用于苹果硬件设备,提供了一系列服务器功能和管理工具。
5)Chrome OS
Chrome OS是一种轻量级、快速启动的操作系统,它主要以网络为中心,使用Google Chrome浏览器作为主要的应用程序平台。Chromebook的设计宗旨是将用户的数据和应用程序存储在云端,通过互联网进行访问和处理,因此它更多地依赖于网络连接。
3.Web容器
是一种用于托管和运行Web应用程序的软件环境Web 容器(Web Container)也称为 Servlet 容器,是指能够运行 Java Servlet 和 JavaServer Pages(JSP)等服务器端技术的软件组件。Web 容器提供了一个环境,用于执行由 Java 编写的服务器端程序,并处理来自客户端的请求和响应。它通常作为 Web 服务器的一部分,用于处理动态内容和交互式的 Web 应用程序。
主要功能
-
Servlet 生命周期管理:负责加载、实例化、初始化、调用和销毁 Servlet 组件。
-
请求处理:接收来自客户端的 HTTP 请求,并将其传递给相应的 Servlet 进行处理。
-
线程管理:为每个请求创建一个独立的线程,以便并发处理多个请求。
-
会话管理:跟踪用户的会话状态,维护会话数据并处理会话超时等问题。
-
JSP 支持:解析 JSP 页面,将其转换为 Servlet 并执行。
一些常见的Web服务器
- Apache Tomcat
一个开源的Java Web容器,支持Java Servlet和JavaServer Pages(JSP)等技术,广泛用于Java Web应用程序的部署。
- Nginx
一个高性能的开源Web服务器和反向代理服务器,同时也可以作为Web容器使用,支持静态内容的快速传输和动态内容的负载均衡。
- Microsoft IIS
Internet Information Services(IIS)是由Microsoft开发的Web服务器,适用于运行在Windows服务器系统上的.NET应用程序
- Jetty
一个基于Java的轻量级Web容器,特点是启动速度快、占用资源少,适合嵌入式系统和低配置服务器。
4.服务器类型
服务器软件和服务器硬件
服务器硬件:一台性能、稳定性、扩展性比普通PC更强的一台电脑,也需要搭载操作系统。比如windows server,linux发行版等。
服务器软件:通常来讲,只要运行在服务器操作系统之上,绑定了服务器特定的IP地址,并且在某一个端口监听用户的请求,提供服务的软件,都可以叫它服务器软件。
静态服务和动态服务的区别
静态服务:一般返回静态资源。不同用户,无论何时,只要访问同一个服务,拿到的内容都是一模一样的。
动态服务:一般返回动态资源。用户登录一个网站的后台,会根据用户不同的身份和权限信息返回不同的内容和资源,所以看到的内容和页面不一定一样。
服务器种类
1)Web 服务器
Web 服务器是我们日常网络浏览中最常见的服务器类型之一。它们托管网站并通过互联网向客户端提供网页内容。这些服务器能够处理来自用户浏览器的请求,提供静态和动态的网页内容。Web 服务器的效率和性能对于确保用户获得快速响应的网页浏览体验至关重要。
HTTP服务器:由于当今Web服务器应用层通讯协议主要就是HTTP协议,基本上可以将HTTP服务器理解为和Web服务器对等。HTTP服务器只是把服务器上的资源通过HTTP协议形式传输给客户端,侧重于对于静态资源传输的支持,所以一般也称之为“静态服务器”。
2)Mail 邮件服务器
电子邮件在现代通信中起着不可或缺的作用,而邮件服务器负责处理电子邮件的发送、接收和路由。通过邮件服务器,我们可以方便地与世界各地的人进行沟通。这些服务器不仅处理邮件的物理传输,还确保邮件的安全性和隐私保护。
3)DNS 域名服务器
DNS 服务器是域名解析的关键组成部分。它们将人类可读的域名(例如 bytebytego.com[1])转换为计算机可理解的 IP 地址,使用户可以通过这些域名访问网站。这种转换过程无处不在,为用户提供了便捷的浏览体验。
4)代理服务器
代理服务器是一种位于客户端和其他服务器之间的中间服务器。它们提供额外的安全性、性能优化和匿名性。代理服务器充当了防火墙的角色,保护内部网络免受外部威胁。此外,它们还可以缓存资源,从而提高用户体验和网络性能。
5)FTP 服务器
FTP 服务器使文件传输变得简单而高效。无论是在家中还是在办公室,FTP 服务器都为用户提供了便捷的途径,使他们可以轻松地在网络上共享和传输文件。这在团队协作和数据共享方面尤为重要。
6)源 服务器
源服务器承载了中央内容源,这些内容会被缓存并分发到边缘服务器,以便更快地传递给最终用户。这种架构提高了内容的可靠性和传递效率,确保用户可以快速访问所需的信息。
三,常见网络设备
1,交换机 Switch
用于在局域网中连接多台计算机和网络设备,实现局域网内部的数据交换和转发。
2,路由器 Router
用于在不同网络之间传输数据包,实现网络之间的连接和路由转发。
3,防火墙
用于监控并控制网络流量,阻止未经授权的访问和恶意攻击,保护网络安全。
4,网络存储设备 NAS
用于存储和共享文件、数据以及备份,在局域网内提供文件存储和共享服务。
5,中继器 Repeater
用于放大和重新发送网络信号,扩大网络覆盖范围
6,网络集线器 Hub
用于将多台计算机连接在一起,共享网络通信介质
7,网络适配器 Network Adapter
用于连接计算机或设备到网络,并进行数据的发送和接收
8,网络打印服务器 Print Server
用于连接打印机到网络,使多台计算机能够共享打印资源
四,IP,域名,DNS,URL
1,IP
IP是指Internet Protocol(互联网协议),它是互联网上使用的一种网络协议,用于在网络中标识和定位设备(如计算机、路由器等)。IP地址是在Internet Protocol下的网络设备每个接口的唯一标识。
IPV4 & IPV6
- IPv4(Internet Protocol version 4)中,IP地址是一个32位的二进制数,通常以点分十进制表示,例如:192.168.1.1
- IPv6(Internet Protocol version 6)中,IP地址则是128位的二进制数,通常以冒号分隔的十六进制数表示,例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334【连续多个全为0的组可以省略,但只能省略一次,用双冒号 “::” 表示。】
通过特定的网络掩码(subnet mask)划分IP地址的不同部分,以确定网络地址和主机地址
- 网络掩码:
- 网络掩码是一个32位的二进制数字,用来指示IP地址中哪些部分是网络部分,哪些部分是主机部分。**网络掩码中的“1”表示对应位置上是网络部分,“0”表示对应位置上是主机部分。**通过与IP地址进行按位与操作,可以得到网络地址。
举例来说,假设有一个IP地址是192.168.1.100,对应的默认子网掩码是255.255.255.0。在这种情况下,192.168.1 是网络部分,100 是主机部分。而子网掩码告诉我们前24位是网络部分(因为255.255.255.0 转换为二进制就是前24位是1),后8位是主机部分。
2,域名
域名是互联网中用于标识和定位网站的字符串。它提供了对网站的易于记忆的方式,以替代复杂的 IP 地址。域名由多个部分组成,以点号(.)分隔。
例如,在域名www.example.com中,"www"是子域名,"example"是二级域名,"com"是顶级域名。
-
顶级域名(Top-Level Domain, TLD):位于域名最右边的部分,通常表示国家、地区或特定组织的标识。
常见的顶级域名包括".com"(商业)、".org"(非营利组织)、".net"(网络服务)、".gov"(政府机构)以及国家代码顶级域名如".cn"(中国)、".uk"(英国)等。
-
二级域名(Second-Level Domain):位于顶级域名的左边,是由域名注册者自定义的命名空间,用于标识特定的网站或组织。
例如,在"example.com"中,"example"就是二级域名。
-
子域名(Subdomain):位于二级域名的左边,可以进一步细分网站的不同部分或功能。
例如,在"[www.example.com](http://www.example.com/)"中,"www"就是子域名,通常用于指示网站的主要页面。
域名类型:
- 根域名服务器
- 顶级域名服务器(二级域名)
- 权限域名服务器
- 本地域名服务器
总之,域名是一个层次化的标识系统,通过层级结构来提供对网站的易于记忆和访问的方式。域名解析系统(DNS)将域名转换为对应的 IP 地址,以便在互联网上定位和访问网站。
3,DNS
域名和IP地址转化的枢纽DNS(Domain Name System)是一种用于将域名转换为对应IP地址的分布式命名系统。它充当了互联网上域名和IP地址之间的映射服务。
1)DNS域名解析过程
- 递归查询
DNS–>本地–>根–>顶级–>权限(查询完成原路返回) - 迭代查询
有本地域名服务器向【根】【顶级】【权限】依次查询,最终结果告诉主机
2)高速缓存
缓存一段时间内域名对应的ip地址
4,URL
URL(Uniform Resource Locator)是统一资源定位符的缩写,用于标识和定位互联网上的资源,如网页、图片、视频等。URL由多个组成部分构成,包括协议类型、主机名(或IP地址)、端口号、路径和查询参数等。
协议://主机名:端口号/路径?查询参数
- 协议:指定了客户端与服务器之间通信所使用的协议,如HTTP、HTTPS、FTP等。
- 主机名:指定了资源所在的主机或域名,可以是一个域名(如example.com),也可以是一个IP地址(如192.168.1.1)。
- 端口号:可选项,指定了服务器上监听的端口号,默认情况下,大多数协议都有默认的端口号(例如HTTP的默认端口号是80,HTTPS的默认端口号是443)。
- 路径:指定了资源在服务器上的位置,表示资源所在的具体文件或目录。
- 查询参数:可选项,用于传递额外的参数给服务器,参数之间使用
&
符号分隔。
eg.
https://example.com:8080/path/to/resource?param1=value1¶m2=value2
作用:
通过URL,可以精确定位和访问互联网上的各种资源。浏览器、网络爬虫等客户端程序可以使用URL来请求资源,并通过相应的协议与服务器进行通信和数据交换。
五,状态码
什么是HTTP状态码:
HTTP状态码是服务器返回给客户端的,其核心作用是web服务器来告诉客户端,当前网页发生的什么事,或者说当前web服务器的响应状态。所以HTTP状态码常用来判断和分析当前web服务器的运行状况。
7种常见的状态码:
状态码200:
状态码200表示服务器响应成功,也就是服务器找到了客户端请求的内容,并且将内容返回给客户端。
状态码302:
状态码302代表临时跳转。例如:URL地址A可以向URL地址B上跳转,但这并不是永久性的,在经过一段时间后,URL地址A还可能向URL地址C上跳转。
状态码301 :
状态码301和状态码302相似,不同的是状态码301往往代表的是永久性的重定向,值得注意的是,这种重定向跳转,从严格意义来讲不是服务器跳转,而是客户端跳转的。这个“跳”的动作是服务器是通过回传状态码301来下达给客户端的,让客户端完成跳转。
状态码304:
服务器通过返回状态码304可以告诉客户端请求资源成功,但是这个资源不是由服务器提供返回给客户端的,而是客户端本地浏览器缓存中就有的这个资源,因为可以从缓存中获取这个资源,从而节省传输的开销。
400:语法错误
401:数据库查无此人
状态码403:
状态码403代表请求的服务器资源权限不够,也就是说,没有权限去访问服务器的资源,或者请求的IP地址被封掉了。
状态码404:
状态码404代表服务器上没有该资源,或者说服务器找不到客户端请求的资源,是最常见的请求错误码。
状态码500:内部错误
状态码500代表程序错误,也就是说请求的网页程序本身报错了。在服务器端的网页程序出错。由于现在的浏览器都会对状态码500做一定的处理,所以在一般情况下会返回一个定制的错误页面。
六,常见端口
21 端口:21 端口主要用于FTP(File Transfer Protocol,文件传输协议)服务。
23 端口:23 端口主要用于Telnet(远程登录)服务,是Internet上普遍采用的登录和仿真程序。
25 端口:25 端口为SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务器所开放,主要用于发送邮件,如今绝大多数邮件服务器都使用该协议。
53 端口:53 端口为DNS(Domain Name Server,域名服务器)服务器所开放,主要用于域名解析,DNS 服务在NT 系统中使用的最为广泛。
67、68 端口:67、68 端口分别是为Bootp 服务的Bootstrap ProtocolServer(引导程序协议服务端)和Bootstrap Protocol Client(引导程序协议客户端)开放的端口。
69 端口:TFTP 是Cisco 公司开发的一个简单文件传输协议,类似于FTP。
79 端口:79 端口是为Finger 服务开放的,主要用于查询远程主机在线用户、操作系统类型以及是否缓冲区溢出等用户的详细信息。
80 端口:80 端口是为HTTP(HyperText Transport Protocol,超文本传输协议)开放的,这是上网冲浪使用最多的协议,主要用于在WWW(World Wide Web,万维网)服务上传输信息的协议。
99 端口:99 端口是用于一个名为“Metagram Relay”(亚对策延时)的服务,该服务比较少见,一般是用不到的。
109、110 端口:109 端口是为POP2(Post Office Protocol Version2,邮局协议2)服务开放的,110 端口是为POP3(邮件协议3)服务开放的,POP2、POP3 都是主要用于接收邮件的。
111 端口:111 端口是SUN 公司的RPC(Remote Procedure Call,远程过程调用)服务所开放的端口,主要用于分布式系统中不同计算机的内部进程通信,RPC 在多种网络服务中都是很重要的组件。
113 端口:113 端口主要用于Windows 的“Authentication Service” (验证服务)。
119 端口:119 端口是为“Network News Transfer Protocol”(网络新闻组传输协议,简称NNTP)开放的。
135 端口:135 端口主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务。
137 端口:137 端口主要用于“NetBIOS Name Service”(NetBIOS名称服务)。
139 端口:139 端口是为“NetBIOS Session Service”提供的,主要用于提供Windows 文件和打印机共享以及Unix 中的Samba 服务。
143 端口:143 端口主要是用于“Internet Message Access Protocol”v2(Internet 消息访问协议,简称IMAP)。
161 端口:161 端口是用于“Simple Network Management Protocol”(简单网络管理协议,简称SNMP)。
443 端口:43 端口即网页浏览端口,主要是用于HTTPS 服务,是提供加密和通过安全端口传输的另一种HTTP。
554 端口:554 端口默认情况下用于“Real Time Streaming Protocol”(实时流协议,简称RTSP)。
1024 端口:1024 端口一般不固定分配给某个服务,在英文中的解释是“Reserved”(保留)。
1080 端口:1080 端口是Socks 代理服务使用的端口,大家平时上网使用的WWW 服务使用的是HTTP 协议的代理服务。
1755 端口:1755 端口默认情况下用于“Microsoft Media Server(微软媒体服务器,简称MMS)。
4000 端口:4000 端口是用于大家经常使用的QQ 聊天工具的,再细说就是为QQ 客户端开放的端口,QQ 服务端使用的端口是8000。
5554 端口:在今年4 月30 日就报道出现了一种针对微软lsass服务的新蠕虫病毒――震荡波(Worm.Sasser),该病毒可以利用TCP 5554 端口开启一个FTP 服务,主要被用于病毒的传播。
5632 端口:5632 端口是被大家所熟悉的远程控制软件pcAnywhere 所开启的端口。
8080 端口:8080 端口同80 端口,是被用于WWW 代理服务的,可以实现网页浏览。
七,HTTP & HTTPS 协议
1,HTTP
是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
2,HTTPS
是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
八,相对路径和绝对路径
1,相对路径
不包含完整的路径信息
2,绝对路径
包含完整的路径信息【一直到根下[/]文件】
九,基础传参方式
-
GET:通过URL参数传递数据,可以在URL中直接附加参数,例如
http://example.com/api?param1=value1¶m2=value2
。 -
POST:通过HTTP请求的消息体传递数据,一般用于提交表单数据或上传文件等,不会在URL中暴露参数。
-
Cookie:通过在客户端存储的小型文本信息来传递数据,可以在不同的HTTP请求之间保持状态。
-
User-Agent (UA):通过HTTP请求头中的User-Agent字段传递数据,用于标识客户端发起请求的应用程序类型、操作系统、软件版本等信息。
-
Header:通过HTTP请求头中的自定义字段传递数据,一般用于传递身份验证信息、特定的请求处理要求等。
-
Path parameter:在RESTful API中,有时会使用URL路径中的一部分来传递参数,例如
http://example.com/api/resource/{param}
。
十, Cookie & Seesion
1,Cookie
Cookie 是服务器在 HTTP 响应中通过 Set-Cookie 头部将数据存储在客户端浏览器中的小型文本文件。浏览器在后续的请求中会自动将相应的 Cookie 信息发送给服务器,以便进行用户识别和状态跟踪。Cookie 可以设置过期时间,可以被定时清除或在用户关闭浏览器时自动删除。
2,Seesion
Session 是服务器端根据用户请求创建的一个会话对象,用于跟踪用户的状态和存储用户相关的数据。服务器会为每个会话分配一个唯一的标识符(Session ID),并将该标识符通过 Cookie 或 URL 参数的方式发送给客户端。客户端在后续的请求中通过携带这个标识符来告知服务器当前会话的身份。服务器可以根据 Session ID 检索和更新与用户相关的数据。
Cookie & Seesion 的区别
-
存储位置:Cookie 存储在客户端浏览器中,而 Session 存储在服务器端。
-
安全性:由于 Cookie 存储在客户端,可能会被恶意篡改,因此需要特别注意安全性。而 Session 存储在服务器端,相对来说更加安全。
-
存储容量:Cookie 的存储容量有限,一般为几 KB 到几十 KB,而 Session 的存储容量通常没有明确限制,受服务器资源的影响较大。
ps:相关概念
实体与对等实体
每一层中,用于实现该层功能的活动元素被称为实体(Entity),实体既可以是软件实体(如一个进程、电子邮件系统、应用程序等)也可以是硬件实体(如终端、智能输入/输出芯片等)。软件实体可以嵌入在本地操作系统中,或者用户应用程序中。不同机器上位*同一层次、完成相同功能的实体被称为对等实体(Peer Entity)**。如主机A和主机B传输层中的传输实体为对等实体。
对等层和对等协议
- 不同主机之间的相同层次被称为对等层(Peer)。主机A的应用层和主机B的应用层互为对等层、主机A的会话层和主机B的会话层互为对等层。
- 对等层之间存在协议关系。即对等实体之间互相通信需要遵守一定的规则,如通信的内容、通信的方式等。这种对等实体之间交换数据或通信时必须遵守的规则称为对等层协议(Peer Protocol)。除了物理层外,OSI模型中的其他6个对等层都存在对应的协议,如数据链路层协议、网络层协议等,对等实体利用对等协议进行通信以向高层提供服务。对等层之间的通信是虚拟通信。
- 同一网络中不同主机的对等层,要安装运行相同的网络协议,主机间才能进行有效通信。这可以概括为“协议是水平的”“协议是水平的”。
服务与接口
- 在OSI分层结构模型中,每一层实体为相邻的上一层实体提供的通信功能称为服务。N层实体利用N-1层实体所提供的服务,向N+I层实体提供功能更强大的服务。这可以概括为“服务是垂直的”“服务是垂直的”。例如,传输层实体利用网络层实体的服务,向应用层实体提供网页传输服务。
- N层实体使用N-1层实体所提供的服务时,不需要知道N-1层实体所提供的服务是如何实现的以及N-1层实体间的协议,而只需要知道下一层可以为自己提供哪些服务(是快速昂贵通信还是慢速低廉通信),以及通过什么样的接口提供的。
数据单元
在OSI环境中,对等实体间按协议进行通信,上下层实体间按服务进行通信。这些通信都依靠3种数据单元的传输来实现。
- 服务数据单元
为实现N层服务所要传送的逻辑数据单元,称为N层服务数据单元(Service Data Unit,SDU),简称SDU。例如,用户需要浏览某网站的网页,该用户所在计算机的应用层实体(如浏览器)生成应用层SDU,再通过下一层实体提供的服务,最后将该SDU传送到对等应用层实体(如某网站计算机上Web服务器)。
- 协议数据单元
对等实体之间为实现该层协议所交换的信息单元(Protocol Data Unit,PDU),称为协议数据单元。为了发送厅层的SDU,N层实体可能根据N层协议,将一个SDU划分为多个PDU。而在接收端,N层实体可能要将多个PDU恢复成一个N层的SDU。例如,用户请求网页信息被附加上HTTP(超文本传输协议)报头,变成PDU,而在网站服务器那端,如果用户申请的网页(即SDU)太长,则要被划分成多个PDU传送。
- 接口数据单元
在同一系统上下两层实体的交换信息中,经过SAP的信息单元(Interface Data Unit,IDU),称为接口数据单元,N层IDU由两部分组成,N层服务数据单元和一些供下一层实体用的控制信息(称为接口控制信息ICI)。
服务类型
下层为上层提供的服务可分为两类:面向连接服务(Connection Oriented service)和无连接服务(Conectionless Service)。
- 面向连接服务:两个N层实体在数据交换前,必须先建立连接,即首先初始化状态信息。并且为N+1层实体的信息传输建立一个通道。在数据传输阶段,通过这些状态信息,第N层实体可以跟踪在它们之间的PDU交换及它们与更高层的SDU交换。当数据交换结束后应释放这个连接,即去除状态信息,释放建立连接时所分配的资源。
- 无连接服务:两个N层实体通信前,不需要先建立一个连接,即不需要事先进行预定保留状态信息。同一个用户到相同目的地的信息块都独立发送,接收端无需返回确认信息。如果信息在传输中丢失,就不再重发。不可靠的无连接的服务通常被称为数据报服务。
- 面向无联接的服务优点在于其服务方式灵活方便,并且非常迅速。网络层以数据报服务的方式实现面向无联接的服务。
服务原语
服务是通过一组服务原语(Primitive) 来描述的,这些原语供用户和其他实体访问服务,通知服务提供者采取某些行动或报告某个对等实体的活动。服务原语被分为如下4类。
- 请求(Request):由服务用户发往服务提供者,请求它完成某项工作。
- 指示(Indication):由服务提供者发往服务用户,指示发生了某些事件。
- 响应(Response):由服务用户发往服务提供者,对前面发生的指示的响应。
- 证实(Confirmation):由服务提供者发往服务用户,对前面发生的请求的证实。
1.请求
2.指示
3.响应
4.证实
服务用户
服务提供者
通信
路由器
路由器(Router)是连接两个或多个网络的硬件设备,在网络间起网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备。它能够理解不同的协议,例如某个局域网使用的以太网协议,因特网使用的TCP/IP协议。这样,路由器可以分析各种不同类型网络传来的数据包的目的地址,把非TCP/IP网络的地址转换成TCP/IP地址,或者反之;再根据选定的路由算法把各数据包按最佳路线传送到指定位置。所以路由器可以把非TCP/IP网络连接到因特网上。
差错控制
TCP & UDP
TCP协议(TransmissionControlProtocal):
-
可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。
-
三次握手 & 四次挥手
UDP协议:
- 不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。
CSS
CSS(Cascading Style Sheets)指的是层叠样式表,它是一种用于描述文档样式和表现方式的标记语言。通过 CSS,网页设计者可以控制网页的布局、字体、颜色、大小、边距、背景等方面的表现效果,从而实现对网页外观的精确控制。
CSS特点:
-
分离内容和表现:通过将样式信息从 HTML 文档中分离出来,使得网页结构和表现可以相互独立,更易于维护和管理。
-
层叠性:多个样式规则可以同时应用于同一个元素,通过层叠机制可以确定最终的表现效果。
-
继承性:子元素可以继承父元素的部分样式,从而减少重复定义和提高代码的可维护性
永久性重定向
永久性重定向(Permanent Redirect)是指当一个URL被永久性地更改到另一个URL时使用的重定向方式。这通常通过HTTP状态码 301 来实现,告诉搜索引擎和浏览器该网页已经永久性地转移到一个新的URL。永久性重定向对于网站的SEO非常重要,因为它能够帮助搜索引擎将旧的页面权重传递到新的页面上,有利于保持搜索引擎排名并转移流量。
SEO
SEO是指搜索引擎优化(Search Engine Optimization),是一种通过优化网站内容、结构和外部链接等方式,提高网站在搜索引擎中排名的技术和方法。其目的是使网站在搜索引擎中获得更好的曝光度,吸引更多流量,并提高用户的访问和转化率。
SEO工作通常包括关键词研究,优化网站内容和标记,改善网站结构,增加外部链接等方面。通过这些工作,网站可以更容易被搜索引擎收录和理解,从而在相关搜索查询时获得更好的排名,提高网站的曝光度和流量。 SEO对于网站的长期发展和在线营销非常重要。
FTP POP PPP
FTP (File Transfer Protocol) 是一种用于在网络上传输文件的标准协议,它允许用户在客户端和服务器之间传输文件。通过FTP,用户可以上传、下载、重命名和删除文件,以及创建和浏览目录。FTP通常用于网站维护、文件共享和软件发布等场景。
POP (Post Office Protocol) 是一种用于接收电子邮件的协议,它允许用户从邮件服务器上下载自己的邮件到本地计算机上。最常见的版本是POP3,它是目前使用最广泛的邮件接收协议之一。
PPP (Point-to-Point Protocol) 是一种用于在计算机之间建立连接的数据链路层协议,它通常用于在拨号或者专线网络连接中进行数据通信。PPP提供了认证、加密和压缩等功能,可以被用于在计算机之间安全地传输数据。
SSL/TLS 协议
SSL(Secure Sockets Layer)和TLS(Transport Layer Security)协议是用于在网络通信中实现加密和安全性的协议。
SSL最初由网景公司开发,用于保护网络通信的安全性,后来发展为TLS标准。TLS是SSL的继任者,目前广泛应用于互联网上的安全通信领域。
SSL/TLS协议的主要功能包括:
-
加密数据传输:SSL/TLS协议使用密码学技术对通信数据进行加密,从而保护数据在传输过程中不被窃取或篡改。
-
身份验证:SSL/TLS协议能够确保通信双方的身份,并防止中间人攻击。
-
数据完整性:SSL/TLS协议可以验证数据在传输过程中是否被篡改,确保数据的完整性。
SSL/TLS协议被广泛应用于Web浏览器和服务器之间的安全通信,以及电子邮件、文件传输等网络通信场景中,为网络通信提供了重要的安全保障。
参考
【1】OSI 五层协议(小白学习,老手思考)_osi五层-优快云博客
【2】HTTP状态码汇总(常见)-优快云博客
【3】探索网络架构的关键角色:六种常用的服务器类型_小技术君的博客-优快云博客
【4】OSI七层模型及各层功能概述_osi参考模型分为哪几层?各层的功能是什么?-优快云博客
【5】TCP三次握手四次挥手图片参考视频
一条视频讲清楚TCP协议与UDP协议-什么是三次握手与四次挥手_哔哩哔哩_bilibili