iOS开发-Socket通讯方式

1.程序之间的通信

两个应用程序之间的通信,我们可以理解为进程之间的通信,而进程之间进行通信的前提是我们能够找到某个进程,因此,我们需要给进程添加唯一的标示,在本地进程通信中我们可以使用PID来标示一个进程,但PID只在本地唯一,网络中的多个计算机之间的进程标示并不能保证唯一性,冲突的几率很大,这时候我们需要另辟蹊径,TCP/IP协议族已为我们解决了这个问题,IP层的ip地址可以标示主机,而TCP层协议和端口号可以标示某个主机的某个进程,于是我们采取“ip地址+协议+端口号”作为唯一标示的这种形式,来确定网络中的一个进程,从而进行进程之间的通讯,这种方式就是我们Socket使用的通讯方式。

2.网络模型

如果没有网络编程基础的话,相信大家看到上面描述的TCP/IP已经是懵懵哒,那么现在我们需要一步一步的了解,首先来介绍一下什么是网络模型。

2.1OSI参考模型

OSI参考模型,即开放式通信系统互联参考模型(Open System Interconnection,OSI/RM,Open Systems Interconnection Reference Model),是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称OSI。
OSI参考模型将整个通信功能划分为七个层次,分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。 

  • 物理层(Physical Layer):物理层是OSI参考模型的最低层,它利用传输介质为数据链路层提供物理连接。它主要关心的是通过物理链路从一个节点向另一个节点传送比特流,物理链路可能是铜线、卫星、微波或其他的通讯媒介。(由底层网络定义协议)

  • 数据链路层(Link):数据链路层是为网络层提供服务的,解决两个相邻结点之间的通信问题,传送的协议数据单元称为数据帧。主要功能为:建立逻辑连接、进行硬件地址寻址、差错效验等。(由底层网络定义协议) 

  • 网络层(Network):网络层是为传输层提供服务的,传送的协议数据单元称为数据包或分组。该层的主要作用是解决如何使数据包通过各结点传送的问题,即通过路径选择算法(路由)将数据包送到目的地。另外,为避免通信子网中出现过多的数据包而造成网络阻塞,需要对流入的数据包数量进行控制(拥塞控制)。当数据包要跨越多个通信子网才能到达目的地时,还要解决网际互连的问题。协议有:ICMP IGMP IP(IPV4 IPV6) ARP RARP 

  • 传输层(Transport):传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。传输层传送的协议数据单元称为段或报文。 协议有:TCP UDP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值