《计算机网络》知识点整理02
-
三种主要网络: 电信网络、有线电视网络、计算机网络、(信息时代的核心技术)
-
早期的计网采用电路交换,现如今计网采用分组交换的、基于存储转发的方式
分组交换:- 在发送端把药发送的报文分割为较短的数据块
- 每个快增加带有控制信息的首部 构成》 分组(包)
- 依次将各个分组发送到接收端
- 接收端剥去首部,抽出数据部分,还原成报文
-
IP网络的重要特点
- 每个分组独立选择路由。(独立性)
- 发往同一个目的地的分组,后发送的有可能先收到(无序性)
- IP网络不保证分组的可靠地交付
- IP网络提供地服务成为: 尽最大努力服务(Best Effort Service)
-
最重要两个协议: TCP(Transmission Control Protocol) 和 IP(Internet Protocol)
- 使用计算机的人是“用户 - user”而不是"客户-client"
- 客户和服务器指的是进程,即计算机软件。
- 服务器(server)有时指代软件,有时指代硬件。
-
计网带宽: 是网络可达的最高数据传输速率。
-
因特网使用基于存储转发的分组交换,并使用IP协议传送IP分组。
-
路由器把许多网络互连起来,构成互联网,路由器收到分组后,根据路由表查找出下一个路由器的地址,然后转发分组。
-
TCP协议保证计算机程序之间的、端到端的可靠交付
-
客户和服务器都是进程(即软件),客户是服务请求方,服务器是服务提供方。
IP网络是虚拟网络
- IP网络是虚拟的,在IP网络上传输的是“IP数据报(IP分组)
- 在网络链路上传送的是“帧”,使用帧的硬件地址(MAC地址)
- IP ARP》 MAC
- 表示方法: 二进制和点分十进制
电子邮件
- 发送邮件协议 - SMTP(Simple Mail Transfer Protocol)
- 接收邮件协议 - POP3(Post Office version 3)
- 邮件传送 - TCP和IP协议传送
URL(Uniform Resource Locator)
- URL用来定位Web上的各种资源文件(文本、语音、视频等)
- URL实际上就是文档在因特网中的地址
HTTP(Hypertext Transfer Protocol) - 超文本传送协议
- Web和Server之间交互遵守超文本传输协议
- 网络边缘段的系统中运行的程序之间通信方式: C/S 和 P2P
- 主机:为用户进行信息处理并和其他主机通过网络交换信息。 路由器: 用来转发分组,即进行分组交换
- 网络核心部分起特殊作用的是: 路由器(router)
- 路由器是实现【分组交换(packet switching)】的关键构件,任务: 根据路由转发收到的分组
- 电路交换 - 面向连接的。 具有三个阶段: 建立连接、通信、释放连接。
TCP/IP的体系结构
路由器在转发分组时最高只用到网络层,而没有使用运输层和应用层
专用地址(本地地址) 和 全球地址
-
本地地址 - 仅在机构内部使用的IP地址,由机构自行分配,不需要向ISP申请
-
全球地址 - 全球唯一的IP地址,必须向因特网的管理机构申请
-
专用地址(private address) ★
- 10.0.0.0 - 10.255.255.255 - 172.16.0.0 - 172.31.255.255 - 192.168.0.0 - 192.168.255.255
专用地址只能用于要给机构的内部通信,不能用于因特网上的主机通信。
专用地址只能用于本地地址而不能用作全球地址。在因特网中的所有路由器对目的地址是专用地址的数据报一律不进行转发。
传输层 - 应用进程之间的通信
-
TCP特点
- 1:1 定点传输
- TCP提供可靠交付的服务
- TCP提供全双工通信
- TCP面向字节流
-
TCP的端口
- 端口用16位端口进行标识 【0 - 65536】
- 端口号只具有本地意义,即为了标志本机计算机应用层中的各个进程。
-
TCP的连接
- TCP将连接作为最基本的抽象。
- 每一条TCP连接有两个端点
- TCP连接的端点不是主机、IP地址、应用进程、协议端口而是套接字(socket)或插口
套接字 socket = {IP地址 : 端口号}
每一条TCP连接唯一地被通信两端地两个端点(即两个套接字)所确定。
即
TCP连接 :: = {socket1, socket2} = {(IP1:port1),(IP2:port2)}
- TCP的流量控制 - 利用滑动窗口实现
流量控制(flow control) - 让发送方的发送速率不要太快,既要让接收方来得及接收,又要不让网络发生拥塞(se)。
利用滑动窗口机制可以很方便地在TCP连接上实现流量控制。
应用层
- 每个应用层协议为了解决某一个类应用问题,而问题的解决通过位于不同主机中的多个应用进程之间的通信和协同工作完成的。
- 应用层的具体内容: 应用进程在通信时所遵循的协议。
- 应用层的许多协议是基于: C/S
域名解析过程
电子邮件
- 发送邮件协议: SMTP
- 读取邮件协议: POP3和IMAP
- E-mail主要构成: 用户代理、发送端邮件服务器、接收端邮件服务器
邮件传输过程
MIME的组成
- 5个新的邮件首部字段,提供有关邮件主体的信息
- MIME-Version: 标志MIME的版本
- Content-Description: 邮件主体
- Content-Id: 邮件唯一标识符
- Content-Transfer-Encoding: 传送时邮件的主体编码方案
- Content-Type: 说明邮件内容格式(内容类型/子类型) eg: text/html、text/css
应用进程跨网络通信(★)
- 系统调用(system call): 使用在App和OS之间传递控制权。
对于程序员来说,每一个系统调用和一般程序设计中的函数调用类似,系统调用将控制权交给操作系统
用户态需要通过核心态完成任务就需要系统调用这个媒介
应用编程接口API(Application Programming Interface)
当某个App进程启动系统调用(System Call)时,控制权从应用进程传递给操作系统接口。
此接口再将控制权传递给计算机的操作系统。操作系统将调用某个内部过程,并执行所请求的操作。
内部过程一旦执行完毕,控制权就通过系统调用接口返回给应用进程。
系统调用接口实际上就是App的控制权和OS的控制权进行转换的接口,即应用程序接口API
套接字{socket1, socket2} = {(ip1:port1),(ip2:port2)的作用
- App通过网络进行通信时发出系统调用,请求OS为其创建“套接字”,去到Web中找到所需要的网络资源回来分配给发起的App。
- OS为这些资源的总和用一个叫做套接字描述符的号码来表示,并把此号码返回给应用进程。应用进程所进行的任何网络操作都需要这个凭证。
- 通信完毕之后,App通过一个关闭套接字的系统调用通知操作系统回收与该“号码”相关的所有资源。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具