【网络知识】| 作者 / 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为什么面向无连接?

  1. 简化:面向连接比起面向无连接处理相对复杂!

  2. 提速:每次通信之前都需要建立连接,会降低处理速度!

需要有连接时,可以委托上一层(传输层)提供此项服务,因此,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》读书笔记(上)相关推荐

  1. 图解TCP/IP网络知识轻松入门 读书笔记(五)

    传输层 应用层和网络层之间的桥梁 TCP 可靠性 UDP 速度 应用型的出入口 端口号 0~65535 0~1023根据通信服务提前预约叫通用端口 网络层 谁像谁发送问题 IP协议是无连接型的协义相当 ...

  2. Maltab在数学建模中的应用(第二版)——读书笔记上

    Maltab在数学建模中的应用(第二版)--读书笔记上 1.MATLAB与数据文件的交互 1.1数据拟合 1.2数据拟合实例 1.3数据可视化 1.4层次分析法 2.规划问题的MATLAB求解(多约束 ...

  3. 图解HTTP读书笔记(十)

    图解HTTP读书笔记(十) Web的攻击技术 HTTP协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击对象.应用HTTP协议的服务器和客户端,以及运行在服务器上的Web应用资源才是攻击目标. ...

  4. 知识的边界----读书笔记

    知识的边界----读书笔记 2020年的疫病期间,我们阅读了<知识的边界>.本书的观点大致为网络让知识变得更便利,也更加丰富,这也需要我们利用更好的过滤器来过滤,来学习.同时,我们可以利用 ...

  5. 《Linux系统和网络性能监测》读书笔记

    2019独角兽企业重金招聘Python工程师标准>>> <Linux系统和网络性能监测>读书笔记 性能调优是找出系统瓶颈并消除这些瓶颈的过程,很多系统管理员认为性能调优仅 ...

  6. 《算法图解》读书笔记

    这是一本很入门的算法书,介绍的东西还算简单明了,大体补充了一些自己没理解的东西. 粗略地看了一下,感觉还是"纸上得来终觉浅,绝知此事要躬行!" <<算法图解>&g ...

  7. 《算法图解》读书笔记—像小说一样有趣的算法入门书

    前言 学习算法课程的时候,老师推荐了两本算法和数据结构入门书,一本是<算法图解>.一本是<大话数据结构>,<算法图解>这本书最近读完了,读完的最大感受就是对算法不再 ...

  8. 知识蒸馏论文读书笔记

    突然觉得,我应该做一点笔记,梳理一下学过的东西,否则年一过,整个人就跟失忆了一样. 知识蒸馏这个名字非常高大上(不得不说大佬不仅想法清新脱俗,名字也起的情形脱俗啊).如果直白地说老师学生模型,那就不酷 ...

  9. 《TCP/IP图解》读书笔记

    看这本书的目的: 了解计算机之间是怎么通信的 熟悉TCP/IP协议 后面就这两个目的进行展开,要达到这两个目的,读这本书,学到了哪些知识. 一.计算机之间是怎么通信的 先来了解下面几个概念,中继器,二 ...

  10. 《软技能》读书笔记(上)

    前言 这是一本真正从"人"(而非技术也非管理)的角度关注软件开发人员自身发展的书.书中论述的内容既涉及生活习惯,又包括思维方式,凸显技术中"人"的因素,全面讲解 ...

最新文章

  1. poj1002(map的使用)
  2. Codeforces Round #658 (Div. 2)部分题解
  3. chrome 播放视频提示 adobe flash player已过期或者adobe flash player 没有安装
  4. C++ ,leetcode 43. 字符串相乘 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式
  5. MySQL 数据存储文件
  6. 启动MySQL报错:ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)
  7. ASP.Net ListBox DropdownList 不同条目 设置 背景色 和 字体颜色
  8. 18 网络编程-TCP/IP各层介绍(5层模型讲解)
  9. anroid Remote Service 使用注意事项
  10. 小米9pro MIUI11.12.19 简化代码 布局随切 核心CPU 黑域
  11. Spring Cloud教程合集
  12. Redis雪崩效应的解决方案(转)
  13. 信号完整性(SI)电源完整性(PI)学习笔记(一)信号完整性分析概论
  14. dz搬家 win linux,Discuz论坛完美搬家 详细分享我的DZ搬家步骤
  15. 到底谁害了快播?或是服务器标准
  16. 34%的人会出轨。。。
  17. java excel合并,Java Excel合并工具
  18. 卖铲子也是一种赚钱方式
  19. ResNet详解与分析
  20. 投资理财-朋友榕的经历

热门文章

  1. Linux学习之服务器搭建——DHCP服务器
  2. Hadoop学习系列之PageRank
  3. 【MFC】MFC中调用系统软键盘的几种方法
  4. WinXP中鲜为人知的28项隐藏功能
  5. win8下cocos2dx3.2移植android平台及代码打包APK
  6. 黑苹果不能imessage_如何修复iMessage在iOS 10中不显示消息效果
  7. html仿微信滑动删除,使用Vue实现移动端左滑删除效果附源码
  8. android页面布局 如何让中间的listview填充剩余部分_谷歌驾驶设计—界面设计布局...
  9. 每个程序员都可能犯过的10个错误
  10. JsonRequestBehavior.AllowGet 方便浏览器调试