本文内容为《图解TCP/IP》一书学习笔记。本文主要概述一到二章内容。
第一章 网络基础知识
1.2 计算机与网络发展的7个阶段
-
批处理:事先将用户程序和数据装入卡带和磁盘,并由计算机按照一定的顺序读取,使用户所要执行的这些程序和数据能够一并批量得到处理。
- 分时系统(TSS,Time Sharing System):多个终端与同一个计算机连接,允许多个用户同时使用一台计算机,从而实现“一人一机”,用户感觉“完全是自己在使用这台计算机”,这体现了分时系统的一个重要特性即独占性(分时系统的重要特性包括多路性,独占性,交互性和及时性)。
分时系统中每个终端与计算机之间使用通信线路连接形成一个星型结构(中心有一台计算机,周围连接着众多终端),从这时开始,网络通信与计算机关系才慢慢体现出来。 - 计算机间通信的出现:分时系统中,计算机与每个终端之间用通信线路连接,但这并不意味着计算机与计算机之间已经可以相互连接。
随着计算机性能的发展,计算机体积越来越小,使用越来越普及,推动了计算机与计算机之间通信技术的研究。
计算机间的通信提高了计算机的可用性,人们可以使用多台计算机分布式处理。 -
计算机网络的产生:
窗口系统:在计算机中可以打开多个图形窗口进行处理的系统,允许将多个程序分配在多个窗口中运行,还可以依次进行执行切换。窗口系统的诞生使人们可以通过一台计算机就尽享网络上各种丰富的资源。
-
互联网的普及
-
以互联网为中心的时代
- 从“单纯建立连接”到“安全建立连接”
1.3 协议
-
协议定义:计算机与计算机之间通过网络实现通信事先达成的一种“约定”。这种“约定”使那些由不同厂商的设备、不同的CPU以及不同的操作系统组成的计算机之间,只要遵循相同的协议就能够实现通信。反之,如果使用的协议不同,就无法通信。
(举例人与人之间对话,汉语和英语当作协议,聊天当作通信,说话的内容当作数据,只会汉语和只会英语的人就无法通信)
-
分组交换:将大数据分割为一个个叫做包(Packet)的较小单位进行传输的方法。这里所说的包,就如同我们平常在邮局里见到的邮包。分组交换就是将大数据分装为一个个这样的邮包交给对方。
通信协议中会规定报文首部应该写入哪些信息、如何处理这些信息。
1.5 协议分层与OSI参考模型
-
OSI参考模型将通信协议中必要的功能分成了7层,每个分层都接收由它下一层提供的特定服务,并为自己的上一层提供特定的服务。上下层之间进行交互所遵循的约定叫做接口,同一层之间的交互所遵循的的约定叫做协议。协议分层就如同计算机软件中的模块化开发,OSI参考模型的建议是比较理想化的。
(OSI协议与OSI参考模型是不同的,OSI协议是为了让异构的计算机能够互相通信的一种网络体系结构,OSI协议以OSI参考模型为基础界定了每个阶层之间的协议和每个阶层之间接口相关的标准。)
-
OSI参考模型中每个层的作用:
- 7层通信实例:假设主机A的用户A要给主机B的用户B发送一封电子邮件,邮件内容为“早上好”:
发送方从第7层、第6层到第1层由上至下按照顺序传输数据,而接收端则从第1层、第2层到第7层由下至上向每个上一级分层传输数据。每个分层上,在处理由上一层传过来的数据时可以附上当前分层的协议所必须的“首部”信息。然后接收端对收到的数据进行数据“首部”与“内容”的分离,再转发给上一分层,并最终将发送端的数据恢复为原装。
应用层:目标地址为B,发件人为用户A,邮件内容为“早上好”
表示层:将数据(即邮件内容“早上好”)从主机特有的格式转换为网络标准传输格式
会话层:决定采用哪个连接发送。假设用户A新建了5封电子邮件准备发给B,这5封邮件的发送顺序可以有很多种。可以每发一封邮件时建立一次连接,随后断开;还可以建立一次连接连续发送5次;还可以同时建立5个连接,同时发送。决定采用何种连接方式是会话层的主要责任。
传输层:确立连接与断开连接重发。例子中的数据“早上好”可能因为某些原因导致数据被破坏,或者网络异常导致只有部分数据到达目的地址;用户B最后只收到“早上”这部分数据。此时用户A就需要重发,保证数据传输的可靠性就是传输层的一个重要作用。然而将数据传输给对端的处理是由网络层完成的。
网络层:在网络与网络互相互连接的环境中,将数据从发送端主机发送到接收端主机。
网络层与数据链路层各尽其责
数据链路层:在通过(物理的)传输介质互连的设备间进行数据处理。
物理层:将数据的0、1转换为电压和脉冲光传输给物理的传输介质,相互直连的设备之间使用MAC地址(采用MAC地址是为了识别连接到同一传输介质上的设备)进行传输。
网络层与数据链路层都是基于目标地址将数据发送给接收端的,但网络层负责将整个数据发送给最终目标地址,而数据链路层只负责发送一个分段内的数据。
1.7 传输方式的分类
-
面向有连接:发送数据之前,需要在收发主机之间连接一条通信线路。类似于平常打电话。
面向无连接:发送端可于任何时候自由发送数据,接收端不知道自己会在何时从哪里收到数据。所以接收端需要时常确认是否收到了数据。类似于人们去邮局寄包裹。 -
电路交换:电路交换中交换机负责数据的中转处理。计算机之间发送数据时需要通过交换机与目标主机建立通信电路。连接电路称为建立连接。如果某条电路只是用来连接两台计算机的通信线路,这两台计算机是可以独占线路进行数据传输的;如果一条电路上连接了多台计算机,其他计算机只能等待独占电路的计算机收发信息完毕后才有机会使用电路。如果并发用户数超过交换机之间的通信线路数,通信无法实现。
分组交换:让连接到通信线路的计算机将所要发送的数据分成多个数据包,按照一定的顺序排列之后分别发送。这样所有的计算机就可以一齐收发数据,提高通信线路的利用率。
分组交换过程:发送端计算机将数据分组发送给交换机(路由器),路由器收到这些分组数据以后缓存到自己的缓冲区,然后转发给目标表计算机。
电路交换中,计算机间传输速度不变;分组交换中,由于网络拥堵,通信线路的速度可能有所不同。路由器的缓存饱和或溢出时,甚至出现分组数据丢失、无法发送到对端。
- 单薄、广播、多播、任播
多播:与广播类似,也是将消息发给多个接收主机。但广播不需要限定接收端,而多播需要限定某一组主机作为接收端。
任播:在特定的多台主机中选出一台作为接收端。任播与多播类似,都是面向特定的一群主机。但任播会从目标主机群中选择一台最符合网络条件的主机作为目标主机发送消息。被选中的那台特定主机会返回一个单薄信号,随后发送端主机会只跟这台主机进行通信。
第二章 TCP/IP基础知识
2.2 TCP/IP标准化
-
含义:很多人都会认为TCP/IP是指TCP与IP两种协议,实际生活中有时也确实就是指这两种协议。然后,很多情况下,它只是利用IP进行通信时所必须使用到的协议群的统称。
2.3 互联网的基础知识
互联网的每个网络都是由骨干网(BackBone)和末端网(Stub)组成,每个网络之间通过NOC(Network Operation Center)相连。连接异构网络需要IX(Internet Exchange)的支持。互联网就是众多异构的网络通过IX互连的一个巨型网络。
2.4 TCP/IP协议分层模型
上图列出了TCP/IP与OSI分层之间的大概关系,TCP/IP与OSI在分层模块上稍有区别。OSI参考模型注重“通信协议必要的功能是什么”,而TCP/IP则更强调“在计算机上实现协议应该开发哪种程序”。
- 网络层:
IP:跨越网络传送数据包,使用IP地址作为主机的标识。IP也是分组交换的一种协议,但它不具有重发机制,属于非可靠性传输协议。
ICMP:IP数据包发送途中发生异常无法到达端目标地址时,需要给发送端发送一个发生异常的通知,ICMP就是为此制定的。ICMP有时也用来诊断网络的健康情况。
ARP:从分组数据包的IP地址中解析出物理地址(MAC地址)的一种协议。
传输层、应用层略
2.5 通信示例
首先区分一下包、帧、数据报、段、消息:
然后看个实例,主机A向主机B发送一封电子邮件,在TCP/IP模型下的处理过程:
分组数据包经过以太网的数据链路时的大致流程如下图所示:
包流动时,从前往后依次被添加了以太网包首部、IP包首部、TCP包首部(或者UDP)以及应用自己的包首部和数据。包最后则追加了以太网包尾。
每个包首部中至少包含两个信息:发送端和接收端地址;上一层的协议类型。
网友评论