重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
我真的不知道用什么样的语言来整理我学过的网络知识,如果说是理论知识,百度百科上一搜一大堆,我希望我整理的东西在生活中都能找到模板,贴近生活,源于生活。
目前成都创新互联公司已为数千家的企业提供了网站建设、域名、网络空间、网站托管维护、企业网站设计、和田网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
网络我们都很熟悉,无论是qq 微信等社交软件还是游戏,我们都离不开网络,网络贯穿我们生活的点点滴滴,而且今天成熟的网络系统,都是由传统的网络一点一点发展而来的。
带着问题去思考,我们都知道OSI七层,那么什么叫做层,为什么要分层?分层有有什么优势?为什么每一层有对应的不同的协议?
层:描述了所有需求上的有效通讯过程,我们把这些过程叫做层。
为什么要分层?
这就像一个公司,刚开始公司人很少,随着公司规模的扩大,我们就要划分各个部门来实现各部门的作用,网络经过长期的发展,日益成熟与健壮,人们就逻辑的给划分为七层,来让每一层实现每一层的作用,来形成一个完善的网络系统。
分层的优势?
把复杂的网络划分成易于管理的层,易于排错,创造更好的集成环境,低层为上层提供服务。(什么是低层,什么是高层见上图)
为什么每一层有每一层对应的设备和协议?
设备和协议是相关的,因为有网络的发展带动了生产不同设备的厂商,主要就是路由器和交换机,刚开始它们各自的厂商有自己的标准,导致不同厂商设备之间不能通信,例如可能戴尔的路由器就不能和联想的通信,这就导致网络的通信遇到了很多的阻碍,所以为了形成统一的标准,就出来了标准协议,各个厂商就必须遵守的一个协议。
这就类似普通话,协议只是为了达成一个公认的统一的标准。
由上层协议开始介绍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
以太网(这一层一个重要的协议)帧格式:
*****网络层(点到点的通信)
决定路径的逻辑寻址,实现不同网络间的通信
设备:路由器
协议:ip arp icmp (ping 命令)
协议数据单元(pdu):包
这几个协议很重要很重要,ip是个泛指,互联网协议。ip协议的格式:
arp 的作用:将ip地址解析成MAC地址,是计算机通信的桥梁,很重要,因为ip只是确定的一个范围,MAC地址才是每台计算机的唯一标识。ip地址为什么只确定一个范围呢?这是由路由表决定的,路由表里面只有网段和端口的对应。ip就相当于你在哪个班,MAC就相当于你是这个班里的哪个人。
***传输层(端到端的通信)
协议:TCP UDP
设备:无
作用:可靠或不可靠的数据传输,数据重传前的数据纠正。
TCP 是可靠的,面向连接的数据传输,UDP 是不可靠的,不面向连接的数据传输。
为什么这么说?为什么说可靠?为什么说面向连接?
TCP 经历三次握手,四次断开的过程。
TCP的数据格式:
UDP的数据格式:
比较源端口号或目的端口号,我们发现UDP 会比TCP 少很多东西,没有序号没有确认序号,没有标记字段,重要的都没有。
一些重要标记字段的作用:
RST:重新连接
FIN:请求断开
SYN:请求建立连接
ACK:确认序列号
端口的概念:范围(0~65535)
三次握手的过程:
为什么说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的确认永远是确认的对方的)
四次断开示意图:
三次握手,四次断开主要是因为TCP协议的格式中有标记字段,UDP没有。
TCP(传输控制协议) UDP(用户数据协议)
TCP UDP的协议格式都存在端口号,有时候我们会说web服务--http协议--tcp--80端口
http协议指的是应用层协议,tcp 指的是在这个协议传输层的传输形式,80端口是在传输层的端口号。
这时候可能就已经十分懵逼了,总结下,ip用来说明一个范围,例如一个班级,MAC 用来标识特定的主机,例如一个班级的某一个人,端口号用来确定这台计算机上的一个应用,例如一个班上的一个人的一只手。
所以说只要有提供服务的客户端软件,就有一个应用层协议,当经过传输层时就有端口号,但是数据有两种情况,要么走TCP,要么走UDP.
端口号的介绍:
比如说Telent协议,当数据传输时源端口号是任意一个,目的端口号是23.
大概OSI七层就介绍完了,但是在实际生产中可能不会划分的这么细,所以人们也习惯性的说TCP/IP五层:
网络接口层、互联网层、主机到主机层、应用层。
我自己画了一张图来表示我对这七层的理解
总结:
常用服务 协议 端口
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;