网络模型
OSI参考模型 ------ 开放系统互联参考模型
目的: 实现全球电脑互联
OSI参考模型,共7层 --------- 物理层.数据链路层,网络层,传输层,会话层,表示层,应用层
物理层 : 转成0101的二进制通过物理层电流
数据链路层 : 网卡 . 交换器
网络层 : 所谓的路由器 ip
传输层 : 最核心的就是协议 -- TCP & UDP
会话层 : Socket
表示层 : 对数据的解析发给应用层去展示
应用层 : 展示 . 网络服务与最终用户的一个接口, 协议 :
TCP:TransmissionControl Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793说明(specified)。
UDP 是User DatagramProtocol的简称, 中文名是用户数据包协议,是OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。
面向连接:是指通信双方在通信时,要事先建立一条通信线路,其有三个过程:建立连接、使用连接和释放连接。电话系统是一个面向连接的模式,拨号、通话、挂机;TCP协议就是一种面向连接的协议。
面向无连接:是指通信双方不需要事先建立一条通信线路,而是把每个带有目的地址的包(报文分组)送到线路上,由系统自主选定路线进行传输。邮政系统是一个无连接的模式,天罗地网式的选择路线,天女散花式的传播形式;IP、UDP协议就是一种无连接协议。
TCP/IP参考模型 (4层 网络层 和数据链路层 是一层,统一叫网络层)
应用层 -> 传输层 -> 网络层 -> 数据链路层 -> 物理层
HI -> TCP/UDP HI -> ip TCP/UDP HI -> Mac ip TCP/UDP HI -> 发送出去
一层一层反过来解析展示出HI
网络模型
Socket 属于会话层.
OSI 与 TCP/IP 参考模型 都属于一种标准. 为的就是全球网络统一.
网络通讯
核心: IP地址 / 端口号
IP地址
标识网络中的设备(局域网,互联网都有IP地址)
标识本机的IP地址 主机名
端口号
用于标识进程
有效端口号0 -65535
其中0 - 1024 由系统使用或保留
传输协议
面向连接的TCP
建立连接,形成数据传输的通道
在连接中进行大数据传输(数据大小不限)
通过三次握手完成连接, 是可靠协议, 安全送达
必须建立连接,效率会稍低
类似于打电话
在数据传输过程中不限制文件大小
建立连接的主要目的是确保对方在线, 文件不会丢.
三次握手
第一步: 建立连接发送一个包到服务器,等待确认
第二步 :
第三步:
面向非连接的UDP
将数据源和目的封装在数据包中,不需要建立连接
每个数据包的大小限制在64k之内
因为不需要连接,因此是不可靠的协议
不需要建立连接, 效率高
类似于过年发短信(有可能丢失)
TCP UDP 的区别
是否连接 用 无
传输可靠性 可靠 不可靠
应用场合 传输大量数据 传输少量
速度 慢 快
四、Socket
HTTP请求
客 -------> 服
<-------
户 --------> 务
---->消息
端 <----数据 器
三次握手之后形成一个通道, 第四步 --->发送请求
第五步: <---返回数据 然后通道消失
QQ主要用UDP,一些使用TCP写的.
环信用XMPP写的.XMPP用Socket
Socket 简称"套接字",是一种双向的网络通信方式,通过IP地址和端口进行通讯连接,类似打电话方式(三次握手)
通信两端都是Socket
数据在两个Socket之间传输
HTTP请求也有Socket
1. 通过IP + 端口号 再 进行三次握手 TCP 建立长连接
2. 三次握手建立连接,形成两个通道
3. 输入流和输出流 统称I/O流 (输入是用来读数据的 输出是用来写数据的)
4. 一旦建立连接,服务器和客户端就会一直观察输入流,看有没有数据
(用CFRunLoop 实时监听)