《图解TCP/IP》阅读笔记

《图解TCP/IP》阅读笔记

第一章 网络基础知识

计算机网络发展的7个阶段

Batch Processing 批处理

计算机在一段时间内按照一定的顺序同时处理很多任务成为批处理。

TSS(Time Sharing System) 分时系统

TSS分时系统允许多个用户同时使用一台计算机,使每个用户感觉在使用一台独立的设备,称为独占性。
分时系统有以下属性,独占性,多路性,交互性,及时性。
在分时系统的推动下,开始出现了终端和计算机之间的星形结构,计算机之间的通信进入了一个新时代。

The Age of network-center 网络中心的时代

随着电话网络被IP网络所替代,人们使用IP网络来打电话,看电视,进行计算机之间的通信。

From easy-connect to safe-connect 从简单连接到安全连接

建立通信之后,人们开始考虑日常运维和基本的防御措施,建立起一个安全的链接。

协议分层与OSI参考模型

分层名称 功能
应用层 针对特定应用的协议,比如 电子邮件协议SMTP、远程登录SSH、文件传输FTP
表示层 设备固有数据格式和网络标准数据格式的转换,固有数据编码格式有 UTF-8,UTF-16等等,表示层和表示层之间为了识别编码格式会附加到首部信息,交给下一层去处理
会话层 通信管理——何时建立连接,断开连接,保持多久的连接,管理传输层以下的分层,比如一次性发送了5封邮件,会话层决定是建立一次连接,全部邮件通过这个连接连续发送给对方;还是同时建立5个连接,同时发送;还是依次建立5次连接,依次发送。会话层会在头部中添加数据传送的顺序
传输层 管理两个节点之间的数据传输,负责可靠传输。真正负责传输具体数据的是传输层及以下。 网络层确立连接与断开连接
网络层 地址管理与路由选择,经过哪个路由器传递到目标地址。根据目的地址,将数据发送到目标计算机
数据链路层 互连设备之间传送和识别数据帧
物理层 界定连接器与网线的规格等等,负责0、1比特流与电压高低/光纤信号的相互转换

其中,传输层位于网络层之上,因为传输层的可靠连接都是基于IP包的交换来建立的,没有IP的交换不可能建立计算机之间的可靠连接。

传输方式的分类

面向有连接和无连接型

其中需要记住的是,面向无连接型,发送端可以在任何时候自由发送数据,由于接收端永远不知道自己何时从哪里收到数据,因此,接收端需要时常确认自己是否收到了数据。

电路交换与分组交换

当前的分组交换的前身就是电话交换,基于电话交换的电话网络历史相对久远。在电话交换中,交换机主要负责数据的中转处理,计算机连接到交换机上面,交换机和交换机之间则由众多通信线路进行连接,建立连接之后,用户就可以通过这一条电路,传输数据,直到该连接被中断为止。
一旦一条电路上连接了多台计算机,其中一台计算机在占用这条电路发送收发数据时,其他计算机就只能等到,直到它结束才有机会使用这条线路。

为了处理这种问题,人们让连接到通信电路的计算机将需要发送的数据切分为多个数据包,按照一定的顺序发送,通信线路就可以被多台计算机同时使用,提高了通信线路的利用率。 在分组的过程中,已经在每个分组的首部中写入了发送端和接收端的地址,所以即使一条线路同时为多个用户提供服务,也可以明确区分每个分组数据发往的目的地。 这就是分组交换。
在分组交换中,由分组交换机(路由器)连接通信线路,路由器收到这些分组数据之后,缓存到自己的缓冲区,因此,分组交换也称为蓄积交换。

按照接收端数量分类

单播

一对一通信,固定电话就是单播的典型例子。

广播

比如电视信号塔将多个电视信号发送给非特定的多个接受对象,电视信号一般都有自己的频段,只有在相应的频段的可接收范围内才能收到电视信号。
类似的,只有在这个网段范围内的计算机才能收到相应的广播消息,这个范围叫做广播域。

多播

多播和广播类似,不同的是,多播需要限定某一组主机作为接受端。最典型的例子是电视会议。

任播

从特定的多台主机中挑选出一台作为接收端,称为任播,通常,被选中的那台主机将返回一个单播信号,

地址

地址的唯一性

多播:一班的同学请起立

任播:一班的哪个同学过来一下

地址的层次性

电话号码:有国家区号和国内区号

通信地址:国名,省名,市名,区名

MAC地址和IP地址都有唯一性,但是它们当中只有IP地址具有地址层次性。

MAC地址是由设备的制造厂商针对每块网卡进行分别指定,人们可以通过制造商识别号,制造商内部产品编号以及产品通用编号确定MAC地址的唯一性,但是人们无法确定哪个厂商的网卡被用在了哪个地方,哪个国家,虽然MAC地址也有一定的层次性,但是对于寻找地址没有任何作用。
所以在实际寻址中,IP地址必不可少。

MAC寻址中参考的这张表叫做地址转发表;
IP寻址中参考的成为路由控制表;

网络的构成要素

设备 作用
网卡 让计算机联网的设备
中继器 从物理层上延长网络的设备
网桥/第2层交换机 从数据链路层上延长网络的设备
路由器/第3层交换机 通过网络层转发分组数据的设备
第4-7层交换机 处理传输层以上各层网络传输的设备
网关 转换协议的设备

备注:这里的第2层指的OSI参考模型中的第二层,也就是数据链路层。

通信媒介与数据链路层
书中总结了不同的数据链路、通信媒介以及标准传输速率,由于不是本次复习的重点,所以略过

传输速率与吞吐量

两个设备之间数据流动的物理速度称为传输速率,单位是bps(Bits Per Second,每秒比特数)。

传输速率不是指数据流动的速度有多快(实际上,在各种传输媒介中信号的流动速度是恒定的),而是说单位时间内传输的数据量有多少。

用生活中的例子来说,低速数据链路就如同车道比较少的无法让很多车同时通过的情况,高速数据链路就相当于多个车道,一次允许更多车辆行驶的道路。

根据上面这种说法,传输速率又称为带宽(bandwidth),带宽越大网络的传输能力越强。
主机之间的实际传输速率被称为吞吐量。也是bps单位,吞吐量还可以衡量CPU处理能力,网络的拥塞程度,报文中数据字段的占有份额(不计算报文首部,只计算数据字段本身)

网卡 network interface card NIC

网络接口卡NIC有时也被称为网络适配器,网卡,LAN卡

中继器 Repeater

中继器是在OSI模型的第一层——物理层面上延长网络的设备,由于电缆传过来的信号由中继器的波形调整和放大之后再传给另外一个电缆。(可以是不同类型的信号之间的转换)
中继器无法改变传输速度。

网桥(第2层交换机)

网桥是在OSI的第二层数据链路层上连接两个网络的设备,它能够识别数据链路层中的数据帧,并且将这些数据帧临时存储于内存,再重新生成信号作为一个全新的帧转发给相连的另外一个网段。
由于网桥这种特性,所以它能连接两个传输速率完全不同的数据链路,并且不限制连接网段的个数。
数据链路层中有一个数据位叫做FCS,网桥通过检查这个域中的值,将那些损坏的数据丢弃,避免发送到其他网段;此外网桥还可以通过地址自学机制和过滤功能控制网络流量。

路由器(第3层交换机)

路由器是在OSI第三层网络层面上连接两个网络,并且对分组报文进行转发的设备。网桥是根据MAC地址进行处理,路由器/3层交换机是根据IP地址进行处理的,因此,TCP/IP中网络层的地址就成了IP地址。

由于路由器分割了数据链路层,因此数据链路层的广播消息将无法继续传播。

第4到第7层交换机

功能之1:

负载均衡
企业级的web站点,使用一台服务器不足以满足前端的访问需求,假设多台服务器来分担,这些服务器前端访问的入口地址通常只有一个,为了让同一个URL能将前台的访问请求分发到后台多个服务器上,可以在这些服务器的前端加一个负载均衡器,这种负载均衡器就是4-7层交换机的一种。

此外还可以通过DNS实现负载均衡,对多个服务器使用同一个域名,每次查这个域名的时候会得到其中一个服务器的地址,从而让不同的客户访问不同的服务器。这种方法也称作循环复用DNS技术

功能之2:

带宽控制
网络比较拥堵的时候,优先处理像语音这种及时性要求比较高的,放缓处理像邮件或数据转发等稍有延迟也并无大碍的通信请求。

除此之外的功能还有广域网加速器,特殊应用访问加速,防火墙(防止互联网上的非法访问)

网关

这里指的网关仅仅针对OSI参考模型中传输层以上各层中进行协议转换的设备或者部件。

网关不仅转发数据还负责对数据进行转换,可以在两个不能进行直接通信的协议之间进行翻译,最终实现两者之间的通信。举个例子,手机邮件和互联网邮件可能互不兼容,这是由于它们在表示层和应用层中的电子邮件协议SMTP互不相同所导致。

手机和互联网之间设置了一道网关之后,网关负责读取各种不同的协议后,对它们进行合理的转换,再将数据转发出去,这样一来即使应用了不同的电子邮件协议,手机和PC之间也能互相发送邮件。

代理服务器也是网关的一种。用来控制网络流量以及保证源服务器的安全。有了代理服务器之后,客户端和服务器无需在网络层上进行通信,而是从传输层到应用层对数据和访问进行各种控制和处理。

防火墙就是一种通过网关通信的产品,能提高系统安全性。

现代网络实态

网络的构成

在现代城市中,分布着高速网络,类似于城市交通中的高速公路,我们称之为“骨干”或者“核心”网络,人们选用高速路由器互相连接使之快速传输大量数据。
相较于骨干网,还有一种叫做,边缘网络,即高速网络的入口。连接边缘网络的部分叫做接入层或者汇聚层。
so that.骨干网络可以专注如何提高业务传输性能和网络的生存性;
具有业务智能化的高速路由器和交换机移到网络的边缘
边缘网络的常用设备多为第2层交换机或者第3层交换机。

互联网通信

个人感觉这张图很形象;对于一些比较大的公司,从外部有大量的访问,这时甚至可以直接连接到边缘网络

移动网络

从信息发布者的角度看待网络

信息发布者专注于内容的撰写,而内容就发布在托管的服务器中,如果是访问量巨大的网站,则需要托管在数据中心中。数据中心可以连接骨干网,小规模的会连接到边缘网络,目的是为了追求更好的处理速度。

在云时代,虚拟化和云技术给现代网站服务提供了更加可靠和高效的服务。


第二章 TCP/IP基础知识

TCP/IP的标准化

大多数时候TCP/IP协议指的是利用IP网络进行通信时必须用到的协议群的统称。有的时候可以认为只是TCP/IP两种协议。
具体来说,TCP/IP泛指以下这些协议,有时也称为网际协议族。

互联网基础知识

互联网是由ARPANET发展而来的、互连全世界的计算机网络。

TCP/IP协议分层模型


硬件(物理层

网络接口层(数据链路层

有时也将网络接口层与硬件层合并起来称为网络通信层

互联网层(网络层

OSI模型的第三层,IP协议基于IP地址转发分包数据。连接互联网的主机和路由器必须实现IP的功能,其他连接互联网的设备(网桥,中继,集线器)就没有必要一定实现IP或TCP的功能。

IP:IP是跨越网络传送数据包,使得整个网络都能收到数据的协议。IP协议使得数据能够发送到地球上任意一台联网计算机,IP地址作为主机的标识。IP还隐含着数据链路层的功能,通过IP,互相通信的主机之间不论经过怎样的底层数据链路层都能够实现通信。

缺点:虽然IP协议是分组交换的一种协议,但是不具备重发机制,即使分组数据包未能到达主机也不会重发,因此属于非可靠传输协议。

ICMP:IP数据包在发送途中一旦发生异常导致无法到达对端目标地址时,需要给发送端发一个发生异常的通知,ICMP就是为了这一功能指定的。有时候ICMP也被用来诊断网络的健康状况。

ARP: 通过解析网络层地址来寻找数据链路层地址的网络传输协议。

传输层

传输层最主要的功能就是让应用程序之间实现通信。

TCP
TCP是一种面向有连接的传输层协议。TCP可以处理在传输过程中丢包和乱序的问题,还可以有效利用带宽,缓解网络拥堵。

UDP
UDP是一种面向无连接的传输层协议。UDP不会关注对端是否真的收到了传送过去的数据,如果需要检查对端是否收到了分组数据包,或者对端是否连接到网络,需要在应用程序中实现。

应用层(会话层及以上的分层

WWW

浏览器和服务器之间通信所用的协议是HTTP,所传输的数据的主要格式是HTML,HTTP属于OSI应用层的协议,HTML属于表示层的协议。

电子邮件

SMTP协议,一开始人们只能发送文本格式的电子邮件,后来,由MIME协议扩展之后,就可以发送声音、图像等各式各样的信息。这里的MIME协议属于OSI第六层表示层

文本传输FTP

文件传输是指将保存在其他计算机上的文件转移到本地的硬盘上,或者本地硬盘的文件传送到其他机器的硬盘上。
使用FTP进行传输文件的时候,会建立两个TCP连接,一个是发送传输请求所要用到的控制连接与实际传输数据时要用到的数据连接。

远程登录(TELENET SSH)

远程登录常用的两种是TELENET和SSH,此外还有在Xwindowssystem使用的X协议

网络管理(SNMP)

simple network management protocol。使用SNMP的主机、网桥、路由器等称作SNMP代理(agent),而进行管理的称为管理器(manager),而snmp就是manager和agent之间要用到的协议。
在snmp的agent端,保存着网络接口的信息,通信数据量,异常数据量以及设备温度等,这些信息可以通过MIB(management information base)访问。在TCP/IP的网络管理中,SNMP属于应用协议,MIB属于表示层协议。

一个网络范围越大,结构越复杂,就越需要对其进行有效的管理,SNMP可以让管理员及时检查网络拥堵情况,及早发现拥堵,也可以为以后扩大网络收集必要的信息。

SNMP

TCP/IP分层模型与通信示例


每一层,都会对所发送的数据附加一个首部,在这个首部中包含了改层必要的信息,比如发送的目标地址以及协议相关信息。
包可以说是全能性术语。
帧用来表示数据链路中包的单位。
数据报是IP和UDP等网络层以上的分层中包的单位。
段表示TCP数据流中的信息。

发送数据包(略

经过数据链路的包

经过每个协议封层时,都必须有识别包发送端和接受端的信息。以太网会用MAC地址,IP会用IP地址,TCP/UDP会用端口作为识别两端主机的地址。


此外,每个分层的包首部中还包含一个识别位,用来识别上一层协议的种类信息。

数据包接收处理

网络接口(以太网驱动)的处理

从包的MAC地址判断是不是发给自己的,是否可以被识别,来决定丢弃数据还是接接收。

IP模块的处理
IP模块收到IP包首部以及后面的数据,做类似的处理,判断IP地址是否和自己的相互匹配,如果上一层是TCP就把IP包首部前面的部分传给TCP处理,如果是UDP进行类似的工作。
接收端地址往往不是自己的地址,此时需要借助路由控制表,调查应该送达的主机或者路由之后进行转发。

TCP模块的处理

计算校验和,判断数据是否被破坏,检查是否按照顺序接受,检查端口,确定具体的应用程序。

应用程序处理

解析数据


第三章 数据链路

这里很多都不是复习的重点,就浏览(摸)了。

以太网

需要注意的是,以下的以太网的帧体格式,其中帧尾的FCS,保存着整个帧除以多项式的余数,在接收端也用同样的方式计算,如果得到相同的FCS,就判定所接收的帧没有差错。FCS具有较强的检错能力,能够检测出大量突发错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值