已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Socket 网络连接详解 一. 网络 OSI 模式(7 层) 网络模型:OSI(开放系统互联 Open System Interconnnection)TCP/IP 参考 模型 网络通讯要素: 1.IP 地址(唯一标识网络设备) 网络中设备的标示 不易记忆,可以用主机名 本地回环地址: 主机名:localhost 2.端口号(定位程序标示进程的逻辑地址,不同进程的标示) 有效端口:065535,其中 01024 由系统使用或者保留端口,开发中不要 使用 1024 以下的端口 3.传输协议(用什么样的模式交互) 通讯的规则,常见协议:TCP、UDP URL(统一资源定位) http:/ip:80/文件路径 二. OSI 七层以及作用 应用层七层 七层代表的是:物理层-数据链路层-网络层-传输层-会话层-表示层-应 用层 (记法: 物理层是最基层的层次(物理层), 有了物理层我们想要发送数据(数据链路层), 要传输数据就要需要介质也就是网络(网络层), 有了介质后我们就可以传输数据给对方(传输层), 传输完成后就可以发给另一个用户对话(会话层), 有了对话后就需要显示出来(显示层), 显示出来后就可以进行使用了(应用层) ) 七层之间的关系 网络层各节点都有相同的层次 不同节点相同层次具有相同的功能 同一节点相邻层间通过接口通信 每一层可以使用下层提供的服务,并向上层提供服务 不同结点的同等层间通过协议来实现对等层间的通信 三. 七层内容和作用 物理层:主要定义物理设备标准,如网线的接口类型、各种传输介质的传 输速率等。主要作用是传输比特流(就是由 1、0 转化为电流强弱来进行传输, 到达目的地后再转化为 1、0,也就是常说的数模与模数转换)。这一层的数据 叫做比特(bit),主要设备:集线器 数据链路层:主要将从物理层接收的数据进行 MAC 地址的封装与解封装。 常把这一层的数据叫做帧,主要设备:网卡,交换机 网络层:选择合适的网间路由和交换结点, 确保数据及时传送,将从下层 接收到的数据进行 IP 地址的封装与解封装。常把这一层数据叫做数据包,主要 设备:路由器。 传输层:定义了一些传输数据的协议和端口,如 TCP、UDP 协议,主要将从 下层接收的数据进行分段和传输,到达目的地址后再进行重组,以往把这一层 数据叫做段。 会话层:通过传输层建立数据传输通路。在系统之间发起会话或者接受会 话请求(设备之间需要互相认识) 表示层:主要是进行对接收的数据进行解释、压缩与解压缩等,即把计算 机能够识别的东西转化成人能够识别的东西(如图片、声音等) 应用层:主要是一些终端的应用,比如说 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 间通过 IO 传输 Socket 抽象层是位于应用层和传输层之间的一层 可以只传送数据本身而不用进行 XML 封装,大大降低数据传输的开销(JSON) Socket 允许使用长连接,允许应用程序运行在异步模式(提高效率),只有 在需要的时候才接收数据 常用的两种 Socket 类型 流式 Socket(SOCK_STREAM):流式是一种面向连接的 Socket,针对于面向连 接的 TCP 服务应用 数据报式 Socket(SOCK_DGRAM):数据报式 Socket 是一种无连接的 Socket, 对应于无连接的 UDP 服务应用 七.如何唯一标识一个进程 本地:通过进程间 PID 来唯一标识一个进程 网络:TCP/IP 协议中的网络层的“IP 地址”来唯一标识网络中的主机。 传输层的“协议+端口”可以唯一标识主机中的应用程序(进程)。 利用三元组标识(ip 地址,协议,端口)就可以标识网络的进程与其他进程 的交互 八.socket 的基本操作(套接字) socket 的基本操作 socket 函数 九.socket 中 TCP- 三次握手建立连接 三次握手建立连接 第一次握手: 建立连接。客户端发送连接请求报文段,将 SYN 位置为 1,Sequence Number 为 x;然后,客户端进入 SYN_SEND 状态,等待服务器的确认; 第二次握手: 服务器收到 SYN 报文段。服务器收到客户端的 SYN 报文段,需要对这个 SYN 报文段进行确认,设置 Acknowledgment Number 为 x+1(Sequence Number+1); 同时,自己自己还要发送 SYN 请求信息,将 SYN 位置为 1,Sequence Number 为 y;服务器端将上述所有信息放到一个报文段(即 SYN+ACK 报文段)中,一并发 送给客户端,此时服务器进入 SYN_RECV 状态; 第三次握手: 客户端收到服务器的 SYN+ACK 报文段。然后将 Acknowledgment Number 设 置为 y+1,向服务器发送 ACK 报文段,这个报文段发送完毕以后,客户端和服 务器端都进入 ESTABLISHED 状态,完成 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.连接长度 Socket:长连接,连接一旦建立,通信双方即可开始相互发送数据内容,直 到双方连接断开
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高考地理一轮复习第三章地球上的大气及其运动第三节常见天气系统课件
- 新课改课件模板
- 2023年国家公务员录用考试《行测》真题(地市级)及答案解析
- 2024年湖南省中考英语真题卷及答案解析
- 动画设置 课件
- 幼儿园小班歌曲《大西瓜》课件
- 西京学院《景观小品设计》2023-2024学年第一学期期末试卷
- 西京学院《机械制造技术基础》2023-2024学年第一学期期末试卷
- 西京学院《工程创新设计电气控制》2021-2022学年期末试卷
- 西京学院《电力工程基础》2022-2023学年期末试卷
- 《肺功能检测》课件
- 安全文明施工措施费用检查表
- 钢渣热闷工艺规程及人员岗位职责
- 2022小说精读批注海明威小说《一天的等待》附阅读试题答案解析
- 四肢骨折及相关护理课件
- 二、逻辑门 课件(17张幻灯片)
- 一年级家访记录表(常用)
- 新媒体背景下的舆情引导和危机应对专题培训课件
- 反邪教知识竞赛试题题库
- TCVN-2622-越南建筑防火规范(中文版)
- DIN30213德标法兰翻译
评论
0/150
提交评论