《图解TCP/IP》学习笔记

本学习笔记仅供个人学习研究使用

第一章 网络基础知识

7层OSI模型:

第二章 TCP/IP基础知识

2.1 TCP/IP出现的背景及其历史

美国军用技术的应用导致了互联网的鼻祖ARPANET的诞生,在20世纪70年代,ARPANET中的一个研究机构研发出了TCP/IP。由于UNIX工作站的迅速普及,TCP/IP协议也变得盛行。

2.2 TCP/IP的标准化

2.2.1 具体含义

泛指各种互联网必不可分的网络协议。

2.2.2 标准化

由于TCP/IP尽早地制定了可行性较强的协议,提出了应对技术快速革新的协议,并及时进行后期改良的方案,因此打败了OSI模型,成为了事实上的标准。

2.3 TCP/IP协议分层模型

OSI参考模型注重“通信协议必要的功能是什么”,而TCP/IP则更强调“在计算机上实现协议应该开发哪种程序”。

 主机A向主机B发送一封电子邮件,在TCP/IP模型下的处理过程如下:

 

分组数据包经过以太网的数据链路时的大致流程如下图所示:

第三章 数据链路

3.1 数据链路的作用

数据链路层的协议定义了通过通信媒介互联的设备之间传输的规范。

3.2 数据链路相关技术

3.2.1 MAC地址

MAC地址用于识别数据链路中互联的节点。MAC地址第一位表示单播地址(0)/多播地址(1);第二位表示全局地址(0)/本地地址(1);第3~24位由IEEE管理并保证各厂家之间不重复;第25~48位由厂商管理并保证产品之间不重复。全世界不会有重复的MAC地址。

3.2.2 共享介质型网络

多个设备共享一个通信介质,例如最早的以太网和FDDI网,基本上采用半双工通信。控制方式有争用方式和令牌传递方式。

在一部分以太网中,采用了CSMA/CD(载波监听多路访问/冲突碰撞),其具体工作原理如下:

1)      如果信道上没有数据流动,则任何站都可以发送数据

2)      一旦发生冲突,则放弃发送数据,同时立即释放载波信道。

3)      放弃发送以后,随机延时一段时间,再重新争用介质,重新发送帧。

令牌传递方式是沿着令牌环发送一种叫做“令牌”的特殊报文。只有获得令牌的站才能发送数据。

3.2.3 非共享介质网络

这种方式下,网络中每个站直连交换机,由交换机负责转发数据帧,很多情况下采用全双工通信。

3.2.4 根据MAC地址转发

以太网交换机就是持有多个端口的网桥,根据转发表,决定从哪个网络接口发送数据。这是一种将非介质共享型网络中所使用的交换机用在以太网中的技术。

交换机的自学过程如图:

3.2.5 环路检测技术

通过网桥连接网络时,可能会出现环路。最坏情况下,数据帧会在环路中被持续转发,这种数据帧过多时,会导致网络瘫痪。解决方法有生成树方式和源理由法。

3.2.6 VLAN

虚拟局域网(VLAN)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,由此得名虚拟局域网。

3.3 以太网

一般的以太网有时称作DIX以太网。IEEE802.3委员会规范化后的以太网有时称作802.3以太网。

3.3.1 以太网的连接形式

现在,随着互连设备的处理能力以及传输速度的提高,一般都采用终端与交换机之间独占电缆的方式实现以太网通信,如下图。

 

3.3.2 以太网的分类

3.3.3 以太网帧格式

以太网帧前端有一个叫做前导码的部分,表示一个以太网帧的开始,末尾是一个叫做SFD的域,值为“11”。前导码和SFD合起来占8个字节。

帧尾最后出现的是FCS,用它可以检查帧是否有所损坏。

在前面提到的VLAN中,帧的格式又会有所变化。

3.4 无线通信

根据通信距离可分为以下几种类别:

3.5 PPP

3.5.1 PPP定义

PPP(点对点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。PPP属于纯粹的数据链路层,与物理层没有任何关系。

3.5.2 LCP与NCP

PPP主要功能中包含两个协议:一是不依赖上层的LCP协议,另一个是依赖上层的NCP协议(Network Control Protocol),如果上层为IP,此时的NCP也叫做IPCP。

LCP主要负责建立和断开连接、设置最大接收单元、设置验证协议以及设置是否进行通信质量的监控。

而IPCP主要负责IP地址设置以及是否进行TCP/IP首部压缩等设置。

PPP建立连接流程如图。

3.5.3 PPP的帧格式

PPP的数据帧格式如图所示:

    

其中的标识码用来区分每一个帧。两个标识码中间出现连续5个以上的“1”的时候,就需要在帧发送时插入“0”,接收时删除“0”,实现透明传输。

3.5.4 PPPoE

PPP over Ethernet,在以太网上提供PPP功能,通信线路由以太网模拟。单纯的以太网没有验证功能,而如果采用PPPoE管理以太网连接,就可以用PPP的验证等功能使各家ISP可以有效地管理终端用户的使用。

3.6 其他数据链路

3.6.1 ATM

ATM(Asynchronous Transfer Mode)是以一个叫做信元的单位进行传输的数据链路,由于其线路占用时间短和能高效传输大容量数据等特点,主要用于广域网络的连接。

3.6.2 FDDI

FDDI(Fiber Distributed Data Interface)叫做分布式光线数据接口,以前用于在主干网或计算机之间的高速连接上提高传输速率。FDDI采用令牌环的访问方式,在网络拥堵的情况下极容易导致网络收敛。

3.7 公共网络

3.7.1 模拟电话线路

模拟电话线路其实就是利用固定电话线路进行通信,由于传输速率低逐渐被淘汰。

3.7.2 ADSL

ADSL技术(Asymmetric Digital Subscriber Line,非对称数字用户线路)采用频分复用技术把普通的电话线分成了电话、上行和下行三个相对独立的信道,将低频音频信号和高频数字信号进行隔离,从而避免了相互之间的干扰。ADSL技术能够充分利用现有PSTN(Public Switched Telephone Network ,公共交换电话网),只须在线路两端加装ADSL设备即可为用户提供高宽带服务,无需重新布线,从而可极大地降低服务成本。同时ADSL用户独享带宽,线路专用,不受用户增加的影响。

3.7.3 FTTH

FTTH(Fiber To The Home)顾名思义就是一根高速光纤直接连接到用户家里或公司建筑物处的方法。它通过一个负责在光信号与电子信号之间转换的叫做ONU的装置将计算机与之关联。

3.7.4 VPN

虚拟专用网络用于连接距离较远的地域。这种服务包括IP-VPN和广域以太网。IP-VPN是指在IP网络上建立VPN。可以将多个不同用户的VPN信息通过MPLS网加以区分,形成封闭的私有网络。或采用Ipsec技术在互联网上建立自己的VPN。

广域以太网是在作为数据链路层的以太网上利用VLAN实现VPN的技术,只要指定同一个VLAN,无论从哪里都能接入到同一个网络。

第四章 IP协议

4.1 IP即网际协议

IP的主要作用就是在复杂的网络环境中将数据包发给最终的目标地址。数据链路层和网络层关系举例如图:

4.2 IP三大模块

4.2.1 网络层地址

在计算机通信中,为了识别通信段,必须要有一个类似于地址的识别码进行标识。而在数据链路层,使用MAC地址来标识同一个链路中不同计算机的一种识别码。在网络层,则叫做IP地址。

4.2.2 路由控制

路由控制是指将分组数据发送到最终目标地址的功能。

为了将数据包发送给目标主机,所有主机都维护者一张路由控制表,该表记录IP数据在下一步应该发给哪一个路由器。IP包将根据这个路由表在各个数据链路上传输。

4.2.3 IP分组与组包

IP面向无连接,即在发包之前,不需要建立与对端目标地址之间的连接。上层如果遇到需要发送给IP的数据,该数据会被立即压缩成IP包发送出去。IP面向无连接的原因是:简化:面向连接比起面向无连接处理相对复杂;提速:每次通信之前都需要建立连接,会降低处理速度。需要有连接时,可以委托上一层(传输层)提供此项服务,因此,IP为了实现简单化与高速化采用面向无连接方式。

4.3 IP地址的基础知识

4.3.1 IP地址的分类

IP地址由网络和主机两部分标识组成。分为四类地址。

4.3.2 广播地址

IP地址中主机部分为全1,就成为了广播地址。分为本地广播和直接广播(在不同网络之间的广播)两种。

4.3.3 IP多播

多播用于将包发送给特定组内的所有主机,使用D类地址。

4.3.4 子网掩码

地址分类导致浪费,引入了子网掩码后,网络地址被更细分为更小粒度的网络。这种方式实际上是将原来的A类、B类、C类等分类中的主机地址部分用作子网地址,可以将原网络分为多个物理网络。

4.3.4 CIDR与VLSM

IP地址缺乏,人们开始放弃IP地址的分类,采用任意长度分割IP地址的网络字段和主机字段,这种方法叫做CIDR(无类别域间路由,Classless Inter-DomainRouting)。

当子网掩码设定为一定数值时,域内的所有子网掩码都得使用同样的长度,也就是说一个组织里所有部门子网掩码都相同,不符合实际。于是产生了一种可以按需修改组织内各部门的子网掩码长度的机制——VLSM(Variable Length Subnet Mask,可变长子网掩码)。

IP地址不够用的解救方法有:CIDR&VLSM、NAT、代理服务器以及使用Ipv6。

4.3.5 NAT

私有IP通过NAT(Network Address Translation,网络地址转换)技术转换为全局IP,就可以与外界通信了。

4.4 路由控制

IP地址的网络部分用于进行路由控制。IP包在网络中的传输如图。

4.5 IP分割处理与再构成处理

4.5.1 IP报文的分片与重组

由于数据链路的不同,MTU(Maximum Transmission Unit,最大传输单元,单位是byte)也相异,这就导致IP报文需要进行分片与重组。路由器可以进行分片,只有目标主机才能重组。

4.5.2 路径MTU发现

分片机制加重了路由器的负荷,存在网络安全性隐患,而且一旦某分片丢失,会造成整个IP数据报作废。为应对这些问题,推出了一种新的技术“路径MTU发现”。路径MTU是指从发送端主机到接收端主机之间不需要分片时最大MTU的大小。避免了在中途的路由器上进行分片处理,也可以在TCP中发送更大的包。

4.6 IPv4首部

第五章 IP协议相关技术

5.1 DNS

IP地址不便于记忆、hosts文件更新繁琐,由此产生了一个可以有效管理主机名和IP地址之间对应关系的系统,就是DNS系统。它可以维护一个用来表示组织内部主机名和IP地址之间对应关系的数据库。

5.1.1 域名服务器

 

5.1.2DNS查询

DNS如同互联网中的分布式数据库。

5.2 ARP

ARP(Address Resolution Protocol,地址解析协议)以目标IP地址为线索,用来定位下一个应该接收数据分包的网络设备对应的MAC地址。只适用于IPv4。

5.2.1 ARP的工作机制

 

主机会将获取到的MAC地址缓存,下次再向这个IP地址发送数据报时不需要重新发送ARP请求。每执行一次ARP,其对应的缓存内容都会被清除。MAC地址的缓存是有一定期限的。

5.2.2 IP地址与MAC地址

假设主机A想给主机B发送IP数据报,其中要经过路由器C。

1)      若只有IP地址,不使用MAC地址:路由器C隔断了两个网络,IP包目的地址不可达。

2)      若只有MAC地址,不使用IP地址:仅凭一个MAC地址,人们无法得知这台主机所处位置。网桥在学习之前会向全世界发送包,产生了巨大的网络流量。

所以IP地址和MAC地址缺一不可,互相配合。

5.3 ICMP

一个刚刚搭建好的网络,需要验证该网络的设置是否正确。ICMP(Internet Control MessageProtocol,因特网控制报文协议)这是提供这类功能的一种协议,其主要功能包括:确认IP包是否成功送达目标地址,通知在发送过程中IP包被废弃的具体原因等等。例如我们经常使用ping命令,就是一个典型的ICMP的具体应用。

ICMP消息类别如图:

5.4 DHCP

如果逐一地为每一台主机设置IP地址会非常繁琐,于是为了实现自动设置IP地址、统一管理IP地址分配,就产生了DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)协议。有了DHCP,计算机只要连接到网络,无需管理员手动配置就可以进行TCP/IP通信。

5.4.1 DHCP工作机制

将DHCP服务器分设到各个路由器上,于管理和运维都不是件友谊的事,所以使用了DHCP中继代理。它可以设置DHCP服务器的IP地址。

5.5 NAT   

NAT(Network Address Translation,网络地址转换)是用于在本地网络中使用私有地址,在连接互联网时转而使用全局全局IP地址的技术。

5.6 IP隧道

IP隧道中可以将那些从网络A发过来的IPv6的包统和为一个数据,再为之追加一个IPv4的首部以后转发给网络C,这种在网络层的首部后面继续追加网络层首部的通信方法就叫做“IP隧道”。

第六章 TCP与UDP

6.1 传输层的作用

传输层在终端用户之间提供透明的数据传输,向上层提供可靠的数据传输服务。其中TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。

端口号用来识别同一台计算机中进行通信的不同应用程序。动态分配的端口号取值范围为49151~65535。

6.2 UDP

UDP(User Datagram Protocol,用户数据报协议)不提供复杂的控制机制,利用IP提供面向无连接的通信服务。因此,它不会负责流量控制、丢包重发、差错纠正等。

UDP广泛应用于:

1)       包量较少的通信(DNS、SNMP登)

2)       视频、音频等多媒体通信(即时通信)

3)       限定于LAN等特定网络中的应用通信

4)       广播通信(广播、多播)  

UDP首部格式如图:

 

6.3 TCP

TCP(Transmission Control Protocol,传输控制协议)充分地实现了数据传输时各种控制功能,可以进行丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。TCP作为一种面向有连接的协议,只有在确认通信对端存在时才会发送数据。

TCP通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输。

6.3.1 通过序列号与确认应答提高可靠性

在TCP中,当发送端的数据到达接收主机时,接收端主机会返回一个已接收到消息的通知,这个消息叫确认应答。

通过序列号和确认应答号,TCP可以实现可靠传输。

6.3.2 连接管理

6.3.3 TCP以段为单位发送数据

MSS(Maximun Segment Size,最大消息长度)是TCP连接确定发送数据包的单位。最理想的情况是MSS正好是IP中不会被分片处理的最大数据长度。MSS在三次握手时候得到确定。

6.3.4 利用窗口控制提高速度

每发送一个段就进行一次确认应答处理,增加了额外开销。故TCP引入了窗口这个概念,通过累计确认控制网络性能的下降。

6.3.5 流量控制

接收端主机向发送端主机通知自己可以接收数据的大小。

6.3.6 拥塞控制

TCP通过慢启动对发送的数据量进行控制。最初将发送端的拥塞窗口设置为1,每收到一个确认应答,窗口的值会增加一个段。

6.3.7 TCP首部格式

 

第七章 路由协议

7.1 路由控制

路由分为静态路由与动态路由。静态路由是事先设置好路由器和主机中并将路由信息固定的一种方法;动态路由是让路由协议在运行过程中自动地设置路由控制信息的一种方法。动态路由会给相邻路由器发送自己已知的网络连接信息,而这些信息又像接力一样依次传递给其他路由器,直到整个网络都了解时,路由控制表也就制作完成了,而此时也就可以正确转发IP数据包了。

路由协议大致分为两类:外部网关协议EGP(如BGP边界网关协议)和内部网关协议IGP(如RIP路由信息协议、RIP2、OSPF开放式最短路径优先)。可以根据EGP在区域网络之间进行路由选择,也可以根据IGP在区域网络内部进行主机识别。

7.2 路由算法

7.2.1 距离向量算法

根据距离(代价)和方向决定目标网络或者目标主机位置的一种方法。


7.2.2 链路状态算法

在了解网络整体连接状态的基础上生成路由控制表的一种方法,该方法中,每个路由器必须保持同样的信息才能进行正确的路由选择。

7.2.3 主要路由协议

7.3 RIP

RIP(Routing Information Protocol,路由信息协议)是距离向量型的一种路由协议,广泛用于LAN。

7.3.1 广播路由

广播路由:RIP将路由控制信息定期(30秒)向全网广播。

7.3.2 确定路由

RIP基于距离向量算法决定路由,距离的单位被称为“跳数”(经过的路由器的个数),RIP希望经过尽可能少的路由器将数据包发送到目标IP地址。

7.4 OSPF

OSPF(Open Shortest Path First,开放式最短路径优先)是一种链路状态型路由协议,即使网络中有环路,也能够进行稳定的路由控制。路由器之间交换链路状态生成网络拓扑信息,然后再根据这个拓扑信息生成路由控制表。

OSPF赋予每个链路一个权重,始终选择一个总的代价最小的一条路径;RIP总是选择路由器个数最少的路径。

OSPF中进行连接确认的协议叫做HELLO协议。

OSPF为了减少计算负荷,引入了区域的概念,每个区域内的路由器都只持有本区域网络拓扑的数据库。内部路由器只了解区域内部的链路状态信息,并在该信息的基础上计算出路由控制表。

7.5 BGP

BGP(Border Gateway Protocol,边界网关协议)是连接不同组织机构的一种协议。

BGP是路径向量协议,根据BGP交换路由控制信息的路由器叫做BGP扬声器。BGP数据包送达目标网络时,会生成一个中途经过所有AS的编号列表。

第八章 应用协议

8.1 远程登陆

实现从自己的本地计算机登陆到网络另一端计算功能的应用就叫做远程登陆。

8.1.1 TELNET

TELNET利用TCP的一条连接,通过这一条连接向主机发送文字命令并在主机上执行。本地用户好像直接与远端主机内部的Shell相连。

8.1.2 SSH

SSH是加密的远程登陆系统。

8.2  FTP

FTP使用两条TCP连接:一条用来控制,一条用来传输数据。

8.3 电子邮件

发送端的邮件根据SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)将被转发给一直处于插电状态的POP(Post Office Protocol,邮局协议)服务器。客户端再根据POP协议从POP服务器接收对方发来的邮件。

IMAP(Internet Mail Access Protocol,因特网邮件访问协议)。它的主要作用是邮件客户端可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。IMAP协议运行在TCP/IP协议之上,使用的端口是143。它与POP3协议的主要区别是用户可以不用把所有的邮件全部下载,可以通过客户端直接对服务器上的邮件进行操作。

第九章 网络安全

9.1 网络安全构成要素

9.1.1防火墙

组织机构内部的网络与互联网相连是,为了避免域内受到非法访问的威胁,往往会设置防火墙。防火墙的种类多样,设计原则都是“暴露给危险的主机和路由器的个数要有限”。


防火墙是指一种将内部网和公众访问网(如Internet)分开的方法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络。

9.1.2 IDS

IDS(Intrusion Detection Systems,入侵检测系统)专业上讲就是依照一定的安全策略,通过软、硬件,对网络、系统的运行状况进行监视,尽可能发现各种攻击企图、攻击行为或者攻击结果,以保证网络系统资源的机密性、完整性和可用性。做一个形象的比喻:假如防火墙是一幢大楼的门锁,那么IDS就是这幢大楼里的监视系统。一旦小偷爬窗进入大楼,或内部人员有越界行为,只有实时监视系统才能发现情况并发出警告。

9.2 加密技术基础

加密和解密使用相同的密钥叫做对称加密方式。反之如果在加密和解密过程中分别使用不同的密钥则叫做公钥加密方式。

9.3 安全协议

9.3.1IPsec

在构建VPN时,最常使用的是IPsec。它是指在IP首部后面追加“封装安全有效载荷”和“认证首部”,从而对此后的数据进行加密,不被盗取者轻易解读。

 

9.3.2TLS/SSL与HTTPS

Web中可以通过TLS/SSL对HTTP通信进行加密。使用TLS/SSL的HTTP通信叫做HTTPS通信,采用对称加密方式。

 




猜你喜欢

转载自blog.csdn.net/Protocols7/article/details/80707180