数据转发过程.

Slides:



Advertisements
Similar presentations
第 8 章 IP 基礎與定址.
Advertisements

第6章 计算机网络基础 1.
2.4 计算机网络基础 什么是计算机网络? 计算机网络有哪些功能? 计算机网络的发展历史? 计算机网络体系结构的内容? 计算机网络如何分类?
IPV6技术与物联网应用 贾智平 1.
第 12 章 UDP 與 TCP.
第 4 章 网络层.
计算机网络教程(第 2 版) 第 7 章 网络互连 课件制作人:谢希仁.
中国科学技术大学 肖 明 军 《网络信息安全》 中国科学技术大学 肖 明 军
因特网 TCP/IP协议 IP路由技术 Internet接入技术 Internet服务.
网络协议及架构安全 培训机构名称 讲师名字.
第6章 Internet与TCP/IP体系结构
Chapter 12 UDP 與 TCP.
计算机网络安全技术实验 启动虚拟机、GIF、measpoilt、.
路由器的性能特点和工作原理 两种常用的内部网关协议(RIP和OSPF) 路由器的产品结构 局域网中使用路由器的方案
DP DHCP原理 ISSUE 1.0.
第 7 章 运输层 基本内容 传输层的概念,TCP/IP体系中的传输层,端口的概念,用户数据报协议UDP,传输控制协议TCP,TCP报文格式、数据的编号与确认、流量控制、拥塞控制、重传机制、TCP的连接管理。 重点掌握 TCP/IP体系中的传输控制协议TCP:TCP报文格式、数据的编号与确认、流量控制、拥塞控制、重传机制、TCP的连接管理。
NetGuru 創新 網路通訊實驗教學解決方案 PART I TCP/IP通訊協定深入剖析/以NetGuru實作
计算机网络 吴功宜 编著 欢迎辞.
网际协议:IP.
网络安全威胁与防御策略. TCP/IP Protocols  Contains Five Layers  Top three layers contains many protocols  Actual transmission at the physical layer.
Lab312.
学习目标: 1)理解包和包过滤 2)理解包过滤的方法 3)设置特殊的包过滤规则
實驗8 ICMP協定分析 實驗目的 明瞭ICMP(Internet Control Message Protocol;網際網路控制訊息協定)的工作原理 解析ICMP協定下封包資料傳送的格式。
传输层是整个协议层次的核心,其任务是在源机器和目标机器之间提供可靠的、性价比合理的数据传输功能,并与当前所使用的物理网络完全独立
第 12 章 UDP 與 TCP.
教师:陈有为 TCP/IP与Internet(A) 教师:陈有为
利用 ISA Server 2004 建置應用層防護機制
第3讲 网络安全协议基础 此为封面页,需列出课程编码、课程名称和课程开发室名称。
计算机网络原理 计算机与信息工程分院 周文峰.
TCP協定 (傳輸層).
第六章 差错与控制报文 (ICMP).
TCP和UDP基本原理.
TCP报文格式.
TCP/UDP協定 10-1 TCP/UDP簡介 10-7 採用TCP或UDP 10-2 連接埠編號 10-8 UDP標頭格式
Internet Protocol (IP)
32 bit destination IP address
IP協定 (網路層).
访问控制列表(ACL) Version 1.0.
TCP/IP Protocol Suite TCP/IP協定 第二組 投影片製作by簡嘉宏 綦凱宏 林睿敏 滕孟哲.
ARP, RARP & ICMP.
Access Networks.
Chapter 8 網際網路通訊協定.
第 2 章 TCP / IP 簡介.
在一定程度上 人类的思维产生于 简单个体之间的相互作用 ——Marvin Minsky.
第十讲 TCP协议 协议概述 报文段格式 差错控制 流控和拥塞控制 TCP连接管理 TCP性能问题 TCP软件设计 2018/12/7
考试题型 填空题(30) 选择题(20) 名词解释(10) 问答题(24) 计算题(16) 附加题(30) 成绩核算:
第4章 OSI傳輸層.
OSI七層架構 OSI階層 負責的工作 應用層 表達層 會議層 傳輸層 網路層 資料鏈結層 實體層 將應用程式所送出的訊息轉成字元資料
第4讲 传输层之二 本讲目的: 本讲概述: Internet传输层的实现和实例 面向连接的传输: TCP TCP拥塞控制 拥塞控制原则
计算机网络(第 5 版) 第 5 章 传输层.
计算机网络 Computer Network
江西财经大学信息管理学院 《组网技术》课程组
實驗目的 明瞭可靠傳輸層的基礎觀念 TCP協定下區段資料傳送的格式
第七讲 网际协议IP.
第 12 章 UDP 與 TCP 著作權所有 © 旗標出版股份有限公司.
第十三章 TCP/IP 與 Internet 網路連結技術
第2讲 网络安全协议基础 此为封面页,需列出课程编码、课程名称和课程开发室名称。
TANet PROTOCOL ANALYSIS - WIRESHARK - 350.
第7章 传输层协议——TCP与UDP 任课教师 卢豫开.
Westmont College 网络互连 Part 4 (传输协议, UDP and TCP, 协议端口)
第13章 IPv6协议.
使用WireShark解析TCP封包 Computer Network Lab2.
3.1 通訊協定 3.2 開放系統參考模式(OSI) 3.3 公眾數據網路 3.4 TCP/IP通訊協定
  传输控制协议 TCP TCP TCP 发送端 接收端 应用进程 应用进程 向发送缓存 写入数据块 从接收缓存 读取数据块 … …
第八章 Fast Ethernet 網路 8-1 Ethernet 網路簡介 8-2 CSAM/CD 通訊協定
實驗5 IP協定分析 明瞭IP(Internet Protocol;Internet協定)的基礎觀念
Source: Journal of Network and Computer Applications, Vol. 125, No
第 14 章 DHCP 著作權所有 © 旗標出版股份有限公司.
第7章 传输层协议——TCP与UDP 任课教师 卢豫开.
第 4 章 网络层.
Presentation transcript:

数据转发过程

前言 TCP/IP协议簇和底层协议配合,保证了数据能够实现端到端的传输。数据传输过程是一个非常复杂的过程,例如数据在转发的过程中会进行一系列的封装和解封装。对于网络工程师来说,只有深入地理解了数据在各种不同设备上的转发过程,才能够对网络进行正确的分析和检测。

学习目标 学完本课程后,您应该能: 掌握数据封装和解封装的过程 处理数据转发过程中的基本故障

数据转发过程概述 Internet 数据包在相同网段内或不同网段之间转发所依据的原理基本一致。 主机 A 主机 B 服务器 A 服务器 B 10.1.1.1/24 10.1.1.2/24 172.16.10.1/24 172.16.10.2/24 RTA RTB 数据可以在同一网络内或者不同网络间传输,数据转发过程也分为本地转发和远程转发,但两者的数据转发原理是基本一样的,都是遵循TCP/IP协议簇。 本示例中,主机A需要访问服务器A的Web服务,并且假定两者之间已经建立了TCP连接。接下来会以此示例来讲解数据在不同网络间的传输过程。 数据包在相同网段内或不同网段之间转发所依据的原理基本一致。

Acknowledgement Number TCP封装 主机 A 数据段 TCP Header Data 传输层 网络层 SYN RST FIN Destination Port:80 Sequence Number Window Checksum Options Source Port:1027 Acknowledgement Number Header Length Resv. Urgent Pointer PSH URG ACK Padding 数据链路层 物理层 主机A会对待发送的应用数据首先执行加密和压缩等相关操作,之后进行传输层封装。Web应用是基于传输层的TCP协议传输数据的。主机A使用TCP进行报文封装时,必须填充源端口和目的端口字段,初始序列号和确认序列号字段,标识位,窗口字段以及校验和字段。此例中数据段的源端口号为主机A随机选择的1027号端口,目的端口号为服务器A的TCP知名端口80。 当主机建立了到达目的地的TCP连接后,便开始对应用层数据进行封装。

Destination IP Address: 172.16.10.1 数据包 IP Header TCP Header Data 传输层 网络层 DS Field Total Length Identification Flags Fragment Offset Time to Live Protocol:0X06 Header Checksum Source IP Address:10.1.1.1 Destination IP Address: 172.16.10.1 IP Options Version Header Length 数据链路层 物理层 主机A完成传输层封装后,一般会进行网络层数据封装,在使用IP进行封装时,需要明确IP报文的源和目的地址。如果IP报文的大小大于网络的最大传输单元(MTU),则该报文有可能在传输过程中被分片。 生存时间(TTL)字段用来减少网络环路造成的影响。ARG3系列路由器产生的数据包,默认TTL值为255。路由器转发一个数据包时,该值会被减1,如果路由器发现该值被减为0,就会丢弃该数据包。这样,即使网络中存在环路,数据包也不会在网络上一直被转发。 协议字段标识了传输层所使用的协议。本例中,传输层使用的是TCP协议,所以该字段的填充值为0X06。

查找路由 Internet 主机A必须要拥有到达目的地的路由。 Network/Mask Gateway Interface 0.0.0.0/0 10.1.1.254 10.1.1.1 10.1.1.0/24 - 10.1.1.1 Internet 主机 A 主机 B 服务器 A 服务器 B 10.1.1.1/24 10.1.1.2/24 172.16.10.1/24 172.16.10.2/24 RTA RTB 10.1.1.254/24 E0/0 每个主机都会独自维护各自的路由表项。主机A在发送数据前需要先检查是否能够到达目的端,这个过程是通过查找路由来完成的。在此示例中,主机A拥有一条到达“任何网络”(在IP编址部分已经简要介绍过)的路由,它发往其他网络的数据都会通过IP地址为10.1.1.1的接口转发到下一跳,即网关10.1.1.254。 主机A必须要拥有到达目的地的路由。 Page 7

ARP Internet 通过ARP缓存表找到下一跳的MAC地址。 如果表项里没有下一跳的MAC地址,主机A会发送ARP请求。 主机 B 10.1.1.1/24 00-01-02-03-04-05 10.1.1.2/24 00-01-02-03-04-06 10.1.1.254/24 00-01-02-03-04-08 Internet Host A> arp -a Internet address Physical address Type 10.1.1.254 00-01-02-03-04-08 Dynamic 10.1.1.2 00-01-02-03-04-06 Dynamic RTA E0/0 接下来,由于数据包要被封装成数据帧,所以主机A需要获取下一跳的MAC地址,也就是网关的MAC地址。主机首先会查询ARP缓存表。本例中,主机A的ARP缓存表中存在网关MAC地址的表项。 如果没有查找到网关的MAC地址表项,主机A会通过发送ARP请求来获取网关的MAC地址。 通过ARP缓存表找到下一跳的MAC地址。 如果表项里没有下一跳的MAC地址,主机A会发送ARP请求。

以太网封装 数据帧 传输层 网络层 数据链路层 物理层 Data FCS Ethernet Header IP Header TCP Header Data FCS 网络层 数据链路层 D.MAC S.MAC Type 物理层 主机A在链路层封装数据帧时,会遵循IEEE 802.3或Ethernet_II标准,Ethernet_II帧头中的类型字段填充为0x0800,以表示网络层使用的是IP协议。源MAC地址为主机A的MAC地址,目的MAC地址为网关路由器E0/0接口的MAC地址。

数据帧转发过程 主机工作在半双工状态下,suoyi 会使用CSMA/CD来检测链路是否空闲。 Ethernet Header IP Header TCP Header Data FCS S.MAC(48bits) D.MAC(48bits) SFD(8 bits) Preamble(56 bits) ….. 1…0100 1…0100 11010101 010101010101010101… 主机 A 主机A工作在半双工状态下,所以会使用CSMA/CD来检测链路是否空闲。如果链路空闲,主机A会将一个前导码(Preamble)和一个帧首定界符(SFD)附加到帧头然后进行传输。前导码的作用是使接收设备进行同步并做好接收数据帧的准备。前导码是包括了7个字节的二进制“1”、“0”交替的代码,即1010…10共56位。帧首定界符是长度为1个字节的10101011二进制序列,它的作用是使接收端对帧的第一位进行定位。 主机工作在半双工状态下,suoyi 会使用CSMA/CD来检测链路是否空闲。 前导码用于使接收者进入同步状态,定界符用于指示帧的开始。

数据帧转发过程 同一个冲突域里的设备都会接收到主机A发送的数据帧。 只有网关(RTA)会处理该数据帧,并继续转发。 主机 A SFD Preamble Ethernet_II Header FCS Data RTA 目的MAC:00-01-02-03-04-08 TYPE :0x0800 E0/0 主机 B 10.1.1.254/24 00-01-02-03-04-08 本例中,主机A发送数据帧到共享以太网,此网络中的所有网络设备都会收到该帧。设备收到帧之后,首先会进行FCS校验。如果FCS校验未能通过,则帧被立即丢弃。对于通过了FCS校验的帧,设备会检查帧中的目的MAC地址。如果帧中的目的MAC地址与自己的MAC地址不同,设备将丢弃帧,如果相同,则会继续处理。处理过程中,帧头帧尾会被剥去(也就是解封装),剩下的数据报文会被根据帧头中的类型字段的值来送到网络层中的对应协议模块去处理。 同一个冲突域里的设备都会接收到主机A发送的数据帧。 只有网关(RTA)会处理该数据帧,并继续转发。

Destination IP Address: 172.16.10.1 数据包转发过程 DS Field Total Length Identification Flags Fragment Offset Time to Live Protocol Header Checksum Source IP Address:10.1.1.1 Destination IP Address: 172.16.10.1 IP Options Version Header Length Destination/Mask Interface 172.16.10.0/24 E0/1 RTA Data IP 10.1.1.100/24 E0/0 E0/1 RTA收到此数据报文后,网络层会对该报文进行处理。RTA首先根据IP头部信息中的校验和字段,检查IP数据报文头部的完整性,然后根据目的IP地址查看路由表,确定是否能够将数据包转发到目的端。RTA还必须对TTL的值进行处理。另外,报文大小不能超过MTU值。如果报文大小超过MTU值,则报文将被分片。 网络层处理完成后,报文将被送到数据链路层重新进行封装,成为一个新的数据帧,该帧的头部会封装新的源MAC地址和目的MAC地址。如果当前网络设备不知道下一跳的MAC地址,将会使用ARP来获得。 SFD Preamble Ethernet_II Header FCS Data 网关检查是否具有到达目的网络的路由条目。 如果存在转发路径,则为数据包添加一个新的二层帧头和帧尾,并继续转发。

数据帧解封装 RTB以服务器A的MAC地址作为目的MAC继续转发。 172.16.10.1/24 00-03-04-05-06-AA 172.16.10.2/24 00-03-04-05-06-BB D.MAC S.MAC Type(0x0800) RTB E0/1 SFD Preamble Ethernet_II Header FCS Data 该示例中,服务器A处于一个共享以太网中,两台服务器都会收到RTB发送的数据帧。该帧的目的MAC地址与服务器B的接口MAC地址不匹配,所以会被服务器B丢弃。 服务器A成功收到该帧,并通过FCS校验。服务器A将利用帧中的类型字段来识别在网络层处理该数据的协议。该示例中,服务器A会将解封装后的此数据交给网络层的IP协议来进行处理。 RTB以服务器A的MAC地址作为目的MAC继续转发。 服务器A接收到该数据帧后,发现目的MAC为自己的MAC,于是会继续处理该数据帧。

Destination IP Address: 172.16.10.1 数据包解封装 服务器 A Data IP Header RTB 172.16.10.1/24 00-03-04-05-06-AA DS Field Total Length Identification Flags Fragment Offset Time to Live Protocol Header Checksum Source IP Address:10.1.1.1 Destination IP Address: 172.16.10.1 IP Options Version Header Length E0/1 服务器 B 服务器A通过IP协议来处理该报文,首先会通过校验和字段来验证报文头的完整性,然后检查IP报文头中的目的IP地址是否与自己当前的IP地址匹配。 如果在源与目的之间的数据传输期间数据发生了报文分片,则报文会被目的端重新组合。标识字段用于标识属于同一数据源的分片报文,偏移量表示该分片在原分组中的相对位置。标志字段目前只有两位有意义,标志字段最低位为1表示后面还有分片,为0表示这已经是最后一个数据片;中间一位为1表示不能分片,为0表示允许分片。所有的分片报文必须被目的端全部接收到后才会进行重新组合。 协议字段表示此数据包携带的上层数据是哪种协议的数据。需要注意的是,下一个报头并非总是传输层报头。例如,ICMP报文也是使用IP协议封装,协议字段值为0x01。 172.16.10.2/24 00-03-04-05-06-BB 服务器A检查数据包的目的IP地址,发现目的IP与自己的IP地址相同。 服务器A剥掉数据包的IP头部后会送往上层协议TCP继续进行处理。

Acknowledgement Number 数据段解封装 服务器 A Data TCP Header RTB 172.16.10.1/24 00-03-04-05-06-AA SYN RST FIN Sequence Number Window Checksum Options Acknowledgement Number Header Length Resv. Urgent Pointer PSH URG ACK Padding Source Port:1027 Destination Port:80 E0/1 服务器 B 当IP报文头被处理完并剥离后,数据段会被发送到传输层进行处理。在此示例中,传输层协议使用的是TCP,且发送端和接收端已经通过三次握手建立了连接。传输层收到该数据段后,TCP协议会查看并处理该数据段头部信息,其中目的端口号为80,用于表示处理该数据的应用层协议为HTTP协议。TCP处理完头部信息后会将此数据段头部进行剥离,然后将剩下的应用数据发送到HTTP协议进行处理。 172.16.10.2/24 00-03-04-05-06-BB 服务器A检查TCP头部的目的端口,然后将数据段发送给应用层的HTTP协议进行处理。

总结 数据在进行二层和三层封装之前,主机需要了解哪些信息? 当数据帧发送到非目的主机时,非目的主机将会如何处理? 传输层如何能够准确的将数据交给特定应用? 当两台主机同时访问服务器的HTTP服务,该服务器如何区分数据属于哪个会话? 主机在封装数据包之前,必须要知道目的端IP地址。在封装数据帧之前,必须要知道去往目的网络的路由以及下一跳的MAC地址。 如果主机接收到一个不是发往自己的数据帧,在检验帧头中的目的MAC地址之后会丢弃该帧。 传输层会检查TCP或UDP报文头中的目的端口号,以此来识别特定应用。 服务器可以只通过源IP地址识别两台主机的HTTP流量,另外TCP报文头中包含的源端口也可以被用来区分同一台主机通过不同的浏览器发起的不同的会话。例如,两个来自源IP为10.1.1.1的HTTP流量使用的目的端口号都是80,但源端口号为1028和1035。