一、简要描述OSI七层协议,及其每个层次的主要功能。
l 物理层:位于最低层,是传送信号的物理实体,主要解决两台物理机之间的通信。它的功能是:通过机械和电气的方式将各站点连接起来,组成物理通路,通过二进制比特流的传输来实现,二进制数据表现为电流电压上的强弱,到达目的地再转化为二进制机器码。网卡、集线器工作在这一层。
2 数据链路层:在不可靠的物理介质上提供可靠的传输,接收来自物理层的位流形式的数据,并封装成帧,传送到上一层;同样,也将来自上层的数据帧,拆装为位流形式的数据转发到物理层。这一层在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路。提供物理地址寻址功能。交换机工作在这一层。
3 网络层:处理报文分组,完成分组的多路复用和分组交换,以及通信子网络间的数据据传输,将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方,通过路由协议为分组通过通信子网选择最佳路径。路由器工作在这一层。
4 传输层:实现端点到端点的可靠数据传输,区分不同进程和服务。
5 会话层:用于建立、控制和终止终端用户的实用进程间的逻辑信道的连接,并提供支持同步和管理应用进程间的对话服务,验证会话双方的身份,恢复下位层不呆恢复的差错。
6 表示层:对数据格式进行编译,对收到或发出的数据根据应用层的特征进行处理,如处理为文字、图片、音频、视频、文档等,还可以对压缩文件进行解压缩、对加密文件进行解密等。
7 应用层:功能实现依托不同的应用层协议,如HTTP协议,FTP协议等等,方便应用程序之间进行通信,为用户服务。
划分七层模型的好处:
l 易于标准化
不同层次之间功能和目的具有明显差异,界线清楚,可使复杂的网络设计简化清晰。
2 灵活性---降低不同层次之间的关联性
网络中各层相对独立,修改了某层协议也不会影响系统的其他部分。不同层次完成的职能不同,每层只完成有限的功能,上层请求下层的服务,下层实现上层的意图。
二、OSI模型和TCP/IP模型区别
OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实现协议应该开发哪种程序”。
相同点
OSI 参考模型与 TCP/IP 参考模型都采用了层次结构。
都能够提供面向连接和无连接两种通信服务机制。
不同点
OSI 采用的七层模型; TCP/IP 是四层结构。
TCP/IP 参考模型没有对网络接口层进行细分,只是一些概念性的描述; OSI 参考模型对服务和协议做了明确的区分。
OSI 先有模型,后有协议规范,适合于描述各种网络;TCP/IP 是先有协议集然后建立模型,不适用于非 TCP/IP 网络。
TCP/IP 一开始就提出面向连接和无连接服务,而 OSI 一开始只强调面向连接服务,直到很晚才开始制定无连接的服务标准。
OSI 参考模型虽然被看好,但将网络划分为七层,实现起来较困难;相反,TCP/IP 参考模型虽然有许多不尽人意的地方,但作为一种简化的分层结构还是比较成功的。
三、数据在各个层次之间的数据传输过程
封装---数据从应用层传输到物理层的过程
解封装-收到数据包,数据从物理层还原到应用层的过程
完整过程总结:
1)应用层 当数据传送到应用层时,应用层为数据加上应用层报头, 组成应用层的协议数据单元,再传送到表示层。
2)表示层 表示层接收到应用层数据单元后,加上表示层报头组成表示层协议数据单元,再传送到会话层。表示层按照协议要求对数据进行格式变换和加密处理。
3)会话层 会话层接收到表示层数据单元后,加上会话层报头组成会话层协议数据单元,再传送到传输层。会话层报头用来协调通信主机进程之间的通信
4)传输层 传输层接收到会话层数据单元后,加上传输层报头组成传输 OSI参考模型中数据传输的基本过程层协议数 据单元,再传送到网络层。传输层协议数据单元成为报文 。
5)网络层 网络层接收到传输层报文后,由于网络层协议数据单元的长度有限制,需要将长报文分成多个较短的报文段,加上网络层报头组成网络层协议数据单元,再传送到数据链路层,网络层协议数据单元成为分组。
6)数据链路层 数据链路层接收到网络层分组后,按照数据链路层协议规定的帧格式封装成帧,再传送到物理层,数据链路层协议数据单元称为帧 7)物理层 物理层接收到数据链路层帧之后,将组成帧的比特序列(也称为比特流),通过传输介质传送给下一个主机的物理层。物理层的协议数据单元是比特序列
解封装可以理解为封装的逆过程
概念:
HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。 简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。
HTTP 默认工作在 TCP 协议 80 端口,用户访问网站 http:// 打头的都是标准 HTTP 服务。
HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。
HTTPS(Hypertext Transfer Protocol Secure:超文本传输安全协议)是一种透过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。
HTTPS 默认工作在 TCP 协议443端口
HTTP协议工作过程
概述:
浏览器进行DNS域名解析,得到对应的IP地址
根据这个IP,找到对应的服务器建立连接(三次握手)
建立TCP连接后发起HTTP请求(一个完整的http请求报文)
服务器响应HTTP请求,浏览器得到html代码(服务器如何响应)
浏览器解析html代码,并请求html代码中的资源(如js、css、图片等)
浏览器对页面进行渲染呈现给用户
数据传输完成,发送断开连接请求,服务器关闭TCP连接(四次挥手)
区别:
HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。
使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec、Comodo、GoDaddy 和 GlobalSign 等。
HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。
http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。
HTTPS 其实就是建构在 SSL/TLS 之上的 HTTP 协议,所以,要比较 HTTPS 比 HTTP 要更耗费服务器资源。
什么是网络?
网络是由边连接在一起的节点的集合,节点对应网络中的个体,边是个体之间的相互关联
网络是由网络连接设备通过传输介质将网络终端设备连接起来,进行资源共享,信息传递的平台
网络连接设备 --路由器、交换机
光猫--modem --调制解调器 ---做光电转换
集成光猫:光电转换、路由器、交换机、无线AP
传输介质 --网线、光纤 xian、同轴电缆
网络终端设备 --电脑 手机 PAD 电视--智慧家居
什么是路由器!
连接互联网内局域网和广域网的设备
USB type-c 网线 光纤 硬盘 内存
OSI--开放式系统互联模型
OSI七层参考模型
ISO --国际标准化组织
应用层:通过人机交互来实现各种各样的服务
表示层:编码 解码 加密 解密
会话层:发现 建立 维持 终止会话进程
产生数据
传递数据
传输层:
端口号范围:0-65535
端口号分类:
静态端口号 1-1023 一个端口号对应一个服务,呈永久绑定关系
http --超文本传输协议 80 /8080
https --安全 443
域名系统 (DNS)— TCP/UDP 端口 53
超文本传输协议 (HTTP) — TCP 端口 80
简单邮件传输协议 (SMTP)— TCP 端口 25
邮局协议 (POP)— TCP 端口 110
Telnet — TCP 端口 23
动态主机配置协议 — UDP 端口 67 和端口 68
文件传输协议 (FTP)— TCP 端口 20 和端口 21
URL:搜狗搜索引擎 - 上网从搜狗开始:443--静态端口号被省略掉了
URL--统一资源定位符
动态端口号 1024-65535 一个端口号对应一个服务,呈暂时性绑定关系
0为保留端口号,在网络编程中使用,用于代表所有端口号。
TCP 传输控制协议 面向连接的可靠传输协议
UDP 用户数据报文协议 非面向连接的不可靠传输协议
面向连接 --三次握手、四次挥手机制
可靠 --确认 重传 排序 流控
TCP 传输速度---慢
UDP 传输速度---快
MSS最大段长度 1480B
MTU最大传输单元 1500B
单位的换算关系 --字节和位
1字节=8位
数据的封装与解封装
网络层 :根据IP地址来进行逻辑寻址 编址、寻址 --IP协议--网际网络协议
互联网的每一个节点,必然会存在一个IP地址
数据链路层 :
LLC -逻辑链路控制子层 --为上层服务提供FCS校验 --封装与解封装
MAC -媒介访问控制子层 ---根据MAC地址来进行物理寻址
物理层 :定义电气电压 光学特性 接口规范
分层的目的
- 降低层次之间的关联性,某一层的协议增加或减少不影响其他层次协议的工作。
- 便于标准化的制定。
- 便于学习和了解计算机层次
如何定义N层设备?什么是七层设备?什么是三层设备?
此设备可以解封装到第N层,就称之为N层设备。
三次握手,四次挥手
SYN:同步序列号请求
ACK:确认
Seq+1 = ack
四次挥手
FIN-请求断开连接
封装与解封装
封装可以理解为各层将每一层的实现数据添加到内容数据之前,解封装是逆过程。**而真正完成这个工作的是工作在各个层次的协议**。
类似于寄信的时候不能可把信纸直接寄出,需要要信封,收件人,发件人,邮编,邮票等东西,这些东西相当于各层的实现数据。
报头
TCP
首先,源端口与目的端口必不可少,没有这个数据就不知道发给那个应用。下来是报文序列号,为什么需要给报文编号呢,当然是解决数据的乱序问题,不编个号怎么确认那个数据是先来的那个是后到的。然后确认序列号,发出去的报文应该有个确认,不然我怎么知道对方收到没收到,如果没收到就应该重传,当然出现损坏也会重传,如果是职场人,凡事有个响应是必要的。TCP是一个可靠传输协议,他面临的网络环境可能很复杂,网络层是没有可靠性保证的,如果网络环境比较差,TCP作为靠谱协议他不能改变网络环境但是他可以通过算法和重传来保证数据传输可靠。
下来的数据偏移指的是首部长度,表示数据开始的地方离TCP段的起始处有多远。由于首部长度不固定,因此数据偏移字段是必要的。以32比特(4字节)为计算单位。最多有60字节的首部,若无选项字段,正常为20字节。Reserved,
保留字段,必须填0。
接下来是一些状态位,syn表示发起一个连接,ack是确认,RST是重新连接,表明TCP连接中出现严重错误(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立连接。FIN表示断开连接。PSH,表示数据应尽快的交付接收应用进程,而不再等待整个缓存都填满了后再向上交付。URG,紧急指针有效标识。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。
window表示窗口大小,TCP能够一次发多个数据,而不是一个一个发送,这样效率更高,确认是只需要确认最后一个即可。那么窗口值设置多少好呢,TCP有流控机制,根据双方发送能力和接受能力来,也就是说不能发的太多把对方撑死,也不能太少把对方饿死,TCP还有拥塞机制,如果网络传输拥塞丢包了,他就会降低窗口值减小速度,也就说路上堵车我管不了,我能做的就是不开车骑个单车上班,尽量不迟到,不能改变世界我就改变自己。这里其实就是算法来控制的,大家下去需要查阅资料写在作业里面,TCP的慢启动算法,TCP的拥塞避免算法,快重传算法,快速恢复算法等。