计算机网络,是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
为什么要学计算机网络,因为它实在太重要了,无论是BAT大厂还是中小型传统企业几乎是面试必问的内容,什么TCP/IP三次握手,四次挥手,TCP和UDP区别,HTTP协议的一堆面试题,在程序员面试时都是很常见的考题,你们应该也深有体会。
既然在面试过程中开发者经常被问到。当然可能这一块知识点与前面的操作系统、数据库相比较比重可能没那么高。但是优秀的你,一定是想做好充分的准备吧!
本书的特点
目录
注:下文内容主要是写这几份《计算机网络》笔记的主要内容,由于笔记涉及到的知识点过于全面,无法一一全部展示给大家,只截取部分内容以供大家参考
如何获得这份完整版优质的资料呢?
快速领取通道:关注+转发+点赞【点击这里即可】
第1章通信协议概述
协议三要素
网络分层的真实含义
由于长时间从事计算机网络相关的工作,我发现计算机网络有个显著的特点,就是这是一个不仅需要背诵,而且特别需要将原理烂熟于胸的学科。很多问题看起来懂了,但是就怕细问,一问就发现你懂得没有那么透彻。
第2章从二层到三层
第一层:物理层
第二层: MAC层
拓扑结构是怎么形成的
第3章最重要的传输层
UDP:虽然简单但是可以定制化
讲完IP层以后,接下来我们开始讲传输层。在1.1节中已经讲过,传输层里比较重要的两个协议,一个是TCP,一个是UDP。对不从事底层开发或者应用开发的人来讲,最常用的就是这两个协议。面试时,这两个协议经常会被放在一起问, 因而在本书中也会将两者结合起来讲。
UDP的三大使用场景
第4章最常用的应用层
HTTP请求报文的准备
HTTP 2.0其实是将3个请求变成3个流,将数据分成帧,乱序发送到一个TCP连接中,如图所示。
第5章陌生的数据中心
世界各地,如果大家都去同一一个地方访问某个服务器,时延将会非常大。因而,DNS服务器一定要设置成高可用、高并发和分布式的。
于是,就有了树状的层次结构,如图所示。
第6章云计算中的网络
虚拟网卡的原理
那网络是如何“骗"应用的呢?如何将虚拟机的网络和物理机的网络连接起来呢?
如图6-1所示,首先,虚拟机要有一-张网卡。对于qemu-kvm来说,这是通过Linux系统上的一种TUNTAP技术来实现的。
OpenFlow协议和Open vSwitch
第7章容器技术中的网络
Calico网络模型的设计思路
我们看图中的两台物理机,它们的物理网卡在同一个二层网络里面。由于两台物理机的容器网段不同,完全可以将两台物理机配置成为路由器,并按照容器的网段配置路由表。
至此为止,Calico 的所有组件基本凑齐。汇总如图所示。
第8章微服务相关协议
数据中心内部是如何相互调用的
第9章网络协议知识串讲
部署一个高可用高并发的电商平台
首先,要有个电商平台。假设我们已经有了一个特别大的电商平台,这个平台应该部署在哪里呢?如果使用公有云,一般会部署在多个位置,比如华东、华北、华南。我们的电商是要服务全国的,所以部署范围要广。同时,我们把主站点放在华东,如图所示。
在进行所有这些操作之前,首先要做的事情是建立连接,过程如图所示。
笔记特点
目录
第1章计算机网络和因特网
家庭接人: DSL.电缆、FTH.按号和卫星
计算机网络和因特网的历史
第2章应用层
因特网中的电子邮件
TCP套接字编程
第3章运输层
运输层和网络层的关系
流水线可靠数据传输协议
第4章网络层
数据报网络
因特网组管理协议
第5章链路层:链路、接入网和局域网
多路访问链路和协议
第6章无线网络和移动网络
无线和移动性:对高层协议的影响
第7章多媒体网络
实时会话式应用的协议
第8章计算机网络中的安全
什么是网络安全
第9章网络管理
安全性和管理
HTTP (Hypertext Transfer Protocol, 超文本传输协议*)是在万维网上进行通信时所使用的协议方案。HTTP有很多应用,但最著名的是用于Web浏览器和Web服务器之间的双工通信。
本书中,我们会将HTTP中一些互相关联且常被误解的规则梳理清楚,并编写了一系列基于各种主题的章节介绍HTTP各方面的特性。纵观全书,我们对HTTP“为什么”这样做进行了详细的解释,而不仅仅停留在它是“怎么做”的。而且,为了节省大家寻找参考文献的时间,我们还介绍了很多HTTP应用程序正常工作所必需且重要的非HTTP技术。在条理清晰的附录中,可以找到按照字母排序的首部参考(这些首部构成了最常见的HTTP文本的基础)。我们希望这种概念性的设计有助于读者更好地使用HTTP。
内容
本书包含21章,分为5个逻辑部分(每部分都是一个技术专题),以及8个很有用的附录,这些附录包含了参考资料,以及对相关技术的介绍。
目录
本部分主要概述HTTP协议。接下来的4章介绍了Web的基础构件以及HTTP的核心技术。
事务
我们来更仔细地看看客户端是怎样通过HTTP与Web服务器及其资源进行事务处理的。一个HTTP事务由一条(从客户端发往服务器的)请求命令和一个(从服务器返回客户端的)响应结果组成。这种通信是通过名为HTTP报账(HTTP message)的格式化数据块进行的,如图所示。
TCP/IP
HTTP是个应用层协议。HTTP无需操心网络通信的具体细节:它把联网的细节都交给了通用。可靠的因特网传输协议TCP/IP.
URL快捷方式
Web客户端可以理解并使用几种URL快捷方式。相对URL是在某资源内部指定一个资源的便捷缩略方式。很多浏览器还支持URL的“自动扩展"。也就是用户输入URL的一个关键(可记忆的)部分,然后由浏览器将其余部分填充起来。
并行连接
第二部分的6章主要介绍了HTTP服务器、代理,缓存,网关和机器人应用程序,这些都是Web系统架构的构造模块。
第三步——处理请求
搜索引擎
得到最广泛使用的Web机器人都是因特网搜索引擎。因特网搜索引擎可以帮助用户找到世界范围内涉及任意主题的文档。
第三部分的4章提供了一系列的技术和技巧,可用来跟踪身份,进行安全性检查,控制对内容的访问。
公开密钥加密技术
SSL握手
在发送已加密的HTTP报文之前,客户端和服务器要进行一次SSL握手,在这个捏手过程中,它们要完成以下工作:
第四部分讲述的内容都与HTTP报文的实体主体和被实体主体作为货物承载的内容有关。
字符
透明协商
第五部分讲述了Web内容发布和传播的各种技术。
通用的重定向方法
因特网缓存协议
HTTP状态码
图解HTTP常见面试题
在面试过程中,HTTP被提问的概率还是比较高的。
五大类HTTP状态码
HTTP与HTTPS
前段时间,有读者希望我写一篇关于IP分类地址、子网划分等的文章,他反馈常常混淆,摸不着头脑。
那么,说来就来!而且要盘就盘全一点,顺便挑战下小林的图解功力,所以就来个IP基础知识全家桶。
IP协议相关技术
IP地址与路由控制
IP地址的网络地址这一部分 是用于进行路由控制。
路由控制表中记录着网络地址与F一步应该发送至路由器的地址。在主机和路由器上都会有名自的路由器控制表。
在发送IP包时,首先要确定IP包首部中的目标地址,再从路由控制表中找到与该地址具有相同网络地址的记录,根据该记录将IP包转发给相应的下一个路由器。如果路由控制表中存在多条相同网络地址的记录,就选择相同位数最多的网络地址,也就是最长匹配。
在日常生活或工作中,我们在判断与对方网络是否畅通,使用的最多的莫过于ping 命令了。
ICMP类型
可靠传输——TCP
不管面试Java、C/C++、 Python 等开发岗位,TCP的知识点可以说是必问的了。
TCP头部格式
三次握手避免历史连接
相信大家都知道TCP是一个可靠传输的协议,那它是如何保证可靠的呢?
为了实现可靠性传输,需要考虑很多事情,例如数据的破坏、丢包、重复以及分片顺序混乱等问题。如不能解决这些问题,也就无从谈起可靠传输。
那么,TCP 是通过序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输的。
流量控制
滑动窗口
我们都知道TCP是每发送一个数据,都要进行一次确认应答。当上一个数据包收到了应答了,再发送下一个。
这个模式就有点像我和你面对面聊天,你一句我句。但这种 方式的缺点是效率比较低的。
如果你说完这句话,我在处理其他事情, 没有及时回复你,那你不是要干等着我做完其他事情后, 我回复你,你才能说下一句话。很显然这不现实。
为了让大家更容易「看得见」TCP. 我搭建不少测试环境,井且数据包抓很多次,花费了不少时间,才抓到比较容易分析的数据包。
接下来丟包、乱序、超时重传、快速重传、选择性确认、流量控制等等TCP的特性,都能“一览无余”
没错,我把TCP的“衣服扒光了,就为了給大家看得清楚,嘻嘻。
解密TCP三次握手和四次挥手
TCP三次握手异常情况实战分析
常规HTTP请求
TCP性能的提升不仅考察TCP的理论知识,还考察了对于操作系统提供的内核参数的理解与应用。
TCP协议是由操作系统实现,所以操作系统提供了不少调节TCP的参数。
TCP三次握手的性能提升
优化三次握手的策略
由于笔记涉及到的知识点与内容极多,就不一一展示给大家了,这份《趣谈网络协议》《计算机网络-自顶向下方法》《HTTP权威指南》《图解网络》分别为435、565、716、310页!
如何获得这份优质的资料呢?
快速领取通道:关注+转发+点赞【点击这里即可】
当然,单单有文档看是远远不够的,还有视频和相匹配的课件进行学习提升,努力把计算机网络这一块儿给搞明白,相信一定会有不凡的人生!!
TCP/IP网络协议
网络IO
IO课件
TCP/IP课件
TCP/IP/IO网络通信视频和课件获取,点赞+关注小编,【点击这里即可】获取!
好了,今天就分享到这里了,希望大家能够好好学习,把计算机网络这一块儿给提升上来,也希望本文能够得到大家的喜欢!!
每个程序员心中都有一个大厂梦,无论是阿里还是腾讯,对于程序员的技术要求都是比较高的,抛开学历不谈,你的技术水平是否达到了BAT的标准和要求?如果你与其他同行存在着较大的技术差距,而且还没有改变现状的想法,那么被市场所淘汰,只是时间问题。所以,不管你是否想要进入大厂,或是想要拥有一份满意的薪资,都需要认真对待自己。