TCP/IP常见面试问题
TCP/IP常见面试问题
1.OSI七层协议以及四层协议
实际使用时只包含四层协议:从上到下依次是 应用层(http) 传输层(tcp/udp) 网络层(ip) 网络接口层(以太网协议)
2.在网络中具体的传输过程
从上图可见传输的数据每经过一层,就会添加该层的协议首部,相反的在到达目标地址时,每经过一层就会解析出对应层的首部。
3.常用协议首部格式(IP/TCP/UDP)
3.1 IP首部格式解析(Internet Protocal)
3.2 TCP首部格式解析(Transmission Control Protocol)
各部分说明
源端口号( 16 位):它(连同源主机 IP 地址)标识源主机的一个应用进程。
目的端口号( 16 位):它(连同目的主机 IP 地址)标识目的主机的一个应用进程。这两个值 加上 IP 报头中的源主机 IP 地址和目的主机 IP 地址唯一确定一个 TCP 连接。
顺序号 seq( 32 位):用来标识从 TCP 源端向 TCP 目的端发送的数据字节流,它表示在这个 报文段中的第一个数据字节的顺序号。
确认号 ack( 32 位):包含发送确认的一端所期望收到的下一个顺序号。
控制位( control flags , 6 位):在 TCP 报头中有 6 个标志比特,它们中的多个可同时被设 置为 1 。依次为:
- 窗口大小( 16 位):数据字节数,表示从确认号开始,本报文的源方可以接收的字节数,即源 方接收窗口大小。窗口大小是一个 16bit 字段,因而窗口大小最大为 65535 字节
TCP特点及其目的
TCP通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制的机制实现可靠性传输。
- 通过序列号(sqe)与确认应答(ack)提高可靠性。
- 超时重发机制(当发送的数据在一定时间没有收到确认应答时,需要重发数据)
- 利用窗口控制提高速度(这里有一个面试题,注意)
TCP三次握手
详解
第一次握手:主机 A 发送位码为 SYN=1,随机产生 seq=1234567 的数据包到服务器,主机 B 由 SYN=1 知道,A 要求建立联机;
第二次握手:主机 B 收到请求后要确认联机信息,向 A 发 送 ACK=1 ack =( 主 机 A 的 seq+1),SYN=1,随机产生 seq=7654321 的包
第三次握手:主机 A 收到后检查 ack number 是否正确,即第一次发送的 seq number+1,以及位码 ACK 是否为 1,若正确,主机 A 会再发送,ACK=1 ack number=(主机 B 的 seq+1),主机 B 收到后确认
TCP四次挥手
详解
TCP 建立连接要进行三次握手,而断开连接要进行四次。这是由于 TCP 的半关闭造成的。因为 TCP 连 接是全双工的(即数据可在两个方向上同时传递)所以进行关闭时每个方向上都要单独进行关闭。这个单方向的关闭就叫半关闭。当一方完成它的数据发送任务,就发送一个 FIN 来向另一方通告将要终止这个方向的连接。
- 关闭客户端到服务器的连接:首先客户端 A 发送一个 FIN,用来关闭客户到服务器的数据传送, 然后等待服务器的确认。其中终止标志位 FIN=1,序列号 seq=u
- 服务器收到这个 FIN,它发回一个 ACK,确认号 ack 为收到的序号加 1。
- 关闭服务器到客户端的连接:也是发送一个 FIN 给客户端。
- 客户段收到 FIN 后,并发回一个 ACK 报文确认,并将确认序号 seq 设置为收到序号加 1。 首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。
3.3 UDP首部格式解析(User Datagram Protocol)
TCP/IP常见面试问题相关推荐
- 网络基础 TCP/IP协议面试常问知识点
网络基础 TCP/IP协议面试常问知识点 ****************** 如有侵权请提示删除 ********************* 1.网络包的组成: 报头/起始帧分界符--MAC头部-- ...
- (个人经历)实习生春招面试中的TCP/IP常见(安全)问题及其相应解答
阿里云后端C/C++实习生面试,本人本科大三网络安全专业,总结了一下面试中关于TCP/IP的相关问题,整理如下,期间参考的其他博客我会列出源地址.我尽量做一些自己的理解后的整理的答案,以面试中一问一答 ...
- TCP/IP协议面试常见题目
TCP/IP 1. OSI与TCP/IP各层的结构与功能,都有哪些协议. 2. TCP与UDP的区别. 3. TCP报文结构. 4. TCP的三次握手与四次挥手过程,各个状态名称与含义,TIMEWAI ...
- TCP/IP常见英文缩写释义
为什么80%的码农都做不了架构师?>>> TCP (传输控制协议) - 应用程序之间通信 transmission control protocol UDP (用户数据包协议 ...
- 计算机英语 TCP IP什意思,TCP/IP常见英文缩写释义
TCP (传输控制协议) - 应用程序之间通信transmission control protocol UDP (用户数据包协议) - 应用程序之间的简单通信 IP (网际协议) - 计算机之间的通 ...
- TCP/IP前端面试
1,TCP/UDP TCP(Transmission Control Protocol)传输控制协议, 是一种面向连接的.可靠的.基于字节流的传输层通信协议.建立一次tcp连接,需要经过三步 步骤1. ...
- 【面试题】面试官:简述TCP/IP三次握手?
文章目录 前言 三次握手流程 1. 标准版 2. 简单版 为什么是四次挥手? 四次挥手过程 原理图 关于TCP/IP的面试补充 1. 三次握手中第一次可以携带数据吗? 2. 为什么必须要三次握手,两次 ...
- c++面试常见题·Part 3 TCP/IP多线程编程设计模式Linux基操等
1.TCP/IP 四层模型: (图来源于网络) IP层(网络层)主要协议: ARP(地址解析协议):负责将一个已知的ip地址解析成MAC地址,以便在交换机上进行通信. ICMP(Internet控制消 ...
- 16进制数用空格分开 tcp_面试时,你是否被问到过TCP/IP协议?
点击蓝字 关注我们 看到这句话,有没有感到很熟悉呀?相信很多人在面试的时候都被要求,很多人会觉得我们在实际开发中一般用不到这些知识,所以对这些东西不屑一顾. 但是小编认为想要成为一个完美的网工,那么对 ...
最新文章
- retain/copy/assign区别
- RTC实时时钟实验(低功耗、纽扣电池供电)
- MySQL错误ERROR 1366 (HY000): Incorrect string value..
- python 访问网站 json_python爬虫用selenium访问一个网址返回的是个json字符串,怎么获取这个json字符串?...
- “编程能力差,90% 输在了数学上!”CTO:多数程序员都是瞎努力!
- java知识总结-13
- iOS用户体验之-modal上下文
- Layui的TreeTable使用
- 提供多种版本- MSI Code条形码字体具有可扩充性条形码控件MSI Plessey
- snb处理器hd3000显卡专用extra_Intel十代酷睿处理器:移动平台性能有了质飞跃!...
- Unity3D之FingerGestures使用
- Web课程设计-仿当当网-增删改查-java+jsp+mysql-期末大作业
- C#、.NET迷你音乐播放器
- 3.JavaScript核心BOM操作学习(界面交互功能)——JavaScript获取自定义的方法,开始进行节点操作
- 【市场点评】沪深基指终强势反弹 终结六连阴走势
- libjpeg库移植与使用
- 《优化技术实验报告》(附全部可运行代码)校车排版问题建模与分析-CPLEX与MATLAB混合编程
- draw.io 画流程图的神器
- 戴尔电脑重做win10系统后,耳机故障
- honeyselect身高补丁_honeyselect 4k高清画质补丁 V1.1 - honey select超高清画质插件