本文是字节跳动青训营的学习笔记——计算机网络概论
蟹堡王帝国案例
开启第一次外卖
确立一个小目标
蟹老板想赚一笔钱 制定了如下
三步走战略
- 在比奇堡开通外卖服务
- 在北京和上海开店
- 在全国各地开分店并开启外卖服务
蟹堡王外卖开启
可以将点餐的电话对话内容整理为如下格式(打电话->可能会占线/信号不好……问题->将打电话点餐的方式转换为发传真点餐)
准备外卖分店
分店与总店的通信方式
开启分店的问题
每次开启分店,蟹堡王总店的章鱼哥都要接到电话询问xx蟹堡王(分店)在哪里?
为了解决这个问题,提出了以下方法:
在每次有分店开业时,对每一家现又有比奇堡餐厅进行一份书面通知,书写清楚包括即将开业的比奇堡在内的所有比奇堡餐厅的名称、地址、联系电话等信息,并将信息张贴至店内。
逐步实现蟹堡王全国分店
杭州地区人在上海吃到蟹堡,向店铺反馈在杭州地区开设分店
左边的路线是
总店到杭州分店以及总店到上海分店两条通讯路线,右图是总店到上海分店以及上海分店到杭州分店两条通讯路线。显然,建立一条
上海分店到杭州分店的通讯路线成本要远小于总店到杭州分店的通讯路线,因此可以将杭州分店看做是上海分店的分店。
到此为止蟹堡王已经有一家总店(含外卖服务)以及两家分店(北京分店+上海分店)
通过对总点外卖服务的分析,得到了以下结论
同理,为了早日实现谢老板的小目标,决定分店开向全国各地,可以得到下图网状通讯路线。
类比计算机网络,可以得到以下结论
类比到计算机网络就是下面这张图
以上部分内容采取了自底向上的方法,从零建立了一个遍布全国的蟹堡王通讯网络。
计算机网络基础
计算机网络的组成非常多,本课程介绍了一部分,因此这里也只罗列课程中涉及到的部分
网络组成部分
- 主机(负责提供、接收信息):客户端和服务端
- 路由器(负责转发主机之间的信息)
- 网络协议(负责提供统一的格式、方便路由器或主机的信息进行编码和解码)
信息交换的方式一般有两种: 电路交换(占线问题)和分组交换(不会预留资源;接到资源后会加入队列按照顺序输出,当队列满的时候会丢弃新到的分组(即丢包);计算机网络中采用的都是分组交换)
网络分层
计算机网络分为五层,从低到高分别是:物理层、内容层(数据链路层)、网络层、运输层和应用层。(本课程关注上方三层)
网络层、运输层和应用层各个层级内部都会有各自的封装,这样的封装对于其上一层而言是不会被关注的
网络基础
协议(协议的存在依赖于链接)
协议定义了两个或多个通信实体之间交换的报文格式和顺序,以及报文发送和/或接受一条报文或其他事件所采取的动作。
标头(header)和载荷(payloads)
以包裹举例子,面单、收件人、寄件人就相当于标头,记录了包裹应该上哪辆车,去哪个集散中心的哪个网点;寄件人、收件人、地址相当于是载荷。
http协议示例
右侧开头四个字节的二进制代码转换为十进制是24,表示这个链路层使用的是IPv6
web中的网络
上图中红色的部分文字是请求,蓝色部分是响应
其余部分有些听不懂,后续理解清楚再进行补充更新...