论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > 计算机科学与技术 >

局域网监听系统(论文+程序)

2 表示为IGMP协议

6 表示为TCP协议

http://www.paper51.com

17 表示为UDP协议 http://www.paper51.com

10)首部检验和:16位,是根据IP首部计算的检验和码。它不对首部后面的数据进行计算。 内容来自www.paper51.com

11)任选项:是数据报中的一个可变长的可选信息。

内容来自论文无忧网 www.paper51.com

通过以上的网络层分析在协议标识的第10个字节为6时,表示IP包的内容是一个TCPsegment,从而获得网络层TCP 的数据包。 http://www.paper51.com

实现过程中4Bit的IP头的定义:

paper51.com

typedef structtag_ip_address copyright paper51.com

{ 内容来自www.paper51.com

    u_char byte1; //sizeof(u_char)==1 u_char占一个字节(8位) paper51.com

    u_char byte2;

copyright paper51.com

    u_char byte3;

内容来自论文无忧网 www.paper51.com

    u_char byte4;

http://www.paper51.com

}ip_address; copyright paper51.com

实现过程中IP数据报报头的数据结构如下: 内容来自论文无忧网 www.paper51.com

//定义IP头 IP数据包=IP头+TCP数据段(或UDP数据段)

http://www.paper51.com

typedef struct tag_ip_header 内容来自www.paper51.com

{

内容来自论文无忧网 www.paper51.com

    u_char ver_ihl; // u_char 8位 版本(4位) + 头长(4位) 内容来自www.paper51.com

    u_char tos;//TOS 服务类型

http://www.paper51.com

    u_short tlen;//包总长 u_short占两个字节

http://www.paper51.com

    u_short identification;//标识 http://www.paper51.com

    u_short flags_fo;//标志位Flags(3位)+分段偏移(13位) paper51.com

    u_char ttl;//TTL

paper51.com

    u_char proto;//Protocol http://www.paper51.com

    u_short crc;//校验和

内容来自论文无忧网 www.paper51.com

    ip_address saddr;//源地址

paper51.com

    ip_address daddr;//目的地址

paper51.com

    u_int op_pad;//选项+填充字段 u_int占4个字节 32位 paper51.com

    //接下来是数据段,不属于IP头部

内容来自论文无忧网 www.paper51.com

}ip_header;

paper51.com

ICMP经常被认为是IP层的一个组成部分。它传递差错报文以及其他需要注意的信息。 http://www.paper51.com

ICMP报文是在IP数据报内部被传输的,如图3-4所示。 copyright paper51.com

copyright paper51.com

图3-4 ICMP封装在IP数据报内部

paper51.com

ICMP报文的格式如图3-5所示。

paper51.com

内容来自论文无忧网 www.paper51.com

图3-5 ICMP数据报格式及首部中的各字段首部

http://www.paper51.com

ICMP报文的种类有两种:ICMP差错报文和ICMP询问报文。 内容来自www.paper51.com

ICMP报文的前4个字节是统一的格式,共有三个字段:类型、代码、检验和,剩下的其他字节则互不相同。

http://www.paper51.com

1)类型:8位,可以有15个不同的值,以描述特定类型的ICMP报文。 paper51.com

2)代码:8位,是为了进一步区分某种类型中的几种不同的情况。 内容来自www.paper51.com

3)检验和:16位,检验和字段覆盖了整个ICMP报文。 内容来自www.paper51.com

typedef structtag_icmp_header http://www.paper51.com

{

paper51.com

    u_char type;//8位 类型 内容来自www.paper51.com

    u_char identifer;//8位 代码 http://www.paper51.com

    u_char sequence;//序列号 8位

内容来自www.paper51.com

    u_char chksum;//8位校验和

http://www.paper51.com

}icmp_header;

paper51.com

3.2.3   传输层 paper51.com

运输层主要是为两台主机上的应用程序提供端到端的通信。在TCP/IP协议中,有两个互不相同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。

http://www.paper51.com

TCP(传输控制协议)是专门设计用于在不可靠的网络上提供可靠的、端到端的字节流通信的协议。一个TCP报文段分为首部和数据两部分,TCP数据报封装成一份IP数据报的格式如图3-6所示。 内容来自论文无忧网 www.paper51.com

paper51.com

图3-6 TCP数据报的封装 http://www.paper51.com

TCP的全部功能都体现在它首部中各个字段的作用。因此,只有弄清楚TCP首部各字段的作用才能掌握TCP的工作原理。TCP协议的首部字段如图3-7所示。

paper51.com

paper51.com

图3-7 TCP数据报格式及首部中的各字段

内容来自论文无忧网 www.paper51.com

TCP报文段首部的前20个字节是固定的,后面有4N字节是根据需要而增加的选项(N必须是整数)。因此TCP首部的最小长度是20字节。 http://www.paper51.com

首部固定部分各字段的意义如下: 内容来自论文无忧网 www.paper51.com

1)源端口和目的端口:各占2个字节。端口是运输层与应用层的服务接口。这两个值加上IP首部中的源端IP地址和目的端的IP地址唯一确定一个TCP连接。

copyright paper51.com

2)序号:32位,标识从TCP 发送端向TCP 接收端发送的数据字节流,它表示在这个报文段中的第一个数据字节。序号是32 bit的无符号数,序号到达232-1后又从0开始。

内容来自论文无忧网 www.paper51.com

3)确认号:32位,是期望受到对方的下一个报文段的数据的第一个字节的序号,也就是期望收到的下一个报文段首部的序号字段的值。顺序号标志本分组的编号,确认号指示希望接受的下一个分组编号。

paper51.com

4)首部长度:4位,表示TCP报文段首部的长度。这条信息对于定位确切的数据信息十分重要,因为任选字段的长度是可变的。这个字段占4bit,因此TCP最多有60字节的首部。然而,没有任选字段,正常的长度是20字节。

内容来自www.paper51.com

5)保留:6位,保留为今后使用,但当前应置为0。

paper51.com

6)标志位:在TCP首部中有6个标志比特。它们中的多个可同时被设置为1。具体用法如下: copyright paper51.com

URG:紧急指针(urgent pointer)有效;

内容来自论文无忧网 www.paper51.com

ACK:确认序号有效; paper51.com

PSH:接受方应该尽快将这个报文段交给应用层;

copyright paper51.com

RST:重建连接;

paper51.com

SYN:同步序号用来发起一个连接。

内容来自www.paper51.com

FIN:发端完成发送任务。 http://www.paper51.com

7)窗口大小:16位,TCP的流量控制由连接的每一端通过声明的窗口大小来提供。窗口的大小为字节书,起始于确认序号字段指明的值,这个值是接收端正期望接收的字节。窗口大小是一个16bit字段,因而窗口大小最大为65535字节。

paper51.com

8)检验和:16位,检验和覆盖了整个的TCP报文段。

paper51.com

9)紧急指针:16位,只有当URG标志置1时紧急指针才有效。紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。

http://www.paper51.com

10)选项:长度可变。最常见的可选字段是最长报文大小,又称为MSS(Maximun Segment Size)。它指明本端所能接收的最大长度的报文段。 内容来自论文无忧网 www.paper51.com

实现过程中TCP数据报报头的数据结构如下:

内容来自www.paper51.com

typedef struct tag_tcp_header 内容来自www.paper51.com

{ copyright paper51.com

         u_short sport;//源端口地址  16位

内容来自www.paper51.com

         u_short dport;//目的端口地址 16位

paper51.com

         u_int32_t sn;//序列号 32位 内容来自www.paper51.com

         u_int32_t an;//确认号 32位

内容来自论文无忧网 www.paper51.com

         u_int16_t other;// 内容来自www.paper51.com

16位 其中头长度4位+保留6位+UPG1+ACK1+PSH1+RST1+SYN1+FIN1 内容来自论文无忧网 www.paper51.com

         u_int16_twindow_size;//窗口大小 16位 paper51.com

        u_int16_t check_sum;//校验和 16位

内容来自www.paper51.com

        u_int16_t urgent_pointer;//紧急指针 16位

paper51.com

        u_int32_t option;//选项0或32位 copyright paper51.com

}tcp_header;

内容来自www.paper51.com

UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。 paper51.com

UDP数据报封装成一份IP数据报的格式如图3-8所示。

内容来自论文无忧网 www.paper51.com

内容来自论文无忧网 www.paper51.com

图3-8 UDP数据报封装

内容来自论文无忧网 www.paper51.com

UDP不提供可靠性:它把应用程序传给IP层的数据发送出去,但是并不保证它们能到达目的地。 内容来自论文无忧网 www.paper51.com

UDP首部的各字段如图3-9所示。

paper51.com

http://www.paper51.com

图3-9 UDP数据报格式及首部中的各字段

http://www.paper51.com

1)源端口和目的端口号:各16位,表示发送进程和接收进程。 copyright paper51.com

2)UDP长度字段:16位,指的是UDP首部和UDP数据的字节长度。该字段最小值为8 字节。IP数据报长度指的是数据报全长(如图3-9),因此UDP数据报长度是全长减去IP首部的长度。 copyright paper51.com

3)UDP检验和:16位,UDP检验和覆盖UDP首部和UDP数据。 内容来自论文无忧网 www.paper51.com

实现过程中UDP数据报报头的数据结构如下:

内容来自论文无忧网 www.paper51.com

typedef structtag_udp_header

http://www.paper51.com

{ 内容来自论文无忧网 www.paper51.com

      u_short sport;//源端口  16位 内容来自www.paper51.com

      u_short dport;//目的端口 16位

copyright paper51.com

      u_short len;//数据报长度 16位

copyright paper51.com

u_short crc;//校验和 16位 copyright paper51.com

}udp_header; 内容来自www.paper51.com

3.3    小结 内容来自www.paper51.com

本章主要介绍了网络的体系结构及MAC帧头、IP、ICMP、TCP、UDP协议的数据报格式。通过网络的功能分层带来了网络协议的层次结构。数据在传输过程中,就面临着数据的封装。当应用程序用TCP传输数据的时候,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息)。TCP传给IP的数据单元称作TCP报文段或简称为TCP段(TCP segment)。IP传给网络接口层的数据单元称作IP数据报(IP datagram)。通过以太网传输的比特流称作帧(Frame)。在本系统网络协议分析中对数据报的分析就是一个解封装的过程。 内容来自www.paper51.com

------分隔线----------------------------
联系方式