计算机网络 OSI七层模型及TCP/IP
Posted xuan527
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络 OSI七层模型及TCP/IP相关的知识,希望对你有一定的参考价值。
1.OSI 的来源:
先来看看百度百科怎么说?
“OSI是Open System Interconnection的缩写,意为开放式系统互联。国际标准化组织(ISO)制定了OSI模型,该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。OSI模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
这是一种事实上被TCP/IP 4层模型淘汰的协议。在当今世界上没有大规模使用。” --------来自百度百科
2.什么是七层模型:
应用层:通过消息头来规定协议,是给用户提供服务的协议,应用层协议的代表:HTTP、DNS、FTP、Telnet等;
表示层:根据不同系统进行数据格式化,进行代码转换和字符集的转换、数据格式的修改以及对数据结构操作的适配,数据加密等;表示层协议的代表:JPEG、 Gif、MPEG等;
会话层:会话层不参与具体的传输,它提供访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。会话层协议的代表:SSL 安全套接字层协议,RPC 远程过程调用协议,LDAP 轻量级目录访问协议;
传输层:提供端口,从会话层接收数据,根据需要把数据切成较小的数据段,并把数据传送给网络层,确保数据片正确到达网络层,从而实现两层数据的传输; 传输层协议的代表:TCP、UDP等;
网络层:接收数据链路层发送过来的帧,提取数据包,包中封装有网络层包头,其中含有逻辑地址信息源站点和目的站点地址,主要功能是基于网络层地址(IP地址)选择具体物理地址,代表设备:路由器; 网络层协议的代表:IP 等;
数据链路层:将比特信息封装成数据帧,为网络层提供可靠无错误的数据信息,代表设备:交换机,物理层协议的代表:ARP地址解析协议,RAR逆向地址解析协议;
物理层:为数据端设备提供传送数据的通路,以比特流形式在物理媒体上传输数据,代表设备:网线、光纤、网卡,物理层协议的代表:IEEE 802.2,Ethernet v.2,Internetwork;
3.TCP/IP 四层模型:
TCP/IP协议:是一个网络通信模型,是OSI 七层模型的简化,为4层模型,泛指众多(TCP,UDP,IP等)协议;
OSI
|
TCP/IP
|
功能
|
协议
|
应用层
|
应用层
|
文件传输,电子邮件,文件服务,虚拟终端
|
TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等
|
表示层
|
数据格式化,代码转换,数据加密
|
没有协议
|
|
会话层
|
解除或建立与别的接点的联系
|
没有协议
|
|
传输层
|
主机到主机层(TCP)(又称传输层)
|
提供端对端的接口
|
TCP,UDP
|
网络层
|
网络层(IP)(又称互联层)
|
为数据包选择路由
|
IP,ICMP,OSPF,EIGRP,IGMP
|
数据链路层
|
网络接口层(又称链路层)
|
传输有地址的帧以及错误检测功能
|
SLIP,CSLIP,PPP,MTU
|
物理层
|
以二进制数据形式在物理媒体上传输数据
|
ISO2110,IEEE802,IEEE802.2
|
4.常见协议——Dubbo协议的学习:
Dubbo协议是Dubbo的默认协议, Dubbo协议是TCP协议之上的协议,采用单一长连接和 NIO 异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。
* Transporter: mina, netty, grizzy
* Serialization: dubbo, hessian2, java, json
* Dispatcher: all, direct, message, execution, connection
* ThreadPool: fixed, cached
Dubbo协议的特性:
连接个数:单连接
连接方式:长连接
传输协议:TCP
传输方式:NIO异步传输
序列化:Hessian 二进制序列化
使用范围:传入传出参数数据包较小(建议小于100k),消费者比提供者个数多,单一消费者无法压满提供者,尽量不要用Dubbo协议传输大文件和超大字符串;
配置协议:
<dubbo:protocol name="dubbo" port="20880" />
设置默认协议:
<dubbo:provider protocol="dubbo" />
设置服务协议:
<dubbo:service protocol="dubbo" />
多端口:
<dubbo:protocol id="dubbo1" name="dubbo" port="20880" />
<dubbo:protocol id="dubbo2" name="dubbo" port="20881" />
配置协议选项:
<dubbo:protocol name=“dubbo” port=“9090” server=“netty” client=“netty” codec=“dubbo” serialization=“hessian2” charset=“UTF-8” threadpool=“fixed” threads=“100” queues=“0” iothreads=“9” buffer=“8192” accepts=“1000” payload=“8388608” />
Dubbo Tips:
* Dubbo 协议缺省每服务每提供者每消费者使用单一长连接,如果数据量较大,可以使用多个连接。
<dubbo:protocol name="dubbo" connections="2" />
* 为防止被大量连接撑挂,可在服务提供方限制大接收连接数,以实现服务提供方自我保护。
<dubbo:protocol name="dubbo" accepts="1000" />
感谢您的阅读,本博客旨在记录学习点滴,欢迎互相学习交流!!
以上是关于计算机网络 OSI七层模型及TCP/IP的主要内容,如果未能解决你的问题,请参考以下文章