开发者社区> 技术小阿哥> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

网络基础知识(1)====OSI七层模型

简介:
+关注继续查看
福利推荐:阿里云、腾讯云、华为云等大品牌云产品全线2折优惠活动来袭,4核8G云服务器899元/3年,新老用户共享优惠,点击这里立即抢购>>>

我真的不知道用什么样的语言来整理我学过的网络知识,如果说是理论知识,百度百科上一搜一大堆,我希望我整理的东西在生活中都能找到模板,贴近生活,源于生活。

网络我们都很熟悉,无论是qq 微信等社交软件还是游戏,我们都离不开网络,网络贯穿我们生活的点点滴滴,而且今天成熟的网络系统,都是由传统的网络一点一点发展而来的。

带着问题去思考,我们都知道OSI七层,那么什么叫做层,为什么要分层?分层有有什么优势?为什么每一层有对应的不同的协议?

层:描述了所有需求上的有效通讯过程,我们把这些过程叫做层。

wKioL1nQPNThc_AiAAJVqgmIMCQ962.png-wh_50

为什么要分层?

这就像一个公司,刚开始公司人很少,随着公司规模的扩大,我们就要划分各个部门来实现各部门的作用,网络经过长期的发展,日益成熟与健壮,人们就逻辑的给划分为七层,来让每一层实现每一层的作用,来形成一个完善的网络系统。

分层的优势?

把复杂的网络划分成易于管理的层,易于排错,创造更好的集成环境,低层为上层提供服务。(什么是低层,什么是高层见上图)

为什么每一层有每一层对应的设备和协议?

设备和协议是相关的,因为有网络的发展带动了生产不同设备的厂商,主要就是路由器和交换机,刚开始它们各自的厂商有自己的标准,导致不同厂商设备之间不能通信,例如可能戴尔的路由器就不能和联想的通信,这就导致网络的通信遇到了很多的阻碍,所以为了形成统一的标准,就出来了标准协议,各个厂商就必须遵守的一个协议。

这就类似普通话,协议只是为了达成一个公认的统一的标准。

由上层协议开始介绍OSI七层:


应用层(用户接口)

应用层一般都是应用程序:qq 浏览器 邮箱(专门针对具有通信功能应用程序的一层)

简单说一个具有通信功能的应用程序就是应用层一个用户的接口(不叫端口,端口是相对传输层而言的)。

常用协议:telnet ?http ?smtp ftp?


表示层(没有协议,只是把应用层给细致划分)

上层数据表示加密等特殊处理过程,定义数据格式及加密。


会话层(没有协议,只是把应用层给细致划分)

保证不同应用(应用程序)间的数据区分。

例如:你打开一个qq 和一个浏览器,你就有两个应用程序,但是你qq聊天中的内容只在qq中呈现,不可能在浏览器中呈现,这就是会话层给做了一个数据的区分。

如果了笼统一点,这三层可以统称为应用层


下面介绍下层协议(设备都是硬件设备)

物理层

最底层,发送或接收比特流。

比特流是什么,我们都知道计算机的世界里只有0和1,这都是相对于物理层来说的。1B=8b,1MB=1024kB ?B(字节) b(比特位,表示0 1)

例如:00101011 ?就是8比特位,1字节

流是什么意思,就是很多,例如水流,所以网线里面传的就是很多很多的0和1叫比特流。

硬件设备: ?网线网卡,光纤,电缆


数据链路层

作用:将比特流转换成数据帧,负责成帧

在这层数据都叫帧

典型设备:交换机

协议数据单元:帧

有设备就有协议,数据链路层的协议:ppp HDLC ATM Ethernet(以太网,包括802.3 ?802.2) FR(帧中继)


交换机的工作原理

交换机接收数据帧(到了交换机的数据都封装成了数据帧,交换机只接收数据帧,里面有源MAC地址,和目的MAC地址),根据源MAC 地址更新MAC 地址表,根据目标MAC 地址做出转发决定。

如果是已知单播或广播帧,则直接由已知端口转发,如果是未知,则除了接收帧的接口以外的接口全部转发,称为泛洪。这时候接收到的计算机就会给交换机一个相应(告诉交换机我就是拥有目的地址的那台计算机),这时候交换机中就会多一条记录,MAC 地址和端口的对应关系,但是这条记录是动态的,老化时间300秒,这条记录只存300秒。


MAC 地址相当于交换机内部一个数据库,记录着MAC地址和接口编号的对应关系

交换机查看MAC 地址表 show mac-address-table

以太网(这一层一个重要的协议)帧格式:

wKioL1nQYBTSPSNhAAN_l13YtW8946.png-wh_50

*****网络层(点到点的通信)


决定路径的逻辑寻址,实现不同网络间的通信

设备:路由器

协议:ip arp icmp (ping 命令)

协议数据单元(pdu):包

这几个协议很重要很重要,ip是个泛指,互联网协议。ip协议的格式:

wKiom1nQYs_ioBZMAAEAVCH6IFY585.jpg-wh_50

arp 的作用:将ip地址解析成MAC地址,是计算机通信的桥梁,很重要,因为ip只是确定的一个范围,MAC地址才是每台计算机的唯一标识。ip地址为什么只确定一个范围呢?这是由路由表决定的,路由表里面只有网段和端口的对应。ip就相当于你在哪个班,MAC就相当于你是这个班里的哪个人。

***传输层(端到端的通信)

协议:TCP UDP

设备:无

作用:可靠或不可靠的数据传输,数据重传前的数据纠正。

TCP 是可靠的,面向连接的数据传输,UDP 是不可靠的,不面向连接的数据传输。

为什么这么说?为什么说可靠?为什么说面向连接?

TCP 经历三次握手,四次断开的过程。


TCP的数据格式:

wKioL1nQa7SwbFT2AASWX1E0OpE862.png-wh_50



UDP的数据格式

wKiom1nQbf_SR5m4AALj5XHVhRE687.png-wh_50

比较源端口号或目的端口号,我们发现UDP 会比TCP 少很多东西,没有序号没有确认序号,没有标记字段,重要的都没有。

一些重要标记字段的作用:

RST:重新连接

FIN:请求断开

SYN:请求建立连接

ACK:确认序列号

端口的概念:范围(0~65535)

wKioL1nQbArg1pkzAAV48JXpt_s297.png-wh_50

三次握手的过程:

wKiom1nQbL3DNBMxAARJoWXWDAE651.png-wh_50


为什么说TCP可靠呢?

因为它麻烦,就像你的微信换台设备登录一样,就要经过旧的设备认证,确认机制比较多,所以安全。TCP 也是同样的道理,因为它的确认机制比较多,所以安全可靠。

什么是面向连接?

面向连接是指依赖于发送方和接收方显示通信或阻塞来管理数据连接。

三次握手语言描述:

TCP 的连接是一个非常谨慎的过程,A和B 说我请求连接,但是计算机和人不一样,B怎么样来区分你说的这句话是用来请求连接的?是不是A给B 发了一个标记字段,并且发了一个序号seq=A,这时候B 就给A发了一个确认序列号,代表我同意,所以ack=A+1(确认序列号都是源序号加1),还给A发了一个他自己的序号seq=B;这时候还没完,当A收到B的回复以后就开始建立会话,当在建立回话的时候seq=A+1;用来表示这是A主机和B说的第二句话,ack=B+1:(ack的确认永远是确认的对方的)

四次断开示意图:

wKioL1nQgGjRHCT6AAA5l6PfM5I218.jpg-wh_50

三次握手,四次断开主要是因为TCP协议的格式中有标记字段,UDP没有。

TCP(传输控制协议) ?UDP(用户数据协议)

TCP UDP的协议格式都存在端口号,有时候我们会说web服务--http协议--tcp--80端口

http协议指的是应用层协议,tcp 指的是在这个协议传输层的传输形式,80端口是在传输层的端口号。

这时候可能就已经十分懵逼了,总结下,ip用来说明一个范围,例如一个班级,MAC 用来标识特定的主机,例如一个班级的某一个人,端口号用来确定这台计算机上的一个应用,例如一个班上的一个人的一只手。

所以说只要有提供服务的客户端软件,就有一个应用层协议,当经过传输层时就有端口号,但是数据有两种情况,要么走TCP,要么走UDP.

端口号的介绍:

wKiom1nQhQmDwHEdAAMTo3Od9rA028.png-wh_50

比如说Telent协议,当数据传输时源端口号是任意一个,目的端口号是23.


大概OSI七层就介绍完了,但是在实际生产中可能不会划分的这么细,所以人们也习惯性的说TCP/IP五层:

网络接口层、互联网层、主机到主机层、应用层。

wKioL1nQhfmytgAIAAQhmpkdp6s072.png-wh_50

wKiom1nQhySCHFeiAAPNlcrYUcw431.png-wh_50

wKioL1nQhxKgayd5AAMpsWs8Py8094.png-wh_50


我自己画了一张图来表示我对这七层的理解

wKiom1nQivLieJlTAAG0HTkhIxk040.png-wh_50

总结:

常用服务 协议 端口

??? 1. POP3 TCP 110

??? 2.?? IMAP TCP 143

??? 3.?? SMTP TCP 25

??? 4.?? Telnet TCP 23

??? 5.?? 终端服务TCP 3389

??? 6.?? TFTP UDP 端口69

??? 7.?? HTTP TCP 80

??? 8.?? NTP UDP 端口123

?? 9. HTTPS TCP 443

??? 10. FTP 控制TCP 21 FTP 默认数据TCP 20

??? 11. RADIUS UDP 1645

??? 12. DHCP 服务器UDP 67

?? 13.?? DNS UDP 53 DNS TCP 53

??? 14.?? SNMP UDP 161

??? 15?? ipsec UDP 500

??? 16 PPTP?? TCP 1723

???? 17 L2TP UDP 1701

代理服务器常用以下端口:

(1). HTTP协议代理服务器常用端口号:80/8080/3128/8081/9080

(2). SOCKS代理协议服务器常用端口号:1080

(3). FTP(文件传输)协议代理服务器常用端口号:21

(4). Telnet(远程登录)协议代理服务器常用端口:23

?

HTTP服务器,默认的端口号为80/tcp(木马Executor开放此端口);

HTTPS(securely transferring web pages)服务器,默认的端口号为443/tcp 443/udp;

Telnet(不安全的文本传送),默认端口号为23/tcp(木马Tiny Telnet Server所开放的端口);

FTP,默认的端口号为21/tcp(木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口);

TFTP(Trivial File Transfer Protocol ),默认的端口号为69/udp;

SSH(安全登录)、SCP(文件传输)、端口重定向,默认的端口号为22/tcp;

SMTP Simple Mail Transfer Protocol (E-mail),默认的端口号为25/tcp(木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口);

POP3 Post Office Protocol (E-mail) ,默认的端口号为110/tcp;

WebLogic,默认的端口号为7001;

Webshpere应用程序,默认的端口号为9080;

webshpere管理工具,默认的端口号为9090;

JBOSS,默认的端口号为8080;

TOMCAT,默认的端口号为8080;

WIN2003远程登陆,默认的端口号为3389;

Symantec AV/Filter for MSE ,默认端口号为8081;

Oracle?数据库,默认的端口号为1521;

ORACLE EMCTL,默认的端口号为1158;

Oracle XDB(XML 数据库),默认的端口号为8080;

Oracle XDB FTP服务,默认的端口号为2100;

MS SQL*SERVER数据库server,默认的端口号为1433/tcp 1433/udp;

MS SQL*SERVER数据库monitor,默认的端口号为1434/tcp 1434/udp;


本文转自 大雪儿 51CTO博客,原文链接:http://blog.51cto.com/dingxue/1970088,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
教你巧记OSI七层网络模型(个人总结)
网络七层协议,乍看之下非常的笼统,看得人云里雾里。但真正了解清楚了它的本质,对于整个计算机网络以及日常的工作会带来非常大的帮助。以下就是个人的一些理解,分享给大家。
108 0
【计算机网络】应用层 : 网络应用模型 ( 应用层概述 | 客户端 / 服务器 模型 | P2P 模型 )
【计算机网络】应用层 : 网络应用模型 ( 应用层概述 | 客户端 / 服务器 模型 | P2P 模型 )
37 0
OSI七层模型及对应协议
OSI七个层次的功能 物理层 为数据链路层提供物理连接,在其上串行传送比特流,即所传送数据的单位是比特。此外,该层中还具有确定连接设备的电气特性和物理特性等功能。
832 0
概率图模型
概率图模型:HMM、MEMM、CRF
1368 0
概率图模型基础
一、概念引入   很多事情是具有不确定性的。人们往往希望从不确定的东西里尽可能多的得到确定的知识、信息。为了达到这一目的,人们创建了概率理论来描述事物的不确定性。在这一基础上,人们希望能够通过已经知道的知识来推测出未知的事情,无论是现在、过去、还是将来。
988 0
13688
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载


http://www.vxiaotou.com