大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说socket.io ios_ios响应式编程,希望您对编程的造诣更进一步.
文章分享至我的个人技术博客: https://cainluo.github.io/14986613643920.html
Socket的解释
Socket
翻译过来中文称为套接字
, 这里我找到了一段比较官方的解释Socket
是什么东西:
Socket
是通信的基石,是支持TCP/IP
协议的网络通信的基本操作单元,包含进行网络通信必须的五种信息:连接使用的协议
,本地主机的IP地址
,本地进程的协议端口
,远地主机的IP地址
,远地进程的协议端口
。
在实际当中, 肯定是不止一个TCP/IP
或者是一个应用程序进程在传输数据, 为了可以区分开来, 系统提供了一套API
, 方便TCP/IP
与应用程序交互, 一般把这个称为Socket API
.
酱紫应用层可以和传输层通过这个Socket API
, 区分来自不同的应用程序进程或者是网络通信, 使得数据可以并发传输.
Socket的C/S端
Socket
的使用其实也没有我们想象中那么难, 只是这里需要有一个前提条件, 因为建立Socket
通信是至少需要一对套接字
, 其中一个是运行在我们的客户端上, 称为Client Socket
, 还有一个是运行在服务器上, 称为Service Socket
.
Socket
之间的连接过程分为三个过程:
- 服务器监听
- 客户端请求
- 连接确认
Socket
同时支持TCP
和UDP
两种传输协议, 啥意思呢?
当Socket
使用TCP
协议通信的时候, Socket
就是一个TCP
的连接, 那么如果Socket
使用的是UDP
协议通信, 那么这时候的Socket
就是UDP
连接.
如果要有图的话, 大概就这样了:
网络的协议
既然降到Socket
, 那么就要说说网络里面的协议, 这里就要普及一下网络里面的到底都有啥, 首先我们要知道, 在网络里面一共有七层协议
.
从上往下分的话:
- 应用层
- 表达层
- 会话层
- 传输层
- 网络层
- 数据链路层
- 物理层
但我们通常会把底下三层(网络层
, 数据链路层
, 物理层
)统称为媒体层
, 一般都是专门搞网络的网络工程师大神们研究的对象.
而上面四层(传输层
, 会话层
, 表示层
, 应用层
)被称为主机层
, 也是广大用户所面向和关心的内容.
说到协议, 我们就不得不提一下HTTP
:
HTTP
协议: 它是对应着应用层
.TCP
协议: 它是对应着传输层
.IP
协议: 则对应着网络层
.
而HTTP
协议是基于TCP
连接的, 所以三者根本就没啥可比性.
TCP/IP
协议: 属于传输层协议, 主要解决数据如何在网络中传输.HTTP
协议: 属于应用层, 主要解决如何包装数据.
而Socket
是应用层
与TCP/IP
协议族通信中间的软件抽象层, 是它的一组接口.
TCP/IP五层模型
既然都提到了TCP/IP
这个协议, 那么就来讲讲, TCP/IP
里的五层模型.
这里面的五层模型分别为:
- 应用层
- 传输层
- 网络层
- 数据链路层
- 物理层
那么我们日常生活中所接触到的网络器材有哪些? 分别处于哪个模型?
- 物理层: 中继器, 集线器, 双绞线
- 数据链路层: 以太网交换机(Modem), 网卡(网卡有一半是工作在物理层)
- 网络层: 路由器, 三层交换机
- 传输层: 四层交换机, 路由器(也有一些特殊的路由器在传输层中工作)
其中TCP/IP
的应用层
比较特殊, 它是包含了会话层
, 表达层
, 应用层
等功能, 这里要说一点, TCP/IP
协议并不能在传输层总是保证可靠的传输数据包, 但七层模型可以做到.
TCP/IP
还提供了另一种传输模式, 叫做UDP(用户数据报协议)
, 但这种协议不能保证可靠的数据包传输.
这里再解释一下:
TCP
: 面向连接, 提供可靠的数据传输, 用于传输大量数据, 使用数据流模式, 速度慢, 建立连接时开销较大UDP
: 非面向连接, 传输不可靠, 用于传输少量的数据, 速度快
总的来说TCP
是一个数据流的模式协议, 而UDP
是一种数据报模式的协议.
刚刚说了Socket
是基于TCP/IP
协议上的抽象, 也就是说Socket
只是对TCP/IP
的封装, 本身是没有协议的, 只有通过Socket API
, 我们才能够使用TCP/IP
协议.
大概的关系图就是酱紫吧:
总结
这篇文章虽然不涉及任何的代码, 但都是一些必备的基础知识, 如果想更详细的了解或者是找更官方的文档, 可以去看看苹果爸爸提供的Networking Overview这篇文章.
最后
码字很费脑, 看官赏点饭钱可好
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/13801.html