linux 网络协议分析---3

本章节主要介绍linxu网络模型、以及常用的网络协议分析以太网协议、IP协议、TCP协议、UDP协议

一、网络模型

TCP/IP分层模型的四个协议层分别完成以下的功能:
  第一层 网络接口层
 
 网络接口层包括用于协作IP数据在已有网络介质上传输的协议。实际上TCP/IP标准并不定义与ISO数据链路层和物理层相对应的功能。相反,它定义像
地址解析协议(Address Resolution
Protocol,ARP)这样的协议,提供TCP/IP协议的数据结构和实际物理硬件之间的接口。
  第二层 网间层
 
 网间层对应于OSI七层参考模型的网络层。本层包含IP协议、RIP协议(Routing Information
Protocol,路由信息协议),负责数据的包装、寻址和路由。同时还包含网间控制报文协议(Internet Control Message
Protocol,ICMP)用来提供网络诊断信息。
  第三层 传输层
 
 传输层对应于OSI七层参考模型的传输层,它提供两种端到端的通信服务。其中TCP协议(Transmission Control
Protocol)提供可靠的数据流运输服务,UDP协议(Use Datagram Protocol)提供不可靠的用户数据报服务。
  第四层 应用层

  应用层对应于OSI七层参考模型的应用层和表达层。因特网的应用层协议包括Finger、Whois、FTP(文件传输协议)、Gopher、
HTTP(超文本传输协议)、Telent(远程终端协议)、SMTP(简单邮件传送协议)、IRC(因特网中继会话)、NNTP(网络新闻传输协议)
等。

OSI以及TCP/IP协议对应关系表:

OSI七层模型 TCP/IP四层模型 传输的数据
应用层 应用层 数据
表示层 应用层 数据
会话层 应用层 数据
传输层 传输层
网络层 网络层
数据链路层 网络接口层
物理层 网络接口层 比特流

二、协议分析

  网络协议是网络上所有设备(网络服务器、计算机及交换机路由器防火墙等)之间通信规则的集合,它规定了通信时信息必须采用的格式和这些格式的意义。大多数网络都采用分层的体系结构,每一层都建立在它的下层之上,向它的上一层提供一定的服务,而把如何实现这一服务的细节对上一层加以屏蔽。

  一台设备上的第n层与另一台设备上的第n层进行通信的规则就是第n层协议。在网络的各层中存在着许多协议,接收方和发送方同层的协议必须一致,
否则一方将无法识别另一方发出的信息。网络协议使网络上各种设备能够相互交换信息。常见的协议有:TCP/IP协议、以太网、UDP协议等。

2.1协议架构

不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。

  其实在链路层之下还有物理层,指的是电信号的传递方式,比如现在以太网通用的网线(双绞线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤等都属于物理层的概念。

(1)其中的源地址和目的地址是指网卡的硬件地址(也叫MAC 地址),长度是48 位,是在网卡出厂时固化的。

  (2)注意网卡芯片(例如DM9000A)收到的数据就是如上所示的一长串数据;其中包括以太网帧头、IP报报头、传输层协议段头、应用层所需数据。

  (3)以太网帧中的数据长度规定最小46 字节,最大1500 字节,ARP 和RARP 数据包的长度不够46 字节,要在后面补填充位。最大值1500 称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU,如果一个数据包从以太网路由到拨号链路上,数据包度大于拨号链路的MTU了,则需要 对数据包进行分片fragmentation)。ifconfig 命令的输出中也有“MTU:1500”。注意,MTU 个概念指数据帧中有效载荷的最大长度,不包括帧首部的长度。

2.3IP协议格式

版本:

  占 4 位,指 IP 协议的版本目前的 IP 协议版本号为 4 (即 IPv4)

首部长度:

  占4位,可表示的最大数值是15个单位(一个单位为 4 字节)因此IP 的首部长度的最大值是 60 字节

区分服务:

  占8位,用来获得更好的服务,在旧标准中叫做服务类型,但实际上一直未被使用过.1998 年这个字段改名为区分服务.只有在使用区分服务(DiffServ)时,这个字段才起作用.一般的情况下都不使用这个字段

总长度:

  占16位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节.总长度必须不超过最大传送单元 MTU

标识:

  占16位,它是一个计数器,用来产生数据报的标识

标志(flag):

占3位,目前只有前两位有意义

  MF

  1. 标志字段的最低位是 MF (More Fragment)
  2. MF=1 表示后面“还有分片”。MF=0 表示最后一个分片

  DF

  1. 标志字段中间的一位是 DF (Don‘t Fragment)
  2. 只有当 DF=0 时才允许分片

片偏移:

占12位,指较长的分组在分片后某片在原分组中的相对位置.片偏移以 8 个字节为偏移单位

生存时间:

  占8位,记为TTL (Time To Live) 数据报在网络中可通过的路由器数的最大值,TTL 字段是由发送端初始设置一个 8 bit字段.推荐的初始值由分配数字 RFC 指定,当前值为 64.发送 ICMP 回显应答时经常把 TTL 设为最大值 255

协议:

  占8位,指出此数据报携带的数据使用何种协议以便目的主机的IP层将数据部分上交给哪个处理过程, 1表示为 ICMP 协议, 2表示为 IGMP 协议, 6表示为 TCP 协议, 17表示为 UDP 协议

首部检验和:

  占16位,只检验数据报的首部不检验数据部分.这里不采用 CRC 检验码而采用简单的计算方法

源地址和目的地址:

  都各占 4 字节,分别记录源地址和目的地址

2.4TCP协议格式

1. 源端口和目的端口

  各占2字节,端口号加上IP地址,共同构成socket。互相通信的进程使用一对socket,包括协议、源IP、源端口、目的IP、目的端口,这五个元素唯一确定一个TCP连接。

2. 序号

  占4字节,是TCP段所发送的数据部分第一个字节的序号。在TCP传送的数据流中,每一个字节都有一个序号。建立连接时,发送方将初始序号(Initial Sequence Number, ISN)填写到第一个发送的TCP段序号中。

3. 确认号

  占4字节,是期望收到对方下次发送的数据的第一个字节的序号,也就是期望收到的下一个TCP段的首部中的序号,等于已经成功收到的TCP段的最 后一个字节序号加1。确认号在ACK标志为1时有意义,除了主动发起连接的第一个TCP段不设置ACK标志外,其后发送的TCP段都会设置ACK标志。

4. 数据偏移

  占4比特,表示数据开始的地方离TCP段的起始处有多远。实际上就是TCP段首部的长度。由于首部长度不固定,因此数据偏移字段是必要的。数据偏移以32位为长度单位,因此TCP首部的最大长度是60(15*4)个字节。

5. 控制位

  一共6个,占6比特,设置为1时有效。按顺序依次为:URG、ACK、PSH、RST、SYN、FIN。


URG


紧急位,为1时,首部中的紧急指针有效


ACK


确认位,为1时,首部中的确认号有效


PSH


推位,为1时,要求把数据尽快交给应用程序


RST


复位标志,为1时,复位连接,一般在出错或关闭连接时使用


SYN


同步位,在建立连接时使用,当SYN=1而ACK=0时,表明这是一个连接请求报文段。对方若同意建立连接,在发回的报文段中使SYN=1和ACK=1


FIN


结束位,为1时,表示发送方完成了数据发送

6. 窗口

  占2字节,表示报文段发送方期望接收的字节数,可接收的序号范围是从接收方的确认号开始到确认号加上窗口大小之间的数据。

7. 校验和

  校验和包含了伪首部、TCP首部和数据,校验和是TCP强制要求的,由发送方计算,接收方验证。

8. 紧急指针

  URG标志为1时,紧急指针有效,表示数据需要优先处理。紧急指针指出在TCP段中的紧急数据的最后一个字节的序号,使接收方可以知道紧急数据共有多长。

9. 选项

  最常用的选项是最大段大小(Maximum Segment Size,MSS),向对方通知本机可以接收的最大TCP段长度。MSS选项只在建立连接的请求中发送。

2.5UDP协议格式

UDP是一种无连接的、不可靠的传输层协议;
  在完成进程到进程的通信中提供了有限的差错检验功能;
  设计比较简单的UDP协议的目的是希望以最小的开销来达到网络环境中的进程通信目的;
  进程发送的报文较短,同时对报文的可靠性要求不高,那么可以使用UDP协议。

时间: 04-11

linux 网络协议分析---3的相关文章

TFTP网络协议分析

TFTP网络协议分析 周学伟 文档说明:所有函数都依托与两个出口,发送和接收. 1:作为发送时,要完成基于TFTP协议下的文件传输,但前提是知道木的PC机的MAC地址,因为当发送TFTP请求包时必须提供目的主机的MAC地址.则提供串口srcureCRT控制台,首先进行ARP请求包的发送,收到来自客户端的ARP应答包时,提取出目的主机的MAC地址,然后在发送TFTP请求包,等到目的主机返回数据报文后,文件传输即可开始,此过程,可用wireshark抓包工具进行检测. 2:作为接收时,可在DM900

《Unix/Linux网络日志分析与流量监控》获2015年度最受读者喜爱的IT图书奖

<Unix/Linux网络日志分析与流量监控>获2015年度最受读者喜爱的IT图书奖.刊登在<中华读书报>( 2015年01月28日 19 版) 我的2015年新作刊登在<中华读书报>( 2015年01月28日 19 版) 原文下载:http://epaper.gmw.cn/zhdsb/images/2015-01/28/19/2015012819_pdf.pdf 这3本原创Linux图书,全部收录于中国科学院图书馆.国图以及211.985高校图书馆,广获读者好评,在当

《UNIX/Linux网络日志分析与流量监控》新书上市一个月,销量位列畅销榜 TOP 10

<UNIX/Linux网络日志分析与流量监控>新书上市一个月,销量位列畅销榜 TOP 10,感谢大家的支持,今后将会有重磅新书推出,2015 新年快乐!

五个好用的网络协议分析工具(附下载)

Network Packet Analyzer,是一种网络分析程序,可以帮助网络管理员捕获.交互式浏览网络中传输的数据包和分析数据包信息等.这里给出了5个最好的网络数据包分析工具,具体如下: 1. Wireshark 相信大家都很熟悉,就不多介绍了.Wireshark网络嗅探器是最受欢迎的免费网络嗅探器之一,它能够在Unix系统和Win系统下运行. 下载:http://www.wireshark.org/download.html 2. Microsoft Network Monitor Mic

《UNIX/Linux网络日志分析与流量监控》实验环境下载

<UNIX/Linux网络日志分析与流量监控>实验环境下载 1.Ossim 4.1 虚拟机下载  (适合2~4G内存的服务器运行) 2.Ossim 3.1 虚拟机下载  (适合1~2G内存的老款服务器运行) 3.Ossim 2.3.1 虚拟机下载  (适合1~2G内存的老款服务器运行) 其他版本下载 4.DEFT8.2 ISO 下载 5.Solaris 9 for X86 虚拟机下载 6.Sco OpenServer 5.0.5 虚拟机下载 7.BT5  虚拟机下载 8.Grml64 ISO

网络协议分析

1. 网络模型 2. 协议分析 2.1协议架构 2. 2 以太网协议格式 2. 3 IP协议格式 2. 4 TCP协议格式 2. 5 UDP协议格式

[国嵌攻略][089][网络协议分析]

网络模型 OSI参考模型: 物理层.数据链路层 | 网络层 | 传输层 | 会话层.表示层.应用层 TCP/IP参考模型: 网络接口层         | 网络层 | 传输层 | 应用层 网络协议要素 1.协议规则 2.数据格式 协议架构 以太网协议格式 IP协议格式 TCP协议格式 UDP协议格式

《UNIX/Linux网络日志分析与流量监控》新书发布

本书从UNIX/Linux系统的原始日志(Raw Log)采集与分析讲起,逐步深入到日志审计与计算机取证环节.书中提供了多个案例,每个案例都以一种生动的记事手法讲述了网络遭到入侵之后,管理人员开展系统取证和恢复的过程,案例分析手法带有故事情节,使读者身临其境地检验自己的应急响应和计算机取证能力. 本书使用的案例都是作者从系统维护和取证工作中总结.筛选出来的,这些内容对提高网络维护水平和事件分析能力有重要的参考价值.如果你关注网络安全,那么书中的案例一定会引起你的共鸣.本书适合有一定经验的UNIX

网络协议 分析

Ethernet II: Ethernet II由6个字节目的MAC地址,6个字节源MAc地址,和两个类型(用于标示封装在这个Frame.里面数据的类型)以上为Frame Header,接下来是46--1500 字节的数据,和4字节的帧校验)组成. Ethernet II类型以太网帧的最小长度为64字节(6+6+2+46+4),最大长度为1518字节(6+6+2+1500+4).其中前12字节分别标识出发送数据帧的源节点MAC地址和接收数据帧的目标节点MAC地址.(注:ISL封装后可达1548字