计算机网络学习笔记(零)-概述

从0和1说起

人与人之间可以通过某种媒介进行交流,例如语言、文字、表情等等。那么计算机之间是如何通信的呢?答案是使用计算机自己的语言——0和1。二进制可以说是计算机科学的基础,其内容也十分丰富,关于二进制的内容以后再详细写文章总结,此处暂不细表。

Q: 为什么计算机之间的通信使用二进制?

最主要的原因:二进制只有两种状态。这就意味着它可以很容易的通过物理方式实现,例如开关的打开和关闭,电平的高和低,科幻小说《三体》中人列计算机系统还通过举红白旗来实现二进制。

Q:什么是Internet?
官方(一个很简短有趣的关于网络的科普教程)一点的说法:

A tangible physical system made to move information.
一个有形的用于传输信息的系统实体。

通俗说来,Internet更像是一个邮局服务系统,只是其运输的不是包裹和信件,而是二进制的数据。这些数据是由“位(bit)”构成的。“位”,也就是我们常说的“比特”,它可以使用任意一组反义词来描述,例如开关,是否,真假,在计算机科学中,用0和1来表示这两种相反的状态。八个比特(bit)组成一个字节(byte),即$1 Byte = 8 Bits$。

位(bit) 字节(byte)
可以理解成“占位”的意思,一个bit就是一个位置,这个位置的值可以是{0, 1}中的一个 一个字节由八个位组成,直观来看00000100就是一个字节,字节可用于数据存储,也可以经过特定的编码代表特定含义

还有一个相关的概念“字(word)”,同一时间处理二进制数的位数叫字长,由于不同的cpu具有不同的处理能力,所以字长的值要视实际情况而定。

网络协议的分层

两种分层模型

osi 物数 会表应
tcp/ip 链路层 网络层 传输层 应用层
PDU 位(bit) 帧(frame) 包(packet) 段(segment)

分层的好处

​ 接口、服务

*nix 系统中/etc/services文件中包含了常用的端口号

可以使用命令:grep 协议名 /etc/services 查看

例如:

1
2
3
4
5
6
7
>> grep http /etc/services 
http 80/tcp www # WorldWideWeb HTTP
http 80/udp # HyperText Transfer Protocol
https 443/tcp # http protocol over TLS/SSL
https 443/udp
http-alt 8080/tcp webcache # WWW caching service
http-alt 8080/udp