Linux网络编程(各种协议模型的基础知识)

简介: Linux网络编程(各种协议模型的基础知识)

前言

本篇文章带大家学习一些网络编程中的基础知识,这些基础知识对于掌握网络编程是非常重要的。

一、协议是什么

网络协议是一套规则和约定,用于在计算机网络中实现通信和数据交换。它们定义了数据传输的格式、消息的处理方式、错误检测和纠正方法,以及网络中各个设备的角色和功能。

二、分层模型结构

1.OSI 7层模型

物理层(Physical Layer):

硬件层面的传输和接收原始比特流。

定义了电气、机械和功能特性,如电压、电缆规格、物理连接等。

传输单位:比特(Bit)。

数据链路层(Data Link Layer):

提供可靠的点对点数据传输。

将原始比特流转换为帧(Frame)。

包括物理寻址、数据的错误检测和纠正。

主要协议:以太网、Wi-Fi、PPP等。

传输单位:帧(Frame)。

网络层(Network Layer):

提供数据包从源地址到目标地址的路由和转发。

进行逻辑寻址和分组传输。

通常使用IP(Internet Protocol)作为主要协议。

传输单位:数据包(Packet)。

传输层(Transport Layer):

提供端到端的数据传输。

分段和重组数据,确保可靠性和完整性。

TCP(传输控制协议)用于可靠的数据传输,UDP(用户数据报协议)用于无连接的数据传输。

传输单位:报文段(Segment)。

会话层(Session Layer):

建立、管理和终止应用程序之间的会话。

管理会话期间的对话控制和同步。

传输单位:会话数据(Session Data)。

表示层(Presentation Layer):

数据的编码、解码以及数据格式的转换。

提供数据的加密、压缩和格式转换。

传输单位:数据(Data)。

应用层(Application Layer):

提供用户与网络应用程序之间的接口。

包括各种应用协议,如HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)等。

传输单位:消息(Message)。

2.TCP/IP 4层模型

网络接口层(Network Interface Layer):

也称为网络访问层或链路层。

与OSI模型的物理层和数据链路层类似,负责处理物理和数据链路层的细节。

确定数据在物理媒介上传输的方式,如以太网、Wi-Fi等。

将数据包封装成帧,并通过网络接口发送和接收。

传输单位:帧(Frame)。

网际层(Internet Layer):

与OSI模型的网络层相对应。

使用IP协议,负责在互联网络中路由数据包。

提供数据包的分组、寻址和路由功能,以实现跨网络的数据传输。

处理IP地址和路由表,以确定数据的最佳路径。

传输单位:数据包(Packet)。

传输层(Transport Layer):

与OSI模型的传输层相对应。

主要使用TCP和UDP协议。

TCP(传输控制协议)提供可靠的、面向连接的数据传输,并处理连接的建立、维护和关闭。

UDP(用户数据报协议)提供无连接的数据传输,适用于实时性和较少误差容忍的应用程序。

传输单位:报文段(Segment)。

应用层(Application Layer):

与OSI模型的应用层相对应。

包含一系列协议和服务,用于不同的应用程序。

这些协议包括HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)等。

提供用户与网络应用程序之间的接口。

传输单位:消息(Message)。

TCP/IP 4层模型是一个简化的版本,它将OSI的七层模型合并并去除了会话层、表示层,将应用层作为最高层。这个模型更贴近实际的互联网协议栈,为网络通信提供了一个简单而有效的架构。

三、TCP/IP 4层中分别使用到的协议

1.网络接口层

以太网协议(Ethernet)

WiFi协议(Wireless Fidelity)

蓝牙协议(Bluetooth)

PPP协议(Point-to-Point Protocol)

SLIP协议(Serial Line Interface Protocol)

2.网际层

IP协议(Internet Protocol)

ICMP协议(Internet Control Message Protocol)

ARP协议(Address Resolution Protocol)

RARP协议(Reverse Address Resolution Protocol)

IPSec协议(Internet Protocol Security)

3.传输层

TCP协议(Transmission Control Protocol)

UDP协议(User Datagram Protocol)

SCTP协议(Stream Control Transmission Protocol)

4.应用层

HTTP协议(Hypertext Transfer Protocol)

FTP协议(File Transfer Protocol)

SMTP协议(Simple Mail Transfer Protocol)

DNS协议(Domain Name System)

Telnet协议(Telnet)

SSH协议(Secure Shell)

SNMP协议(Simple Network Management Protocol)

DHCP协议(Dynamic Host Configuration Protocol)

四、IP协议

IP协议(Internet Protocol)是TCP/IP协议套件中的一个核心协议,主要负责在互联网上实现数据包的路由和传输。

IP协议的主要特点如下:

1.数据包传输:IP协议将数据分割成小的数据包,称为IP数据报(IP Datagram),并通过网络传输。每个数据包包含源地址和目标地址,用于数据包的路由和寻址。

2.无连接性:IP协议是一种无连接的协议,即每个数据包都是独立处理的,不需要在发送前建立连接。这种简化的通信方式提高了网络的灵活性和效率。

3.路由功能:IP协议负责根据目标地址进行数据包的路由选择,以寻找最佳路径将数据包从源地址传输到目标地址。路由器是负责实现IP数据包的中转和转发的网络设备。

4.IP地址:IP协议定义了一种唯一标识网络设备的地址,即IP地址。IPv4(Internet Protocol version 4)使用32位地址,而IPv6(Internet Protocol version 6)使用128位地址。IP地址用于在互联网上唯一地标识设备,使得数据包能够准确地传输到目标设备。

5.Best Effort服务:IP协议提供的是一种无保障的服务,即尽力而为的服务。它不对数据包的传输可靠性、顺序性和延迟等做出保证。如需可靠传输,则需要在上层使用TCP协议。

五、C/S和B/S模型

1.C/S模型

C/S模型是指客户端/服务器模型,它是一种分布式计算模型,其中客户端和服务器之间进行通信和协作。在C/S模型中,客户端是一个独立的应用程序,通过网络连接到服务器。客户端向服务器发送请求,服务器处理请求并返回结果给客户端。客户端通常负责用户界面和数据展示,而服务器负责业务逻辑和数据处理。C/S模型通常需要在客户端和服务器端分别部署相应的应用程序。

2.B/S模型

B/S模型是指浏览器/服务器模型,它是一种基于Web的应用架构模型。在B/S模型中,客户端是一个Web浏览器,而服务器端是一个Web服务器。客户端通过浏览器向服务器发送HTTP请求,服务器处理请求并返回HTML等页面内容给客户端浏览器,然后浏览器进行页面渲染和展示。在B/S模型中,应用程序的大部分逻辑和数据处理都在服务器端完成,客户端主要负责用户界面展示和与服务器的交互。B/S模型的优势在于无需在客户端安装额外的应用程序,只需一个浏览器即可访问应用。

3.对比

对比而言,C/S模型相对于B/S模型来说更加灵活和强大,可以支持更复杂的应用程序和功能。C/S模型允许开发人员完全控制客户端和服务器端的实现,并能够实现更高的性能和定制化。然而,C/S模型需要在用户端部署客户端应用程序,增加了管理和维护的复杂性。

B/S模型相对于C/S模型来说更加简单和易于管理,减少了客户端的依赖性和更新成本。B/S模型基于Web技术,具有跨平台兼容性和即时更新的特点,用户只需通过浏览器访问应用即可,无需安装额外的软件。然而,B/S模型可能受限于浏览器的能力和性能,无法实现一些复杂的客户端功能。

总结

本篇文章就讲解到这里,下篇文章继续讲解网络编程。


相关文章
|
6天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
4天前
|
机器学习/深度学习 存储 计算机视觉
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现-4
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现
35 11
|
1天前
|
机器学习/深度学习 存储 算法
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现(下)
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现
12 2
|
1天前
|
机器学习/深度学习 运维 算法
R语言用ARIMA模型滑动时间窗口识别网络流量时间序列异常值
R语言用ARIMA模型滑动时间窗口识别网络流量时间序列异常值
|
2天前
|
存储 NoSQL Linux
Redis入门到通关之Redis5种网络模型详解
Redis入门到通关之Redis5种网络模型详解
10 1
|
4天前
|
网络协议 Linux Shell
【linux网络(一)】初识网络, 理解四层网络模型
【linux网络(一)】初识网络, 理解四层网络模型
|
4天前
|
安全 Ubuntu Linux
Linux 网络操作命令Telnet
Linux 网络操作命令Telnet
17 0
Linux 网络操作命令Telnet
|
4天前
|
Ubuntu Linux
Linux(22) Linux设置网络优先级顺序
Linux(22) Linux设置网络优先级顺序
6 0
|
4天前
|
机器学习/深度学习 算法 数据可视化
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现-3
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现
12 0
|
4天前
|
算法 数据可视化
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现-1
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现
18 0