这才是计算机科学_网络

一. 计算机网络历史

150年前,写信从伦敦 —> 加州 需要两周,现在email只需要一秒。
在1970以前,大部分的计算机都是独立运行的

第一个计算机网络出现在1950 ~ 60 年代,用于Lab之间传输信息,
用网络传输比用用纸卡磁带要稳定快速的多,这种网路被称为 sneakernet
通过网络共享打印机,存储器等。

二.计算机网络发展

2.2 LAN_Ethernet

计算机近距离构成的小型网络叫局域网 LAN
1 ~ 上千台 计算机

尽管开发了很多的LAN版本,最出名的还是1970年的 以太网Ethernet
在这里插入图片描述
一条网络连接数台计算机,发送数据的时候,全网都可以接收到。
为了解决数据的目的计算机,必须给每一个计算机唯一ID,这便是Media Access Control address MAC地址

mac地址放在数据头部,作为前缀发送到网络中。

多台计算机共享一个传输媒介,这种方法叫做载波侦听多路访问CarrierSenseMultipleAccess CSMA

carrier:传输数据的共享媒介,以太网的媒介是铜线,Wi-Fi的媒介是无线电
媒介传输数据的速度叫带宽 Bandwidth

使用共享载体有个很大的弊端:网络流量小的时候,计算机可以等待网络清空,然后再传输数据,但是当流量上升 两台计算机同时写入数据到网络的概率上升,这叫做冲突collision
在这里插入图片描述
最简单的解决冲突:再次发送,还有可能再次冲突。
所以需要每个计算机都有一个 等几秒 再次发送数据的机制
1s + 一个随机的时间 : 1.3s 1.5s

当出现网络大量阻塞时,还需要机制来解决:
当等待1s + 随机 后发送再次冲突,再次等待2s + 随机…4s 8s…
这种指数型增长等待时间的方法:指数避难Exponential Backoff

有了指数避难,当是出现在同一个网路中太多设备,也是运行不了的。
需要减少同一网络中的设备数量,网络&设备总称 冲突域collision domain
在这里插入图片描述

2.2.3 Switch

为了减少冲突,可以分成两个冲突域,用到 交换机Switch
在这里插入图片描述
switch会记录一个list:哪个mac地址会在哪边的网络

最大的互联网也是这么设计的,说白了就是很多很多个小的网路链接到一起。
出现了新的问题,从一个计算机到另一个计算机 ,有很多条路线可以走,路由Routing
在这里插入图片描述
连接两台相隔远的计算机,最简单的方法:建立专线(专用的通信线路),这种方式称为电路交换 Circuit Switching

经济的方法是用 报文交换 Message Switching

在这里插入图片描述

有点像post 邮件 系统,优点:可以使用不同的路由,稳定高
在这里插入图片描述

信息沿着路由跳转的次数:跳数 hop count
记录hop count还可以判断路由是否出问题,hop count 太大,就出问题了hop limit 跳数限制

2.2.4 Packet Switching 分组交换

当100GB的传输把整个路由都沾满了,这是时候需要传输1kb的邮件。
等待就不是一个好方法。
因此设计成小块,叫数据包 packets

就像报文交换,每个数据包都有目标地址。因此路由知道发送到哪里。
报文的具体格式由 互联网传输协议 IP from1970

路由器会平衡于其他路由器之间的负载,确保传输稳定,这种叫做 阻塞控制

在这里插入图片描述
多条线路 到达顺序可能不一样
TCP/IP 可以解决乱序到达的问题

去中心,现在网络也是这样的

2.3 互联网

很多局域网 LAN 连接到一起,就组成了广域网WAN
WAN的路由器一般由 互联网服务提供商ISP电信 联通 提供

上面提到的,数据包packet 想要在网路中发送,必须遵守IP协议。
IP协议的头部,写有目标地址,也叫元数据metadata
在这里插入图片描述
但是当一个计算机,有很多程序都需要数据包时,就不知道这个数据包是给哪个程序的,因此需要在IP协议上再次封装

2.3.1 UDP

在这里插入图片描述
UDP的header中,记录有数据的端口号
在这里插入图片描述

每一个程序想要和外界通信,必须向计算机OS申请一个端口号。
UDP 中头信息还有 checksum 校验和,用于检查数据是否正确
就是把数据求和来对比

2.3.1.2 checksum
UDP中的数据为 
89  111  33  32  58  41
checksum = 89 + 111 + ... = 364

在UDP中checksum 以 16位形式存储(16个0 1)
,超过16位能表示的最大值,高位数会被扔掉,保留低位

接收数据后,会再次校验,checksum不一致,代表数据错误。
but,UDP不提供数据修复 or 数据重发机制,发现数据错误,就会直接扔掉,而且 UDP也无法得知数据包是否到达。

这些特性虽然很糟糕,但是速度上肯定是快的,有些程序更需要的是速度

2.3.2 TCP

如果发送email,显然需要稳定的网络环境,就需要用到Transmission Contral Protocol 传输控制协议 TCP
在这里插入图片描述
和UDP一样,TCP的头信息也存储在前面,这个组合称为TCP/IP
TCP头部也有checksum port,还有更高级的功能:

  1. TCP数据包有序号,全部packet到达后排序
  2. 接收方 checksum 校验通过后,给发送方发一个确认码ACK
    在这里插入图片描述
    过一段时间没有收到ACK,会再次发送。
    ACK传输出错不影响,因为再次packet还是那个序号
    在这里插入图片描述
    ACK成功率 & 来回时间,可以推测网络拥堵程度,TCP用这个信息,调整同时发送包的数量,解决拥堵的问题

2.4 DNS

www.google.com = 172.217.7.238:80

DNS服务 Domain Name System 域名系统

如今有三千万余名,为了更好的管理,DNS不是存成一个超长的list,而是通过tree的方式

  1. 顶级域名TLD 在最顶部,.org .gov
  2. 二级域名 .com
  3. 子域名 images.google.com

2.5 OSI结构

在这里插入图片描述

  1. 物理层
    线路电信号,WiFi中的无线信号

  2. 数据链路层
    负责控制物理层,有MAC地址 碰撞检测 指数避难 等一些低层协议

  3. 网络层
    报文交换 & 路由 IP

  4. 传输层
    TCP UDP , 检测修复错误

  5. 会话层
    会话层用TCP UDP 来创建连接,传递信息,关掉连接

在这里插入图片描述

2.6 万维网www

www 是在互联网internet之上运行的
互联网internet是传递数据的管道,各种程序都会用
其中传输最多数据的就是万维网www,
万维网分布在全球百万个服务器中,可以用浏览器访问
www 最小单位 : 单个页面。
一个页面中又会有多个超链接
在这里插入图片描述
为了使一个网页能够访问,需要一个唯一的地址统一资源定位器UinformResourceLocator URL

2.6.2 HTTP

当浏览器请求 thecrashcourse.com/about/
1)通过DNS匹配到 thecrashcourse.com
2)访问这个ip : 80 默认80端口,建立TCP
3)向服务器请求“course”这个页面

请求这个course页面就需要用到超文本传输协议HypertextTransferProtocl HTTP

HTTP 0.9

第一个标准:1991 “ HTTP 0.9 ”
只有一个get 命令

HTTP 1.1

在前面添加了状态码 200 代表找到了
在这里插入图片描述

如果只哟纯文本,就不知道这个是超链接 也不知道字体…
因此,诞生了 标记方法

HTML

Hypertext Markup Language 超文本标记语言
第一个版本 0.8 1990
只有 18 种命令
现在的HTML5 有100+命令

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

oifengo

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

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

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

打赏作者

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

抵扣说明:

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

余额充值