OSI参考模型
1)每层作用:
应用层:为应用程序提供网络服务
表示层:定义了数据的格式,对数据进行加密、解密、压缩、解压缩等
会话层:提供会话进程----session ID,建立、维护、断开一个会话,区分同一应用程序的多个进程
传输层:建立端到端的连接(端口号)----MSS---1500字节,提供分段
端口号范围:0-65535,(0和65535系统保留端口号)
知名端口号:1-1023,
动态端口号:1024-65534
HTTPS--443--TCP
HTTP---80---TCP
TELNET:23--TCP
DNS:53--TCP UDP
SSH:22---TCP
FTP:21、20---TCP
TFTP---UDP
POP3:110---TCP
SMTP:25--TCP
DHCP:67(服务器)、68(客户端)---UDP
网络层:通过IP寻址(范围寻址)、提供路由、转发数据,MTU---1500字节----提供分片
数据链路层:MAC寻址(精确寻址)、封装成帧、差错检测、流量控制
LLC:逻辑链路控制子层:为数据的传输提供一个可靠性的保证,减少数据帧出现丢失、重复、失序
MAC:媒体接入控制子层:负责识别网络层的协议,然后对它们进行数据帧的封装、解封装、差错检测、MAC寻址
物理层:传输电信号、传输比特流,定义了一些物理参数(电压、接口、线缆标准、传输距离、传输介质、信号模式等等)
信号模式:单工模式、半双工模式、双工模式
(2)通讯过程(封装与解封装)
封装:在原始数据的基础上,添加一些字段信息,形成新的数据
解封装:拆掉封装的额外信息,还原成原始数据
过程:
数据发送时,从上至下逐层封装
数据接收时,从下至上逐层解封装
3、TCP/IP参考模型
(1)两种模型及其区别
两种模型之间的不同点:
TCP/IP支持跨层封装,而OSI不行;
OSI参考模型的核心思想是分层,而分层的目的就是上层协议在其下层协议提供的服务的基础上提供增值服务。所以,OSI在设计协议的时候,层次之间还是存在依赖性的;
TCP/IP模型其本身就是先有的协议,后有的模型。TCP/IP协议簇里的协议本身都是相互独立的,每层中的协议可以根据系统的需要进行组合匹配。
TCP的可靠机制
第一次:客户给服务器发一个包,请求建立连接,此时,这个包中SYN=1;
第二次:服务器给客户端回应一个ACK的确认包,同时服务器也表示想和对方建立连接,将此包中SYN=1;
第三次:客户端给服务器回复一个确认报文,确认收到对方也想建立连接的请求,此时包中ACK=1;
4、建立连接后,客户端使用http协议发送数据包给服务器
客户端发送数据包给谷歌(百度)服务器,谷歌(百度)服务器收到数据包后将数据返回给客户端的浏览器,浏览器通过渲染,最终用户看到了网站上的主页信息。
HTTP协议简介:
超文本传输协议,一个典型的C/S架构的协议,HTTP协议传输层是基于TCP协议来进行工作的,使用的端口号是80端口。
超文本(HyperText):是一种按照URL指示,将超文本文档从一台主机(Web服务器)传输到另一台主机(浏览器)的应用层协议,以实现超链接的功能。
超文本传输协议HTTP:包含有超链接(Link)和各种多媒体元素标记(Markup)的文本。这些超文本文件彼此链接,形成网状(Web),因此又被称为网页(Web Page)。这些链接使用URL表示。最常见的超文本格式是超文本标记语言HTML。
5、当所有数据都接受完毕后,取消连接(TCP的四次挥手)
通过四次挥手取消连接,我们就完成了访问百度服务器的全过程。
第一次:客户端向服务器发送连接断开请求,此时包中FIN=1;
第二次:服务器收到客户的连接断开请求,但并未同意断开连接,此时包中ACK=1;
第三次:服务端向客户端发送连接断开请求,同意断开连接,此时包中FIN=1,ACK=1;
第四次:客户端向服务器发送确认包,表示确认收到对方的连接断开请求包,此时包中ACK=1,等服务器收到确认包后,服务器会进入关闭状态,同时客户端也会进入关闭状态。