P组是什么意思(P组是什么?)

抒情君 5

有一位小伙伴被问到一个刁钻的面试题。请你说一下网络四元组的理解,这位小伙伴听到这个问题的时候,完全就懵了。心里在想,"这个是程序员应该懂的吗?这是要让我去做啥?造火箭吗?"

那今天呢,我给大家来聊一聊我对网络四元组的理解。

另外,6/7/8月份资料文档已整理,包含如下↓(还在持续更新中!):

①100道最新大厂经典面试题解析资料文档!

15万+字Java面试题解析和配套答案!

③从应届生到高级开发都适用的简历模板!

④从入门到精通的架构师学习路线图!

⑤还有各种技术流程图,路径图!

想获取的小伙伴可以S信我【666】免费领取!

1、产生背景

四元组,简单理解就是在 TCP 协议中,去确定一个客户端连接的组成要素,它包括源 IP 地址、目标 IP 地址、源端口号、目标端口号。

正常情况下,我们对于网络通信的认识可能是这样。服务端通过 ServerSocket 建立一个对指定端口号的监听,比如 8080。客户端通过目标 IP 和端口就可以和服务端建立一个连接,然后进行数据传输。

但是我们知道的是,一个 Server 端可以接收多个客户端的连接,比如像这种情况。

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

2、四元组作用

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

比如像这种情况,同一个客户端主机上有三个连接连到 Server 端,那么这个时候源 IP 相同,源端口号不同。此时建立的四元组就是(10.23.15.3,59461,192.168.8.135,8080)。其中,源端口号是每次建立连接的时候系统自动分配的。

以上就是我对于四元组的理解。网络部分的知识,可能大家作为一个 CURD 工程师,觉得没必要去理解。但是未来呢?至少国内没有条件允许大家做一辈子 CRUD,所以建议大家要终局思维来看待自己的职业规划。

最后,我把往期分享的视频全部整理成了1份20W字的文档,后续还会连更,希望能够以此来提高各位粉丝的通过率,想获取的小伙伴可以在我的个人煮叶简介中找到。

我是被编程耽误的文艺Tom,如果我的分享对你有帮助,请动动手指分享给更多的人。关注我,面试不再难!

上一篇:

下一篇:

  推荐阅读

分享