1.互联网
有了互联网的出现 我们就可以足不出户的实现看电影、购物等等操作
我们认知中可能的互联网模型
较为真实的互联网模型
那么数据是如何从一个设备传递到另外一个设备的呢?
2.网络互联模型
统共有三种:
3.TCP/IP协议
TCP/IP是一群协议 里面不仅仅包括TCP和IP两种协议 还有其他很多的协议 这不过这两种协议是最早通过的协议 所以以他们的名字命名整个的协议家族
4.网络分层
由于我们现在是学习阶段 所以主要用的是学习研究的网络互联模型 那么该模型的具体分层是怎样的呢
5.HTTP请求过程
我们可以看到 http请求是经历了一系列的装箱、拆箱的过程 最后才传递给指定主机的
具体的过程 可以参考一下我讲的:
首先HTTP请求从应用层发送给运输层的话 那么运输层就会为其添加TCP首部
接着到达网络层的时候 该层会为其提供IP首部
接着到达数据链路层的时候 该层会为其提供首尾的mac地址
以此类推……
我们可能会有这些疑惑?
1.有人认为不需要经历那么多层才将数据发送到目标主机手中 这是错误的
首先运输层在提供了端口号 端口号用于识别同一台主机上的应用 如果同一台主机上存在多种应用的话 那么使用端口号就可以清楚的知道数据将发送给哪一个应用
还有网络层提供了ip信息 这样我们才能够知道数据最终发送的目标ip是什么
还有数据链路层提供了mac地址 这个mac地址就是用于标识网卡的 如果一台设备上存在多个网卡的话 那么我到底是发送给谁呢 只有清楚的知道mac地址 我才能够清楚的指导发送给哪一个网卡
2.那么为什么客户端、服务器端的层数那么多 而路由器的层数却那么少呢
这是因为路由器的作用就在于寻找接下来到目标主机的最短路径 而ip作为主机的标识 是由网络层提供的 我们只需要拆箱到网络层即可获取到ip信息 所以这就是为什么路由器不需要提供5层的原因
6.TCP vs UDP
在运输层中 有两种常见的协议 分别是TCP和UDP
这两种协议的不同点如下所示
TCP连接性体现在两台设备之间需要拥有一个管道进行连接 而UDP则不需要 这样的特点造就了TCP的每一个连接只能是一对一的通信 而UDP却可以进行一对多的通信
下图是TCP首部占用的空间大小明细
下图则是UDP首部占用的空间大小明细
对比之下 我们就可以发现 UDP的首部占用较小 TCP的首部占用较大
由于TCP是可靠传输 所以他的传输效率肯定是较慢 资源消耗肯定是较大
而且诸如浏览器、文件传输、邮件发送等都需要依赖TCP的可靠传输 因为TCP不丢包的缘故 所以可以保证接收到的文件、邮件等不会出现残缺
但是视频、直播这种需要实现实时互动的东西 一定使用的是UDP协议 不然的话 可能会产生诸如前几秒丢包的东西在当前展示 这就不是我们所希望的实时效果