C语言 网络编程(四)常见网络模型

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 这段内容介绍了目前被广泛接受的三种网络模型:OSI七层模型、TCP五层模型以及TCP/IP四层模型,并简述了多个网络协议的功能与特性,包括HTTP、HTTPS、FTP、DNS、SMTP、TCP、UDP、IP、ICMP、ARP、RARP及SSH协议等,同时提到了ssh的免费开源实现openssh及其在Linux系统中的应用。

常见网络模型

⽬前⽐较认可的有三种模型:OSI 七层模型、TCP 五层模型、TCP/IP 四层模型

img_80.png

img_81.png

HTTP 协议:超⽂本传输协议,⽤于 www ⽹⻚,默认端⼝ 80

HTTPS 协议:安全超⽂本传输协议,默认端⼝ 443 HTTPS 协议是在 HTTP 的基础上增加 SSL 外壳,对数据进⾏机密,保证安全性

FTP 协议:远程⽂件传输协议;本地⽂件上传服务器,或服务器⽂件下载到本地 传输速度快,可靠性稳定性⾼

DNS 协议:域名解析协议,默认端⼝为 53,默认通过 UDP 协议通信,但如果报⽂过⼤是则会切换成 TCP 协议其作⽤是域名 ( 如 www.baidu.com ) 转换为机器可读的 IP 地址 (如 10.51.7.18)

SMTP 协议:邮件传输协议

TCP 协议:传输控制协议

UDP 协议:⽤户数据报协议

IP 协议:⽹络协议;负责 IP 寻址、路由选择和 IP 数据包的分割和组装。通常我们所说的 IP 地址可以
理解为符合 IP 协议的地址 主要特点: 1、⽆连接 2、安全性低,有丢包可能、 3、点到点的⽹络层协议

IP 协议是 TCP/IP 的载体,所有的 TCP、UDP 都是以 IP 数据报格式传输

ICMP 协议:Internet 控制报⽂协议 ⽤于在 IP 和 路由器之间传递控制消息,描述⽹络是否通畅、主机是否可达、路由器是否可⽤等⽹络状态,ICMP 本身并不传输数据,但对于⽤户间数据的传递起着重要的作⽤。

ARP 协议:地址解析协议;把 IP 地址解析为 MAC 地址

RARP 协议:反向地址转换协议;把 MAC 地址解析为 IP 地址

ssh 协议:Secure Shel,安全外壳协议,简称 ssh,是⼀种建⽴在应⽤层基础上的安全协议,通过对
密码进⾏ 加密 传输验证,可在不安全的⽹络中对⽹络服务提供安全的传输环境,实现 ssh 客户端和
ssh 服务器端的连接,所以 ssh 是基于 C/S 结构的。

ssh 是 应⽤层 协议,它的传输层协议是 tcp,所以在 ssh 登录之前必定会有 tcp 连接

openssh 是 ssh 协议的免费开源实现,有⼀个独⽴守护进程 sshd,可以在 Linux 系统中安装 openssh 的服务端程序 openssh-server,⽽客户端应⽤程序在 Linux 系统中默认是安装的。

相关文章
|
14天前
|
网络协议 Unix C语言
C语言 网络编程(十六)广播和组播
广播和组播是网络通信的重要方式。广播允许一台主机向子网内所有主机发送数据包,常用于局域网内的消息传播;组播则将数据包发送给特定的一组主机,适用于视频会议等应用场景。广播地址如 `192.168.1.255` 用于同一子网的所有主机。组播地址如 `224.0.0.0` 至 `239.255.255.255` 标识特定主机群。C语言示例展示了如何通过 UDP 实现广播和组播通信。此外,UNIX域套接字用于同一机器上进程间的高效通信。
|
14天前
|
网络协议 算法 网络性能优化
C语言 网络编程(十五)套接字选项设置
`setsockopt()`函数用于设置套接字选项,如重复使用地址(`SO_REUSEADDR`)、端口(`SO_REUSEPORT`)及超时时间(`SO_RCVTIMEO`)。其参数包括套接字描述符、协议级别、选项名称、选项值及其长度。成功返回0,失败返回-1并设置`errno`。示例展示了如何创建TCP服务器并设置相关选项。配套的`getsockopt()`函数用于获取这些选项的值。
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习模型之深度神经网络的特点
深度神经网络(Deep Neural Networks, DNNs)是一类机器学习模型,通过多个层级(层)的神经元来模拟人脑的工作方式,从而实现复杂的数据处理和模式识别任务。
14 1
|
14天前
|
网络协议 C语言
C语言 网络编程(十三)并发的TCP服务端-以进程完成功能
这段代码实现了一个基于TCP协议的多进程并发服务端和客户端程序。服务端通过创建子进程来处理多个客户端连接,解决了粘包问题,并支持不定长数据传输。客户端则循环发送数据并接收服务端回传的信息,同样处理了粘包问题。程序通过自定义的数据长度前缀确保了数据的完整性和准确性。
|
14天前
|
网络协议 C语言
C语言 网络编程(十一)TCP通信创建流程---服务端
在服务器流程中,新增了绑定IP地址与端口号、建立监听队列及接受连接并创建新文件描述符等步骤。`bind`函数用于绑定IP地址与端口,`listen`函数建立监听队列并设置监听状态,`accept`函数则接受连接请求并创建新的文件描述符用于数据传输。套接字状态包括关闭(CLOSED)、同步发送(SYN-SENT)、同步接收(SYN-RECEIVE)和已建立连接(ESTABLISHED)。示例代码展示了TCP服务端程序如何初始化socket、绑定地址、监听连接请求以及接收和发送数据。
|
14天前
|
网络协议 C语言
C语言 网络编程(十四)并发的TCP服务端-以线程完成功能
这段代码实现了一个基于TCP协议的多线程服务器和客户端程序,服务器端通过为每个客户端创建独立的线程来处理并发请求,解决了粘包问题并支持不定长数据传输。服务器监听在IP地址`172.17.140.183`的`8080`端口上,接收客户端发来的数据,并将接收到的消息添加“-回传”后返回给客户端。客户端则可以循环输入并发送数据,同时接收服务器回传的信息。当输入“exit”时,客户端会结束与服务器的通信并关闭连接。
|
14天前
|
C语言
C语言 网络编程(八)并发的UDP服务端 以进程完成功能
这段代码展示了如何使用多进程处理 UDP 客户端和服务端通信。客户端通过发送登录请求与服务端建立连接,并与服务端新建的子进程进行数据交换。服务端则负责接收请求,验证登录信息,并创建子进程处理客户端的具体请求。子进程会创建一个新的套接字与客户端通信,实现数据收发功能。此方案有效利用了多进程的优势,提高了系统的并发处理能力。
|
14天前
|
算法
基于GA遗传优化的离散交通网络双层规划模型设计matlab仿真
该程序基于GA遗传优化设计了离散交通网络的双层规划模型,以路段收费情况的优化为核心,并通过一氧化碳排放量评估环境影响。在MATLAB2022a版本中进行了验证,显示了系统总出行时间和区域排放最小化的过程。上层模型采用多目标优化策略,下层则确保总阻抗最小,实现整体最优解。
|
14天前
|
网络协议 C语言
C语言 网络编程(十二)TCP通信创建-粘包
TCP通信中的“粘包”现象指的是由于协议特性,发送方的数据包被拆分并在接收方按序组装,导致多个数据包粘连或单个数据包分割。为避免粘包,可采用定长数据包或先传送数据长度再传送数据的方式。示例代码展示了通过在发送前添加数据长度信息,并在接收时先读取长度后读取数据的具体实现方法。此方案适用于长度不固定的数据传输场景。
|
14天前
|
网络协议 C语言
C语言 网络编程(十)TCP通信创建流程---客户端
在TCP通信中,客户端需通过一系列步骤与服务器建立连接并进行数据传输。首先使用 `socket()` 函数创建一个流式套接字,然后通过 `connect()` 函数连接服务器。连接成功后,可以使用 `send()` 和 `recv()` 函数进行数据发送和接收。最后展示了一个完整的客户端示例代码,实现了与服务器的通信过程。