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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 计算机网络知识和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数据包最多重传三次,根据系统不同,重传次数会有差异。


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
2月前
|
网络协议 安全 网络安全
网络编程:基于socket的TCP/IP通信。
网络编程:基于socket的TCP/IP通信。
142 0
|
21天前
|
网络协议 网络架构 数据格式
TCP/IP基础:工作原理、协议栈与网络层
TCP/IP(传输控制协议/互联网协议)是互联网通信的基础协议,支持数据传输和网络连接。本文详细阐述了其工作原理、协议栈构成及网络层功能。TCP/IP采用客户端/服务器模型,通过四个层次——应用层、传输层、网络层和数据链路层,确保数据可靠传输。网络层负责IP寻址、路由选择、分片重组及数据包传输,是TCP/IP的核心部分。理解TCP/IP有助于深入掌握互联网底层机制。
100 2
|
22天前
|
网络协议 Java
谈谈TCP/IP网络编程
【9月更文挑战第1天】在当今数字化的世界中,网络通信是连接各种设备和系统的关键。TCP/IP协议作为互联网通信的基石,被广泛应用于各种网络场景。了解TCP/IP网络编程的概念,并掌握如何在Java中实现TCP/IP通讯,对于开发人员来说是非常重要的。
44 4
|
2月前
|
网络协议 Java 关系型数据库
16 Java网络编程(计算机网络+网络模型OSI/TCP/IP+通信协议等)
16 Java网络编程(计算机网络+网络模型OSI/TCP/IP+通信协议等)
73 2
|
3月前
|
网络协议 算法 安全
【网络协议基础】TCP/IP协议大全
TCP/IP协议是现代计算机网络通信的基础,是互联网及局域网广泛使用的一套协议。TCP/IP协议集采用分层模型,以便于网络的设计、实现和管理。
36 2
|
3月前
|
缓存 网络协议 网络性能优化
网络协议详解:TCP/IP与HTTP
【7月更文挑战第24天】TCP/IP协议和HTTP协议是现代互联网通信的重要基石。TCP/IP协议提供了计算机之间数据传输和通信的底层支持,而HTTP协议则在此基础上实现了超文本数据的传输。随着互联网的不断发展,TCP/IP协议和HTTP协议将继续发挥重要作用,为各种网络应用提供稳定、高效的通信服务。
|
3月前
|
网络协议 程序员 定位技术
学习网络的第一步:全面解析OSI与TCP/IP模型
**网络基础知识概览:** 探索网络通信的关键模型——OSI七层模型和TCP/IP五层模型。OSI模型(物理、数据链路、网络、传输、会话、表示、应用层)提供理论框架,而TCP/IP模型(物理、数据链路、网络、传输、应用层)更为实际,合并了会话、表示和应用层。两者帮助理解数据在网络中的传输过程,为网络设计和管理提供理论支持。了解这些模型,如同在复杂的网络世界中持有了地图。
67 2
|
2月前
|
网络协议 视频直播 SDN
计算机网络:TCP协议的三次握手和四次挥手与UDP协议区别.
计算机网络:TCP协议的三次握手和四次挥手与UDP协议区别.
42 1
|
2月前
|
网络协议
计算机网络:TCP协议的三次握手和四次挥手与UDP协议区别.
计算机网络:TCP协议的三次握手和四次挥手与UDP协议区别.
45 0
|
4月前
|
机器学习/深度学习 网络协议 网络性能优化
[计算机网络]深度学习传输层TCP协议
[计算机网络]深度学习传输层TCP协议
44 1
下一篇
无影云桌面