计算机网络
五层应用模型
应用层
-
应用层(Application Layer),是计算机用户以及各种应用程序(终端设备)和网络之间的接口。
-
功能:直接向用户提供服务,完成用户希望在网络上完成的各种工作。
-
交互的数据单元:报文
-
网络应用模型:
客户(请求计算机服务)/服务器(提供计算机服务)模型。
P2P模型:客户作为结点,结点与结点之间的互联。应用层常用的协议:
每个应用层协议都是为了解决某一类应用问题,而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。
客户(被服务)和服务器(服务)都是通信中所涉及的两个应用进程。
HTTP | 超文本传输协议 |
---|---|
DNS | 域名系统 |
SMTP | 电子邮件发送协议 |
它在其他6层工作的基础上,负责完成网络中应用程序与网络操作系统之间的联系,建立与结束使用者之间的联系,并完成网络用户提出的各种网络服务及应用所需的监督、管理和服务等各种协议。此外,该层还负责协调各个应用程序间的工作。
运输层
- 主要任务:负责向两台主机之间的通信提供通用的数据传输服务。
- 复用和分用功能:因为一台主机可同时运行多个线程,而多种应用可以使用同一个传输层服务。
- 使用协议
- TCP协议:面向连接的可靠传输协议
连接
三次握手
目的:确认双方的收发功能正常
第一次握手 | 第二次握手 | 第三次握手 | |
---|---|---|---|
发送端 | 发送标有SYN的数据包 | 确认对方发送,接受正常,自己发送,接收正常 | 发送带有ACK标志的数据包 |
接收端 | 确认对方发送正常,自己接收正常 | 发送带有SYN和ACK标志的数据包 | 确认自己发送正常,对方接收正常 |
SYN:TCP/IP建立连接使用的握手信号。
ACK(Acknowledgement):确认字符及接收方发给发送方的字符。
目的:确认发来的数据已经接收无误。
四次挥手
任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后进入半关闭状态。当另一方也没有数据再发送的时候,则发出连接释放通知,对方确认后就完全关闭了TCP连接。
第一次挥手 | 第二次挥手 | 第三次挥手 | 第四次挥手 | |
---|---|---|---|---|
主动关闭方 | 发送一个FIN | 发回ACK报文确认,并将确认序号设置为收到序号加1 | ||
被动关闭方 | 收到FIN,发送ACK ;确认序号为收到的序号加1 | 关闭服务器并发送FIN |
可靠传输
数据块 | 应用数据被分割成TCP认为最合适发送的数据块 |
---|---|
数据报编号 | 确保应用层可以收到有序数据 |
校验和 | 确保数据再传输过程中不出现任何差错 |
重复数据丢弃 | |
流量控制 | 可变大小的滑动窗口协议 |
拥塞控制 | 当网络拥塞时,减少数据的传送 |
ARQ协议 | 每发送完一个分组后,等待确认。待对方确认后,传输下一个分组 |
超时重传 | TCP发出一个段后,即启动一个定时器,等待目的主机确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段 |
易混淆:TCP的流量控制和拥塞控制
流量控制 | 拥塞控制 | |
---|---|---|
目的 | 发送方发慢一点,让接收方来得及接收 | 网络状况不好,发生堵塞 |
差异 | 点对点的控制,即端到端的问题 | 察觉到拥塞情况,但不能确定对应的主机 |
控制方案 | 滑动窗口机制 | 四种算法:慢开始,拥塞避免,快重传和快恢复 |
需掌握::ARQ协议
停止等待ARQ协议 | 连续ARQ协议 | |
---|---|---|
定义 | 超时重传,也为自动重传请求ARQ协议 | 发送窗口连续发送以及累计确认 |
优点 | 简单 | 信道利用率高,容易实现,即使确认丢失,也不用重传 |
缺点 | 信道利用率低,等待时间长 | 不能向发送方反映出接收方已经正确收到的所有分组信息 |
- UDP协议:无连接的不可靠协议。
优点:传输效率快,所需资源少,主要应用于对通信速度要求比较高的场合。
网络层
任务:选择合适的网间路由和交换结点,确保数据及时传送。
传送单位:运输层产生的报文段或用户数据报封装成分组和包(此分组和包也称为IP数据报)进行传送。
使用协议:IP协议。
互联网是由大量的异构网络(heterogenous)通过路由器(router)相互连接起来的。互联网使用的网络层协议是无连接的网际协议(Intert Protocol)和许多路由选择协议。
数据链路层(data link layer)
数据链路层通常简称为链路层。两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层协议。
传送单位:将网络层交下来的IP数据报组装成帧,在两个相邻节点间的链路上传送帧。
帧:包含数据和必要的控制信息(如同步信息,地址信息,差错控制等)。
物理层
传送单位:比特
作用:实现相邻计算机结点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异,
透明:表示经实际电路传送后的比特流没有发生变化。
当我打开网页的时候发生了什么?
过程 |
---|
浏览器查找域名的IP地址(DNS:获取域名对应的IP ) |
浏览器向web服务器发送一个HTTP请求(HTTP协议是使用TCP作为其传输层协议);HTTP协议生成针对目标Web服务器的请求报文,TCP对该请求报文进行分割并编号后可靠的传输给对方 |
IP协议在网络层中搜索对方的网址,一边中转一边传送IP数据报 |
服务器处理请求(将从对方收到的报文段进行重组,对该请求进行处理) |
服务器发回一个HTML响应(将客户端请求的资源仍然利用HTTP协议,TCP协议,IP协议传送到客户端手里) |
浏览器开始显示HTML |
404又来了(状态码)
类别 | 原因短语 | |
---|---|---|
1XX | 信息性状态码 | 接收的请求正在处理 |
2XX | 成功状态码 | 请求处理完毕 |
3XX | 重定向状态码 | 需要进行附加操作以完成请求 |
4XX | 客户端错误状态码 | 服务器无法处理请求 |
5XX | 服务器错误状态码 | 服务器处理请求出错 |
HTTP协议
HTTP协议是无状态的(对于事务处理没有记忆能力)
长连接 | 短连接 | |
---|---|---|
HTTP | 当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问该服务器后,会继续使用这一条建立的连接 | 客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接 |
TCP | 完成一次请求后,双方之间的连接不会主动关闭,后续的读写操作会继续使用这个连接 | 客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接;一般只进行一次请求操作 |
优点 | 适合频繁请求资源的客户端,省去较多的TCP建立和关闭操作,减少浪费,节约时间 | 管理起来比较简单,存在的都是有用的连接,不需要额外的控制手段 |
缺点 | 存活功能的探测周期太长 | 如果客户请求较为频繁,将在TCP的建立鹤关闭操作上浪费带宽 |
使用场合 | 数据库的连接 | WEB网站的http服务 |
如何保存用户状态
Cookie | Session | |
---|---|---|
主要作用 | 一般用来保存用户信息 | 主要作用是通过服务端记录用户的状态 |
中文名 | 小型文本文件 | 会话控制 |
保存位置 | 客户端(浏览器端) | 服务器端 |
应用 | 自动登录功能 | 淘宝购物车 |
URI和URL
URI | URL | |
---|---|---|
全称 | 统一资源标志符 | 统一资源定位符 |
作用 | 唯一标识一个资源 | 提供该资源的路径 |
关系 | 具体的URI |
HTTPS协议(与HTTP的对比)
HTTP | HTTPS | |
---|---|---|
起始URL | http:// | https:// |
端口 | 80 | 443 |
安全性 | 传输的内容都是明文,安全性低 | 运行在SSl/TLS上的HTTP协议,传输的内容经过加密 |
资源耗费 | 少 | 多 |