TCP IP协议的分包,转发原理

IP分片和TCP分片的区别

tcp网络工作
前段时间要做一个关于网络嗅探的程序,里面要重组IP分片,TCP分片.

但做的时候忽视了一个很重要的东西:IP分片与TCP分片弄混淆了.

首先声明:TCP分片应该称为TCP分段.

——————————————————————————————————————————————————————

区别:

1.IP分片产生的原因是网络层的MTU;TCP分段产生原因是MSS.

2.IP分片由网络层完成,也在网络层进行重组;TCP分段是在传输层完成,并在传输层进行重组. //透明性

3.对于以太网,MSS为1460字节,而MUT往往会大于MSS.

故采用TCP协议进行数据传输,是不会造成IP分片的。若数据过大,只会在传输层进行数据分段,到了IP层就不用分片。

而我们常提到的IP分片是由于UDP传输协议造成的,因为UDP传输协议并未限定传输数据报的大小。

源主机在发起通信之前,将Self IP与目的主机的IP进行比较,如果两者位于同一网段(用子网掩码计算后具有相同的网络号),那么源主机直接向目的主机发送ARP请求,在接收到目的主机的ARP应答后获取对方的MAC地址,然后用对方的MAC地址作为目的MAC进行报文发送,位于同一VLAN(网段)的主机互访时属于这种情况,这是互联的交换机做二层交换转发。

当源主机判断目的主机与自己位于不同网段时,它会通过网关来提交报文,即发送ARP请求来获取网关IP地址对应的MAC,在得到网关的ARP应答后,用网关MAC作为报文目的MAC进行报文发送……也就是路由器的某个端口。注意,报文的源IP是源主机IP,目的IP依然是目的主机IP。
这里1,2步骤都是先进行IP信息封装处理,再通过ARP进行MAC封装处理(先3层,再2层),解包则相反。

当网关路由器接收到以太网数据帧时,发现数据帧中的目标MAC地址是自己的某一个端口的物理地址,这时路由器会把以太网数据帧的封装去掉。路由器认为这个IP数据包是要通过自己进行转发,接着它就在匹配路由表(包含目标地址和指向目标地址的指针)。匹配到路由项后,它就将包发往下一条地址。
路由器转发数据包也是这样,它始终是不会改IP地址的,只会改源/目标MAC。

万一路由遇到目的MAC是广播地址怎么办?IP的广播有三种:
255.255.255.255叫本地广播,也叫直播,direct broadcast,不跨路由器。
172.16.33.255叫子网广播,广播给172.16.33.0这个子网,可以跨路由器。
172.16.255.255叫全子网广播,广播给172.16.0.0这个主网,可以跨路由器。
路由器是三层设备,可以隔离广播,但并不是所有广播都隔离。事实上只有本地广播路由器才不转发,对于子网广播和全子网广播,路由器是转发的。为什么呢?我们来看255.255.255.255的广播,在MAC的封装中,对应的目的MAC是广播,而子网广播和全子网广播,对应的目的MAC是单播,所以路由器会转发。所以路由器隔离的广播是目的MAC为全1的广播,对于目的MAC是单播的上层广播,路由器是不能隔离的。

IP数据包经由路由转发的时候 源/目的IP,源/目的MAC是否发生改变,如何改变?
A—–(B1-B2)—–(C1-C2)——E
如上拓扑图为例,B1和B2是路由器B上的两个接口,C1和C2是路由器C上的两个接口,A和E是PC,由主机A向主机E发送数据包,那么在主机A形成的数据包的目的IP就是E的IP,源IP就是主机A的IP地址,目标MAC地址就是B1的MAC地址,源MAC地址就是A的MAC地址。
由A发给路由器B,B经过重封装后,源IP和目标IP是不变的,源MAC地址变成B2的MAC地址,目标MAC地址变成C1的MAC地址,封装完成发送给路由器C,路由器C接收到数据包后和B做的操作是一样的,源IP和目标IP的不变的,源MAC地址变成C2的MAC地址,目标MAC地址变成主机E的MAC地址,然后发送给主机E,这样E就收到了这个数据包,当恢复数据包的时候就是把收到的数据包的源IP地址(主机A的IP地址)和源MAC地址(接口C2的MAC地址)作为他的目标IP和目标MAC地址。

时间: 2024-08-03 11:37:54

TCP IP协议的分包,转发原理的相关文章

TCP/IP协议中分包与重组原理介绍

[原文链接] 引言 分片是分组交换的思想体现,也是IP协议解决的两个主要问题之一.在IP协议中的分片算法主要解决不同物理网络最大传输单元(MTU) 的不同造成的传输问题.但是分组在传输过程中不断地分片和重组会带来很大的工作量还会增加一些不安全的因素.我们将在这篇小论文中讨论IP分片的原因.原理.实现以及引起的安全问题. 一.什么是IP分片 IP分片是网络上传输IP报文的一种技术手段.IP协议在传输数据包时,将数据报文分为若干分片进行传输,并在目标系统中进行重组.这一过程称为分片(fragment

java socket 基于TCP/IP 协议

Java socket 基于TCP/IP 协议应用 多线程服务器原理: 1.          服务器端创建serversocket并绑定要监听的端口号 ,循环调用serversoket 的accept()方法,等待客户端的连接请求 2.          客户端创建一个socket绑定服务器端的IP地址和服务器监听的端口号并请求和服务器端连接 3.          服务器端接收到客户端的请求后,创建一个socket与客户端建立专线连接 4.          建立连接的两个socket在一个

TCP/IP协议族——IP工作原理及实例详解(上)

 IP协议详解 本文主要介绍了IP服务特点,头部结构,IP分片知识,并用tcpdump抓取数据包,来观察IP数据报传送过程中IP的格式,以及分片的过程. IP头部信息:IP头部信息出现在每个IP数据报中,用于指定IP通信的源端IP地址.目的端IP地址,知道IP分片和重组. IP数据报的路由和转发:IP数据报的路由和转发发生在出目标机器之外的所有主机和路由器上.他们决定数据报是否应该转发以及如何转发. IP服务的特点 IP协议是TCP/IP协议族的动力,它为上层协议提供无状态.无连接.不可靠的

TCP/IP协议工作原理简述

TCP/IP协议工作原理简述 Table of Contents 1 概要 2 应用层 3 传输层 4 网络层 5 链路层 1 概要 协议是什么?协议是一组为完成特定需求或功能而定义的标准通讯格式.协议是服务于具体需求或功能的,它不能独立存在. 制定TCP/IP协议的目的是为了解决主机互联以及互联的主机上的应用通讯的问题.TCP/IP协议共有四层:应用层.传输层.网络层.链路层.应用层实际就是我们的应用程序,对于非具体应用而言这一层的协议是未定义的,需要我们自己根据我们具体的业务模型来制定.传输

TCP/IP协议原理与应用笔记05:网关

      大家都知道,从一个房间走到另一个房间,必然要经过一扇门.同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关.顾名思义,网关(Gateway)就是一个网络连接到另一个网络的"关口".      按照不同的分类标准,网关也有很多种.TCP/IP协议里的网关是最常用的,在这里我们所讲的“网关”均指TCP/IP协议下的网关.  那么网关到底是什么呢?网关实质上是一个网络通向其他网络的IP地址. 比如有网络A和网络B,网络A的IP地址范围为"19

TCP/IP协议原理与应用笔记17:IP编址之 IP地址简介(重点)

1. IP地址(通用标识符) 对于同一个网络设备(主机或路由器)的不同网络连接,需要不同的IP地址进行标识 2. 主机标识符 主要有下面三种方式的主机标识方式: (1)Name:是什么,可读性强(了解主机的属性或者用途) (2)Address:在哪里,软件效率高. (3)Route(路由的标识):怎样到达 3. IP地址结构 (1)32 bit二进制地址 它模拟物理网的编址机制,如下示意图: (2)IP地址分类,如下: TCP/IP协议原理与应用笔记03:IP地址分类

TCP/IP 协议工作原理与Linux系统下调优

TCP/IP建立连接的三次握手过程: 建立TCP连接共需要三个packet Client--> syn=1,ack=0,fin=0 -->  Server Client<--  syn=1,ack=1,fin=0 <--  Server Client-->  syn=0,ack=1,fin=0 -->  Server TCP/IP关闭连接的四个过程: 关闭TCP连接需要四个packet: Client-->  FIN  -->  Server Client&

TCP/IP协议族——ARP、DNS工作原理及实例详解

 测试网络: 通过VMware创建了两个虚拟机,并利用桥接方式联网以此模拟两台主机连接一台路由器的情况.测试网络图如下: ARP协议工作原理 ARP协议能实现任意网络地址到任意物理地址的转换,这里仅讨论IP地址到以太网地址(MAC地址)的转换.其工作原理是:主机向自己所在网络广播一个ARP请求,该请求包含目标机器的网络地址.此网络上的其他机器都将接收到这个请求,但只有被请求的目标机器会回应一个ARP应答,其中包含自己的物理地址. 以太网ARP请求/应答报文 以太网ARP请求/应答报文格式如下

TCP/IP协议族——IP工作原理及实例具体解释(上)

?? IP协议具体解释 本文主要介绍了IP服务特点,头部结构,IP分片知识,并用tcpdump抓取数据包.来观察IP数据报传送过程中IP的格式,以及分片的过程. IP头部信息:IP头部信息出如今每一个IP数据报中,用于指定IP通信的源端IP地址.目的端IP地址,指导IP分片和重组. IP数据报的路由和转发:IP数据报的路由和转发发生在出目标机器之外的全部主机和路由器上.他们决定数据报是否应该转发以及怎样转发. IP服务的特点 IP协议是TCP/IP协议族的动力.它为上层协议提供无状态.无连接.不