互联网
声明:以下是看的视频并结合网上资料所记的笔记,侵权请联系删除。可能会有一些错误,发现了会修改。
了解互联网
计算机和一个巨大的分布式网络连在一起,就是互联网。互联网主干由一群超大型、带宽超高路由器组成的巨型分布式网络,会把数据拆成一个个数据包来传输。数据包(Packet)要想在互联网上传输要符合“互联网协议”的标准,简称IP,IP必须是独一无二的。
IP是一个非常底层的协议,数据包的头部只有目标地址,存“关于数据的数据”,也叫元数据(Metadata),当数据到达对方电脑,对方不知道把包交给哪个程序,因此需要在IP之上开发更高级的协议。这些协议里最简单最常见的叫“用户数据报协议”(User Datagram Protocol, UDP)。UDP也有头部,这个头部位于数据前面,头部里边包含有用的信息,其中之一是端口号。每个想访问网络的程序,都要向操作系统申请一个端口号。当一个数据包到达时,接收方的操作系统会读UDP头部,读里边的端口号。假如看到端口号是8000,就把程序交给某个程序。
总结: IP负责把数据包送到正确的计算机。UDP负责把数据包送到正确的程序。
UDP头部里还有“检验和”,用于检查数据是否正确。检查方式是把数据求和来对比。校验和是以16位形式存储(就是16个0和1),如果算出来的和超过了16位所能表示的最大值,则高位数会被扔掉,保留低位。 当接收方电脑接收到这个数据,它会重复这个步骤,把所有的数据加在一起,如果结果和头部中的校验和一致,代表一切正常,如果不一致,则数据肯定坏掉了(可能是传输中功率波动,或电缆出故障了)。UDP不提供数据修复或数据重发的机制,接收方知道数据损坏后,一般只是扔掉,UDP不知道数据包是否到达,发送方发了之后也不知道数据是否已经到达目的地,但是UDP又简单又快,需要在不同的场景下选择不同的传输协议才行。
如果需要所有数据必须到达,就用“传输控制协议”(Transmission Control Protocol),简称TCP。序号使接收方可以把数据包排成正确顺序,即使到达的时间不同。而且TCP要求接收方的电脑收到数据包且“校验和”检查无误后(数据没有损坏),给发送方发一个确认码(简称ACK),代表收到了。得知上一个数据包成功抵达后,发送方会发下一个数据包。如果发送一段时间后没有收到确认码,发送发会再发一次,如果接收方收到重复的数据包就删掉。TCP不是只能一个一个包的发,可以同时发多个数据包,收多个确认码,这大大提高了效率,不用浪费时间等确认码。TCP用这个信息,调整同时发包数量,解决拥堵问题,也可以处理乱序和丢失数据包,丢了就重发,还可以根据拥堵情况自动调整传输率。TCP最大的缺点是那些“确认码”数据包把数量翻了一倍,但并没有传输更多信息。 这种代价是不值得的,特别是对时间要求很高的程序,如在线射击游戏。
当计算机访问一个网站时,需要两个东西:1.IP地址。2.端口号。 例如172.217.7.238的80端口是谷歌的IP地址和端口号。但这串IP地址数字记起来比较麻烦,互联网有个特殊服务就是负责把域名和IP地址一一对应,它叫“域名系统”(Domain Name System),简称DNS。输入域名,DNS会查表,如果域名存在,就会返回对应的IP地址。
计算机网络的层次结构

视频链接 -> 计算机科学速成课 P29
本文介绍了互联网的基础,包括IP协议如何确保数据包传输到正确计算机,UDP如何通过端口号将数据包传送给正确程序,以及TCP如何提供可靠的数据传输,包括顺序校验、确认码和拥塞控制。同时提到了DNS系统在域名和IP地址转换中的作用。
2550

被折叠的 条评论
为什么被折叠?



