TCP协议中的端口具体指的是什么,为什么要有端口,你是怎么理解的?
2017-03-01 15:02
706 查看
其实你在问别人端口的概念的时候,很多解释都是机器是一个房间,窗户就好像是机器的端口。这个解释基本上没什么用,或者是个误导。
我在网上也查了些,基本上是上面的解释。从我自己的理解上将为什么要有端口,怎么来规划端口,看下边。
ip能锁定一台物理机器,对应着一张网卡,外界发来的数据包网卡都会接收。但是问题来了,网卡给程序提供了接口,你监听一下我,要是有消息来了,我就转发给你。这样应用程序就能收到数据了。但是问题来了,程序A和程序B都需要监听网卡接发数据,网卡说那我把接到的数据都发给你两,你们自己看着办吧。好,小A小B都接受了。但是又来了CDEF......,不行了,每个包都被发到了所有应用程序,每个应用程序都累得不行,最终垮了。
好,那网卡说我给你们加个表示吧,我们之间可以用一个号码来作为标识,我和小A之间就用1来标识,如果外界发给1号标识的数据我就转发给你,你监听我的时候得告诉我你监听的时1,我就转发1的数据包给你。好了其他的BCD...都自己弄一个标识号,只要不重复就行。这样大家都省事了。
最后设计到安全,一个标识号只能被一个应用程序监听,因为如果小A程序和小B同时监听一个标识号号,那就坏了,我传的数据都被AB接到,这样数据安全性就没办法保证了。
这个标识号就是端口,最初设计网络数据交换的设计者不知道是怎么想的。这是我的理解。
其实网卡都是被系统层封装了,端口和进程之间的关系也是系统封装好的。我们只需要用socket就行,给定一个端口号就行了。其他的事都交给操作系统去做。
转载自知乎https://www.zhihu.com/question/22577025/answer/31046824
我在网上也查了些,基本上是上面的解释。从我自己的理解上将为什么要有端口,怎么来规划端口,看下边。
ip能锁定一台物理机器,对应着一张网卡,外界发来的数据包网卡都会接收。但是问题来了,网卡给程序提供了接口,你监听一下我,要是有消息来了,我就转发给你。这样应用程序就能收到数据了。但是问题来了,程序A和程序B都需要监听网卡接发数据,网卡说那我把接到的数据都发给你两,你们自己看着办吧。好,小A小B都接受了。但是又来了CDEF......,不行了,每个包都被发到了所有应用程序,每个应用程序都累得不行,最终垮了。
好,那网卡说我给你们加个表示吧,我们之间可以用一个号码来作为标识,我和小A之间就用1来标识,如果外界发给1号标识的数据我就转发给你,你监听我的时候得告诉我你监听的时1,我就转发1的数据包给你。好了其他的BCD...都自己弄一个标识号,只要不重复就行。这样大家都省事了。
最后设计到安全,一个标识号只能被一个应用程序监听,因为如果小A程序和小B同时监听一个标识号号,那就坏了,我传的数据都被AB接到,这样数据安全性就没办法保证了。
这个标识号就是端口,最初设计网络数据交换的设计者不知道是怎么想的。这是我的理解。
其实网卡都是被系统层封装了,端口和进程之间的关系也是系统封装好的。我们只需要用socket就行,给定一个端口号就行了。其他的事都交给操作系统去做。
转载自知乎https://www.zhihu.com/question/22577025/answer/31046824
相关文章推荐
- TCP协议中的端口具体指的是什么,为什么要有端口
- TCP协议中的端口指什么,为什么要有端口
- QQ使用了什么通讯协议?为什么要这样做?为什么采用 UDP 协议,而不采用 TCP 协议实现?
- QQ使用了什么通讯协议?为什么要这样做?为什么采用 UDP 协议,而不采用 TCP 协议实现?
- c#tcp源端口号和目的端口怎么理解
- 关于Http协议与TCP协议的一些简单理解
- 掌握TCP/IP、Http、Soap协议对.NET编程有什么用?具体用在什么地方?
- Java反射机制--是什么,为什么,怎么用
- wireshark的使用教程--用实践的方式帮助我们理解TCP/IP中的各个协议是如何工作的
- 理解TCP为什么需要进行三次握手
- 理解TCP/IP协议栈之TCP协议
- TCP为什么叫做流协议
- ONVIF协议网络摄像机(IPC)客户端程序开发(3):理解什么是Web Services
- HTTP协议是无状态协议,怎么理解?
- 理解浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题。
- TCP协议深入理解
- 对TCP/UDP的端口的理解
- loopback具体作用是什么?怎么用?
- AVI中AVISTREAMINFO结构中的dwScale,dwRate到底有什么分别呀,应该怎么理解?
- 10 分钟理解什么是 OAuth 2.0 协议