网络知识 | 《图解TCP/IP》读书笔记(上)
【网络知识】| 作者 / Edison Zhou
这是EdisonTalk的第290篇原创内容
作为一个专业的IT技术人,一个Web应用开发者,不了解网络基础和协议,怎么能行?本文是我2016年阅读《图解TCP/IP》一书的读书笔记,希望对你有所帮助!
1关于《图解TCP/IP》
这是一本图文并茂的网络管理技术书籍,旨在让广大读者理解TCP/IP的基本知识、掌握TCP/IP的基本技能。
书中讲解了网络基础知识、TCP/IP基础知识、数据链路、IP协议、IP协议相关技术、TCP与UDP、路由协议、应用协议、网络安全等内容,引导读者了解和掌握TCP/IP,营造一个安全的、使用放心的网络环境。
同时,这本书也是我的2016年度读书计划中的一本,下面我将会把我看书中的重点内容总结和重要图示摘录下来,所谓把书读薄,就是把精华内容留下,以供以后随时参考。
2网络基础知识
计算机使用模式的演变
协议
协议就是计算机与计算机之间通过网络实现通信事先达成的一种“约定”。这种“约定”使那些由不同厂商的设备、不同的CPU以及不同的操作系统组成的计算机之间,只要遵循相同的协议就能够实现通信。反之,如果使用的协议不同,就无法通信。
分组交换是将大数据分割为一个个叫做包(Packet)的较小单位进行传输的方法。这里所说的包,就如同我们平常在邮局里见到的邮包。分组交换就是将大数据分装为一个个这样的邮包交给对方。
协议分层与OSI参考模型
协议分层就如同计算机软件中的模块化开发,OSI参考模型的建议是比较理想化的。
OSI参考模型中每个层的作用:
7层通信实例:假设主机A的用户A要给主机B的用户B发送一封电子邮件:
发送方从第7层、第6层到第1层由上至下按照顺序传输数据,而接收端则从第1层、第2层到第7层由下至上向每个上一级分层传输数据。每个分层上,在处理由上一层传过来的数据时可以附上当前分层的协议所必须的“首部”信息。然后接收端对收到的数据进行数据“首部”与“内容”的分离,再转发给上一分层,并最终将发送端的数据恢复为原装。
3TCP/IP基础知识
TCP(Transmission Control Protocol)和IP(Internet Protocol)是互联网的众多通信协议中最为著名的。
TCP/IP的背景及历史
TCP/IP的标准化
(1)具体含义
很多人都会认为TCP/IP是指TCP与IP两种协议,实际生活中有时也确实就是指这两种协议。然后,很多情况下,它只是利用IP进行通信时所必须使用到的协议群的统称。
(2)标准化
由于TCP/IP尽早地制定了可行性较强的协议,提出了应对技术快速革新的协议,并及时进行后期改良的方案,因此打败了OSI模型,成为了事实上的标准。
TCP/IP的协议分层模型
上图列出了TCP/IP与OSI分层之间的大概关系,不难看出,TCP/IP与OSI在分层模块上稍有区别。OSI参考模型注重“通信协议必要的功能是什么”,而TCP/IP则更强调“在计算机上实现协议应该开发哪种程序”。
现在再来看看主机A向主机B发送一封电子邮件,在TCP/IP模型下的处理过程:
分组数据包经过以太网的数据链路时的大致流程如下图所示:
4IP协议及相关技术
IP的主要作用
如上图所示,IP的主要作用就是在复杂的网络环境中将数据包发给最终的目标地址。
IP的三大作用模块
(1)IP寻址
在计算机通信中,为了识别通信段,必须要有一个类似于地址的识别码进行标识。而在数据链路层,使用MAC地址来标识同一个链路中不同计算机的一种识别码。在网络层,则叫做IP地址。
(2)路由(最终节点为止的转发)
路由控制(Routing)是指将分组数据发送到最终目标地址的功能。即使网络非常复杂,也可以通过路由控制确定到达目标地址的通路。因此,一个数据包之所以能够成功地到达最终的目标地址,全靠路由控制。
Hop中文叫“跳”,它是指网络中的一个区间,IP包正是在网络中一个跳间被转发。数据链路实现某一个区间(一跳)内的通信,而IP实现直至最终目标地址的通信(点对点)。
为了将数据包发送给目标主机,所有主机都维护着一张路由控制表(Routing Table),该表记录IP数据在下一步应该发给哪一个路由器。IP包将根据这个路由表在各个数据链路上传输。
(3)IP分包与组包
IP面向无连接,即在发包之前,不需要建立与对端目标地址之间的连接。上层如果遇到需要发送给IP的数据,该数据会被立即压缩成IP包发送出去。
IP为什么面向无连接?
简化:面向连接比起面向无连接处理相对复杂!
提速:每次通信之前都需要建立连接,会降低处理速度!
需要有连接时,可以委托上一层(传输层)提供此项服务,因此,IP为了实现简单化与高速化采用面向无连接方式。
相关技术
(1)DNS
有效管理主机名和IP地址之间的对应关系->DNS系统,那么DNS查询的机制是什么呢?
(2)ARP
ARP是一种解决地址问题的协议,以目标地址为线索,用来定位下一个应该接收数据分包的网络设备对应的MAC地址。不过,ARP只适用于IPv4,不适用于IPv6。
RARP则是将ARP反过来,从MAC地址定位IP地址的一种协议。
(3)ICMP
一个刚刚搭建好的网络,需要验证该网络的设置是否正确。ICMP(Internet Control Message Protocol)这是提供这类功能的一种协议,其主要功能包括:确认IP包是否成功送达目标地址,通知在发送过程中IP包被废弃的具体原因等等。例如我们经常使用ping命令,就是一个典型的ICMP的具体应用。
(4)DHCP
如果逐一地为每一台主机设置IP地址会非常繁琐,于是为了实现自动设置IP地址、统一管理IP地址分配,就产生了DHCP(Dynamic Host Configuration Protocol)协议。有了DHCP,计算机只要连接到网络,就可以进行TCP/IP通信。
(5)NAT
NAT(Network Address Translator)用于在本地网络中使用私有地址,在连接互联网时转而使用全局IP地址的技术。
(6)IP隧道
在一个网络环境中,假如网络A、B使用IPv6,中间位置的网络C支持使用IPv4的话,网络A与网络B之间无法直接进行通信。为了让他们之间正常通信,这时需要采用IP隧道的功能。
IP隧道中可以将那些从网络A发过来的IPv6的包统和为一个数据,再为之追加一个IPv4的首部以后转发给网络C,这种在网络层的首部后面继续追加网络层首部的通信方法就叫做“IP隧道”。
Ref参考资料
[日]竹下隆史,《图解TCP/IP》
后台回复:图解TCP,即可获得pdf下载链接哟!
????扫码关注EdisonTalk
设为星标,不再失联!
往期推文合集:2020年上半年推文合集
成都新鲜坑位:喜鹊生活招聘.NET开发
十月送书福利:每天5分钟玩转Docker
网络知识 | 《图解TCP/IP》读书笔记(上)相关推荐
- 图解TCP/IP网络知识轻松入门 读书笔记(五)
传输层 应用层和网络层之间的桥梁 TCP 可靠性 UDP 速度 应用型的出入口 端口号 0~65535 0~1023根据通信服务提前预约叫通用端口 网络层 谁像谁发送问题 IP协议是无连接型的协义相当 ...
- Maltab在数学建模中的应用(第二版)——读书笔记上
Maltab在数学建模中的应用(第二版)--读书笔记上 1.MATLAB与数据文件的交互 1.1数据拟合 1.2数据拟合实例 1.3数据可视化 1.4层次分析法 2.规划问题的MATLAB求解(多约束 ...
- 图解HTTP读书笔记(十)
图解HTTP读书笔记(十) Web的攻击技术 HTTP协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击对象.应用HTTP协议的服务器和客户端,以及运行在服务器上的Web应用资源才是攻击目标. ...
- 知识的边界----读书笔记
知识的边界----读书笔记 2020年的疫病期间,我们阅读了<知识的边界>.本书的观点大致为网络让知识变得更便利,也更加丰富,这也需要我们利用更好的过滤器来过滤,来学习.同时,我们可以利用 ...
- 《Linux系统和网络性能监测》读书笔记
2019独角兽企业重金招聘Python工程师标准>>> <Linux系统和网络性能监测>读书笔记 性能调优是找出系统瓶颈并消除这些瓶颈的过程,很多系统管理员认为性能调优仅 ...
- 《算法图解》读书笔记
这是一本很入门的算法书,介绍的东西还算简单明了,大体补充了一些自己没理解的东西. 粗略地看了一下,感觉还是"纸上得来终觉浅,绝知此事要躬行!" <<算法图解>&g ...
- 《算法图解》读书笔记—像小说一样有趣的算法入门书
前言 学习算法课程的时候,老师推荐了两本算法和数据结构入门书,一本是<算法图解>.一本是<大话数据结构>,<算法图解>这本书最近读完了,读完的最大感受就是对算法不再 ...
- 知识蒸馏论文读书笔记
突然觉得,我应该做一点笔记,梳理一下学过的东西,否则年一过,整个人就跟失忆了一样. 知识蒸馏这个名字非常高大上(不得不说大佬不仅想法清新脱俗,名字也起的情形脱俗啊).如果直白地说老师学生模型,那就不酷 ...
- 《TCP/IP图解》读书笔记
看这本书的目的: 了解计算机之间是怎么通信的 熟悉TCP/IP协议 后面就这两个目的进行展开,要达到这两个目的,读这本书,学到了哪些知识. 一.计算机之间是怎么通信的 先来了解下面几个概念,中继器,二 ...
- 《软技能》读书笔记(上)
前言 这是一本真正从"人"(而非技术也非管理)的角度关注软件开发人员自身发展的书.书中论述的内容既涉及生活习惯,又包括思维方式,凸显技术中"人"的因素,全面讲解 ...
最新文章
- poj1002(map的使用)
- Codeforces Round #658 (Div. 2)部分题解
- chrome 播放视频提示 adobe flash player已过期或者adobe flash player 没有安装
- C++ ,leetcode 43. 字符串相乘 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式
- MySQL 数据存储文件
- 启动MySQL报错:ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)
- ASP.Net ListBox DropdownList 不同条目 设置 背景色 和 字体颜色
- 18 网络编程-TCP/IP各层介绍(5层模型讲解)
- anroid Remote Service 使用注意事项
- 小米9pro MIUI11.12.19 简化代码 布局随切 核心CPU 黑域
- Spring Cloud教程合集
- Redis雪崩效应的解决方案(转)
- 信号完整性(SI)电源完整性(PI)学习笔记(一)信号完整性分析概论
- dz搬家 win linux,Discuz论坛完美搬家 详细分享我的DZ搬家步骤
- 到底谁害了快播?或是服务器标准
- 34%的人会出轨。。。
- java excel合并,Java Excel合并工具
- 卖铲子也是一种赚钱方式
- ResNet详解与分析
- 投资理财-朋友榕的经历
热门文章
- Linux学习之服务器搭建——DHCP服务器
- Hadoop学习系列之PageRank
- 【MFC】MFC中调用系统软键盘的几种方法
- WinXP中鲜为人知的28项隐藏功能
- win8下cocos2dx3.2移植android平台及代码打包APK
- 黑苹果不能imessage_如何修复iMessage在iOS 10中不显示消息效果
- html仿微信滑动删除,使用Vue实现移动端左滑删除效果附源码
- android页面布局 如何让中间的listview填充剩余部分_谷歌驾驶设计—界面设计布局...
- 每个程序员都可能犯过的10个错误
- JsonRequestBehavior.AllowGet 方便浏览器调试