tcp/ip、udp、icmp协议学习笔记

以下文章仅为个人学习笔记,如有错误敬请谅解! 

  •  协议地图

传输层协议:

传输层协议接收来自应用层协议的数据,封装上相应的传输层头部,帮助其建立“端到端”的连接。

传输层的PDU被称为(Segment)常用的协议有tcp、udp等。

tcp协议是一种面向连接的、可靠的(三次握手、四次挥手)传输层通信协议,由IEIF的RFC 793定义。

UDP协议是一种简单的无连接的、不可靠的传输层协议,由IEIF的RFC 768定义。

1.tcp协议

报文格式:

Source Port:源端口号(16bit,2字节)

Destination Port:目的端口(16bit,2字节)

Sequence Number:序列号(32bit),表示发出报文的编号

Acknowledgement Number:确认号(32bit),收到的第几个报文

确认号和序列号保证了数据的有序和正确传输!!!

Data Offset:头部长度

Reserved:保留字段(全填0)

Control bits:(6bit)控制字节,包括URG、ACK(确认)、PSH、RST(重新建立连接)、SYN(连接同步)、FIN(完成发送标识)

Windows:滑动窗口

TCP滑动窗口机制:

在传输数据时,如果对方传输的数据过大,就会将其打包分发,滑动窗口机制就是用来告诉对方自己有几个缓存空间。

图中右边表示接收方三个窗口,其中每个窗口叫做一个mss字段,默认是1460bit。

每个窗口传输独立,如果某个窗口在传输中丢包,对方会将该数据包后面的数据重传,即使在其他窗口已经接受过该数据包,确保数据包的有序性。

 tcp如何建立连接(三次握手):

任何基于tcp的应用,在传输数据前都会进行三次握手(http1.1为了保证网页的响应速度,在多次请求数据时只需一次三次握手就可以实现多次数据传输)

断开连接(四次挥手):

2.udp协议

Source Port: 标识哪个应用程序发送(发送进程)。

Destination Port: 标识哪个应用程序接收(接收进程)。

Length:   UDP首部加上UDP数据的字节数,最小为8。

Checksum: 覆盖UDP首部和UDP数据,是可选的。

data octets:   UDP负载,可选的。

udp 传输数据时双方不进行数据确认,因此是无连接的、非可靠的。

3.ICMP协议:

用来传递差错、控制、查询等信息(例如网页中常见的404、403错误)。

报文格式:

字段长度含义
Type1字节报文类型,用来标识报文。
Code1字节代码,提供报文类型的进一步信息。
Checksum2字节校验和,使用和IP相同的加法校验和算法,但是ICMP校验和仅覆盖ICMP报文。
Message Body可变字段的长度和内容,取决于消息的类型和代码。

(部分type值与code对应的含义) 

类型Type代码Code描述
00回显应答(ping应答)
30网络不可达
31主机不可达
32协议不可达
40源端被关闭
50

对网络重定向

4.ip协议:

IP协议全称为“网际互连协议(Internet Protocol)”,是网络层协议

ip协议是tcp/ip最核心的协议簇,提供不可靠的、无连接的、尽力而为的服务。

IP地址

IP地址一共四组八位的二进制数组成

0000 0000 0000 0000 0000 0000 0000 0000

为了记忆方便,常用点分十进制,如192.168.1.1 

IP地址分为网络号和主机号

掩码:用来标识网络号的位数

例如192.168.1.1和192.168.1.2,假如其掩码是24位(255.255.255.0)

1100 0000 1010 1000 0000 00001 0000 0001

1100 0000 1010 1000 0000 00001 0000 0001

1111 1111 1111 1111 1111 1111 0000 0000

 掩码位为1的所对应的即为网络号,上述中网络号为1100 0000 1010 1000 0000 00001 0000 0000 (192.168.1.0)

除去网络号位置即为主机号,一个网络号即表示一个网段

网段:

网段分为以下几类

  • A类:0.0.0.0到127.255.255.255。
  • B类:128.0.0.0到191.255.255.255。
  • C类:192.0.0.0到223.255.255.255。
  • D类:224.0.0.0到239.255.255.255。
  • E类:240.0.0.0到247.255.255.255。

为了防止上述网段划分产生的地址分配不均(过多或者过少),可以采用可变子网掩码标识网段。

通配符(也有称反掩码的):

表示一个IP地址的集合。例如通配符0.0.0.255,假如对应的ip网段是192.168.1.0,

1100 0000 1010 1000 0000 00001 0000 000

0000 0000 0000 0000 0000 0000 1111 1111

通配符位数为1的位数可以改变,为0不能改变,上述就表示192.168.1.0-255这些地址集合

(和网段的区别是这些地址集合可以不是连续的)

ip报文格式

字段

长度

含义

Version

4比特

  • 4:表示为IPv4;
  • 6:表示为IPv6。

IHL

4比特

首部长度,如果不带Option字段,则为20,最长为60,该值限制了记录路由选项。以4字节为一个单位。

Type of Service

8比特

服务类型。只有在有QoS差分服务要求时这个字段才起作用。

Total Length

16比特

总长度,整个IP数据报的长度,包括首部和数据之和,单位为字节,最长65535,总长度必须不超过最大传输单元MTU。

Identification

16比特

标识,主机每发一个报文,加1,分片重组时会用到该字段。

Flags

3比特

标志位:

 IP Flag字段格式

           0     1      2
        +-----+------+------+
        |  0  |  DF  |  MF  |
        +-----+------+------+
  • Bit 0: 保留位,必须为0。
  • Bit 1: DF(Don't Fragment),能否分片位,0表示可以分片,1表示不能分片。
  • Bit 2: MF(More Fragment),表示是否该报文为最后一片,0表示最后一片,1代表后面还有。

Fragment Offset

13比特

片偏移:分片重组时会用到该字段。表示较长的分组在分片后,某片在原分组中的相对位置。以8个字节为偏移单位。

Time to Live

8比特

生存时间:可经过的最多路由数,即数据包在网络中可通过的路由器数的最大值。

Protocol

8比特

协议:下一层协议。指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个进程处理。

常见值:

  • 0: 保留
  • 1: ICMP, Internet Control Message [RFC792]
  • 2: IGMP, Internet Group Management [RFC1112]
  • 3: GGP, Gateway-to-Gateway [RFC823]
  • 4: IP in IP (encapsulation) [RFC2003]
  • 6: TCP Transmission Control Protocol [RFC793]
  • 17: UDP User Datagram Protocol [RFC768]
  • 20: HMP Host Monitoring Protocol [RFC 869]
  • 27: RDP Reliable Data Protocol [ RFC908 ]
  • 46: RSVP (Reservation Protocol)
  • 47: GRE (General Routing Encapsulation)
  • 50: ESP Encap Security Payload [RFC2406]
  • 51: AH (Authentication Header) [RFC2402]
  • 54: NARP (NBMA Address Resolution Protocol) [RFC1735]
  • 58: IPv6-ICMP (ICMP for IPv6) [RFC1883]
  • 59: IPv6-NoNxt (No Next Header for IPv6) [RFC1883]
  • 60: IPv6-Opts (Destination Options for IPv6) [RFC1883]
  • 89: OSPF (OSPF Version 2) [RFC 1583]
  • 112: VRRP (Virtual Router Redundancy Protocol) [RFC3768]
  • 115: L2TP (Layer Two Tunneling Protocol)
  • 124: ISIS over IPv4
  • 126: CRTP (Combat Radio Transport Protocol)
  • 127: CRUDP (Combat Radio User Protocol)
  • 132: SCTP (Stream Control Transmission Protocol)
  • 136: UDPLite [RFC 3828]
  • 137: MPLS-in-IP [RFC 4023]

Header Checksum

16比特

首部检验和,只检验数据包的首部,不检验数据部分。这里不采用CRC检验码,而采用简单的计算方法。

Source Address

32比特

源IP地址。

Destination Address

32比特

目的IP地址。

Options

可变

选项字段,用来支持排错,测量以及安全等措施,内容丰富(请参见表2)。选项字段长度可变,从1字节到40字节不等,取决于所选项的功能。

Padding

可变

填充字段,全填0。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
捕包选项 1、选择好捕包网卡,左连还有一些其它捕包条件供选择,如果当所选网卡不支持“杂项接收”功能,系统会提示相应信息,出现该情况时您将无法获取与本网卡无关的数据包,换言之,您无法获取其他电脑之间的通讯包,所以, 建议您更换网卡。 不支持“杂项接收”的网卡,多数为一部分无线网卡及少数专用服务器/笔记本网卡。 2、协议过滤 通常情况下,可不选,除非您对协议类型较为熟悉。 3、设置捕包缓冲 确省的捕包缓冲区大小为 1M,如果您的要追踪的网络规模较大,可适当调大该值;另外,如果追踪主机 CPU 处理能力不够,也需加大缓冲;否则,可能出现丢包的情况。 4、IP过滤 IP过滤里可以设置想要捕包的IP地址或是设置要排除的IP地址等信息。 5、端口过滤 端口过滤过滤里可以设置想要捕包的端口或是设置要排除过滤的端口等信息。 捕包分析 1、设置捕包过滤项 这里的过滤和“追踪任务”过滤设置是独立分开的,请不要混淆,其可选内容项更多。 上述选项中,最为复杂的是“数据块匹配”部分,详细的介绍将在下面的章节部分出现,这里只需要配置好正确的网卡即可,其他选项可以不做任何设置。 IP包回放 1、有助于了解原始包通讯的地理分布情况。 2、通过将IP包回放到网卡上,模拟原始IP包在网络上传输情况,也可供同类捕包软件捕获分析。 通讯协议分析 捕包准备 捕包分析工具条: 开始捕包前,用户需先进行过滤设置,选项内容包括: 选网卡 如果您有多块网卡,需要选中能捕包到预想中的数据的网卡。 协议过滤 针对Internet通讯部分,常见的IP包类型为:TCP/UDP/ICMP。绝大部分是TCP连接的,比如HTTP(s)/SMTP/POP3/FTP/TELNET等等;一部分聊天软件中除了采用TCP通讯方式外,也采用了UDP的传输方式,如QQ/SKYPE等;而常见的ICMP包是由客户的Ping产生的。 IP过滤 “IP过滤”在捕包过滤使用最为常见,IP匹配主要分两类:一是不带通讯方向,单纯的是范围的匹配,如上图中的“From:to”类型;另外一类是带通讯方向的一对一匹配,如上图“< -- >”类型,不仅匹配IP地址,也匹配通讯的源IP和目标IP的方向。 端口过滤 “端口过滤”只针对两种类型的DoD-IP包:TCP/UDP。 数据区大小 “数据区大小” 的匹配针对所有DoD-IP类型包,不过需要说明的是,TCP/UDPIP数据区是以实际数据区位置开始计算的,而其他类型的则把紧随IP包头后面的部分当作数据区。 数据块匹配 “数据块匹配”较为复杂,但却非常有用. 在这里,用户可以输入文本,也可以输入二进制,可以选择特定位置的匹配,也可以选择任意位置的匹配,总之,该设置非常灵活好用。 结束条件 缺省条件下,当捕获的包占用空间多余10M时,自动停止。 结束于某个时间点,是指捕包的截止时间。 分析捕获包 用户按下“开始”按钮启动捕包功能后,列表框中会自动显示出符合条件的数据包,并附带简单的解析。选中“分析”左边和右下部分是分析结果,右上部是原始二进制代码,选中左边某一条目时,在右边二进制区域的色块和其一一对应。 如果用户以前少有接触协议分析部分,Tracknet可以很好地协助您深入了解TCP/IP协议。我们将在网站定期提供一些捕获样例包,协助用户学习分析各种类型的IP包。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值