Socket

2020-09-22  本文已影响0人  oncezou

Socket,也称套接字,用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。程序之间的网络通讯是要通过端口来区分的。简单来说,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket,而建立网络通信连接至少要一对端口号(socket)。

1、Socket与TCP/IP

Socket本质是对TCP/IP的封装,是一套用来实现TCP或UDP通讯的API。 根据网络通讯的OSI参考模型的定义,IP位于网络层,TCP/UDP位于传输层,HTTP位于应用层,而Socket位于传输层和应用层之间,是它们之前的桥梁。

OSI参考模型
2、TCP/IP特性
 1、总量较小的通讯(DNS,SNMP等)
 2、视频、音频等多媒体通讯(即时通讯)
 3、限定于LAN等特定网络中的应用通讯
 4、广播通讯(广播、多播)
3、Socket的TCP通讯流程
TCP-Socket
4、Socket的UDP通讯流程
UDP-Socket

Scoket-TCP/UDP通信示例: ScoketDemo

5、TCP三次握手、四次挥手流程
三次握手:四次挥手.png

根据上述的Scoket-TCP通信流程更容易理解三次握手

1、假设这是一个早已失效的报文段,但`server`收到此失效的连接请求报文段后,就误认为是`client`再次发出的一个新的连接请求.于是就向`client`发出确认报文段,同意建立连接
2、假设不采用“三次握手”,那么只要`server`发出确认,新的连接就建立了,由于现在`client`并没有发出建立连接的请求,因此不会理睬`server`的确认,也不会向`server`发送数据.但`server`却以为新的通信连接已经建立,并一直等待`client`发来数据.这样服务端的很多资源就浪费
6、相关资料

iOS Socket简介
SocketDemo

上一篇下一篇

猜你喜欢

热点阅读