iOS 即使通讯网络知识篇

网络七层协议

读《图解TCP/IP》第5版以及看过的关于网络文章之后自己的理解

OSI (Open System Interconnec) 译为 开发式系统互联 七层模型从下到上一次是:物理层 -> 数据链路层 —> 网络层 -> 传输层 -> 会话层 -> 表示层 -》 应用层

数据每次经过一层之后就会在数据头部增加一个首部信息

物理层:网卡,网线,集线器,中继器,调制解调器
  • 定义设备标准,如网线,光纤接口类型,将0和1转化为电信号的强和弱,达到传输比特流目的,这层数据叫比特
数据链路层:网桥,交换机
  • 传输的地址帧,并且有检测错误功能,保证数据可靠传输, 这层数据叫帧
网络层:路由器
  • 两个计算机通信时可能会经过多个数据链路或者通信子网,网络层将数据链路层的帧组成数据包,包中有封装好的包头,其中含有逻辑地址信息(源站点和目的站点),此层为数据包选择合适的路由和交换结点,IP协议产生,这层数据叫着数据包
传输层:
  • 解决数据如何在网络中传输,这个层负责获取全部信息,因此,它必须跟踪数据单元碎片、乱序到达的 数据包和其它在传输过程中可能发生的危险。第4层为上层提供端到端(最终用户到最终用户)的透明的、可靠的数据传输服务。所为透明的传输是指在通信过程中 传输层对上层屏蔽了通信传输系统的具体细节。传输层协议的代表包括:TCP、UDP、SPX等
会话层:
  • 这一层也可以称为会晤层或对话层,在会话层及以上的高层次中,数据传送的单位不再另外命名,而是统称为报文。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的
表示层:
  • 这一层主要解决拥护信息的语法表示问题。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压缩, 加密和解密等工作都由表示层负责。
应用层:HTTP 协议
  • 如何包装数据

通常从上到下会分成四层

TCP/IP 通常是指TCP/IP协议族,是一组不同协议组合在一起构成的协议族

  • 应用层:FTP 应用层协议
  • 传输层:TCP,UDP 传输层协议,TCP 提供了一个可靠的服务
  • 网络层:IP,ICMP 网络层协议,传输时不可靠的
  • 链路层:以太网协议

Socket

为了解决不同计算机上进程间通信问题
服务器在指定的端口上监听,然后生成一对儿新的socket 进行通讯,一个线程对应一个socket

英文翻译为“插座”通常称为”套接字”, 本质是对于TCP/IP的封装,有客户端 socket 和 服务端socket

  • 流式 Socket (STREAM): 是一种面向连接的socket,针对于面向连接的TCP服务应用,因为安全所以效率低
  • 数据报式Socket (DATAGRAM): 是一种无连接的SOcket,正对于无连接的UDP服务应用,无序,不安全,需要在接收端分析重排或者要求重发,所以效率高