Linux 网络模型、常见端口协议
计算机之间为了能够相互通信,建立全球计算机网络,国际标准化组织(ISO)在1978年提出了著名的OSI/RM模型(Open System Interconnection/Reference Model,开放系统互联参考模型)
OSI模型将计算机网络体系结构的通信协议划分为七层,自下而上依次为:
- 物理层(Physics Layer)
- 数据链路层(Data Link Layer)
- 网络层(Network Layer)
- 传输层(Transport Layer)
- 会话层(Session Layer)
- 表示层(Presentation Layer)
- 应用层(Application Layer)
一、OSI 网络模型
TCP/IP协议遵守一个四层的模型概念:应用层、传输层、网络层、网络接口层
七层协议,从上到下逐层介绍:
1、应用层
应用层是计算机用户的操作界面,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作,例如:HTTP网页服务、TELNET连接、SMTP邮件服务等,前端同学对应用层肯定是最熟悉的。
2、表示层
表示层负责数据格式的转换,将应用处理的信息转换为适合网络传输的格式,或者将来自下一层的数据转换为上层能处理的格式。例如:文本、音频、图片、视频、数据加密等
3、会话层
会话层的作用是建立和管理应用程序之间的通信,发送正确封装过后的信息,不用每次都要调用传输层协议去打包,然后再调用IP协议去找路由,所以建立管理了一个自动收发包,自动寻址的功能。例如:长链接 keepalive、短连接等
4、传输层
传输层的主要功能是监控数据传输服务的质量,保证报文的正确传输。当发送大量数据时,很可能会出现丢包的情况,另一台电脑要告诉是否完整接收到全部的包。如果缺了,就告诉丢了哪些包,然后再发一次,直至全部接收为止。例如:TCP、UDP、SPX等
5、网络层
计算机网络中如果有多台计算机,怎么找到目标服务器,如果中间有多个节点,怎么选择路径?这就是路由要做的事。
该层的主要任务就是:通过路由选择算法,为报文(该层的数据单位,由上一层数据打包而来)通过通信子网选择最适当的路径。这一层定义的是IP地址,通过IP地址寻址,所以产生了IP协议。例如:IP、ICMP、RIP等
6、数据链路层
在计算机网络中由于各种干扰的存在,物理链路是不可靠的。该层的主要功能就是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。
它的具体工作是接收来自物理层的位流形式的数据,并封装成帧,传送到上一层;同样,也将来自上层的数据帧,拆装为位流形式的数据转发到物理层。这一层的数据叫做帧。例如:ARP、RARP、PPP、PPTP、L2TP等
7、物理层
解决两个硬件之间怎么通信的问题,常见的物理媒介有光纤、电缆、中继器等。它主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。
它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。例如:ISO2110、IEEE802、无线wifi协议、中继器、集线器等
注意:第7层物理层协议的下面才是承担传输的媒介,包含网线、光纤等设备。
示例:用图片展示上网过程
二、OSI 网络协议
第1层,物理层
主要是底层的ISO2110、IEEE802、无线wifi协议、中继器、集线器等,不做介绍
第2层,数据链路层的协议
PPP(点对点协议)
点对点协议,主要是用于通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。
LCP(配置协商)
链路控制协议,是PPP协议的一个子集,在PPP通信中,发送端和接收端通过发送LCP包来确定那些在数据传输中的必要信息
PPPOE(拨号点对点协议)
基于以太网的点对点协议,包含发现( Discovery) 和会话( Session) 两个阶段,用于电话线拨号。
发现阶段是无状态的,目的是获得PPPoE 终端(在局端的ADSL设备上)的以太网MAC 地址,并建立一个惟一的PPPoE SESSION-ID。发现阶段结束后,就进入标准的PPP会话阶段。
PAP、CHAP(用户验证)
这俩是用户验证协议,对用户的账号密码进行校验。
密码验证协议(PAP):2次握手建立身份认证,密码是明文发送的。
挑战握手协议(CHAP):3次握手验证,密码是加密的。
NCP(配置协商)
网络控制协议,当用户通过用户验证,双方就要用进行网络层上某些配置的协商,比如网络层采取什么协议,用户的IP地址是什么。
HDLC
高级链路数据控制。是一种面向比特的链路层协议,是PPP的前身。
IEEE 802标准把数据链路层分为两个子层:MAC、LLC。
MAC
介质访问控制子层,该层与硬件相关,提供硬件和LLC层的接口,所以说MAC是数据链路层的地址标识。
一台电脑要上网,必须保证在这个网络上,这台电脑的mac地址是唯一的。因为网络上的数据是根据mac地址来传输的,同一个网络上的两台电脑有一样的mac地址,发给这个mac地址的数据就不知道应该传给哪台电脑了。
LLC 逻辑链路控制
该层与硬件无关,实现流量控制等功能。
CSMA/CD协议
载波监听多路访问/冲突检测,是一种争用型的介质访问控制协议,整个协议中最关键的是载波监听、冲突检测两部分。冲突检测原理:计算最小帧长、二进制指数后退算法(这俩是重点)。此外,IEEE802体系需要了解。
第3层、网络层协议
IP 因特网协议。
IGMP 组播协议。
RIP 路由信息协议,端口号:520。属于内部路由协议。
OSPF 开放最短路径优先协议。端口号:89。属于内部路由协议。
BGP 边界网关协议。端口号:179。属于外部路由协议。
EIGRP 增强内部网关路由协议。端口号:88。 属于内部路由协议。
ICMP 因特网控制信息协议
作用:用于在IP主机、路由器之间传递控制消息。
控制消息:是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。不同的ICMP类型代表不同意义得记住。ICMP 会和 PING 、Traceroute命令结合。
ARP 地址解析协议
作用:通过 IP地址(逻辑地址)寻找MAC地址(物理地址),也就是将 32位IP地址 解析成 48位以太网 的操作。
RARP 反地址解析协议。
作用:也就是将 48位以太网 解析成 32位IP地址。
路由协议分为静态路由协议、动态路由协议。动态路由协议分为内部路由协议、外部路由协议。
第4层、传输层
TCP/UDP(或TCP/IP)保留的传输层端口号范围是 165535。公认端口:11023 。动态端口:1024~65535
TCP 传输控制协议。用于精准的数据传输。(有连接) 端口号:80
UDP 用户数据报协议。(无连接) 用于音视频信号传输。
第5层、会话层
RPC 远程过程调用协议,没有默认端口,它是动态获取端口的,采用C/S模式。
基于Socket,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
第6层、表示层
主要处理两个通信系统中交换信息的表示方式,为上层用户解决用户信息的语法问题,包括数据格式交换、数据加密与解密、数据压缩与终端类型的交换,例如 SSH加密、图片压缩、文本压缩等。
第7层、应用层
FTP 文件传输协议,端口号 21
端口20:数据连接 ; 端口21:控制连接
文件通过服务器进行上下行的传送,使用C/S工作方式,使用20号端口做数据连接,21号端口做控制连接。FTP有两种模式:主动模式和被动模式,被动模式下数据连接端口由服务器指定或随机。
FTP 在客户端和服务器之间传输文件,通常被认为是一种“不安全”的文件传输协议。
这是因为 FTP 以明文形式发送数据并提供不需要密码的匿名选项。但是,FTP 是一种受信任且仍被广泛使用的文件传输协议。
SSH (Secure Shell)远程登录协议,是Telnet的加密加强版,端口号 22
SSH协议是一种网络通信协议,用于在远程计算机上执行操作,但它也可用于传输数据。通过默认 SSH 端口号 22(可修改SSH的22端口号)运行命令时,客户端和服务器之间就会建立连接。SSH 是作为未加密 Telnet 协议的安全替代品而开发的,它利用加密技术来确保进出远程服务器的所有通信都是加密的。
Telnet 远程登录协议,端口号:23
利用TCP连接使用户可以登录到远程主机上并进行操作,支持网络虚拟终端(NVT) ,NVT使具有异构性的主机可以进行Telnet连接,Telnet采用C/S(客户端/服务端)工作方式。由于该协议是未加密的,它通常只能在局域网内安全使用,因为交换的数据是明文形式的。
Portmapper 端口映射器,端口号 111 (TCP、UDP)
Portmapper服务需在客户端和服务器端运行 NFS,在 TCP 和 UDP 协议的端口 111 上运行。
Portmap 使远程程序的动态绑定成为可能。
NetBIOS 网络基本输入/输出系统,端口号:137(TCP、UDP)
NetBIOS(网络基本输入/输出系统)主要目的是允许不同计算机上的应用程序进行通信,并建立会话以访问文件和打印机等共享资源,以及通过局域网 (LAN) 相互定位。
SMTP 简单邮件传输协议,端口号:25
负责将邮件上传到服务器,只支持 ASCII码文本。端口 25 是最初的标准电子邮件 SMTP(简单邮件传输协议)端口,也是自 1982 年首次亮相以来最古老的端口。即使在 4 年之后,端口 25 上的 SMTP 仍然是通过互联网在邮件服务器之间发送电子邮件的基本标准。
S/MIME 多用途国际邮件扩充协议。
负责将多媒体邮件安全上传到服务器,支持文本、图片、音频、视频等。
POP3 邮局协议第3版,端口号:110
负责将邮件从服务器下载到客户端,邮件被下载后服务器就删除此邮件。
提供了SSL加密的POP3协议被称为POP3S。
IMAP4 交互式数据消息访问协议第4版,端口号:143
基本功能和POP3 一样,提供摘要浏览,读取后仍在服务器保留邮件,并不会删除。
SMTP 简单邮件传输协议,端口号:587
默认的邮件提交端口,当用户提交要通过适当的邮件服务器路由的电子邮件时,这将提供最佳结果。将端口 587 与 TLS 加密结合使用,可确保安全发送电子邮件并遵循 IETF 的要求。
IMAPS 基于 SSL 的 IMAP,默认端口为 993
IMAP 数据流量通过安全套接字传输到安全端口,加密后有助于确保在 Internet 上的安全和隐私。
PGP、PEM
邮件加密协议。
HTTP 超文本传输协议,默认端口号:80
在WWW万维网上提供各种信息而专门设计得一种协议,优点在于一次连接只处理一个请求做一次应答,统一占用TCP协议的80端口,通过统一资源定位符(URL)对信息进行寻址定位。
HTTP代理服务器:端口号8080.
HTTPS HTTP的加密升级版,端口号:443
HTTPS 是安全的超文本传输协议,这是一个每天有全球数十亿人使用的端口,超过 95% 的安全网站通过端口 443 使用 HTTPS 进行安全数据传输。
SNMP 管理端的默认端口,端口号:162
主要用来接收Agent的消息如TRAP告警消息。端口号:161,代理端(agent)的默认端口,接收管理端下发的消息如SET/GET指令等。简单网络管理协议。
主要用在局域网中对设备进行管理,应用最为广泛的是对路由器交换机等网络设备的管理,当然不仅限于网络设备。SNMP分为管理端和代理端(agent)。
使用UDP的协议如下:
DNS 域名系统,端口号:53
DNS(域名系统)将域名转换为 IP 地址。借助 DNS 服务器,人们可以在浏览器中输入正常的域名(例如:blog.mimvp.com),而无需记住每个网站的 IP 地址。DNS 被设计为同时使用 UDP 和 TCP 端口 53,其中 UDP 是默认值,当它无法在 UDP 上通信时,会退到使用 TCP,TCP比UDP更安全但更耗时。
DHCP 动态主机配置协议,端口号:67 、 68
为 TCP/IP 网络上动态配置的主机提供网络地址,它使用 UDP 端口 67 和 68。服务器应使用端口 67,客户端应使用端口 68
NFS 网络文件系统,共享文件,端口号:2049
TFTP 简单文件传输协议,端口号:69
用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。
网络中有两种使用端口号的主要传输协议:TCP 和 UDP
TCP 传输控制协议,是一个面向连接的协议。在交换数据之前,通信设备应先建立连接,传输完数据后再将其关闭。TCP 是使用最广泛的网络协议,非常可靠,可用于从浏览网页到发送电子邮件和文件传输的所有事情。
UDP 用户数据报协议,是一种无连接协议。这是由于缺少与创建、维护和终止连接相关的开销。对于广播和组播网络传输,UDP 是一个不错的选择,例如:视频会议、大规模高清图像传输。
参考推荐:
Linux 修改默认端口、增加普通用户、使用密钥等安全登录SSH
CentOS 配置Apache、apr、apr-util、apr-iconv、sqlite3
CentOS 安装OpenSSL 支持 QUIC for http/3
Linux 防火墙 iptables 和 firewalld
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2024-07-17 20:31:52
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!
转载注明: Linux 网络模型、常见端口协议 (米扑博客)