没有合适的资源?快使用搜索试试~ 我知道了~
Java面试宝典八股文,金三银四
资源推荐
资源详情
资源评论
前⾔
作者介绍
⼤家好,我是⼩林,是这本图解⽹络电⼦书的作者,电⼦书的内容都是整理于我公众号「⼩林coding」⾥的图解⽂
章。
还没关注的朋友,可以微信搜索「⼩林coding」,关注我的公众号,后续最新版本的 PDF 会在我的公众号第⼀时
间发布,⽽且会有更多其他系列的图解⽂章,⽐如操作系统、计算机组成、数据库、算法等等。
简单介绍下这个图解⽹络 PDF,这本电⼦书共有 15W 字 + 450 张图,⽂字都是⼩林⼀个字⼀个字敲出来的,
图⽚都是⼩林⼀个点⼀条线画出来的,⾮常的不容易。
这本书图解⽹络适合什么群体呢?
这本书写的⽹络知识主要是⾯向程序员的,因为⼩林本身也是个程序员,所以涉及到的知识主要是关于程序员⽇常
⼯作或者⾯试的⽹络知识。
⾮常适合有⼀点⽹络基础,但是⼜不怎么扎实,或者知识点串不起来的同学,说⽩这本图解⽹络就是为了拯救半桶
⽔的同学⽽出来。
因为⼩林写的图解⽹络就四个字,通熟易懂!
相信你在看这本图解⽹络的时候,你⼼⾥的感受会是:
「卧槽,原来是这样,⼤学⽼师教知识原来是这么理解」
「卧槽,我的⽹络知识串起来了」
「卧槽,我感觉⾯试稳了」
「卧槽,相⻅恨晚」
当然,也适合⾯试突击⽹络知识时拿来看,不敢说 100 % 涵盖了⾯试的⽹络问题,但是⾄少 90% 是有的,⽽且内
容的深度应对⼤⼚也是搓搓有余的,有⾮常多的读者跑来感激⼩林的图解⽹络,帮助他们拿到了国内很多⼀线⼤⼚
的 offer。
这本书图解⽹络要怎么阅读呢?
很诚恳的告诉你,这本书不是教科书,⽽是我写的图解⽹络⽂章的整合,所以肯定是没有教科书那么细致和全⾯,
当然也不就不会有很多废话,⽽且有的知识点书上看不到。
阅读的顺序可以不⽤从头读到尾,你可以根据你想要了解的知识点,去看哪个章节的⽂章就好,可以随意阅读任何
章节的⽂章。
下⾯这张思维导图是整个电⼦书的⽬录结构:
勘误事宜
⼩林是个⼿残党,虽然⾄今改了出第 3 个版本,但是我觉得还是会有很多错别字,所以在学习这份电⼦书的同学,
如果你发现有任何错误或者疑惑的地⽅,欢迎你通过下⽅的邮箱反馈给⼩林,⼩林会逐个修正,然后发布新版本的
图解⽹络 PDF,⼀起迭代出更好的图解⽹络!
勘误邮箱:xiaolincoding@163.com
⼀、基础篇
1.1 TCP/IP ⽹络模型
对于同⼀台设备上的进程间通信,有很多种⽅式,⽐如有管道、消息队列、共享内存、信号等⽅式,⽽对于不同设
备上的进程间通信,就需要⽹络通信,⽽设备是多样性的,所以要兼容多种多样的设备,就协商出了⼀套通⽤的⽹
络协议。
这个⽹络协议是分层的,每⼀层都有各⾃的作⽤和职责,接下来就分别对每⼀层进⾏介绍。
应⽤层
最上层的,也是我们能直接接触到的就是应⽤层(Application Layer),我们电脑或⼿机使⽤的应⽤软件都是在应
⽤层实现。那么,当两个不同设备的应⽤需要通信的时候,应⽤就把应⽤数据传给下⼀层,也就是传输层。
所以,应⽤层只需要专注于为⽤户提供应⽤功能,不⽤去关⼼数据是如何传输的,就类似于,我们寄快递的时候,
只需要把包裹交给快递员,由他负责运输快递,我们不需要关⼼快速是如何被运输的。
⽽且应⽤层是⼯作在操作系统中的⽤户态,传输层及以下则⼯作在内核态。
传输层
应⽤层的数据包会传给传输层,传输层(Transport Layer)是为应⽤层提供⽹络⽀持的。
在传输层会有两个传输协议,分别是 TCP 和 UDP。
TCP 的全称叫传输层控制协议(Transmission Control Protocol),⼤部分应⽤使⽤的正是 TCP 传输层协议,⽐
如 HTTP 应⽤层协议。TCP 相⽐ UDP 多了很多特性,⽐如流量控制、超时重传、拥塞控制等,这些都是为了保证
数据包能可靠地传输给对⽅。
UDP 就相对很简单,简单到只负责发送数据包,不保证数据包是否能抵达对⽅,但它实时性相对更好,传输效率
也⾼。当然,UDP 也可以实现可靠传输,把 TCP 的特性在应⽤层上实现就可以,不过要实现⼀个商⽤的可靠 UDP
传输协议,也不是⼀件简单的事情。
应⽤需要传输的数据可能会⾮常⼤,如果直接传输就不好控制,因此当传输层的数据包⼤⼩超过 MSS(TCP 最⼤
报⽂段⻓度) ,就要将数据包分块,这样即使中途有⼀个分块丢失或损坏了,只需要重新这⼀个分块,⽽不⽤重新
发送整个数据包。在 TCP 协议中,我们把每个分块称为⼀个 TCP 段(TCP Segment)。
当设备作为接收⽅时,传输层则要负责把数据包传给应⽤,但是⼀台设备上可能会有很多应⽤在接收或者传输数
据,因此需要⽤⼀个编号将应⽤区分开来,这个编号就是端⼝。
⽐如 80 端⼝通常是 Web 服务器⽤的,22 端⼝通常是远程登录服务器⽤的。⽽对于浏览器(客户端)中的每个标
签栏都是⼀个独⽴的进程,操作系统会为这些进程分配临时的端⼝号。
由于传输层的报⽂中会携带端⼝号,因此接收⽅可以识别出该报⽂是发送给哪个应⽤。
⽹络层
传输层可能⼤家刚接触的时候,会认为它负责将数据从⼀个设备传输到另⼀个设备,事实上它并不负责。
实际场景中的⽹络环节是错综复杂的,中间有各种各样的线路和分叉路⼝,如果⼀个设备的数据要传输给另⼀个设
备,就需要在各种各样的路径和节点进⾏选择,⽽传输层的设计理念是简单、⾼效、专注,如果传输层还负责这⼀
块功能就有点违背设计原则了。
也就是说,我们不希望传输层协议处理太多的事情,只需要服务好应⽤即可,让其作为应⽤间数据传输的媒介,帮
助实现应⽤到应⽤的通信,⽽实际的传输功能就交给下⼀层,也就是⽹络层(Internet Layer)。
剩余442页未读,继续阅读
资源评论
unbekannten
- 粉丝: 19
- 资源: 78
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 4399GameSem_116_13955_207551_6.apk
- python 3.9.19源码编译包
- php-8.2.18-Win32-vs16-x64.rar
- 字节跳动青训营-抖音项目
- SQL资料手册,语句教程,高级查询语句语法
- 上位机和串口建立 Modbus 协议进行数据传输,并使用 Mysql 数据库存储,能够实现实时温湿度显示和动态变化曲线,历史数据
- Attachment 1_chazhi.xlsx
- 安卓项目,实现虚拟摇杆通过wifi串口发送nema-0183协议实现小吊舱方向控制
- 基于modbus协议的大屏数据监控,使用modbus slave模拟数据,串口服务器获取温湿度
- 下载资源.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功