计算机速成课Crash Course - 29. 互联网

今天继续计算机速成课Crash Course的系列讲解。

更多技术文章,全网首发公众号 “摸鱼IT” 锁定 -上午11点 - ,感谢大家关注、转发、点赞!

计算机速成课Crash Course - 29. 互联网 (qq.com)

29. 互联网

上集讲到,你的计算机和一个巨大的分布式网络连在一起,这个网络叫互联网,你现在就在网上看视频呀。

图片

互联网由无数互联设备组成,而且日益增多,计算机为了获取这个视频,首先要连到局域网,也叫 LAN。

你家 WIFI 路由器连着的所有设备,组成了局域网。局域网再连到广域网,广域网也叫 WAN,WAN 的路由器一般属于你的"互联网服务提供商",简称 ISP,比如 Comcast,AT&T 和 Verizon 这样的公司。

图片

广域网里,先连到一个区域性路由器,这路由器可能覆盖一个街区。然后连到一个更大的 WAN,可能覆盖整个城市,可能再跳几次,但最终会到达互联网主干。

互联网主干由一群超大型、带宽超高路由器组成,为了从 YouTube 获得这个视频,数据包(packet)要先到互联网主干,沿着主干到达有对应视频文件的 YouTube 服务器,数据包从你的计算机跳到 Youtube 服务器,可能要跳个10次。先跳4次到互联网主干,2次穿过主干,主干出来可能再跳4次,然后到 Youtube 服务器。

如果你在用 Windows, Mac OS 或 Linux系统,可以用 traceroute 来看跳了几次。

我们在"印第安纳波利斯"的 Chad&Stacy Emigholz 工作室,访问加州的 DFTBA 服务器,经历了11次中转。

从 192.168.0.1 出发,这是我的电脑在 局域网(LAN)里的 IP 地址,然后到工作室的 WIFI 路由器,然后穿过一个个地区路由器,到达主干,然后从主干出来,又跳了几次,到达"DFTBA.com”的服务器。

图片

IP 地址是 104.24.109.186.但数据包到底是怎么过去的?如果传输时数据包被弄丢了,会发生什么?如果在浏览器里输 "DFTBA.com",浏览器怎么知道服务器的地址多少?

我们今天会讨论这些话题。

上集说过,互联网是一个巨型分布式网络,会把数据拆成一个个数据包来传输,如果要发的数据很大,比如邮件附件,数据会被拆成多个小数据包。

举例,你现在看的这个视频,就是一个个到达你电脑的数据包,而不是一整个大文件发过来。

数据包(packet)想在互联网上传输,要符合"互联网协议"的标准,简称 IP,就像邮寄手写信一样,邮寄是有标准的,每封信需要一个地址,而且地址必须是独特的,并且大小和重量是有限制的,违反这些规定,信件就无法送达。

IP 数据包也是如此,因为 IP 是一个非常底层的协议。

数据包的头部(或者说前面)只有目标地址,头部存 "关于数据的数据",也叫 元数据(metadata),这意味着当数据包到达对方电脑,对方不知道把包交给哪个程序,是交给 Skype 还是使命召唤?

图片

因此需要在 IP 之上,开发更高级的协议。这些协议里,最简单最常见的叫"用户数据报协议",简称 UDP。

UDP 也有头部,这个头部位于数据前面,头部里包含有用的信息,信息之一是端口号,每个想访问网络的程序,都要向操作系统申请一个端口号.比如 Skype 会申请端口 3478。

当一个数据包到达时,接收方的操作系统会读 UDP 头部,读里面的端口号,如果看到端口号是 3478,就把数据包交给 Skype。

图片

总结:IP 负责把数据包送到正确的计算机,UDP 负责把数据包送到正确的程序。

UDP 头部里还有"校验和",用于检查数据是否正确,正如"校验和"这个名字所暗示的,检查方式是把数据求和来对比。

以下是个简单例子。

假设 UDP 数据包里,原始数据是 89 111 33 32 58 41,在发送数据包前,电脑会把所有数据加在一起,算出"校验和",89+111+33+... 以此类推。

得到 364,这就是"校验和"。UDP 中"校验和"以 16 位形式存储 (就是16个0或1)。

如果算出来的和,超过了 16 位能表示的最大值,高位数会被扔掉,保留低位。

当接收方电脑收到这个数据包,它会重复这个步骤,把所有数据加在一起,89+111+33... 以此类推。

图片

如果结果和头部中的校验和一致,代表一切正常,如果不一致,数据肯定坏掉了,也许传输时碰到了功率波动,或电缆出故障了。

不幸的是,UDP 不提供数据修复或数据重发的机制,接收方知道数据损坏后,一般只是扔掉。而且,UDP 无法得知数据包是否到达。发送方发了之后,无法知道数据包是否到达目的地。

这些特性听起来很糟糕,但是有些程序不在意这些问题,因为 UDP 又简单又快。

拿 Skype 举例,它用 UDP 来做视频通话,能处理坏数据或缺失数据,所以网速慢的时候 Skype 卡卡的,因为只有一部分数据包到了你的电脑。

图片

但对于其他一些数据,这个方法不适用,比如发邮件,邮件不能只有开头和结尾,没有中间,邮件要完整到达收件方。

如果"所有数据必须到达",就用"传输控制协议",简称 TCP,TCP 和 UDP 一样,头部也在存数据前面。

因此,人们叫这个组合 TCP/IP,就像 UDP ,TCP 头部也有"端口号"和"校验和",但 TCP 有更高级的功能,我们这里只介绍重要的几个。

图片

1. TCP 数据包有序号,15号之后是16号,16号之后是17号,以此类推,发上百万个数据包也是有可能的。序号使接收方可以把数据包排成正确顺序,即使到达时间不同,哪怕到达顺序是乱的,TCP 协议也能把顺序排对。

图片

2. TCP 要求接收方的电脑收到数据包,并且"校验和"检查无误后(数据没有损坏)\N 给发送方发一个确认码,代表收到了。"确认码" 简称 ACK,得知上一个数据包成功抵达后,发送方会发下一个数据包。

图片

假设这次发出去之后,没收到确认码,那么肯定哪里错了,如果过了一定时间还没收到确认码,发送方会再发一次,注意 数据包可能的确到,是确认码延误了很久,或传输中丢失了。

但这不碍事 因为收件方有序列号,如果收到重复的数据包就删掉,还有,TCP 不是只能一个包一个包发,可以同时发多个数据包,收多个确认码,这大大增加了效率,不用浪费时间等确认码。

图片

有趣的是,确认码的成功率和来回时间,可以推测网络的拥堵程度,TCP 用这个信息,调整同时发包数量,解决拥堵问题。

TCP 用这个信息,调整同时发包数量,解决拥堵问题,简单说,TCP 可以处理乱序和丢失数据包,丢了就重发。还可以根据拥挤情况自动调整传输率,相当厉害!

你可能会奇怪,既然 TCP 那么厉害,还有人用 UDP 吗?

TCP 最大的缺点是,那些"确认码"数据包把数量翻了一倍,但并没有传输更多信息,有时候这种代价是不值得的,特别是对时间要求很高的程序,比如在线射击游戏。

如果你玩游戏很卡,你也会觉得这样不值!

当计算机访问一个网站时,需要两个东西:1.IP地址 2.端口号

例如 172.217.7.238 的 80 端口,这是谷歌的 IP 地址和端口号,事实上,你可以输到浏览器里,然后你会进入谷歌首页。

图片

有了这两个东西就能访问正确的网站,但记一长串数字很讨厌,google.com 比一长串数字好记。

所以互联网有个特殊服务,负责把域名和 IP 地址一一对应,就像专为互联网的电话簿,它叫"域名系统",简称 DNS。

它的运作原理你可能猜到了,在浏览器里输 youtube.com,浏览器会去问 DNS 服务器,它的 IP 地址是多少。

一般 DNS 服务器是互联网供应商提供的,DNS 会查表,如果域名存在,就返回对应 IP 地址。

图片

如果你乱敲键盘加个.com 然后按回车,你很可能会看到 DNS 错误,因为那个网站不存在,所以 DNS 无法返回给你一个地址。

如果你输的是有效地址,比如 youtube.com,DNS 按理会返回一个地址,然后浏览器会给这个 IP 地址,发 TCP 请求。

如今有三千万个注册域名,所以为了更好管理,DNS 不是存成一个超长超长的列表,而是存成树状结构。

顶级域名(简称 TLD)在最顶部,比如 .com 和 .gov,下一层是二级域名,比如 .com 下面有google.com 和 dftba.com,再下一层叫子域名,比如 images.google.com, store.dftba.com。

图片

这个树超!级!大!

我前面说的"三千万个域名"只是二级域名,不是所有子域名。因此,这些数据散布在很多 DNS 服务器上,不同服务器负责树的不同部分

好了 我知道你肯定在等这个梗:我们到了一层新抽象!

过去两集里,我们讲了线路里的电信号,以及无线网络里的无线信号,这些叫"物理层",而"数据链路层"负责操控"物理层",数据链路层有:媒体访问控制地址(MAC),碰撞检测,指数退避,以及其他一些底层协议。

再上一层是"网络层",负责各种报文交换和路由,而今天,我们讲了"传输层"里一大部分,比如 UDP 和 TCP 这些协议,负责在计算机之间进行点到点的传输,而且还会检测和修复错误。

我们还讲了一点点"会话层","会话层"会使用 TCP 和 UDP 来创建连接,传递信息,然后关掉连接,这一整套叫"会话",查询 DNS 或看网页时,就会发生这一套流程。

这是 开放式系统互联通信参考模型(OSI) 的底下5层,这个概念性框架 把网络通信划分成多层,每一层处理各自的问题。

图片

如果不分层,直接从上到下捏在一起实现网络通信,是完全不可能的,抽象使得科学家和工程师能分工同时改进多个层,不被整体复杂度难倒。

而且惊人的是!我们还没讲完呢!

OSI 模型还有两层,"表示层"和"应用程序层",其中有浏览器,Skype,HTML解码,在线看电影等。

图片

我们下节课讲。


以上内容就是 29. 互联网 的内容,感兴趣的同学记得点赞、关注、转发、收藏哦!

我会不定期发布课程的讲解!

更多技术文章,全网首发公众号 “摸鱼IT” 锁定 -上午11点 - ,感谢大家关注、转发、点赞!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2776425.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【Vue】Vue基础入门

📝个人主页:五敷有你 🔥系列专栏:Vue ⛺️稳重求进,晒太阳 Vue概念 是一个用于构建用户界面的渐进式框架优点:大大提高开发效率缺点:需要理解记忆规则 创建Vue实例 步骤: …

备战蓝桥杯---动态规划(基础1)

先看几道比较简单的题&#xff1a; 直接f[i][j]f[i-1][j]f[i][j-1]即可&#xff08;注意有马的地方赋值为0&#xff09; 下面是递推循环方式实现的AC代码&#xff1a; #include<bits/stdc.h> using namespace std; #define int long long int a[30][30]; int n,m,x,y; …

windows10安装配置nvm以达到切换nodejs的目的

前言 各种各样的项目&#xff0c;各种node环境&#xff0c;还有node_modules这个庞然大物。。想想都觉得恐怖。 所以现在有了&#xff1a;nvm-切换node环境&#xff0c;pnpm–解决重复下载同样类库的问题。 下面将就如何在win10下配置进行说明 nvm下载配置 nvm的github下载地…

ARM汇编[0] hello world

文章目录 简述寄存器语法系统调用例程 简述 如果不了解x86汇编的话建议先了解下&#xff0c;x86资料多、环境好搞、容易入门 阿尔可是急于求成的人&#xff0c;希望赶快看到成果&#xff1b; 所以本篇文章不会东讲西讲展开讲&#xff0c;只讲让hello world汇编能跑起来的关键…

编程实例分享,宠物诊所电子处方怎么开,兽医电子处方模板电子版操作教程

编程实例分享&#xff0c;宠物诊所电子处方怎么开&#xff0c;兽医电子处方模板电子版操作教程 一、前言 以下操作教程以 佳易王兽医电子处方软件V16.0为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、在系统 设置里可以设置打印参数&#x…

AI大模型开发架构设计(9)——AI 编程架构刨析和业务应用实战案例

文章目录 AI 编程架构刨析和业务应用实战案例1 AI编程代码生成模型剖析编程方式的发展代码自动生成基于大模型的AI编程工具——Github Copilot以 CodeGeeX 为例-发展过程以 CodeGeeX 为例-训练过程以 CodeGeeX 为例-大规模代码数据处理以 CodeGeeX 为例-模型结构以 CodeGeeX 为…

【BUUCTF N1BOOK】[第二章 web进阶] 通关

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏…

Zoho Mail企业邮箱商业扩展第2部分:企业运营

在关于Zoho Mail企业邮箱商业扩展应用的这个系列的第一部分中&#xff0c;我们遇到了一位名叫王雪琳的个体企业家。她经营着自己的营销机构&#xff0c;并展示了如何创建和管理自己的企业。为了提升企业的专业形象&#xff0c;王雪琳使用了Zoho Mail来建立个性化的电子邮件域名…

018 Linux

文章目录 操作系统定义分类Linux系统构成 Linux文件系统Linux常用命令基础操作命令文件操作压缩解压权限管理显示展示命令其他命令 vi编译器操作使用 添加用户基本概念用户管理命令 ubuntu软件安装ssh服务终端启动Python服务 操作系统 定义 操作系统是管理计算机硬件与软件资…

1 月 NFT 市场动态:Polygon 增长,Mooar 崛起,TinFun 掀起文化浪潮

作者&#xff1a;stellafootprint.network 数据源&#xff1a;NFT Research - Footprint Analytics 2024 年 1 月&#xff0c;加密货币与 NFT 市场迎来了重要的转折点&#xff0c;其中美国首批现货比特币 ETF 的亮相尤为引人注目&#xff0c;这一金融一体化的里程碑事件吸引了…

折半查找练习

二分查找针对的是一个有序的数据集合。每次都通过跟区间的中间元素对比&#xff0c;将待查找的区间缩小为之前的一半&#xff0c;直到找到要查找的元素&#xff0c;或者区间被缩小为0。 时间复杂度&#xff1a;O(logn) 数据大小为n的数组&#xff0c;每次只比较中间的值&#x…

苏宁易购移动端首页(rem布局)

技术选型 方案∶采取单独制作移动页面方案技术:布局采取rem适配布局( less rem &#xff0b;媒体查询)设计图:设计图采用750px设计尺寸 设置视口标签以及引入初始化样式 <meta name"viewport" content"widthdevice-width, initial-scale1.0, user-scalable…

快速入门Safetensors

快速入门Safetensors 什么是Safetensors架构常用操作速度对比彩蛋 Safetensors官方网址 什么是Safetensors Safetensors是一种新的简单格式&#xff0c;用于安全存储张量(与pickle相反)&#xff0c;而且速度仍然很快(零拷贝)。 架构 常用操作 # pip install safetensors# L…

AI嵌入式K210项目(26)-二维码识别

文章目录 前言一、什么是二维码&#xff1f;二、实验准备三、实验过程四、API接口总结 前言 本章介绍基于机器视觉实现二维码识别&#xff0c;主要包含两个过程&#xff0c;首先检测图像中是否有二维码&#xff0c;如果有则框出并打印二维码信息&#xff1b; 一、什么是二维码…

揭开Markdown的秘籍:标题|文字样式|列表

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;Markdown指南、网络奇遇记 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. ⛳️Markdown 标题二. ⛳️Markdown 文字样式2.1 &#x1f514;斜体2.2 &…

MacOS 查AirPods 电量技巧:可实现低电量提醒、自动弹窗

要怎么透过macOS 来查询AirPods 电量呢&#xff1f;当AirPods 和Mac 配对后&#xff0c;有的朋友想通过Mac来查询AirPods有多少电量&#xff0c;这个里有几个技巧&#xff0c;下面我们来介绍一下。 透过Mac 查AirPods 电量技巧 技巧1. 利用状态列上音量功能查询 如要使用此功能…

Spring Boot + 七牛OSS: 简化云存储集成

引言 Spring Boot 是一个非常流行的、快速搭建应用的框架&#xff0c;它无需大量的配置即可运行起来&#xff0c;而七牛云OSS提供了稳定高效的云端对象存储服务。利用两者的优势&#xff0c;可以为应用提供强大的文件存储功能。 为什么选择七牛云OSS? 七牛云OSS提供了高速的…

《Git 简易速速上手小册》第6章:Git 在持续集成/持续部署(CI/CD)中的应用(2024 最新版)

文章目录 6.1 CI/CD基础6.1.1 基础知识讲解6.1.2 重点案例&#xff1a;为 Python Web 应用实现 CI/CD6.1.3 拓展案例 1&#xff1a;自动化部署到云平台6.1.4 拓展案例 2&#xff1a;使用 Docker 容器化部署 6.2 Git 与自动化测试6.2.1 基础知识讲解6.2.2 重点案例&#xff1a;为…

【数据结构】数据结构

本文是基于中国MOOC平台上&#xff0c;华中科技大学的《数据结构》课程和浙江大学的《数据结构》课程所作的一篇课程笔记&#xff0c;便于后期讲行系统性查阅和复习。 从个人感受而言&#xff0c;华中科技大学的课程讲解更适合初学者&#xff08;缺点在于&#xff0c;从概念到…

2024-01-06-AI 大模型全栈工程师 - 机器学习基础

摘要 2024-01-06 阴 杭州 晴 本节简介: a. 数学模型&算法名词相关概念; b. 学会数学建模相关知识&#xff1b; c. 学会自我思考&#xff0c;提升认知&#xff0c;不要只会模仿&#xff1b; 课程内容 1. Fine-Tuning 有什么作用&#xff1f; a. 什么是模型训练&#xff…