八股文整理——计算机网络

目录

OSI,TCP/IP,五层协议的体系结构 

TCP/IP模型和OSI参考模型的对应关系 

OSI每一层的作用如下(理解顺序依次往下):

OSI分层及对应协议

以 “寄快递” 为例类比七层模型

TCP与UDP的区别?

TCP对应的协议和UDP对应的协议

 TCP对应的协议:

UDP对应的协议:

TCP/IP体系的四个层次

TCP/IP协议的特点

HTTP1.0和HTTP1.1的区别


OSI,TCP/IP,五层协议的体系结构 

OSI分层(7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
TCP/IP分层(4层):网络接口层、网络层、传输层、应用层
五层协议:物理层、数据链路层、网络层、传输层、应用层

TCP/IP模型和OSI参考模型的对应关系 

网络接口层--对应OSI参考模型的物理层和数据链路层;[主要是物理地址寻址、数据成帧等处理]
网络层--对应OSI参考模型的网络层;[主要对数据包进行路由选择等]
传输层--对应OSI参考模型的传输层;[主要对数据包进行分段并处理拥塞控制流量控制等]
应用层--对应OSI参考模型的5、6、7层。[主要对数据包进行校验、加密解密、格式转换和解析等]

OSI每一层的作用如下(理解顺序依次往下):

  • 应用层:为操作系统或网络应用程序提供访问网络服务的接口。(提供访问网络的接口)
  • 表示层:表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。(通过转换来保证另一个主机的应用程序认识我的数据或信息)
  • 会话层:会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。
  • 传输层:第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的拥塞控制流量控制问题。 
  • 网络层:网络层负责对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能。
  • 数据链路层:数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据成帧、流量控制、数据的检错、重发等。  
  • 物理层:激活、维持、关闭,通信端点之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供了一个传输数据的物理媒体。 

OSI分层及对应协议

分层
核心功能(从上到下的依赖关系)
典型协议 / 技术
数据单位
类比场景(生活化理解)
物理层(Physical Layer)
定义物理设备的电气、机械特性,负责原始比特流(0/1)的传输(如电信号、光信号、无线电磁波)。
以太网物理层标准(如 10BASE-T、100BASE-FX)、RS-232(串口)、光纤 / 同轴电缆规格、无线信道(如 Wi-Fi 的物理层协议)
比特(Bit)
类似 “电线、光纤、无线电波”—— 负责信号的物理传输,不关心内容。
数据链路层(Data Link Layer)
将比特流封装成 “帧”(Frame),实现局域网内节点的可靠传输,包含差错校验(如 CRC)、流量控制,通过 MAC 地址(硬件地址)识别节点。
以太网(Ethernet)、PPP(点对点协议)、HDLC(高级数据链路控制)、VLAN(虚拟局域网)、ARP(地址解析协议,MAC 与 IP 转换)、RARP(反向 ARP)
帧(Frame)
类似 “小区内的快递分拣”—— 按 MAC 地址(如网卡地址)在局域网内精准投递,检查包裹是否损坏。
网络层(Network Layer)
实现跨网络(不同局域网 / 广域网)的通信,通过 IP 地址进行逻辑寻址,选择最佳传输路径(路由),处理拥塞控制。
IP(IPv4/IPv6)、ICMP(互联网控制报文协议,如 ping traceroute)、IGMP(组播管理)、路由协议(RIP、OSPF、BGP)、IPsec(网络层加密)
分组 / 数据报(Packet/Datagram)
类似 “快递的跨省运输”—— 通过 IP 地址规划跨区域路线,路由设备(路由器)是 “中转站”。
传输层(Transport Layer)
提供端到端(如主机 A 到主机 B)的可靠或不可靠传输,负责流量控制、差错恢复,通过端口号区分同一主机上的不同应用。
TCP(传输控制协议,可靠传输,面向连接)、UDP(用户数据报协议,不可靠,无连接)、SPX(Novell 协议)
段(Segment,TCP)/ 报(Datagram,UDP)
类似 “快递公司的运输服务”——TCP 像 “挂号信”(丢件重发),UDP 像 “普通平信”(快速但可能丢失),端口号类似 “收件人姓名”(区分同一地址的不同接收者)。
会话层(Session Layer)
建立、管理和终止通信双方的 “会话”(如登录会话、文件传输会话),控制会话的同步(如断点续传的标记)。
RPC(远程过程调用)、NetBIOS(网络基本输入输出系统,用于局域网会话)、SSL/TLS 的会话管理部分
会话数据单元
类似 “通话的拨号与挂断”—— 负责启动和结束一次通信(如登录网站时建立会话,退出时关闭)。
表示层(Presentation Layer)
处理数据的格式转换、加密 / 解密、压缩 / 解压,确保不同系统的应用层能理解数据内容(如统一编码格式)。
JPEG(图像压缩)、MPEG(视频压缩)、ASCII/Unicode(字符编码)、SSL/TLS 的加密部分、数据压缩算法
表示数据单元
类似 “翻译与包装”—— 把数据转换成双方都能看懂的格式(如将中文 “你好” 转为 ASCII 编码,或对文件加密防止泄露)。
应用层(Application Layer)
直接为用户提供具体的网络应用服务,是用户可见的最高层。
HTTP/HTTPS(网页浏览)、FTP(文件传输)、SMTP/POP3/IMAP(邮件收发)、DNS(域名解析)、Telnet/SSH(远程登录)、SNMP(网络管理)
应用数据单元
类似 “具体的服务内容”—— 如浏览器(HTTP)、邮件客户端(SMTP)、文件传输工具(FTP)等直接供用户使用的功能。

以 “寄快递” 为例类比七层模型

OSI 层
作用描述
快递场景类比
应用层
用户直接使用的服务(如 HTTP、邮件)
寄件人写快递单(决定寄什么、收信人信息),对应 “用户需求的最顶层”。
表示层
数据格式转换、加密压缩
把物品包装成快递箱(如将文件压缩成 ZIP,给包裹加密防止损坏)。
会话层
管理通信会话(建立、中断、同步)
快递员与寄件人约定取件时间(维持 “会话” 流程,如中途暂停可标记位置)。
传输层
端到端可靠 / 不可靠传输(分段、纠错)
快递公司承诺 “包裹必须完整送达”(TCP)或 “只负责寄出不保证到货”(UDP),对应分箱运输(如将大包裹拆成多个小件)。
网络层
跨网络路由选择(IP 寻址)
快递公司规划运输路线(如从北京到上海走哪条高速),用 IP 地址当 “快递单号” 定位目的地。
数据链路层
相邻设备间传输(MAC 寻址、成帧)
某段高速路上的卡车司机按地址送货(用 MAC 地址找具体路口),给每个包裹贴 “路段标签”(帧)。
物理层
传输电信号 / 光信号(硬件连通)
高速公路本身(网线、光纤等物理介质),只负责 “路是通的”,不关心跑的是什么车。

TCP与UDP的区别?

①TCP协议是一种可靠的、面向连接的协议,保证通信主机之间有可靠的字节流传输,完成流量控制功能,协调收发双方的发送与接收速度,达到正确传输的目的。 
UDP是一种不可靠、无连接的协议,其特点是协议简单、额外开销小、效率较高,但是不能保证传输是否正确。 
②UDP是面向无连接的、不可靠的数据报服务;
TCP是面向连接的、可靠的字节流服务。

TCP对应的协议和UDP对应的协议

 TCP对应的协议:

(1) FTP:文件传输协议,默认使用21端口。
(2)Telnet:一种用于远程登陆的端口,用户可以以自己的身份远程连接到计算机上,通过这种端口可以提供一种基于DOS模式下的通信服务,默认使用23端口。
(3)SMTP:简单邮件传送协议,用于发送邮件,默认使用25号端口。
(4)POP3:和SMTP对应,POP3用于接收邮件,默认使用110端口。
(5)HTTP协议:超文本传输协议,从Web服务器传输超文本到本地浏览器的传送协议,默认使用80端口。
补充:
①DOS模式可以理解为命令行的操作模式,依靠打字进行操控,例如你去汉堡店点餐,图形化界面只需要指着图片点餐即可,dos模式的话,点餐得用语言描述 “我要一个双层牛肉汉堡,不加生菜”,得记住 “菜单指令”(如点汉堡对应哪个数字代码)。
②HTTP和HTTPS的区别:HTTPS 是 HTTP 的 “安全升级版”,通过加密和身份认证,解决了 HTTP “明文传输易被窃听” 的问题,就像从 “露天快递” 升级为 “密封快递”,现在已成为主流网站的标配。

UDP对应的协议:

(1) DNS:域名系统,将域名地址转换为IP地址,默认使用53号端口。
(2) SNMP:简单网络管理协议,默认使用161号端口,是用来管理网络设备的。
(3) TFTP (Trival File Transfer Protocal):简单文件传输协议,默认使用69号端口。

TCP/IP体系的四个层次

TCP/IP体系共有四个层次:应用层(Application Layer)、传输层(Transport Layer)、网络互连层(Internet Layer)和网络接口层(Host-to-Network Layer)
(1)网络接口层(Host-to-Network Layer)=> 接收和发送数据报 网络接口层主要负责将数据报发送到网络传输介质上以及从网络上接收TCP/IP数据报,相当于OSI参考模型中的物理层和数据链路层。 在实际中,先后流行的以太网、令牌环网、ATM、帧中继等都可视为其底层协议。它将发送的信息组帧,并通过物理层向选定网络发送,或者从网络上接收物理帧,将去除数据控制信息的IP数据报交给网络互连层。
(2)网络互连层(Internet Layer) => 数据报封装和路由寻址功能,网络互连层的主要功能是寻址和对数据报的封装以及重要的路由选择功能。 这些功能大部分都是由IP协议来完成的,再加上地址解析协议(Address Resolution Protocol,ARP)、因特网控制报文协议(Internet Control Message Protocol,ICMP)等协议从旁协助,所以IP协议是本层众多实体中的核心。
下面简单介绍这几个协议:
①网际协议(Internet Protocol,IP)。该协议是一个无连接的协议,主要负责将数据报从源结点转发到目的结点。也就是说,IP协议通过对每个数据报中都有的源地址和目的地址进行分析,然后进行路由选择(即选择一条到达目标的最佳路径),最后再转发到目的地。
**需要注意的是:IP协议只是负责对数据进行转发,并不对数据进行检查。也就是说,它不负责数据的可靠性,这样设计的主要目的是提高IP协议传送和转发数据的效率。 (只负责传,不负责查,只快,不安全)
②地址解析协议(Address Resolution Protocol,ARP)。该协议主要负责将TCP/IP网络中的IP地址解析和转换成计算机的物理地址,以便于物理设备(如网卡)按该地址来接收数据。
③反向地址解析协议(Reverse Address Resolution Protocol,RARP)。该协议的作用与ARP的作用相反,它主要负责将设备的物理地址解析和转换成IP地址。
④因特网控制报文协议(Internet Control Message Protocol,ICMP)。该协议主要负责发送和传递包含控制信息的数据报,这些控制信息包括哪台计算机出了什么错误、网络路由出现了什么错误等内容。
(3)传输层(Transport Layer)=> 应用进程间的端到端通信
**传输层主要负责在应用进程之间的端到端通信,即从某个应用进程传输到另外一个应用进程。
**它与OSI参考模型的传输层功能类似,也对高层屏蔽了底层通信网络的实现细节。 传输层在某一时刻可能要同时为多个不同的应用进程服务,因此为了识别不同的应用进程,传输层在每一个分组中必须增加用于识别信源和信宿的应用程序的标识,同时,每一个分组还要附带校验和,以保证接收端能校验分组的正确性,这样可以将数据报发送到合适的应用进程。这个增加的标识称为端口(port)或者端口号(port ID)。
TCP/IP体系结构的传输层包含两个主要协议,即传输控制协议(Transport Control Protocol,TCP)和用户数据报协议(User Datagram Protocol,UDP)。这两个协议分别应用于有不同要求的应用进程。
(4)应用层(Application Layer)=> 不同协议 应用层是TCP/IP的最高层,它包括了多种高层协议,并且总有新的协议加入。
与OSI的应用层类似,它是直接为应用进程服务的一层。即当不同的应用进程数据通信或者数据交换时,就去调用应用层的不同协议实体,让这些实体去调用TCP或者UDP层服务来进行网络传输。 
与OSI不同,TCP/IP中包含了许多具体的应用层协议。
简单邮件传输协议(Simple Mail Transportation Protocol,SMTP):该协议主要用于在电子邮件服务器之间传输电子邮件。
域名系统(Domain Name System,DNS):该协议用于域名与IP地址之间的转换。
超文本传输协议(Hypertext Transportation Protocol,HTTP):该协议是为因特网上传输和处理超文本或者WWW(World Wide Web)页面而服务的应用层协议。
文件传输协议(File Transportation Protocol,FTP):该协议是为网络中传输文件进程服务的,所谓传输文件,是指将文件从一台计算机通过网络复制到另一台计算机中。
远程终端协议(Telnet):该协议是用于远程登录网络主机的一个应用层协议。
简单网络管理协议(Simple Network Management Protocol,SNMP):该协议用于在控制台与网络设备(如路由器、交换机等)之间交换网络管理信息

TCP/IP协议的特点

1、高可靠性 :TCP/IP采用重新确认的方法保证数据的可靠传输,并采用窗口流量控制机制使可靠性得到进一步保证。 
TCP的可靠性如何保证? TCP的可靠性是通过顺序编号(SEQ)和确认(ACK)来实现的。
2、安全性 :为建立TCP连接,在连接的每一端都必须与该连接的安全性控制达成一致。IP在它的控制分组头中有若干字段允许有选择地对传输的信息实施保护。
3、灵活性 :TCP/IP要求下层支持该协议,而对上层应用协议不作特殊要求。因此,TCP/IP的使用不受传输介质和网络应用软件的限制。

HTTP1.0和HTTP1.1的区别

1、HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。(类似短连接)
HTTP 1.1则支持持久连接(Persistent Connection), 并且默认使用persistent  connection。 在同一个tcp的连接中可以传送多个HTTP请求和响应.。多个请求和响应可以重叠,也可以同时进行更加多的请求头和响应头(比如HTTP1.0没有host的字段)。(类似长连接)
在1.0时的会话方式:
①建立连接
②发出请求信息
③回送响应信息
④关掉连接
HTTP 1.1的持续连接,也需要增加新的请求头来帮助实现,例如,Connection请求头的值为Keep-Alive时,客户端通知服务器返回本次请求结果后保持连接;Connection请求头的值为close时,客户端通知服务器返回本次请求结果后关闭连接。HTTP 1.1还提供了与身份认证、状态管理和Cache缓存等机制相关的请求头和响应头。
请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。例如:一个包含有许多图像的网页文件的多个请求和应答可以在一个连接中传输,但每个单独的网页文件的请求和应答仍然需要使用各自的连接。
HTTP 1.1还允许客户端不用等待上一次请求结果返回,就可以发出下一次请求,但服务器端必须按照接收到客户端请求的先后顺序依次回送响应结果,以保证客户端能够区分出每次请求的响应内容。(用户任性,客服不允许任性,必须依次返回结果)
2、HTTP 1.1增加host字段
在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。
HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)。此外,服务器应该接受以绝对路径标记的资源请求。
3、100(Continue) Status(节约带宽)
HTTP/1.1加入了一个新的状态码100(Continue)。客户端事先发送一个只带头域的请求,如果服务器因为权限拒绝了请求,就回送响应码401(Unauthorized);如果服务器接收此请求就回送响应码100,客户端就可以继续发送带实体的完整请求了。100 (Continue) 状态代码的使用,允许客户端在发request消息body之前先用request header试探一下server,看server要不要接收request body,再决定要不要发request body。(先“假请求”一下,看你是否需要,如果需要,我就发真正的请求给你)
4、HTTP/1.1中引入了Chunked transfer-coding来解决上面这个问题,发送方将消息分割成若干个任意大小的数据块,每个数据块在发送时都会附上块的长度,最后用一个零长度的块作为消息结束的标志。这种方法允许发送方只缓冲消息的一个片段,避免缓冲整个消息带来的过载。
5、HTTP/1.1在1.0的基础上加入了一些cache的新特性,当缓存对象的Age超过Expire时变为stale对象,cache不需要直接抛弃stale对象,而是与源服务器进行重新激活(revalidation)。(按需更新,减少不必要的网络开销) -》通过“条件请求”来实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/90693.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/90693.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

进制间的映射关系

✅ 问题一:为什么不同进制之间会有特定的映射关系? ✅ 问题二:为什么八进制和十六进制可以被看作是二进制的简化形式?🔍 一、为什么不同进制之间有特定的映射关系? 这是因为 所有进制本质上只是表示数的不同…

RabbitMQ-交换机(Exchange)

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。中间件,我给它的定义就是为了实现某系业务功能依赖的软件,包括如下部分:Web服务器代理…

分类预测 | MATLAB实现DBO-SVM蜣螂算法优化支持向量机分类预测

分类预测 | MATLAB实现DBO-SVM蜣螂算法优化支持向量机分类预测 目录 分类预测 | MATLAB实现DBO-SVM蜣螂算法优化支持向量机分类预测 分类效果 基本介绍 算法步骤 参数设定 运行环境 应用场景 程序设计 参考资料 分类效果 基本介绍 该MATLAB代码实现了基于蜣螂优化算法(DBO)优…

变频器实习DAY15

目录变频器实习DAY15一、工作内容柔性平台常规测试柔性平台STO测试自己犯的一个特别离谱的错STO的功能了解为什么STO的故障叫做基极已封锁二、学习内容2.1 火线接断路器 vs. 接地/悬空的区别小内容分点附学习参考网址欢迎大家有问题评论交流 (* ^ ω ^)变频器实习DAY15 STO 板…

一文学会c++list

文章目录list简介list接口迭代器失效🚩模拟实现list简介 1,list是可以在常数时间复杂度任何位置随意插入的序列式容器,可以双向迭代 2,底层是双向链表结构,每个节点都是独立的,通过前后指针链接 3&#xf…

数据集分享 | 智慧农业实战数据集精选

【导读】 在智慧农业的发展浪潮下,AI视觉算法正逐步渗透进作物生长监控、病虫害检测、采摘成熟评估等细分任务。相较于工业或城市场景,农业视觉更具挑战性:自然环境复杂、目标形态多变、时空尺度差异大。 为实现精准农业管理,一…

CCFRec-人大高瓴-KDD2025-序列推荐中充分融合协同信息与语义信息

文章目录1. 背景与问题2. 方法2.1 多视图 sid2.2 Code-Guided Semantic Fusion核心创新:常规操作:2.3 Enhanced Representation Learning via Code Masking2.3.1 Masked Code Modeling (MCM)2.3.2 Masked Sequence Alignment (MSA)2.4 复杂度分析2.4.1 训…

Python深入 Tkinter 模块

目录 一、为什么要写 Tkinter 二、最小可运行示例:Hello World 不是终点,而是起点 三、布局三板斧:pack、grid、place 四、事件与回调:让按钮“响”起来 五、实战案例:秒表 文件批量重命名器 六、样式进阶&…

LeetCode 面试经典 150_数组/字符串_删除有序数组中的重复项(3_26_C++_简单)

LeetCode 面试经典 150_删除有序数组中的重复项(3_26_C_简单)题目描述:输入输出样例:题解:解题思路:思路一(双指针):代码实现代码实现(思路一(双指…

架构篇(一):告别MVC/MVP,为何“组件化”是现代前端的唯一答案?

架构篇(一):告别MVC/MVP,为何“组件化”是现代前端的唯一答案? 引子:一个困扰前端工程师的“幽灵” 在上一章《序章:抛弃UI,我们来构建一个“看不见”的前端应用》中,我们从零开始构建了一个纯…

数组内存学习

一、内存简介:1.内存分为5块:a.栈(Stack)主要运行方法,方法的运行都会进入栈内存运行,云南行完毕之后,需要“弹栈”,为了腾空间。b.堆(Heap)保存的是对象&…

验证 GitHub Pages 的自定义域(Windows)

验证 GitHub Pages 的自定义域 您可以通过验证您的域来提高自定义域的安全性并避免接管攻击。 谁可以使用此功能? GitHub Pages 在公共存储库中提供 GitHub Free 和 GitHub Free for organizations,在公共和私有存储库中提供 GitHub Pro、GitHub Team、GitHub Enterprise Cl…

数字化转型 - 企业数字化建设的几点思考

关于企业数字化建设的几点思考工业软件领军人才的培训课中,如上的一个PPT,给人以许多反思。一是看企业成功的数字化案例时,也许只看到别人面上的东西,可能还有面下很多看不到的东西支撑着,因此可能只看到或学到别人的皮…

深入解析Java内存模型:原理与并发优化实践

深入解析Java内存模型:原理与并发优化实践 技术背景与应用场景 随着多核处理器的普及,Java并发编程已成为后端系统提升吞吐量与响应性能的必备手段。然而,在多线程环境下,不同线程对共享变量的可见性、指令重排以及内存屏障控制都…

《设计模式之禅》笔记摘录 - 9.责任链模式

责任链模式的定义责任链模式定义如下:Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects and pass the request along the chain until an object handles it.…

05-ES6

数据解构SetES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值Set 本身是一个构造函数,用来生成 Set 数据结构//set集合,成员是唯一的,添加过程中会替换相同的元素。这里相同的标准是const s new S…

正则表达式 \b:单词边界

下面举例说明 \b 用法。\b(?:https?://)(\S)\b各部分功能:\b:单词边界,确保匹配的 URL 是独立的单词,不会与其他字符粘连。(?:https?://):非捕获组,匹配 http:// 或 https://(s? 表示 s 可…

从8h到40min的极致并行优化:Spark小数据集UDTF处理的深度实践与原理剖析

在大数据领域,Spark以其卓越的并行处理能力著称。但面对小数据集的极致并行需求时,默认优化策略往往成为瓶颈。本文将深入剖析如何通过精准控制分区策略,将仅170条数据的表拆分成170个独立Task并行执行,实现100%的并行度&#xff…

JAVA算法题练习day1

开始前: 选择leetcode-hot100。要求每日1道,并且需要亲自二刷昨天的题目(每一种解法),要做解题笔记并发布CSDN,做完立刻二刷。做题时间为每日12:50起,不拖延,这是学习成…

【Word Press进阶】自定义区块的行为与样式

前两篇 【Word Press基础】创建自定义区块【Word Press基础】创建一个动态的自定义区块 说明白了怎么创建一个简单的静态区块。但实在是太丑了。这里再进行一个优化,让咱们的区块好看又好用。 一个合格的区块应当有着好看的外表,完整的功能&#xff0…