前言
计算机网络,是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
为什么要学计算机网络,因为它实在太重要了,无论是BAT大厂还是中小型传统企业几乎是面试必问的内容,什么TCP/IP三次握手,四次挥手,TCP和UDP区别,HTTP协议的一堆面试题,在程序员面试时都是很常见的考题,你们应该也深有体会。
既然在面试过程中开发者经常被问到。当然可能这一块知识点与前面的操作系统、数据库相比较比重可能没那么高。但是优秀的你,一定是想做好充分的准备吧!
第一份笔记《趣谈网络协议》
本书的特点
- 第一,会从身边经常见到的事情出发,用讲故事的方式来讲解各种协议,然后慢慢扩大到不熟悉的领域。
- 例如,每个人都会使用查看IP地址的命令,我们就从这个命令开始,展开讲解一些相关概念。每个人都在大学宿舍组过简单的网络来打游戏,我们就从宿舍网络涉及的最简单的网络概念开始讲,然后说到办公室网络,再说到日常常用的与上网、购物、视频下载等活动相关的网络协议,最后才说到最陌生的数据中心。说到这里的时候,很多概念已经在前面的“宿舍”和“办公室"的例子中都出现过,因此更容易接受和理解。
- 第二,讲解网络协议时会更加贴近使用场景,将各个层次的关系串连起来,而非孤立地讲解某个概念。
- 常见的计算机网络课程往往会按照网络分层,一层层地讲,却很少讲层与层之间的关系。例如,我们在学习路由协议的时候,在真实场景中,这么多的算法和二层是什么关系呢?和四层又是什么关系呢?再比如,我们在真实的网络通信中访问一个网站、进行一次支付, 那么在TCP三次握手的时候,IP 层在干什么? MAC层在干什么?这些内容本书都会逐一讲解。
- 第三,在讲解完各个层次的协议之后,会讲述如何在当前热门领域(比如云计算、容器和微服务)中使用这些协议。
- 通过学习本书,读者一方面可以 了解这些网络协议的真实应用场景,另方面也可以通过上手使用云计算、容器、微服务来进一步加深对 于网络协议的理解。
目录
注:下文内容主要是写这几份《计算机网络》笔记的主要内容,由于笔记涉及到的知识点过于全面,无法一一全部展示给大家,只截取部分内容以供大家参考
如何获得这份完整版优质的资料呢?
快速领取通道:关注+转发+点赞【点击这里即可】
第1章通信协议概述
- 为什么要学习网络协议
- 网络分层的真实含义
- ifconfig:熟悉又陌生的命令行
- DHCP与PXE: IP 地址是怎么来的,又是怎么没的
协议三要素
网络分层的真实含义
由于长时间从事计算机网络相关的工作,我发现计算机网络有个显著的特点,就是这是一个不仅需要背诵,而且特别需要将原理烂熟于胸的学科。很多问题看起来懂了,但是就怕细问,一问就发现你懂得没有那么透彻。
第2章从二层到三层
- 从物理层到MAC层:如何在宿舍里自己组网玩联机游戏
- 交换机与VLAN:办公室太复杂,我要回学校
- ICMP与ping:投石问路的侦察兵.
- 世界这么大,我想出网关:欧洲十国游与玄奘西行
- 路由协议:“西出网关无故人”“敢问路在何方”
第一层:物理层
第二层: MAC层
拓扑结构是怎么形成的
第3章最重要的传输层
- UDP:虽然简单但是可以定制化
- TCP (上) :虽然复杂,使用起来却轻松
- TCP (下) :西行必定多妖孽,恒心智慧消磨难.
- socket:' Talk is cheap, show me the code .
UDP:虽然简单但是可以定制化
讲完IP层以后,接下来我们开始讲传输层。在1.1节中已经讲过,传输层里比较重要的两个协议,一个是TCP,一个是UDP。对不从事底层开发或者应用开发的人来讲,最常用的就是这两个协议。面试时,这两个协议经常会被放在一起问, 因而在本书中也会将两者结合起来讲。
UDP的三大使用场景
第4章最常用的应用层
- HTTP:看个新闻原来这么麻烦
- HTTPS:点外卖的过程原来这么复杂
- 流媒体协议:如何在直播里看到帅哥美女
- P2P协议:“下载电影, 分布式协议速度快.
HTTP请求报文的准备
HTTP 2.0其实是将3个请求变成3个流,将数据分成帧,乱序发送到一个TCP连接中,如图所示。
第5章陌生的数据中心
- DNS:网络世界的地址簿
- HTTPDNS:网络世界的地址簿也会指错路
- CDN:你去小卖部取过快递吗
- 数据中心:我是开发商,自己拿地盖别墅
- VPN:朝中有人好做官
- 移动网络:去巴塞罗那,手机也上不了“脸书”
世界各地,如果大家都去同一一个地方访问某个服务器,时延将会非常大。因而,DNS服务器一定要设置成高可用、高并发和分布式的。
于是,就有了树状的层次结构,如图所示。
- 根DNS服务器:返回顶级域DNS服务器的IP地址。
- 顶级DNS服务器:返回权威DNS服务器的IP地址。
- 权威DNS服务器:返回相应主机的IP地址。
第6章云计算中的网络
- 云中网络:自己拿地成本高,购买公寓更灵活
- 软件定义网络:共享基础设施的小区物业管理办法
- 云中网络之安全:虽然不是土豪,也需要基本保障
- 云中网络之QoS:室友疯狂下电影,我该怎么办。
- 云中网络之隔离GRE、VXLAN: 虽然住一个小区,也要保护隐私
虚拟网卡的原理
那网络是如何“骗"应用的呢?如何将虚拟机的网络和物理机的网络连接起来呢?
如图6-1所示,首先,虚拟机要有一-张网卡。对于qemu-kvm来说,这是通过Linux系统上的一种TUNTAP技术来实现的。
OpenFlow协议和Open vSwitch
第7章容器技术中的网络
- 容器网络:来去自由的日子,不买公寓去合租
- 容器网络之Flannel:每人-亩三分地.
- 容器网络之Calico:为了高效说出善意的谎言。
- RPC概述:远在天边,近在眼前
Calico网络模型的设计思路
我们看图中的两台物理机,它们的物理网卡在同一个二层网络里面。由于两台物理机的容器网段不同,完全可以将两台物理机配置成为路由器,并按照容器的网段配置路由表。
至此为止,Calico 的所有组件基本凑齐。汇总如图所示。
第8章微服务相关协议
- 基于XML的SOAP:不要说NBA,请说美国职业篮球联赛.
- 基于JSON的RESTful接口协议:我不关心过程,请给我结果.
- 二进制类RPC协议:还是叫NBA吧,总说全称多费劲
- 跨语言类RPC协议:交流之前,双方先交换一下专业术语表.
数据中心内部是如何相互调用的
第9章网络协议知识串讲
- 知识串讲:用“双*"的故事串起网络协议的碎片知识(上)
- 知识串讲:用“双*"的故事串起网络协议的碎片知识(中)
- 知识串讲:用“双*"的故事韦起网络协议的碎片知识(下)
- 搭建一个网络实验环境:授人以鱼不如授人以渔
部署一个高可用高并发的电商平台
首先,要有个电商平台。假设我们已经有了一个特别大的电商平台,这个平台应该部署在哪里呢?如果使用公有云,一般会部署在多个位置,比如华东、华北、华南。我们的电商是要服务全国的,所以部署范围要广。同时,我们把主站点放在华东,如图所示。
在进行所有这些操作之前,首先要做的事情是建立连接,过程如图所示。
第二份笔记《计算机网络-自顶向下方法》
笔记特点
- 极富盛名的“自顶向下”教学法。特别强调应用层,尽早激发读者的学习热情,并强调动手开发网络应用程序。
- 着眼原理。当前计算机网络领域的许多基础性问题已经研究得较为清楚,重点把握这些原则,将使读者获得长“保贡期”的知识,在飞速发展的网络研究开发中保持判断力和启发创造力。
- 以因特网为研究对象。本书以因特网体系结构的5层模型来组织学习过程,学以致用,为读者的学习热情提供了'原动力。
- 注重教学法。精心编排教学内容,强化能力训练,提供优质课后资料,教学手段多样化。
- 及时更新教学内容。本版及时引入重要的最新知识并舍弃了过时的内容,例如用Python替代了Java以便编程新手更易理解,更新了路由器体系结构的章节,反映了近年来局域网技术的发展变化及无线网络中的最近进展,深入讨论了流式视频和CDN技术等。
目录
第1章计算机网络和因特网
家庭接人: DSL.电缆、FTH.按号和卫星
计算机网络和因特网的历史
第2章应用层
因特网中的电子邮件
TCP套接字编程
第3章运输层
运输层和网络层的关系
流水线可靠数据传输协议
第4章网络层
数据报网络
因特网组管理协议
第5章链路层:链路、接入网和局域网
多路访问链路和协议
第6章无线网络和移动网络
无线和移动性:对高层协议的影响
第7章多媒体网络
实时会话式应用的协议
第8章计算机网络中的安全
什么是网络安全
第9章网络管理
安全性和管理
第三份笔记《HTTP权威指南》
HTTP (Hypertext Transfer Protocol, 超文本传输协议*)是在万维网上进行通信时所使用的协议方案。HTTP有很多应用,但最著名的是用于Web浏览器和Web服务器之间的双工通信。
本书中,我们会将HTTP中一些互相关联且常被误解的规则梳理清楚,并编写了一系列基于各种主题的章节介绍HTTP各方面的特性。纵观全书,我们对HTTP“为什么”这样做进行了详细的解释,而不仅仅停留在它是“怎么做”的。而且,为了节省大家寻找参考文献的时间,我们还介绍了很多HTTP应用程序正常工作所必需且重要的非HTTP技术。在条理清晰的附录中,可以找到按照字母排序的首部参考(这些首部构成了最常见的HTTP文本的基础)。我们希望这种概念性的设计有助于读者更好地使用HTTP。
内容
本书包含21章,分为5个逻辑部分(每部分都是一个技术专题),以及8个很有用的附录,这些附录包含了参考资料,以及对相关技术的介绍。
- 第一部分HTTP: Web的基础
- 第二部分HTTP 结构
- 第三部分识别、 认证与安全
- 第四部分实体、编码和国际化
- 第五部分内容发布与分发
- 第六部分附录
目录
第一部分HTTP: Web的基础
本部分主要概述HTTP协议。接下来的4章介绍了Web的基础构件以及HTTP的核心技术。
- 第1章简要概述HTTP.
- 第2章详细介绍了URL的格式,以及URL.在因特网上命名的各种类型的资源。井对其向URN的发展作了概要介绍。
- 第3章详细说明了用来传输Web内容的HTTP报文。
- 第4章讨论了一些通过HTTP管理TCP连接时常被误解且很少有文档说明的规则和行为。
事务
我们来更仔细地看看客户端是怎样通过HTTP与Web服务器及其资源进行事务处理的。一个HTTP事务由一条(从客户端发往服务器的)请求命令和一个(从服务器返回客户端的)响应结果组成。这种通信是通过名为HTTP报账(HTTP message)的格式化数据块进行的,如图所示。
TCP/IP
HTTP是个应用层协议。HTTP无需操心网络通信的具体细节:它把联网的细节都交给了通用。可靠的因特网传输协议TCP/IP.
URL快捷方式
Web客户端可以理解并使用几种URL快捷方式。相对URL是在某资源内部指定一个资源的便捷缩略方式。很多浏览器还支持URL的“自动扩展"。也就是用户输入URL的一个关键(可记忆的)部分,然后由浏览器将其余部分填充起来。
并行连接
第二部分HTTP结构
第二部分的6章主要介绍了HTTP服务器、代理,缓存,网关和机器人应用程序,这些都是Web系统架构的构造模块。
- 第5章概述了Web服务器结构。
- 第6章详细介绍了HTTP代理服务器,它们是连接HTTP客户端的中间服务器,是HTTP服务和控制的平台。
- 第7章深入研究了Web的缓存机制。缓存是通过对常用文档进行本地复制来提高性能。减少流量的设备。
- 第8章介绍了一些应用程序,通过这些程序,HTTP就可以与使用不同协议(比如SSL加密协议)的软件进行互操作了。
- 第9章介绍了Web客户端,结束了HTTP架构之旅。
- 第10章涵盖了HTTP未来发展的一.些主题。 特别介绍了HTTPNG技术。
第三步——处理请求
搜索引擎
得到最广泛使用的Web机器人都是因特网搜索引擎。因特网搜索引擎可以帮助用户找到世界范围内涉及任意主题的文档。
第三部分识别、认证与安全
第三部分的4章提供了一系列的技术和技巧,可用来跟踪身份,进行安全性检查,控制对内容的访问。
- 第11章介绍了识别用户的技巧,这样就可以实现用户个性化的内容了。
- 第12章重点概述了用户身份验证的基本原理。这一章还探讨了HTTP认证与数据库之间的接口机制。
- 第13章解释了摘要验证,这是一。种复杂的,针对HTTP的增强方式,可以极大地提高安全性。
- 第14章详细介绍了因特网密码学、数字证书和安全套接字层。
公开密钥加密技术
SSL握手
在发送已加密的HTTP报文之前,客户端和服务器要进行一次SSL握手,在这个捏手过程中,它们要完成以下工作:
- 交换协议版本号:
- 选择一个两端都了解的密码:
- 对两端的身份进行认证:
- 生成临时的会话密钥,以便加密信道。
第四部分实体、编码和国际化
第四部分讲述的内容都与HTTP报文的实体主体和被实体主体作为货物承载的内容有关。
- 第15章讲述了HTTP内容的格式和语法.
- 第16章探讨了允许世界各地的人们相互交换内容的各种Web标准,这些内容由各种不同语言和不同字符集构成。
- 第17章讲解了各种用于协商可接受内容的机制。
字符
透明协商
第五部分内容发布与分发
第五部分讲述了Web内容发布和传播的各种技术。
- 第18章介绍了在现代的Web托管环境中部署服务器的若干方法,HTTP对虚拟Web托管的支持以及如何在地理上相距遥远的服务器之间复制内容.
- 第19章讨论了创建Web内容并将共放置到Web服务器上去的各种技术。
- 第20章探讨了各种将来访的Web流量分发到-组服务器上的技术和工具。
- 第21章解释了日志的各种格式和各种常见问题。
通用的重定向方法
因特网缓存协议
HTTP状态码
第四份笔记《图解网络》
图解HTTP常见面试题
在面试过程中,HTTP被提问的概率还是比较高的。
五大类HTTP状态码
HTTP与HTTPS
IP基础知识全家桶
前段时间,有读者希望我写一篇关于IP分类地址、子网划分等的文章,他反馈常常混淆,摸不着头脑。
那么,说来就来!而且要盘就盘全一点,顺便挑战下小林的图解功力,所以就来个IP基础知识全家桶。
IP协议相关技术
IP地址与路由控制
IP地址的网络地址这一部分 是用于进行路由控制。
路由控制表中记录着网络地址与F一步应该发送至路由器的地址。在主机和路由器上都会有名自的路由器控制表。
在发送IP包时,首先要确定IP包首部中的目标地址,再从路由控制表中找到与该地址具有相同网络地址的记录,根据该记录将IP包转发给相应的下一个路由器。如果路由控制表中存在多条相同网络地址的记录,就选择相同位数最多的网络地址,也就是最长匹配。
ping的工作原理
在日常生活或工作中,我们在判断与对方网络是否畅通,使用的最多的莫过于ping 命令了。
ICMP类型
可靠传输——TCP
TCP三次握手和四次挥手面试题
不管面试Java、C/C++、 Python 等开发岗位,TCP的知识点可以说是必问的了。
TCP头部格式
三次握手避免历史连接
还不懂TCP重传、滑动窗口、流量控制、拥塞控制吗?
相信大家都知道TCP是一个可靠传输的协议,那它是如何保证可靠的呢?
为了实现可靠性传输,需要考虑很多事情,例如数据的破坏、丢包、重复以及分片顺序混乱等问题。如不能解决这些问题,也就无从谈起可靠传输。
那么,TCP 是通过序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输的。
流量控制
滑动窗口
我们都知道TCP是每发送一个数据,都要进行一次确认应答。当上一个数据包收到了应答了,再发送下一个。
这个模式就有点像我和你面对面聊天,你一句我句。但这种 方式的缺点是效率比较低的。
如果你说完这句话,我在处理其他事情, 没有及时回复你,那你不是要干等着我做完其他事情后, 我回复你,你才能说下一句话。很显然这不现实。
“看得见的”TCP
为了让大家更容易「看得见」TCP. 我搭建不少测试环境,井且数据包抓很多次,花费了不少时间,才抓到比较容易分析的数据包。
接下来丟包、乱序、超时重传、快速重传、选择性确认、流量控制等等TCP的特性,都能“一览无余”
没错,我把TCP的“衣服扒光了,就为了給大家看得清楚,嘻嘻。
解密TCP三次握手和四次挥手
TCP三次握手异常情况实战分析
常规HTTP请求
TCP的几个参数
TCP性能的提升不仅考察TCP的理论知识,还考察了对于操作系统提供的内核参数的理解与应用。
TCP协议是由操作系统实现,所以操作系统提供了不少调节TCP的参数。
TCP三次握手的性能提升
优化三次握手的策略
由于笔记涉及到的知识点与内容极多,就不一一展示给大家了,这份《趣谈网络协议》《计算机网络-自顶向下方法》《HTTP权威指南》《图解网络》分别为435、565、716、310页!
如何获得这份优质的资料呢?
快速领取通道:关注+转发+点赞【点击这里即可】
当然,单单有文档看是远远不够的,还有视频和相匹配的课件进行学习提升,努力把计算机网络这一块儿给搞明白,相信一定会有不凡的人生!!
TCP/IP/网络IO学习视频
TCP/IP网络协议
网络IO
还有课件分享
IO课件
TCP/IP课件
TCP/IP/IO网络通信视频和课件获取,点赞+关注小编,【点击这里即可】获取!
好了,今天就分享到这里了,希望大家能够好好学习,把计算机网络这一块儿给提升上来,也希望本文能够得到大家的喜欢!!
总结
每个程序员心中都有一个大厂梦,无论是阿里还是腾讯,对于程序员的技术要求都是比较高的,抛开学历不谈,你的技术水平是否达到了BAT的标准和要求?如果你与其他同行存在着较大的技术差距,而且还没有改变现状的想法,那么被市场所淘汰,只是时间问题。所以,不管你是否想要进入大厂,或是想要拥有一份满意的薪资,都需要认真对待自己。