Socket传输原理 ●如果在不同计算机上的两个应用进程A和B要 通信,则进程A要绑定在其所在计算杌的 个“通信插座”S上,而进程B要绑定它所 在的计算机的一个“通信插座”Sn上 ●当进程A有数据包要发送给进程B,它需要知 道“通信插座”Sa的地址,然后将该地址写 到数据包中,然后将其发送出去。数据包根 据“通信插座”S的地址将会传送到“通信 插座”SB上,然后由“通信插座”S到传给 进程B
Socket传输原理 如果在不同计算机上的两个应用进程A和B要 通信,则进程A要绑定在其所在计算机的一 个“通信插座”SA上,而进程B要绑定它所 在的计算机的一个“通信插座”SB上。 当进程A有数据包要发送给进程B,它需要知 道“通信插座”SB的地址,然后将该地址写 到数据包中,然后将其发送出去。数据包根 据“通信插座”SB的地址将会传送到 “通信 插座”SB上,然后由“通信插座”SB到 传给 进程B
“通信插座” Socket的AP|接□ “通信插座” Socket为进程提供AP接口,进程可以 通过调用 Socket的API来使用“通信插座”。 Primitive Meaning SOCKET Create a new communication end point BIND Attach a local address to a socket LISTEN Announce willingness to accept connections give queue size ACCEPT Block the caller until a connection attempt arrives CONNECT Actively attempt to establish a connection SEND Send some data over the connection RECEIvE Receive some data from the connection CLOSE Release the connection 伯克利“通信插座”( Socket)的API
“通信插座”Socket的API接口 “通信插座”Socket为进程提供API接口,进程可以 通过调用Socket的API来使用“通信插座”。 伯克利“通信插座”(Socket)的API
两种“通信插座” ●面向连接的“通信插座” Socket ●在两个进程通过面向连接“通信插座”进行 通信时,在发送数据之前,首先要建立相应 “通信插座”之间连接。在数据发送结東后, 要断开“通信插座”之间的连接 无连接的“通信插座” Socket ●在两个进程进行通信时,不需要建立连接就 可以直接发送数据包,发送结束后也无需断 开连接
两种“通信插座” 面向连接的“通信插座”Socket 在两个进程通过面向连接“通信插座”进行 通信时, 在发送数据之前,首先要建立相应 “通信插座”之间连接。在数据发送结束后, 要断开“通信插座”之间的连接。 无连接的“通信插座”Socket 在两个进程进行通信时,不需要建立连接就 可以直接发送数据包,发送结束后也无需断 开连接
面向连接的“通信插座”( Socket) 客户端进程 服务器进程 219246.73.1.20 Socket:创建通信插座 bindo:通信插座s与本地绑定。 Socket:创建通信插座是ns。 listen(:监听客户端的连接请求。 Connet(219246.73.1,20): 连接服务器 acceptO:接收连接请求,新建客户通信插座ns。 send/ reco:数据发送和接收 send/ recv:数据发送和接收 closesocketO:关闭客户连接通信插座ns closesocketO:关闭客户通信插座ns closesocket():关闭监听通信插座s
面向连接的“通信插座”(Socket) 客户端进程 服务器进程 Socket(): 创建通信插座s。 bind(): 通信插座s与本地绑定。 listen(): 监听客户端的连接请求。 accept(): 接收连接请求,新建客户通信插座ns。 send()/recv(): 数据发送和接收。 closesocket(): 关闭客户连接通信插座ns。 closesocket(): 关闭监听通信插座s。 Socket(): 创建通信插座是ns。 Connet (219.246.73.1, 20): 连接服务器。 send()/recv(): 数据发送和接收 closesocket(): 关闭客户通信插座ns 219.246.73.1, 20
面向连接的“通信插座”( Socket) 面向连接的“通信插座” Socket向进程提供可靠的 全双工传输。 典型的面向连接的“通信插座”( Socket)所使用 的协议是TCP协议。 TCP协议采用ARQ方式保证可靠传输。 TCP协议釆用反馈机制来控制流量
面向连接的“通信插座”(Socket) 面向连接的“通信插座”Socket向进程提供可靠的 全双工传输。 典型的面向连接的“通信插座”(Socket)所使用 的协议是TCP协议。 TCP协议采用ARQ方式保证可靠传输。 TCP协议采用反馈机制来控制流量