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

clnchanpin clnchanpin     2022-08-28     423

关键词:

??

IP协议具体解释

        本文主要介绍了IP服务特点,头部结构,IP分片知识,并用tcpdump抓取数据包。来观察IP数据报传送过程中IP的格式,以及分片的过程。

IP头部信息:IP头部信息出如今每一个IP数据报中,用于指定IP通信的源端IP地址、目的端IP地址,指导IP分片和重组。

IP数据报的路由和转发:IP数据报的路由和转发发生在出目标机器之外的全部主机和路由器上。他们决定数据报是否应该转发以及怎样转发。

IP服务的特点

IP协议是TCP/IP协议族的动力。它为上层协议提供无状态、无连接、不可靠的服务。

无状态是指IP通信两方不同步数据传输的状态信息,因此全部IP数据报的发送、传输和接收都是相互独立、没有上下文关系的。这样的服务最大的缺点是无法处理乱序和反复的IP数据报。

无连接是指IP通信两方都不长久的维持对方的不论什么信息。这样,上层协议每次发送数据时。都必须明白指定对方的IP地址。

不可靠是指IP协议不能保证IP数据报准确的达到接收端。

IPv4头部结构

技术分享

4位版本号号指定IP协议的版本号

4位头部长度表示IP有多少个32bit字(4字节)

8为服务类型(Type OfService)包含一个3为优先字段,4位的TOS字段和1位保留字段(必须置0)。

4位的TOS字段分别表示:最小延迟,最大吞吐量,最高可靠性和最小费用。当中最多有一个能置为1

16位总长度是指整个IP数据报的长度,以字节为单位。因为MTU的限制,长度超过MTU的数据豆浆杯分片传输。

16位标识唯一标识主机发送的每个数据报,同一个数据报的全部分片具有同样标识值。

3位标志字段第一位保留。第二位表示“禁止分片”。第三位表示很多其它分片。除了数据报最后一个分片外,其它分片都要把她置1.

13位分片偏移是分片对原始IP数据报開始出的偏移。

8位生存时间(Time ToLiveTTL)是数据报到达目的地之前同意经过的路由器跳数。

每经过一个路由。该值减1.

8位协议用来区分上层协议,当中ICMP1TCP6UDP17.

16位头部校验和检验IP数据头部在传输过程中是否损坏。

32位源端IP地址和目的端IP地址用来标识发送端和接收端。

使用tcpdump观察IPv4头部结构

[email protected]:~$ sudo tcpdump -ntx -i lo

[email protected]:~$ telnet 127.0.0.1

IP 127.0.0.1.47513> 127.0.0.1.23: Flags [.], ack 90, win 342, options [nop,nop,TS val 5091357ecr 5091357], length 0

     0x0000: 4510 0034 52b6 4000 4006 e9fb 7f00 0001

     0x0010: 7f00 0001 b999 0017 a304 e30f 5c98 cfa6

     0x0020: 8010 0156 fe28 0000 0101 080a 004d b01d

     0x0030: 004d b01d

IPv4头部各个字段具体解释:

十六进制

十进制

IP头部信息

0X4

4

IP版本

0X5

5

头部长度为532

0x10

 

TOS选项中最小延迟被开启

0x0034

52

数据报总长度,52字节

0x52b6

 

数据报标识

0X4

 

设置禁止分片标志

0x000

0

分片偏移

0x40

64

TTL被设为64

0x06

6

协议字段为6,表示上层协议TCP协议

0xe9fb

 

IP头部校验码

0X7f000001

 

32位源端IP地址127.0.0.1

0X7f000001

 

32位目的端IP地址127.0.0.1

IP分片

IP数据报的长度超过帧的MTU时,将被分片传输。

分片可能发生在发送端,也可能发生在路由器上,并且可能在传输过程中被多次分片。但仅仅有在终于目标机器上,这些分片才会被内核中的IP模块又一次组装。

IP头部中的例如以下三个字段给IP的分片和重组提供了足够的信息:数据报标识、标志和片偏移。一个IP数据报的每一个分片都具有自己的IP头部。他们具有同样的标识值,但具有不同的片偏移。而且除了最后一个分片外,其它分片都将设置MF标志。此外,每一个分片的IP头部的总长度将被设置为该分片的长度

以太网的MTU(关于MTU概念http://blog.csdn.net/walkerkalr/article/details/34410937封装部分)是1500字节,因此它携带的IP数据报的数据部分最多是1480字节(IP头部占用20字节)。烤炉用IP数据报封装一个长度为1481字节的ICMP报文(包含8字节的ICMP,所以其数据部分长度为1473字节),则该数据报在使用以太网帧传输室必须分片。

须要指出的是,ICMP报文的头部长度取决于报文类型,以下的样例使用ping程序,而ping程序使用的ICMP回显与应答报文的头部长度是8字节。为了看清楚IP分片的详细过程,考虑从chen123(关于在一台主机上搭建的測试网络见http://blog.csdn.net/walkerkalr/article/details/34420041)来ping机器li123。每次传送1473个字节以强制引起IP分片。并用tcpdump抓取这一过程中两方的数据报。

详细操作例如以下:

[email protected]:~$sudo tcpdump -ntv -i eth0 icmp #仅仅抓取ICMP

[email protected]:~$ping 192.168.73.130 -s 1473 #-s选项指定每次发送1473字节的数据

例如以下是在敲入tcpdump命令终端上的输出:

1. IP(tos 0x0, ttl 64, id 21061, offset 0, flags [+], proto ICMP (1), length 1500)

   192.168.73.130 > 192.168.73.129: ICMPecho reply, id 4311, seq 11, length 1480

2. IP(tos 0x0, ttl 64, id 21061, offset 1480, flags [none], proto ICMP (1), length21)

   192.168.73.130 > 192.168.73.129:ip-proto-1

这两个IP的表示值都是21061,说明它们是同一个IP数据报的分片。第一个分片的片偏移是0,第二个是1480。非常显然,第二个分片的片偏移实际上是第一个分片的ICMP报文的长度。

第一个分片设置了MF标识表示还有兴许分片,所以tcpdump输出”flags[+]”。而第二个分片则没有设置不论什么标识,所以tcpdump输出“flags[none]”。

由于我们发送1473个字节,加上8字节的ICMP头部长度和20字节的IP头部长度,则终于长度1501字节大于MTU值,须要被分片。也就是,第一个IP分片长度为1500,第二个为21。每一个分片都有自己的IP头部(20字节)。

tcp/ip协议族

文章目录TCP/IP协议族体系及主要协议数据链路层网络层传输层应用层封装分用TCP/IP协议族体系及主要协议数据链路层数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介上的传输。数据链路层常用的两个协议... 查看详情

tcp/ip协议原理与介绍(代码片段)

...名思义TCP/IP(TransmissionControlProtocol/InternetProtocol),传输控制协议/网际协议,TCP/IP是现代Internet的核心技术,由IETF定义。所有的系统、终端、线路、用户、开发者,都必须遵守TCP/IP协议族所规定的法则!IP世界的根本法就是TCP/IP协议族... 查看详情

tcp/ip协议族

TCP/IP协议族文章来源:http://blog.csdn.net/cws1214/article/details/8078629   物理层(RS-232、V.35)和 数据链路层(HDLC、X.25)涉及到在通信信道上传输的原始比特流,它实现传输数据所需要的机械、电气、功能性及过程等手段,... 查看详情

tcp/ip具体解释学习笔记——地址解析协议arp

一概述我们知道,IP协议是用来在不同的物理网络之间数据传输的。要在不同的网络之间数据传输,至少须要将IP协议所用的地址转换成特定网络所使用的物理地址。一般来说。就是将IPv4地址转换为mac地址。要想与一个特定的设... 查看详情

tcp/ip名词解释

协议族TCP/IP是基于TCP和IP这两个最初的协议之上的不同的通信协议的大集合。TCP-传输控制协议TCP用于从应用程序到网络的数据传输控制。TCP负责在数据传送之前将它们分割为IP包,然后在它们到达的时候将它们重组。IP-网际协议... 查看详情

tcp三次握手原理详解

TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族。从协议分层模型方面来讲,TCP/IP由四个层次组成:网络接口层、网络层、传输层、应用层。TCP协议:即传输控制协议,它提供的是一种可靠的数据流服务。... 查看详情

访问控制列表配置命令及原理

访问控制列表(一)TCP/IP协议族的传输层协议主要有两个:(1)TCP传输控制协议(2)UDP用户数据报协议TCP是面向连接的、可靠的进程到进程通信的协议TCP提供全双工服务,即数据可在同一时间双向传输TCP报文段:将若干个字节... 查看详情

tcp/ip知识总结(tcp/ip协议族读书笔记四)

  参考:http://blog.chinaunix.net/uid-26275986-id-4109679.html  继续!TCP的流量控制和拥塞控制。  TCP相对UDP可靠的地方在于它的拥塞控制、流量控制。一.流量控制:  如果发送方把数据发送得过快,接收方可能会来不及接收,... 查看详情

osi模型和tcp/ip协议族

TCP/IP协议族TCP/IP协议族的开发要比OSI模型更早,因此TCP/IP协议族的分层结构无法准确地与OSI模型一一对应。原始的TCP/IP协议族定义为建立再硬件基础上的四个软件层,不通过目前TCP/IP协议族被认为是一个五层模型,其层的命名类... 查看详情

tcp/ip协议族

...确定数据包从源端到目的端如何选择路由。网络层的主要协议有IP、 查看详情

osi七层模型和tcp/ip协议族

网际互联及OSI七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层   应用层:为应用程序提供服务   表示层:数据格式转化、数据加密   会话层:建立、管理和维护会话   传输... 查看详情

tcp与udp协议

  要想理解socket首先得熟悉一下TCP/IP协议族, TCP/IP(TransmissionControlProtocol/InternetProtocol)即传输控制协议/网间协议,定义了主机如何连入因特网及数据如何再它们之间传输的标准,从字面意思来看TCP/IP是TCP和IP协议的合称... 查看详情

socket

...P?TCP/IP(TransmissionControlProtocol/InternetProtocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。UDP(UserDataProtocol,用户数据报协议)是与TCP相对应的协议。它是属于TCP/IP协议族中的一种。这里... 查看详情

tcp/ip协议的三次握手及实现原理

TCP/IP是很多的不同的协议组成,实际上是一个协议组,TCP用户数据报表协议(也称作TCP传输控制协议,TransportControlProtocol。可靠的主机到主机层协议。这里要先强调一下,传输控制协议是OSI网络的第四层的叫法,TCP传输控制协议... 查看详情

《tcp/ip具体解释卷2:实现》笔记--协议控制块

协议层使用协议控制块(PCB)存放各UDP和TCP插口所要求的多个信息片。Internet协议维护Internet协议控制块(internetprotocolcontrolblock)和TCP控制块(TCPcontrolblock)。由于UDP是无连接的。所以一个端结点须要的全部信息都在InternetPCB中... 查看详情

什么是tcp/ip协议族

问题一:什么是TCP/IP协议族不同硬件、操作系统之间的通信,所有的一切都需要一种规则,我们就把这种规则称为协议(protocol)。协议中存在各种各样的内容。从电缆的规格到IP地址的选定方式、寻找异地用户的方法、双方建... 查看详情

tcp/ip具体解释--icmp报文分析

...报告差错情况和提供有关异常情况。ICMP是因特网的标准协议,但ICMP不是高层协议,而是IP层的协议。通常ICMP报文被IP层或更高层协议(TCP或UDP)使用。一些ICMP报文把差错报文返回给用户进程。2.   ICMP报文作为IP层数... 查看详情

tcp/ip协议族

TCP/IP协议TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应的协议,现在几乎所有的操作系统都实现了TCP/IP协议栈。如下图650)this.width=650;"src="http://blog.chinaunix.net/attachment/201304/27/26833883_1367053079KNJe.png"... 查看详情