计算机网络面试高频(计算机网络基础)

计算机网络基础

1 网络分层结构⭐⭐⭐⭐⭐

计算机网络体系大致分为三种,OSI七层模型、TCP/IP四层模型和五层模型。一般面试的时候考察比较多的是五层模型。

五层模型:应用层、传输层、网络层、数据链路层、物理层。

  • 应用层:为应用程序提供交互服务。在互联网中的应用层协议很多,如域名系统DNS、HTTP协议、SMTP协议等。
  • 传输层:负责向两台主机进程之间的通信提供数据传输服务。传输层的协议主要有传输控制协议TCP和用户数据协议UDP。
  • 网络层:选择合适的路由和交换结点,确保数据及时传送。主要包括IP协议。
  • 数据链路层:在两个相邻节点之间传送数据时,数据链路层将网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧。
  • 物理层:实现相邻节点间比特流的透明传输,尽可能屏蔽传输介质和物理设备的差异。

ISO七层模型是国际标准化组织(International Organization for Standardization)制定的一个用于计算机或通信系统间互联的标准体系。

  • 应用层:网络服务与最终用户的一个接口,常见的协议有:HTTP FTP SMTP SNMP DNS.
  • 表示层:数据的表示、安全、压缩。,确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。
  • 会话层:建立、管理、终止会话,对应主机进程,指本地主机与远程主机正在进行的会话.
  • 传输层:定义传输数据的协议端口号,以及流控和差错校验,协议有TCP UDP.
  • 网络层:进行逻辑地址寻址,实现不同网络之间的路径选择,协议有ICMP IGMP IP等.
  • 数据链路层:在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路。
  • 物理层:建立、维护、断开物理连接。

层次名称

 七层模型

五层模型

主要功能

数据单元

第 7 层

应用层

应用层

直接为用户提供服务(如 HTTP、FTP、SMTP)。

数据(Data)

第 6 层

表示层

处理数据格式转换、加密与压缩(如 ASCII、SSL/TLS)。

数据(Data)

第 5 层

会话层

管理通信会话的建立、维护与终止(如 NetBIOS、RPC)。

数据(Data)

第 4 层

传输层

传输层

提供端到端的可靠(TCP)或不可靠(UDP)数据传输。

段(Segment)/ 数据报(Datagram)

第 3 层

网络层

网络层

通过 IP 地址实现跨网络的数据包路由。

分组(Packet)

第 2 层

数据链路层

数据链路层

负责相邻节点间的数据帧传输,处理错误检测与纠正(如 Ethernet、PPP)。

帧(Frame)

第 1 层

物理层

物理层

处理比特流(bit)的传输,定义电气、机械特性(如光纤、双绞线)。

比特(Bit)

TCP/IP 四层模型

  • 应用层:对应于OSI参考模型的(应用层、表示层、会话层)。
  • 传输层: 对应OSI的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。
  • 网际层:对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。
  • 网络接口层:与OSI参考模型的数据链路层、物理层对应。

层次名称

OSI 七层模型

TCP/IP 四层模型

主要功能

数据单元

典型协议

第 7 层

应用层

应用层

直接为用户提供服务(如 HTTP、FTP、SMTP)。

数据(Data)

HTTP、DNS、SMTP、SSH

第 6 层

表示层

处理数据格式转换、加密与压缩(如 ASCII、SSL/TLS)。

数据(Data)

SSL/TLS、ASCII、JPEG

第 5 层

会话层

管理通信会话的建立、维护与终止(如 NetBIOS、RPC)。

数据(Data)

NetBIOS、RPC

第 4 层

传输层

传输层

提供端到端的可靠(TCP)或不可靠(UDP)数据传输。

段(Segment)/ 数据报(Datagram)

TCP、UDP

第 3 层

网络层

网际层

通过 IP 地址实现跨网络的数据包路由。

分组(Packet)

IP、ICMP、ARP

第 2 层

数据链路层

网络接口层

负责相邻节点间的数据帧传输,处理错误检测与纠正(如 Ethernet、PPP)。

帧(Frame)

Ethernet、Wi-Fi、PPP

第 1 层

物理层

处理比特流(bit)的传输,定义电气、机械特性(如光纤、双绞线)。

比特(Bit)

光纤、双绞线、IEEE 802.3

2 计算机网络有哪两种通信方式?⭐⭐⭐⭐⭐

计算机网络的两种主要通信方式是 面向连接通信 和 无连接通信,它们的核心区别在于是否需要建立端到端的连接以及数据传输的可靠性保障。以下是具体说明:

1. 面向连接通信(Connection-Oriented)

  • 特点:需要预先建立连接(如 TCP 的 “三次握手”)。通信过程中维护连接状态,确保数据按顺序可靠传输。提供流量控制、错误检测与重传机制。
  • :段(Segment)。

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

嵌入式/C++面试八股文 文章被收录于专栏

该专栏面向嵌入式开发工程师、C++开发工程师,包括C语言、C++,操作系统,ARM架构、RTOS、Linux基础、Linux驱动、Linux系统移植、计算机网络、数据结构与算法、数电基础、模电基础、5篇面试题目、HR面试常见问题汇总和嵌入式面试简历模板等文章。超全的嵌入式软件工程师面试题目和高频知识点总结! 另外,专栏分为两个部分,大家可以各取所好,为了有更好的阅读体验,后面会持续更新!!!

全部评论

相关推荐

腾讯会议面试,3个面试官一个一个进来,一个人半个小时还多一共2个小时左右。前面两个主要问项目多,最后一个各种八股文和场景题。问了无数个问题,把有印象的记录下来,顺序可能也不太对。**面试官1:**1.说一下h264和h265的区别2.音视频如何同步3.看你做过鸿蒙是应用层还是底层4.鸿蒙编译过程中遇到了什么问题,怎么解决的5.音频使用的什么格式,比原始的缩小了多少倍6.FFmpeg读取音视频的流程是什么7.SRT协议是什么讲一下8.第一个项目你用ffmpeg都做了什么9.你使用的什么协议传输的数据,具体过程讲一下10.第一个项目使用了rtmp第二个使用rtsp为什么11.录制和回放是怎么做的,具体怎么实现的12.你使用的Linux开发还是windows为什么13.Nginx服务器是怎么搭建14.我现在有一个数组里面有正数有负数,我怎么知道某一段连续的几个数里面的最大值是几15.那段实习经历主要做了什么工作16.三次握手和四次挥手解释一下17.struct和类的区别18.能实习不,啥时候可以上岗19.怎么实现多态**面试官2:**1.TCP和UDP的区别2.struct和类的区别3.实习主要做了什么,问的非常具体的那种4.通信协议拟了解哪些5.讲一讲rtmp6.讲一讲rtsp7.讲一讲rtp8.将一下rtcp9.rtmp和rtsp有什么区别10.rtsp和rtp有什么区别11.rtp和rtcp怎么工作的12.tcp跟 他们有什么关系,有什么区别13.第三次握手丢包了怎么识别14.识别到丢包了,怎么补救15.回答了超时重传和前向纠错,然后就问前向纠错怎么纠错16.rtp传输协议怎么计算延时17.一亿个整数排序大概要多长时间,不太会,说了内存大小大约400MB,选择快速排序的算法,复杂度是nlonN,然后就一直追问你给我算一下,具体几分几秒,麻了18.说到了时间复杂度,时间复杂度跟什么有关19.做界面为什么使用Qt不用别的20.鸿蒙怎么编译的21.你的打印机软著是什么,讲一下22.你的调度算法软著是什么讲一下你的这个算法23.音视频编码你怎么优化参数的,为什么24.一个100M的原始音频文件使用aac压缩后大概多小多少,你试过吗25.你的推流拉流项目实在dos窗口还是有界面,为什么不在浏览器里面实现26.鸿蒙应用层开发怎么做的,底层怎么做的27.你做过ios和安卓吗,28.SDK怎么编译,我说根据官方手册的命令,人继续追问,官方命令也不可能比较顺利,你具体遇到了哪些问题,怎么解决的29.FFmpeg你是安装使用的还是自己下载编译源码的,你编译的时候遇到了什么问题30.说一下为什么之前做前端现在又做C++**面试官3:**1.自我介绍一下2.说一下为什么之前做前端现在又做C++3.C语言中,怎么避免头文件重复包含4.C语言中,字符串转Int,int转字符串的方法​使用`atoi`或`strtol`函数         使用`sprintf`或`snprintf`函数:5.C++中又怎么实现​使用`std::stoi`(C++11及以上)         使用`std::to_string`:6.struct和类的区别7.怎么实现多态8.C语言编写的程序,程序怎么知道自己的名字的9.C语言的随机数怎么写10.在C语言中,数组的个数明明是提前已经确定了,为什么还会越界11.怎么在C语言中打印32位比特12.memcpy和memmove你听过吗,有什么区别13.手写printf函数​14.C语言中,怎么取当前的秒和微秒​在C语言中,可以使用 `<time.h>` 头文件中的 `gettimeofday` 函数来获取当前的秒和微秒15.RAII是什么16.RAII除了智能指针还能干什么17.int a =3 和int b = 4 怎么判断是同一种类型,怎么判断他们都是Int类型​在C++中,可以使用`typeid`运算符来判断变量的类型。18.c++ 中我不想让系统帮我进行字节对齐怎么办19.deLete p和 delete p [] 区别20.如果直接使用deLete p删除数组会出现什么情况21.c++ cast转换有哪几种22.动态类型转换(dynamic_cast)为什么是安全的23.c+++   map跟unordered_map 有什么区别24.c+++   map跟unordered_map 的key可以是自定义类型吗,25.c++ 的for函数和C语言的for函数相比,第三个参数都能传哪些东西,新增了哪些26.STL bind函数是什么怎么使用的27.vector怎么实现的28.Lambda函数是什么就具体讲捕获列表,参数列表,返回值这些29.如果父类函数里面有个 foo(int a) ;  foo(string a); 子类函数有个foo(自定义类型)  会怎么样30.怎么阻止实例化对象31.向上转换和向下转换是什么,哪个是安全的为什么32.什么时候出现重载什么时候是重写33.vector容器我一直push,如果满了他是怎么扩容的34.观察者模式是什么,咋么实现的35.vector源码你看过吗,调用了哪些函数36.听过说 quic协议吗37.运算符重载是怎么实现的
点赞 评论 收藏
分享
评论
点赞
3
分享

创作者周榜

更多
牛客网
牛客企业服务