网络应用层概述

前言

鉴于本科期间计网知识的缺失,我打算做一期完整的计网学习笔记。一来方便自己知识的总结和复现,二来可以与诸君分享,共同进步!

之前上了两节的计网网课,目前的进度到了应用层,那么我们就从应用层讲起吧。(后面有空的话再把前两节的计网概述总结一下)

应用层概述

网络应用层体系结构包括:.服务器/客户机结构(CS)、点对点结构(P2P)、混合结构(hybrid)
应用层服务需求包括:可靠性、时延要求、带宽要求等
传输协议包括:TCP、UDP
特定网络协议(核心)包括:HTTP、SMTP、POP、IMAP、DNS(网络核心功能)、P2P应用等
Socket编程:TCP、UDP

网络应用与单机应用有何不同呢?

首先,网络应用是基于网络基础环境的,一部分软件在本地,另一部分在远程,通过网络基础环境进行软件的交互通信。

网络可采取何种结构呢?

1.CS结构
在这里插入图片描述
在上述结构下,
对server而言:它具有1)无间断服务,2)永久域名,3)大量server组成数据中心或服务器农场,实现可扩展性,从而当用户数超出单服务器承受范围的时候可以进行并发。
对client而言:它具有1)与server通信并使用服务,2)间歇性接入,3)动态ip,4)不会与其他client直接通信

在此结构下一个典型的例子就是web,基于不同操作系统的终端通过各自的浏览器向server发送http请求,并得到server的http响应。

2.P2P结构

在这里插入图片描述
对p2p中任何节点而言,他们都是平等的。他们具有的性质如下:
1.没有永久在线的server
2.任何节点之间都可以直接通信
3.间歇性接入
4.动态ip

优点:可扩展性高,可随时加入新节点不许考虑server的承受能力
缺点:难于管理,没有中心化的节点进行调度或指挥
ps:区块链就是使用p2p网络的,这样为其去中心化特性做了铺垫。

3.混合结构
之所以提出hybrid的目的就是想让其同时继承P2P和CS的有点,同时规避他们的缺点。

在这里举一个hybrid结构的应用,即Napster文件共享机制。
Napster利用P2P进行节点之间的文件传输,利用CS进行客户机的文件检索。集体的过程如下:
1.节点向中心登记内容
2.节点向中心查询请求,并找到存有该内容的节点进行文件下载。

这个地方感觉与基于区块链的文件系统结构有所关联,不过在结合区块链的文件系统中会将其分为存储矿工和检索矿工等(详见IPFS或Swarm机制)。所以说,沉舟侧畔千帆过,病树前头万木春,我们不得不感概新生事物如雨后春笋般涌现出来。

网络应用进程通信

进程

进程即主机上运行的程序。
在相同主机间进程的通信由OS提供,而在不同主机间的进程通信需要消息传递交换机制(类似Kafka,RabbitMQ等)。

套接字(Socket)

Socket是由OS提供的网络编程API,开发者可以利用Socket进行网络应用的开发。它类似于一种传输的基础设施,需要指定的协议和参数设置。

如何寻址进程?

主机–ip标识,进程–port标识。
通过ip+port可以唯一确定网络上某台主机的某个进程。

应用层协议

应用层协议包括标准化的公开协议,其允许互操作以及由RFC定义。此外,还包括多数P2P文件共享应用的私有协议。

协议主要包括一下几个属性:
1.消息类型(请求or响应)
2.语法(格式):字段&描述
3.字段语义:表示信息的含义
4.规则:决定何时,如何处理信息

网络应用需求

需求主要包括如下几个
1:数据丢失(数据可靠性)
2:时延
3:带宽
4:安全性

对应可靠性而言,例如网络电话是允许部分数据丢失的,而文件传输或网上银行是不允许丢失的。

对于时延来说,网络电话和网络游戏是不能承受高时延的

对于带宽来说,网络视频要求高带宽,而如文件下载、email等应用可以接受任何带宽(只要有足够时间)

传输层服务

主要包括TCP和UDP。

TCP特点:
1.面向连接:如C/S进程连接(全双工)
2.可靠传输(不丢包,不乱序)
3.流量控制:保证V(发送) <= V(接受)
4.拥塞控制:当网络负载过重时,会限制V(发送),从而减轻网络负担
5.不提供时延或最小带宽保障

UDP特点:
1.无连接
2.不可靠数据传输
3.不提供流量、拥塞、延迟、带宽服务

那么,问题来了:既然UDP这么菜,那留它何用?
因为UDP可以充分地提供自由,并且具备掌控数据传输能力,可以有很大的改进空间。

下面介绍一下经典应用与其对应的网络层协议、传输层协议

email:SMTP TCP
remote terminal access:Telnet TCP
web:HTTP TCP
file transfer: FTP TCP
streaming multimedia:proprietary TCP OR UDP
internet telephony:proprietary UDP

结语

写一篇blog的时间大约1h,实际上还是挺费时的。权当晚上悠闲时的一种消遣,总比打三盘王者强。你们的阅读就是我分享的动力!与诸君共勉!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白速龙王的回眸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值