TCP/IP常见面试问题

1.OSI七层协议以及四层协议

实际使用时只包含四层协议:从上到下依次是 应用层(http) 传输层(tcp/udp) 网络层(ip) 网络接口层(以太网协议)


2.在网络中具体的传输过程

从上图可见传输的数据每经过一层,就会添加该层的协议首部,相反的在到达目标地址时,每经过一层就会解析出对应层的首部。

3.常用协议首部格式(IP/TCP/UDP)

3.1 IP首部格式解析(Internet Protocal)

3.2 TCP首部格式解析(Transmission Control Protocol)

各部分说明

  1. 源端口号( 16 位):它(连同源主机 IP 地址)标识源主机的一个应用进程。

  2. 目的端口号( 16 位):它(连同目的主机 IP 地址)标识目的主机的一个应用进程。这两个值 加上 IP 报头中的源主机 IP 地址和目的主机 IP 地址唯一确定一个 TCP 连接。

  3. 顺序号 seq( 32 位):用来标识从 TCP 源端向 TCP 目的端发送的数据字节流,它表示在这个 报文段中的第一个数据字节的顺序号。

  4. 确认号 ack( 32 位):包含发送确认的一端所期望收到的下一个顺序号。

  5. 控制位( control flags , 6 位):在 TCP 报头中有 6 个标志比特,它们中的多个可同时被设 置为 1 。依次为:

  1. 窗口大小( 16 位):数据字节数,表示从确认号开始,本报文的源方可以接收的字节数,即源 方接收窗口大小。窗口大小是一个 16bit 字段,因而窗口大小最大为 65535 字节

TCP特点及其目的

​TCP通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制的机制实现可靠性传输。

  1. 通过序列号(sqe)与确认应答(ack)提高可靠性。
  2. 超时重发机制(当发送的数据在一定时间没有收到确认应答时,需要重发数据)
  3. 利用窗口控制提高速度(这里有一个面试题,注意

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 来向另一方通告将要终止这个方向的连接。

  1. 关闭客户端到服务器的连接:首先客户端 A 发送一个 FIN,用来关闭客户到服务器的数据传送, 然后等待服务器的确认。其中终止标志位 FIN=1,序列号 seq=u
  2. 服务器收到这个 FIN,它发回一个 ACK,确认号 ack 为收到的序号加 1。
  3. 关闭服务器到客户端的连接:也是发送一个 FIN 给客户端。
  4. 客户段收到 FIN 后,并发回一个 ACK 报文确认,并将确认序号 seq 设置为收到序号加 1。 首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

3.3 UDP首部格式解析(User Datagram Protocol)

TCP/IP常见面试问题相关推荐

  1. 网络基础 TCP/IP协议面试常问知识点

    网络基础 TCP/IP协议面试常问知识点 ****************** 如有侵权请提示删除 ********************* 1.网络包的组成: 报头/起始帧分界符--MAC头部-- ...

  2. (个人经历)实习生春招面试中的TCP/IP常见(安全)问题及其相应解答

    阿里云后端C/C++实习生面试,本人本科大三网络安全专业,总结了一下面试中关于TCP/IP的相关问题,整理如下,期间参考的其他博客我会列出源地址.我尽量做一些自己的理解后的整理的答案,以面试中一问一答 ...

  3. TCP/IP协议面试常见题目

    TCP/IP 1. OSI与TCP/IP各层的结构与功能,都有哪些协议. 2. TCP与UDP的区别. 3. TCP报文结构. 4. TCP的三次握手与四次挥手过程,各个状态名称与含义,TIMEWAI ...

  4. TCP/IP常见英文缩写释义

    为什么80%的码农都做不了架构师?>>>    TCP (传输控制协议) - 应用程序之间通信  transmission control protocol UDP (用户数据包协议 ...

  5. 计算机英语 TCP IP什意思,TCP/IP常见英文缩写释义

    TCP (传输控制协议) - 应用程序之间通信transmission control protocol UDP (用户数据包协议) - 应用程序之间的简单通信 IP (网际协议) - 计算机之间的通 ...

  6. TCP/IP前端面试

    1,TCP/UDP TCP(Transmission Control Protocol)传输控制协议, 是一种面向连接的.可靠的.基于字节流的传输层通信协议.建立一次tcp连接,需要经过三步 步骤1. ...

  7. 【面试题】面试官:简述TCP/IP三次握手?

    文章目录 前言 三次握手流程 1. 标准版 2. 简单版 为什么是四次挥手? 四次挥手过程 原理图 关于TCP/IP的面试补充 1. 三次握手中第一次可以携带数据吗? 2. 为什么必须要三次握手,两次 ...

  8. c++面试常见题·Part 3 TCP/IP多线程编程设计模式Linux基操等

    1.TCP/IP 四层模型: (图来源于网络) IP层(网络层)主要协议: ARP(地址解析协议):负责将一个已知的ip地址解析成MAC地址,以便在交换机上进行通信. ICMP(Internet控制消 ...

  9. 16进制数用空格分开 tcp_面试时,你是否被问到过TCP/IP协议?

    点击蓝字 关注我们 看到这句话,有没有感到很熟悉呀?相信很多人在面试的时候都被要求,很多人会觉得我们在实际开发中一般用不到这些知识,所以对这些东西不屑一顾. 但是小编认为想要成为一个完美的网工,那么对 ...

最新文章

  1. retain/copy/assign区别
  2. RTC实时时钟实验(低功耗、纽扣电池供电)
  3. MySQL错误ERROR 1366 (HY000): Incorrect string value..
  4. python 访问网站 json_python爬虫用selenium访问一个网址返回的是个json字符串,怎么获取这个json字符串?...
  5. “编程能力差,90% 输在了数学上!”CTO:多数程序员都是瞎努力!
  6. java知识总结-13
  7. iOS用户体验之-modal上下文
  8. Layui的TreeTable使用
  9. 提供多种版本- MSI Code条形码字体具有可扩充性条形码控件MSI Plessey
  10. snb处理器hd3000显卡专用extra_Intel十代酷睿处理器:移动平台性能有了质飞跃!...
  11. Unity3D之FingerGestures使用
  12. Web课程设计-仿当当网-增删改查-java+jsp+mysql-期末大作业
  13. C#、.NET迷你音乐播放器
  14. 3.JavaScript核心BOM操作学习(界面交互功能)——JavaScript获取自定义的方法,开始进行节点操作
  15. 【市场点评】沪深基指终强势反弹 终结六连阴走势
  16. libjpeg库移植与使用
  17. 《优化技术实验报告》(附全部可运行代码)校车排版问题建模与分析-CPLEX与MATLAB混合编程
  18. draw.io 画流程图的神器
  19. 戴尔电脑重做win10系统后,耳机故障
  20. honeyselect身高补丁_honeyselect 4k高清画质补丁 V1.1 - honey select超高清画质插件

热门文章

  1. 普通C#类与Unity脚本的区别
  2. CSS三种样式表及其使用(内部样式表,行内样式表,外部样式表)
  3. SQL中纵表、横表互相转换
  4. cocos2dx梦幻西游开发日志(五)
  5. css如何让背景图片平铺?css背景图片平铺四种方式介绍-前端教程
  6. SVM多分类(利用libsvm工具箱)
  7. 每个程序猿都应该有一只鸭!
  8. 在exsi虚拟主机中怎么安装win10或者win7
  9. 二次元古代美女【InsCode Stable Diffusion美图活动一期】
  10. Autosar DataType介绍