计算机网络知识和TCPIP常见问题

简介: 计算机网络知识和TCPIP常见问题

计算机网络知识和TCP/IP常见面试题

一、首先谈一谈计算机网络模型

1.1 OSI七层模型

七层模型,亦称OSI(Open System Interconnection)。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。

它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。

下面这张如可以解释每一层及作用:

1.2 TCP/IP四层模型

TCP/IP参考模型是计算机网络的祖父ARPANET和其后继的因特网使用的参考模型。ARPANET是由美国国防部DoD赞助的研究网络。逐渐地它通过租用的电话线连结了数百所大学和政府部门。当无线网络和卫星出现以后,现有的协议在和它们相连的时候出现了问题,所以需要一种新的参考体系结构。这个体系结构在它的两个主要协议出现以后,被称为TCP/IP参考模型。

TCP/IP是一组用于实现网络互连的通信协议。Internet网络体系结构以TCP/IP为核心。基于TCP/IP的参考模型将协议分成四个层次,它们分别是:网络访问层、网际互联层、传输层、和应用层。

1.3 两者的关系

共同点

(1)OSI参考模型和TCP/IP参考模型都采用了层次结构的概念。

(2)都能够提供面向连接和无连接两种通信服务机制。

不同点

(1)OSI采用的七层模型,而TCP/IP是四层结构。

(2)TCP/IP参考模型的网络接口层实际上并没有真正的定义,只是一些概念性的描述。而OSI参考模型不仅分了两层,而且每一层的功能都很详尽。

(3)OSI模型是在协议开发前设计的,具有通用性。TCP/IP是先有协议集然后建立模型,不适用于非TCP/IP网络。

(4)TCP/IP参考模型的传输层是建立在网络互联层基础之上的,而网络互联层只提供无连接的网络服务,所以面向连接的功能完全在TCP协议中实现,当然TCP/IP的传输层还提供无连接的服务,如UDP;相反OSI参考模型的传输层是建立在网络层基础之上的,网络层既提供面向连接的服务,又提供无连接的服务,但传输层只提供面向连接的服务。

(5)OSI参考模型的抽象能力高,适合与描述各种网络;而TCP/IP是先有了协议,才制定TCP/IP模型的。

(6)OSI参考模型的概念划分清晰,但过于复杂;而TCP/IP参考模型在服务、接口和协议的 区别上不清楚,功能描述和实现细节混在一起。

(7)TCP/IP参考模型的网络接口层并不是真正的一层;OSI参考模型的缺点是层次过多,划分意义不大但增加了复杂性。

二、常见面试题

2.1 TCP和UDP的区别

常见:

(1)TCP面向连接,UDP面向无连接

(2)TCP可靠,UDP不可靠

(3)TCP开销大、UDP开销小

(4)…

不常见:

(1)TCP只支持一对一传输,而UDP支持一对一、一对多、多对一

(2)TCP提供拥塞控制,而UDP没有

2.2 TCP的可靠性是怎么保证的

首先我们来看下TCPD的报文格式:

保证可靠性的机制主要是来自于TCP的报文格式:

(1)TCP的校验和

(2)序列号:保证TCP报文传输的顺序性

(3)确认号:确认应答机制,超时重传

(4)窗口大小:流量的拥塞控制

(5)紧急指针:异常情况下进行消息通报

(6)源端口和目标端口:确保一对一连接

2.3 TCP的三次握手和四次挥手

(1)三次握手

第一次握手:建立连接时,客户端发送SYN包(SEQ=x)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号。

第二次握手:服务器收到SYN包,必须确认客户端的SYN(ack=x+1),同时自己也发送一个SYN包(SEQ=y),即SYN+ACK包,此时服务器进入SYN_RECV状态。

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

(2)四次挥手

第一次挥手:TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送。

第二次挥手:服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。

第三次挥手: 服务器关闭客户端的连接,发送一个FIN给客户端。

第四次挥手: 客户端发回ACK报文确认,并将确认序号设置为收到序号加1。

2.4 TCP建立连接后数据如何传输

(1)正常情况下数据传输

首先客户端和服务端经过三次握手后已经建立了数据连接

客户端向服务端发送数据时,通过seq数据包携带data(数据)向服务端发送,服务端收到后返回确认号为seq的序列号+数据的长度再加一,即ack=seq+data+1

(2)超时或异常情况

为了完成数据包的重传,TCP套接字每次发送数据包时都会启动定时器,如果在一定时间内没有收到目标机器传回的 ACK 包,那么定时器超时,数据包会重传。一般情况下TCP数据包最多重传三次,根据系统不同,重传次数会有差异。


相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
1月前
|
移动开发 网络协议 安全
网络面试题:什么是 TCP/IP?
网络面试题:什么是 TCP/IP?
43 0
网络面试题:什么是 TCP/IP?
|
1天前
|
网络协议 网络架构
TCP IP协议簇:网络通信的基石
【4月更文挑战第20天】
19 6
|
10天前
|
网络协议 Java API
深度剖析:Java网络编程中的TCP/IP与HTTP协议实践
【4月更文挑战第17天】Java网络编程重在TCP/IP和HTTP协议的应用。TCP提供可靠数据传输,通过Socket和ServerSocket实现;HTTP用于Web服务,常借助HttpURLConnection或Apache HttpClient。两者结合,构成网络服务基础。Java有多种高级API和框架(如Netty、Spring Boot)简化开发,助力高效、高并发的网络通信。
|
1月前
|
域名解析 缓存 网络协议
网络原理-TCP/IP(7)
网络原理-TCP/IP(7)
|
1月前
|
XML JSON 网络协议
网络原理-TCP/IP(5)
网络原理-TCP/IP(5)
|
1月前
|
存储 网络协议 API
网络原理-TCP/IP(3) - 三次握手超详解析
网络原理-TCP/IP(3) - 三次握手超详解析
|
1月前
|
JSON 网络协议 算法
网络原理-TCP/IP(1)
网络原理-TCP/IP(1)
|
2月前
|
网络协议 安全 网络安全
探秘网络通信:UDP与TCP/IP的奥秘
探秘网络通信:UDP与TCP/IP的奥秘
70 0
|
3月前
|
网络协议 网络架构
【网络奇缘】- 计算机网络|分层结构|深入探索TCP/IP模型|5层参考模型
【网络奇缘】- 计算机网络|分层结构|深入探索TCP/IP模型|5层参考模型
23 0
|
1月前
|
机器学习/深度学习 数据采集 人工智能
m基于深度学习网络的手势识别系统matlab仿真,包含GUI界面
m基于深度学习网络的手势识别系统matlab仿真,包含GUI界面
41 0