当前位置: 首页 > news >正文

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

目录

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.dtcms.com/a/299641.html

相关文章:

  • 【数据结构】队列和栈练习
  • HTTPS的基本理解以及加密流程
  • Nestjs框架: 基于Mongodb的多租户功能集成和优化
  • 顶顶通呼叫中心系统之创建与注册分机
  • 矩阵乘法计算
  • 安德鲁·卡帕西:深入探索像ChatGPT这样的大语言模型
  • 免费 PDF 转 Word 工具:无水印 / 支持批量转换,本地运行更安全【附工具下载】
  • Ubuntu系统 系统盘和数据盘扩容具体操作
  • 【第二章-数据的表示和运算】
  • vulhub Web Machine(N7)靶场攻略
  • 详解力扣高频SQL50题之1193. 每月交易 I【简单】
  • 数据恢复与备份
  • RS485转Profinet网关配置指南:高效启动JRT激光测距传感器测量模式
  • SpringMVC相关基础知识
  • HTML5 Canvas 绘制圆弧效果
  • Centos安装HAProxy搭建Mysql高可用集群负载均衡
  • 力扣112. 路径总和
  • 面试150 回文数
  • React状态管理——Dva
  • React入门指南——指北指南(第二节)
  • LeetCode——面试题 05.01 插入
  • Vue3组件通信方法清单
  • Linux——线程互斥
  • 云计算技术之docker build构建错误
  • Spring循环依赖以及三个级别缓存
  • Zama+OpenZeppelin:将机密智能合约带入 DeFi 和数字资产领域
  • ClickHouse高性能实时分析数据库-高性能的模式设计
  • JavaScript中.splice()的用法
  • Vue 插槽
  • 数据结构自学Day14 -- 利用归并排序思想实现“外排序”