Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets 数据包和套接字之间有什么区别?_Sockets_Networking_Port_Packet - Fatal编程技术网

Sockets 数据包和套接字之间有什么区别?

Sockets 数据包和套接字之间有什么区别?,sockets,networking,port,packet,Sockets,Networking,Port,Packet,我刚读过,似乎socket是用来建立连接的。那么一包怎么样?有什么东西在连接之间发送吗?因此,进程是“ip->port->socket->sending packet”?套接字是用于发送数据包的抽象。该套接字绑定到您的系统,以允许两个进程之间的通信 数据包是通过套接字发送的信息片段 数据包是一块数据。 所有IP网络都在网络上以小块的形式发送数据。 套接字(与TCP/IP相关)是建立在它之上的抽象,它提供可靠的数据流 使用套接字时,您只需发送无限的数据流,而不需要发送单个数据包。 套接字实现处理将

我刚读过,似乎socket是用来建立连接的。那么一包怎么样?有什么东西在连接之间发送吗?因此,进程是“ip->port->socket->sending packet”?

套接字是用于发送数据包的抽象。该套接字绑定到您的系统,以允许两个进程之间的通信


数据包是通过套接字发送的信息片段

数据包是一块数据。 所有IP网络都在网络上以小块的形式发送数据。 套接字(与TCP/IP相关)是建立在它之上的抽象,它提供可靠的数据流

使用套接字时,您只需发送无限的数据流,而不需要发送单个数据包。

套接字实现处理将其拆分为数据包并通过网络发送,并处理重新发送途中丢失的数据包。

socket是IP地址和端口号的组合

数据包是第3层协议数据单元,或与网络层关联的一段数据

就您提到的“进展”而言,OSI模型是描述流程的有用工具

每个OSI模型层都有一个相关的数据单元。您可以在上面看到,数据包是与网络层关联的一段数据。您描述的网络层使用IP地址进行通信

第4层或传输层使用端口号进行通信。套接字是端口号和IP地址的组合

发送方的透视图中的流沿着OSI模型向下流动。应用程序数据被传输头(源和目标端口号)包围,然后是网络头(源和目标IP地址),然后是数据链路头(通常是以太网LAN上的MAC地址),最后在线路上编码为位

来自接收者的视角的信息流正好相反,向上攀升。位在线路上被接收,然后数据被缓慢地“解包”,移除标题。如果目标MAC与接收器匹配,则会剥离这些头,如果IP匹配,则会剥离这些头,如果找到打开的端口,则会删除这些头,最终会在此处未显示的更高层中生成未打包的应用程序级数据

希望这有助于澄清