您的问题似乎不完整,您是想询问关于C语言编程的某个具体问题吗?比如C语言的语法、编程技巧、项目开发等。请提供更具体的信息,这样我才能给出更准确的回答。
摘要:简介 计算机网络是指将分布在不同地理位置的计算机系统、设备通过通信线路和设备连接起来,遵循共同的通信协议,以实现 数据传输、资源共享、协同工作 的系统 。它是现代信息技术的核心基础设施,支撑着互联网、物联网、云计算等众多领域的发展。 其核心
简介
计算机网络是指将分布在不同地理位置的计算机系统、设备通过通信线路和设备连接起来,遵循共同的通信协议,以实现 数据传输、资源共享、协同工作 的系统
。它是现代信息技术的核心基础设施,支撑着互联网、物联网、云计算等众多领域的发展。
其核心要求为:
数据通信
实现不同设备间的信息传输。
资源共享
共享硬件资源(如打印机、存储设备)、软件资源(如应用程序、数据库)和数据资源(如文件、图片)。
分布式处理
将复杂任务分配给多台计算机协同完成。
高可靠性与容错
多条传输路径,避免单点故障。
网络模型
为了简化网络设计,实现高内聚,低耦合。网络设计采用分层架构 ,每层实现特定功能并通过接口与上下层交互。
七层模型
在分层模型中,每一层都有实体,这些实体指的是执行特定层次功能的硬件或软件组成。
协议是一套标准和规则。分完层后,用于控制同一层次内的实体如何通信
层
功能描述
典型协议/技术
应用层
直接为用户应用提供服务(如文件传输、电子邮件、Web服务)
HTTP、FTP、SMTP、DNS
表示层
数据格式转换、加密解密、压缩解压缩(确保跨系统兼容)
JPEG、SSL/TLS、ZIP
会话层
建立、管理和终止应用程序间的会话(如会话认证、断点续传)
SSH、RPC、NetBIOS
传输层
端到端的数据传输控制(确保可靠性或效率)
TCP、UDP
网络层
路由选择和网络互联(将数据从源网络转发到目标网络)
IP、ICMP、OSPF、BGP
数据链路层
相邻节点间的帧传输,处理物理寻址和错误检测
Ethernet(MAC协议)、PPP、VLAN
物理层
比特流在物理介质上的传输(定义硬件接口、信号形式等)
RJ45、光纤、Wi-Fi射频信号
四层模型
TCP/IP四层模型,也称为互联网协议套件(Internet Protocol Suite)。因为理论和实践的不同,7层模型太复杂,因此简化为4层。
将物理层与链路层合并,合并了表示层,会话层。
OSI是学术和法律上的国际标准,TCP/IP是事实上的国际标准。
还有5层模型,只是为了方便教学而臆想出的模型,不再赘述
应用层
DNS
访问某个网站,本质上是与某台服务器通信。为了访问服务器,我们需要使用IP地址。但IP地址不太好记。
因此,域名(Domain Name)由此而生,替代了难以记忆的IP地址。
在域名与IP中间,有一个转换协议,叫做DNS(Domain Name System,域名系统)。将域名转换成IP。
访问一个网站期间发生了什么?
用户请求
浏览器本地缓存检查
浏览器先检查本地缓存中有没有域名的IP地址,没有就执行下一步
查询本地DNS服务器
浏览器向本地DNS服务器发送查询请求,没有就执行下一步
查询根域名服务器
本地DNS服务器向根域名服务器查询,根域名服务器返回顶级域名服务器(TLD Server)的地址
查询顶级域名服务器
再由本地DNS服务器向顶级域名服务器查询,顶级域名服务器返回权威DNS服务器的地址
查询权威DNS服务器
本地DNS服务器向权威DNS服务器查询,返回目标IP地址
访问目标网站
浏览器获得IP地址访问目标网站。
建立TCP连接
浏览器通过IP地址与服务器建立了TCP连接
发送HTTP请求
浏览器构建HTTP请求(request header/request body/request row),将请求发送到服务器。
服务器接收请求
服务器接收到HTTP请求后,先由反向代理(如果有的话)来判断是静态请求还是动态请求。动态请求交由后端处理(kestrel/tomcat),生成HTTP响应(response)
浏览器接收响应
解析HTML,构建DOM树,解析CSS与JS文件。最终渲染页面。
断开连接
TCP四次挥手断开连接。
传输层
PDU
协议数据单元(Protocol Data Unit,PDU,分为头部(PCI)与负载(SDU)计算机网络各层之间交换信息的单位。
在不同的层中,它的title各不相同:
在链路层中叫帧(Frame)
网络层/应用层中叫数据包(Packet)
传输层中叫报文段(Segment,TCP),数据报(Datagram,UDP)
数据传输的过程
对于发送方,就是层层加码,对于接收方,则是层层解码。
TCP协议
TCP是一种面向连接、可靠的、基于字节流的传输层通信协议。
可靠是建立在链路层不断地前提下,硬件断了,说啥都没用。
面向连接
TCP是一种面向连接的协议,在数据交换之前,两个通信端必须先建立连接。
