3、TCP-IP协议族

2 网络工程师协会

问题列表

1、计算机网络为什么要分层?

2、如果访问https://www.360docs.net/doc/9112281655.html,,从提交到连接,这中间经历了什么过程?

3、什么是ARP协议?它有什么功能?

4、为什么要使用“协议”?

本章知识要点

重点

OSI七层模型和TCP五层模型

数据在网络中的传输过程

TCP协议的连接和断开过程

难点

数据在网络中的传输过程

TCP协议的连接和断开过程

计算机网络在传输数据的过程中,涉及的方面十分复杂。为了简化这些复杂的概念,由此提出了“分层次”的理论。明确通过分层,可以将故障和设计简单化,设计时不用考虑其他层的问题,就如发信到邮局,不用管其是通过火车还是飞机进行传递的;当网络发生故障,很容易确定问题是由哪一层的功能没有实现而导致的,将故障产生的原因聚焦于一点,有助于更加清晰明了的分析问题、解决问题。学习本章知识,要做好化抽象为实际,多联系日常生活的相关流程。

2

第三章:TCP/IP 协议族

3

一、分层模型

OSI 将网络分层七层,从低层到高层,分别是:

物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

但我们使用最多的是TCP/IP 的五层模型,即将会话层和表示层并入应用层。 为什么要分层呢?

明确通过分层,可以讲故障和设计简单化,设计时不用考虑其他层的问题,分层有以下好处:

例如,你在设计服务器的时候,只需要设计服务器上应用层和传输层的内容,无需关心低层到底是用光纤还是用双绞线连通的。

一、 OSI 七层模型功能 1、 物理层

物理层是分层模型的最底层。数据在物理层里面传播的单位叫做“比特流“,我们通常说的“网速”就是物理层的概念,网速也就是单位时间传输多少“比特

4

4 网络工程师协会

流”。物理层其实就是指的是网络传输介质,比如双绞线(俗称网线),光纤。物理层的设备叫做“集线架”,用来集中放置网线。

2、 数据链路层

数据链路层传播的单位叫做“数据帧”。我们上一章说过的“广播域”,就是基于在数据链路层的概念。数据链路层上的典型设备是交换机。可以说,数据链路层内,计算机的通信是基于计算机MAC 地址来通信。

3、 网络层

网络层的地位相当重要。在网络层,传输的数据单位叫做“数据包”,或者是“报文”。网络层上工作的设备非常多,有防火墙,路由器等。一些控制网速的协议或者软件,也都工作在网络层上。网络层负责不同广播域之间数据的传输,同时也负责控制网速、控制访问等。网络层的通信是基于IP 地址和ARP 协议,即通过目的IP 地址找到发送目标,然后通过ARP 协议,将IP

地址转换为MAC 地址,确认主机,然后发送。

4、 传输层

传输层上,数据称为“数据段”。传输层上有两个非常重要的协议:TCP 协议(传输控制协议)和UDP (用户数据包协议)。在该层,有一个非常重要的概念:端口。端口可以认为是计算机与外界通讯交流的出口。如果把一个IP 地址比作一个“房子”,则端口就是“进出这个房子的门”,一个

IP 地址的端口有

65535个,其中1-1024号端口是系统保留的端口。

5、 应用层,表示层,会话层

这是网络模型的最高层,也是我们能够用肉眼通过显示器看到一些现象的层。大部分协议都工作在最高层。

二、 数据传输原理

说完了网络分层各层的功能以外,我们就可以来讨论数据在网络中的传输原理,以及各分层对数据的处理方式了。

我们假设一个场景,一台IP 地址为192.168.1.11的主机,给一台IP 地址为10.0.0.11的主机发送电子邮件,我们通过这封电子邮件的传输,来介绍数据在网络中传输,到底经历了什么样的过程?

第三章:TCP/IP协议族1、发送端

当发送端点击“发送邮件”之前,此时邮件还在应用层。当点击“发送邮件”以后,应用层协议(假设是POP3协议)立刻启用,将数据打包层“数据段”,交付传输层,由传输层决定是用TCP协议还是用UDP协议。这个过程相当于,你将包裹拿到邮局,邮局给你打包,然后决定是给你使用挂号信还是平信。

当传输层一旦确定了是TCP或者是UDP协议以后,将数据根据它的目的IP 地址进行发送。数据在网络层被打包成数据包,标记上“源IP地址”和“目的IP地址”,这也就相当于快递包裹上的“寄件人地址”和“收件人地址”。数据到达网络层时,如果发现源IP地址和目的IP地址是同一网段,则直接打包成数据帧,交付数据链路层发送。如果发现不是一个网段,则将源MAC地址进行转换成相同广播域的网关MAC地址后进行发送。本案例中,192.168.1.11与10.0.0.11不是一个网段。

最后,数据链路层将数据帧转换为比特流,交付物理层,进行传输。

2、接收端

数据通过数据链路层,到达了目标的广播域,则将数据解封成数据帧,交付给数据链路层,再根据目的IP地址,解封成数据包。如果没有找到对应的目标IP和目标MAC(可能是主机掉线,或者是另外一个主机使用了10.0.0.11这个IP),那么接收端将丢弃这个数据包,并发送错误信息给发送端。如果成功找到了目标IP和目标MAC,则接收端接收这个数据包,解封装成数据段,交付传输层。

传输层通过确定TCP或UDP协议,将数据段交付应用层,有应用层解封装,所以,此时,接收端可以看到原始数据了。

3、数据链路层帧结构

6 网络工程师协会

这幅图是用抓包软件在网络层抓到了一个数据报文,我们可以看到,这是数据到达数据链路层以后的帧结构。发送端(Source Address)IP地址是192.168.0.1,接收端(Dest Address)IP是192.168.0.2,很显然属于一个广播域,所以就直接交付数据链路层。由于数据链路层是基于MAC地址通信的,所以,该数据包在数据链路层封装成数据帧的时候,加上了源MAC地址(Source Address)和目的MAC地址(Dest Address)。由ARP协议,将源MAC地址和源IP地址对应,目的MAC地址和目的IP对应。只有IP地址和MAC地址对应关系正确,数据包才能被正常的发送和接收。很多路由设备都有采用MAC地址和IP地址绑定的关系来控制主机上网的功能。这也就是说:数据在发送和接收过程中,目的IP和目的MAC地址,必须同时正确的对应。

三、ARP协议

ARP叫做Address Resolution Protocol,全称是地址解析协议,功能是将一个已知的IP地址解析为MAC地址,以便数据包达到数据链路层时,交换机能够通过MAC地址通信。其实,网络中计算机,路由器,交换机等节点设备都有缓存功能,如果一个陌生的IP地址被送达,经过ARP解析以后,它就会将这条解析记录存在缓存之中,下次这个IP再来的时候,就不必再经过ARP解析,直接查看缓存表,达到增加速度的功能。

1、ARP协议的工作

主机PC1想发送数据给主机PC2,它检查自己的ARP缓存表。如果缓存表里面没有PC2的记录,ARP将在数据链路层发送一个MAC地址广播,ARP请求是用广播的方式传播,传播的源地址是发送端PC1的MAC地址,目的地址是FF-FF-FF-FF-FF的广播地址,保证广播域内的所有主机都能收到。如果接收端PC2收到这个广播以后,先进行IP地址的比较,如果发现PC1发送的目标IP与自己不符,则丢弃数据包;如果发现PC1发送的目标IP与自己相符,就发送一条ARP应答,以单播的方式给PC1,同时自己收下该数据包。

PC1收到PC2的ARP应答以后,将这条解析记录存入自己的缓存表,以后再与PC2通信的时候,就使用单播通信了。

注意:ARP请求是广播,ARP应答是单播。

对比一个生活实例,假设校长要去班里找一名叫王强的学员,但是校长并不认识他,所以它就在王强的班里喊:“哪位是王强啊?”班里的每一名学员都可以听得到这句话,但是王强只有一个,他会回应校长,“我就是”。这是校长就看见王强并记住他的相貌。过了几天,恰好校长又有事情找王强,这时只要根据他记忆中王强的相貌找到王强即可。

上述故事可以和ARP查询过程完全吻合,校长和王强就是通讯双方,哪位是王强这句话就是广播,王强的姓名是IP地址,王强的长相是MAC地址,正因为校长同时记住了王强的姓名和长相,他才可以不用寻求直接通讯。

6

第三章:TCP/IP 协议族

2、查看ARP 信息的方法

在Windows 操作系统中,查看ARP 的方法是,调出命令行工具,输入arp –a ,就可以查看当前ARP

的缓存表了。输入arp –d ,就可以清空当前的缓存表。如图:

我们发现,本地计算机的IP 地址是192.168.1.3,里面只有一条缓存表记录,即192.168.1.1,对应的MAC 地址是d0-15-4a-7b-76-d2,类型(Type )是dynamic ,即动态缓存表。

4、 ARP 攻击和欺骗

由于IP 和MAC 地址可以进行改动,所以,当局域网内一台主机将自己的MAC 地址改为默认网关的IP 或MAC 地址,就会构成ARP 攻击或欺骗。在ARP 攻击中,攻击方主机将自己伪装成网关,给网络中所有主机发送假的网关MAC 地址。由于网络内的主机要和互联网通信就必须先和网关通信,这个时候,局域网内的主机却发现网关的IP 和网关的MAC 对应不符,则无法和网关通信了,进而无法访问互联网。所以说,ARP 攻击是黑客行为。

但是ARP 欺骗就不是那么回事,ARP 欺骗,欺骗者也是充当网关,但不会阻碍局域网内主机与互联网的联系。很多网络管理软件,比如聚生网管就是利用ARP 欺骗的原理来对网络进行管理的。但是ARP 欺骗也有一些负面影响,比如说,局域网内所有主机上网都要通过ARP 欺骗者的主机,如果ARP 欺骗者利用此机会截取其他主机的通信报文,也会带来很多不利因素。

5、 防范ARP 攻击和欺骗

在第3小节,查看ARP 缓存表的时候,我们发现一个类型(Type )是dynamic ,即动态缓存表。动态缓存表,则表示该MAC 地址和IP 地址的对应关系是可以任意变化的,只要arp 缓存表的5分钟保存期一到,这条缓存它就会消失,攻击者就是利用很多人不懂得绑定ARP 的技术缺陷来实施攻击的。

解决ARP 问题,最好的方法就是在主机和网关上同时绑定ARP 记录。路由器上(即网关上)绑定MAC 地址并设置静态IP ,还有DHCP 服务器的保留IP 地址,也就是在网关上绑定ARP 。 下图是宽带路由器上绑定ARP

8

8 网络工程师协会

如果在主机上绑定ARP ,方法是这样的: (1)、在自己还能上网的情况下,用ipconfig 命令查看自己的默认网关,然后使用ping 命令,ping

默认网关

我们查出来,默认网关是192.168.1.1,于是我们ping 192.168.1.1

(2)、ping 通以后,运行arp –a 命令,查看一下网关的ARP 缓存表记录,最好是让同一局域网的多台电脑同时查看,如果ARP 缓存记录的网关MAC 完全一致,则这个网关MAC 是真实的网关

(3)、我们查看到的网关IP 是192.168.1.1,对应的MAC 地址是d0-15-4a-7b-76-d2,那么这个时候,我们输入 arp –s 192.168.1.1 d0-15-4a-7b-76-d2

第三章:TCP/IP 协议族

再运行arp –a ,我们发现,类型(Type )变成了static (静态条目),说明我们已经成功的在主机上绑定了ARP 信息。

协议的封装格式。

URG 、ACK 、PSH 、RST 、SYN 、FIN 叫做TCP 协议的六个“控制位”,我们只需要掌握ACK 应答位、SYN 请求建立连接位、FIN 请求断开连接位。同协议的16为校验和,用于检测数据的完整性。 2、 TCP 的建立连接方式

如图所示,TCP 建立连接的3次握手全过程

10

10 网络工程师协会

第一次握手:PC1向PC2发送请求报文,PC1的SYN 位置为1,同时随机

生成一个序列号seq=x ,下图是抓获的TCP 第一次握手的报文

标志位中,SYN 位置为1,随机生成的初始序列号x=1552649478

第二次握手,PC2应答PC1,ACK 位置为1,同时也给PC1发送请求报文,SYN 位也置为1,生成一个序列号seq=y ,同时生成确认号ack=x+1,下图是第二次握手的报文

第三章:TCP/IP 协议族

ACK 和SYN 同时置为1,生成的seq 是y=1333196840,同时确认号是1552649479,等于上一次的seq 号x+1,即1552649478+1。

第三次握手:PC1应答了来自PC2的请求报文,ACK

位置为1,同时生成确认号y+1。

确认号,y+1=1333196841,同时seq 号保持x+1不变。 所以,关于序列号和确认号的关系是:

本次确认号=上一次序列号+1 本次序列号=上一次确认号

12

12 网络工程师协会

TCP 连接是3次,但是TCP 断开却需要握手4次,相应的控制位由连接时候的SYN 和ACK ,变成FIN 和ACK 。为什么断开需要4次?因为数据传输需要一个过程,虽然发送端发送完的数据,但是接收端可能没有接收完数据,所以,在第二次握手的时候,就需要先确认了ACK 才能确认FIN ,不像连接一样SYN 和ACK 可以同时发送,就这样,断开需要4次握手。

我们看到,TCP 协议传输数据,需要建立一次连接,而且还需要校验完整性,所以,TCP 协议传输数据效率低。我们打电话,就相当于是建立一个TCP 连接,

TCP/IP 协议族,如下图所示

物理层将数据发送给数据链路层,数据流量成根据内容将数据发送给上一层的IP 协议。IP 协议根据不同的协议号发生给上一层的不同协议,然后传输层根据不同端口将数据交给应用程序。

本章习题:

1、由低到高列举OSI 七层模型各层的名称,并说出前4层传输的单位是什么。

第三章:TCP/IP 协议族

2、TCP 首部中的SYN 位作用 A :请求建立连接

B :确认建立连接

C :请求断开连接

B :确认断开连接

3、下图是PC1向PC2发起TCP 连接的3次握手示意图,SYN 、ACK 表示TCP 的控制位,seq

为请求序列号,ack 为确认序列号,则以下说法正确的是( )。

A 第2次握手时,ack=101,SYN=1,ACK=1

B 第2次握手时,ack=101,SYN=0,ACK=1

C 第3次握手时,seq=301,ack=301,SYN=1,ACK=1

D 第3次握手时,seq=101,ack=301,SYN=0,ACK=1

4、网络中有A 、B 两台主机第一次通信,下图是截取的主机A 发送的ARP 报

文,下列说法正确的是( )。

14 网络工程师协会

A:主机B的IP地址一定是192.168.0.2

B:这是一个ARP请求报文,目标MAC地址为111111111111

C:这是一个ARP应答报文,目标MAC地址为000000000000

D:该数据报文将以单播的方式发送给192.168.0.2

5:TCP协议的23,21,80,25端口号分别对应什么服务?

6、简述在主机上绑定ARP的方法。如果只在主机上绑定ARP,能否ARP防止

攻击或者欺骗?

7、根据TCP建立连接的三次握手的图,试着画出TCP协议4次断开的图。(提

示,TCP的请求断开连接位是FIN)

14

相关文档
最新文档