例如Netty框架:
当前来看Netty是最火的网络编程框架,netty在高性能、高可靠的服务端和客户端交互使用较为流行。比如即时沟通、游戏服务器、websocker的服务端实现。netty是基于TCP/IP实现的。在Dubbo RPC、RocketMQ、Hadoop、大名鼎鼎的springboot已内置了netty模式。
一、分层网络模型
OSI模型和TCP模型,TCP是事实上网络用的模型。
1、OSI模型
自上而下依次为应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
应用层
应用层提供为应用软件设计的接口,以设置与另一应用软件之间的通信。例如:http、https、ssh
表示层
表示层把数据转换能与接收者的系统格式兼容并适合传输的格式。
会话层
会话层负责在数据传输设置和维护计算机网络中两台计算机之间的通信连接。
传输层
传输层把传输表头(TH)加至数据以形成数据包。传输表头包含了所有使用的协议等发送信息。例如:传输控制协议(TCP)等。
网络层
网络层决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成分组。网络表头包含了网络资料。例如:互联网协议(IP)等
数据链路层
数据链路层负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形成信息框。数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。数据链表尾(DLT)是一串指示数据包末端的字符串。例如以太网、无线局域网和通用无线服务。
分成两个子层:逻辑链路控制LLC子层和介质访问MAC子层。
物理层
物理层在局部局域网上传数据帧,他负责管理电脑通信设备和网络媒体之间的通信。如网卡,接口卡,中继器等。
TCP/IP
TCP/IP四层是事实上网络的标准。
应用层
将7层模型中最上层的应用层、表示层、会话层合并。
应用层主要运行日常应用如HTTP、SSH等,HTTP在传输层仍然使用的是TCP协议,只是将TCP的细节进行封装。
传输层
传输层主要就是TCP和UDP这两个协议,负责将应用层的用户数据传输到目的端。
TCP是有状态高、可靠性强的传输协议,有三次握手和重传机制最大程度上保证数据能够顺利到达目的端。
UDP协议是无状态的高性能的协议,因为它不保证数据能够顺利的到达目的端,所以不用三次握手建立连接,传输一次,不管数据是否到达。
从传输层开始,往下每一层都要负责将数据传输到目的端的一部分工作,下面根据其特性和主要作用又分成网路层和链路层。
网络层
网络层主要的协议就是IP协议,负责将上一层(传输层)过来的TCP包或者UDP包封装成IP数据报。通过IP协议,根据IP地址可以定位到一个网路主机。除了IP协议外,ICMP、IGMP协议也工作在网路层。ARP和RARP等
链路层
将7层模型中的最底两层数据链路层和物理层合并为链路层。
链路层也称为网络接口层,他由多种网络接口标准和对应的驱动程序组成。是以太网链路层。