当前位置:网站首页>【面试普通人VS高手系列】请说一下网络四元组
【面试普通人VS高手系列】请说一下网络四元组
2022-04-22 19:08:00 【跟着Mic学架构】
之前我一直在向大家征集一些刁钻的面试题,然后今天就收到了这样的一个问题。
“请你说一下网络四元组的理解”,他说他听到这个问题的时候,完全就懵了。
“这个是程序员应该懂的吗? 你是让我去做啥?造火箭吗?”
好吧,关于这个问题,我们来看看普通人和高手的回答。
普通人:
嗯… 四元组是?
高手:
四元组,简单理解就是在TCP协议中,去确定一个客户端连接的组成要素,它包括源IP地址、目标IP地址、源端口号、目标端口号。
正常情况下,我们对于网络通信的认识可能是这样

服务端通过ServerSocket建立一个对指定端口号的监听,比如8080。 客户端通过目标ip和端口就可以和服务端建立一个连接,然后进行数据传输。
但是我们知道的是,一个Server端可以接收多个客户端的连接,比如像这种情况

那,当多个客户端连接到服务端的时候,服务端需要去识别每一个连接。
并且TCP是全双工协议,也就是说数据允许在连接的两个方向上同时传输,因此这里的客户端,如果是反向通信,它又变成了服务端。

所以基于这两个原因,就引入了四元组的设计,也就是说,当一个客户端和服务端建立一个TCP连接的时候,通过源IP地址、目标IP地址、源端口号、目标端口号来确定一个唯一的TCP连接。因为服务器的IP和端口是不变的,只要客户端的IP和端口彼此不同就OK了。
比如像这种情况

同一个客户端主机上有三个连接连到Server端,那么这个时候源IP相同,源端口号不同。此时建立的四元组就是(10.23.15.3,59461 , 192.168.8.135,8080)
其中,源端口号是每次建立连接的时候系统自动分配的。
以上就是我对于四元组的理解。
总结
网络部分的知识,可能大家作为一个CURD工程师,觉得没必要去理解。
但是未来呢?至少国内没有条件允许大家做一辈子CRUD,所以建议大家要“终局思维”来看待自己的职业规划。
好的,本期的普通人VS高手面试系列就到这里结束了,喜欢的朋友记得点赞收藏。
我是Mic,一个工作了14年的Java程序员,咱们下篇文章再见。

需要面试资料或者面试问题咨询
↓↓↓↓↓↓↓↓
版权声明
本文为[跟着Mic学架构]所创,转载请带上原文链接,感谢
https://blog.csdn.net/q331464542/article/details/124347583
边栏推荐
- Alibaba微服务组件Sentinel介绍
- 线性回归简洁实现
- There are so many operation and maintenance tools, which one to choose? Follow me for three seconds
- P1794 solving many fish problem
- 【TCP】TCP 三次握手与四次挥手
- Project training - Design and development of 2D multiplayer fighting game based on unity (pre work knowledge of small map: camera)
- Talk about some opportunities I've missed over the years
- 运维工具那么多,选择哪个好? 跟着我3秒搞定
- 2020-09-08 去除js代码的注释
- GB8624-2012 与GB8624-2006 有什么区别?
猜你喜欢

每日AI前沿术语:绿色AI(Green AI)

Network security -- the use of burp suite packet capture tool

Introduction to feign, a microservice invocation component

借《Mastering ABP Framework》好好学学这个框架

项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(小地图工作前期知识:摄像机)

MySQL query with serial number

系统分析师-论文写作 框架搭建

leetcode:642.设计搜索自动补全系统

leetcode:642. Design search automatic completion system

LeetCode 41. 缺失的第一个正数
随机推荐
Mysql索引
1372: Xiao Ming's bill
yes. Net future
Can amaze your login page
配置拦截器不拦截Swagger
防火门能申请BS 476-21 耐火测试吗?
如何写一篇五彩斑斓的博客.append(可爱)
【Appium踩坑】Failed to capture a screenshot. Does the current view have ‘secure‘ flag set?
[Luogu] p2372 yyy2015c01 challenge perimeter (BFS)
爱可可AI前沿推介 (4.22)
The beautiful and comfortable kn95 mask has strong protection ability
[appium stepping pit] failed to capture a screenshot Does the current view have ‘secure‘ flag set?
final的作用以及String为什么不可变
一份数据满足所有数据场景?腾讯云数据湖解决方案及DLC内核技术介绍
How to write a colorful blog Append (cute)
Nat. Commun. |用于学习生成模型的神经编码框架
微服务调用组件Feign介绍
1372:小明的账单
Why can't async be used directly in useeffect
C entrustment