学习笔记-0821-socket.io实现实时聊天

tpc/ip协议模型 四层

  • TCP是面向连接的通信协议,通过[三次握手]建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯。
  • [IP]层接收由更低层(网络接口层例如[以太网]设备驱动程序)发来的[数据包],并把该数据包发送到更高层---TCP或[UDP]层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。
  • UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。
  • ICMP与IP位于同一层,它被用来传送IP的控制信息.
学习笔记-0821-socket.io实现实时聊天_第1张图片
TCP/IP四层协议
  • 网络层包括:[IP]协议、[ICMP]控制报文协议、[ARP](Address Resolution Protocol)地址转换协议、RARP(Reverse ARP)反向地址转换协议。
  • 传输层协议主要是:传输控制协议TCP(Transmission Control Protocol)和用户数据报协议[UDP]。
  • 应用层向用户提供一组常用的应用程序,协议主要包括如下几个:FTP、TELNET、DNS、SMTP、NFS、HTTP。
学习笔记-0821-socket.io实现实时聊天_第2张图片
Paste_Image.png
  • TCP与UDP区别总结:

  • TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接

  • TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付

  • TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的

  • UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)

  • 每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信

  • TCP首部开销20字节;UDP的首部开销小,只有8个字节

  • TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

Socket

  • 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
  • 建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。
  • Socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket正如其英文原意那样,像一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座提供220伏交流电, 有的提供110伏交流电,有的则提供有线电视节目。 客户软件将插头插到不同编号的插座,就可以得到不同的服务
学习笔记-0821-socket.io实现实时聊天_第3张图片
Paste_Image.png

长连接,socket实时聊天技术

  • 需要模块
  • 服务器端 net 模块
  • 客户端 net readline 模块

作业:

  • nodejs 写一个基于终端和基于浏览器的实时聊天室

你可能感兴趣的:(学习笔记-0821-socket.io实现实时聊天)