天生不是作曲家网络编程iOS进阶指南

Socket网络连接详解

2016-07-18  本文已影响1349人  离离离离

一. 网络OSI模式(7层)

1.IP地址(唯一标识网络设备)

2.端口号(定位程序标示进程的逻辑地址,不同进程的标示)

3.传输协议(用什么样的模式交互)

二. OSI七层以及作用

应用层七层

七层代表的是:物理层->数据链路层->网络层->传输层->会话层->表示层->应用层

(记法:
物理层是最基层的层次(物理层),
有了物理层我们想要发送数据(数据链路层),
要传输数据就要需要介质也就是网络(网络层),
有了介质后我们就可以传输数据给对方(传输层),
传输完成后就可以发给另一个用户对话(会话层),
有了对话后就需要显示出来(显示层),
显示出来后就可以进行使用了(应用层)
)

三. 七层内容和作用

  1. 物理层:主要定义物理设备标准,如网线的接口类型、各种传输介质的传输速率等。主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0,也就是常说的数模与模数转换)。这一层的数据叫做比特(bit),主要设备:集线器
  2. 数据链路层:主要将从物理层接收的数据进行MAC地址的封装与解封装。常把这一层的数据叫做帧,主要设备:网卡,交换机
  3. 网络层:选择合适的网间路由和交换结点, 确保数据及时传送,将从下层接收到的数据进行IP地址的封装与解封装。常把这一层数据叫做数据包,主要设备:路由器。
  4. 传输层:定义了一些传输数据的协议和端口,如TCP、UDP协议,主要将从下层接收的数据进行分段和传输,到达目的地址后再进行重组,以往把这一层数据叫做段。
  5. 会话层:通过传输层建立数据传输通路。在系统之间发起会话或者接受会话请求(设备之间需要互相认识)
  6. 表示层:主要是进行对接收的数据进行解释、压缩与解压缩等,即把计算机能够识别的东西转化成人能够识别的东西(如图片、声音等)
  7. 应用层:主要是一些终端的应用,比如说FTP(各种文件下载)、浏览器、QQ等,可以将其理解为在电脑屏幕上可以看到的东西,也就是终端应用。

四. TCP/IP参考模型(4层)

OSI和TCP/IP的不同 每层代表

五.TCP UDP的区别

首先,我们先了解一下各自分别代表的是什么协议
TCP:传输控制协议
UDP:用户数据报协议

两者的区别在于:
1.连接方式
TCP:需要建立连接,形成传输数据的通道
UDP:不需要建立连接,将数据源和目的封装成数据包中

2.数据传输的大小
TCP:数据大小不收限制,在连接中进行大数据传输
UDP:每个数据报的大小限制在64K之内

3.安全性
TCP:通过三次握手完成连接,因此是可靠协议,安全送达
UDP:因为无需连接,因此是不可靠协议

4.效率性
TCP:必须需要建立连接,所以效率稍微会低些
UDP:不需要建立连接,速度快

六.Scoket的解释(网络进程间如何进行通讯)

七.如何唯一标识一个进程

八.socket的基本操作(套接字)

socket的基本操作 socket函数

九.socket中TCP- 三次握手建立连接

三次握手建立连接

十.socket中TCP- 四次握手释放连接详解

四次握手释放连接

图示过程如下:

1.某个应用进程首先调用close主动关闭连接,这时TCP发送一个FIN M;
2.另一端接收到FIN M之后,执行被动关闭,对这个FIN进行确认。
它的接收也作为文件结束符传递给应用进程,
因为FIN的接收意味着应用进程在相应的连接上再也接收不到额外数据;
3.一段时间之后,接收到文件结束符的应用进程调用close关闭它的socket。
这导致它的TCP也发送一个FIN N;
4.接收到这个FIN的源发送端TCP对它进行确认。

十一.在iOS中流式Socket连接的方法

在iOS中以NSStream(流)来发送和接收数据,可以设置流的代理,对流状态的变化 做出响应

NSStream:数据流的父类,用于定义抽象特性,例如:打开、关闭代理,NSStream继承自CFStream(Core Foundation)
NSOutputStream:NSSTream的子类- 输出流:用来写数据
NSInputStream:NSStream的子类-输入流:用来读数据
A输出------输入->B A向B输入数,对A是输出,但对B是输入

十二.Socket连接与HTTP连接的不同

通常情况下Socket连接就是TCP连接
不同点:
1.连接长度

2.连接响应

上一篇 下一篇

猜你喜欢

热点阅读