ip协议分析总结,ip协议分析数据包

http://www.itjxue.com  2023-01-20 22:59  来源:未知  点击次数: 

试分析TCP/IP协议的体系结构和特点

1、TCP/IP体系结构

TCP/IP协议实际上就是在物理网上的一组完整的网络协议。其中TCP是提供传输层服务,而IP则是提供网络层服务。TCP/IP包括以下协议:

IP: 网间协议(Internet Protocol) 负责主机间数据的路由和网络上数据的存储。同时为ICMP,TCP,UDP提供分组发送服务。用户进程通常不需要涉及这一层。

ARP: 地址解析协议(Address Resolution Protocol),此协议将网络地址映射到硬件地址。

RARP: 反向地址解析协议(Reverse Address Resolution Protocol),此协议将硬件地址映射到网络地址。

ICMP: 网间报文控制协议(Internet Control Message Protocol),此协议处理信关和主机的差错和传送控制。

TCP: 传送控制协议(Transmission Control Protocol),这是一种提供给用户进程的可靠的全双工字节流面向连接的协议。它要为用户进程提供虚电路服务,并为数据可靠传输建立检查。(注:大多数网络用户程序使用TCP)

UDP: 用户数据报协议(User Datagram Protocol),这是提供给用户进程的无连接协议,用于传送数据而不执行正确性检查。

FTP: 文件传输协议(File Transfer Protocol),允许用户以文件操作的方式(文件的增、删、改、查、传送等)与另一主机相互通信。

SMTP: 简单邮件传送协议(Simple Mail Transfer Protocol),SMTP协议为系统之间传送电子邮件。

TELNET:终端协议(Telnet Terminal Procotol),允许用户以虚终端方式访问远程主机。

HTTP: 超文本传输协议(Hypertext Transfer Procotol)。

TFTP: 简单文件传输协议(Trivial File Transfer Protocol)。

2、TCP/IP特点:

TCP/IP协议的核心部分是传输层协议(TCP、UDP),网络层协议(IP)和物理接口层,这三层通常是在操作系统内核中实现。因此用户一般不涉及。编程时,编程界面有两种形式:

(1)是由内核心直接提供的系统调用;

(2)使用以库函数方式提供的各种函数。前者为核内实现,后者为核外实现。用户服务要通过核外的应用程序才能实现,所以要使用套接字(socket)来实现。

关于TCP/IP协议深度分析

 TCP/IP(Transmission Control Protocol/Internet Protocol)的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是是Internet最基本的协议、Internet国际互联网络的基础,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的。TCP/IP协议介绍 TCP/IP的通讯协议

这部分简要介绍一下TCP/IP的内部结构,为讨论与互联网有关的安全问题打下基础。TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。确切地说,TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。

TCP/IP整体构架概述

TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:

应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。

传输层:在此层中,它提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。

互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。

网络接口层(主机-网络层):接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。

TCP/IP中的协议

以下简单介绍TCP/IP中的协议都具备什么样的功能,都是如何工作的:

1. IP

网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。

IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。

高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,叫作IP source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好像是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。

2. TCP

如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。

TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。

面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。

3.UDP

UDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网络时间协议)和DNS(DNS也使用TCP)。

欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。

4.ICMP

ICMP与IP位于同一层,它被用来传送IP的的控制信息。它主要是用来提供有关通向目的地址的路径信息。ICMP的‘Redirect’信息通知主机通向其他系统的更准确的路径,而‘Unreachable’信息则指出路径有问题。另外,如果路径不可用了,ICMP可以使TCP连接‘体面地’终止。PING是最常用的基于ICMP的服务。

5. TCP和UDP的端口结构

TCP和UDP服务通常有一个客户/服务器的关系,例如,一个Telnet服务进程开始在系统上处于空闲状态,等待着连接。用户使用Telnet客户程序与服务进程建立一个连接。客户程序向服务进程写入信息,服务进程读出信息并发出响应,客户程序读出响应并向用户报告。因而,这个连接是双工的,可以用来进行读写。

两个系统间的多重Telnet连接是如何相互确认并协调一致呢?TCP或UDP连接唯一地使用每个信息中的如下四项进行确认:

源IP地址 发送包的IP地址。

目的IP地址 接收包的IP地址。

源端口 源系统上的连接的端口。

目的端口 目的系统上的连接的端口。

端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。一个端口对应一个16比特的数。服务进程通常使用一个固定的端口,例如,SMTP使用25、Xwindows使用6000。这些端口号是‘广为人知’的,因为在建立与特定的主机或服务的连接时,需要这些地址和目的地址进行通讯。

TCP/IP协议的主要特点:

(1)开放的协议标准,可以免费使用,并且独立于特定的计算机硬件与操作系统;

(2)独立于特定的网络硬件,可以运行在局域网、广域网,更适用于互联网中;

(3)统一的网络地址分配方案,使得整个TCP/IP设备在网中都具有惟一的地址;

(4)标准化的高层协议,可以提供多种可靠的用户服务。

TCP/IP模型的主要缺点有:

首先,该模型没有清楚地区分哪些是规范、哪些是实现;其次,TCP/IP模型的主机—网络层定义了网络层与数据链路层的接口,并不是常规意义上的一层,接口和层的区别是非常重要的,TCP/IP模型没有将它们区分开来。

IP协议及IP数据包详解

一)IP协议的功能:

(1)寻址和路由;(根据对方的IP地址,寻找最佳路径传输信息);

(2)传递服务:① 不可靠(IP协议只是尽自己最大努力去传输数据包),可靠性由上层协议提供(TCP协议);② 无连接;(事先不建立会话);

(3)数据包的分片和重组。

(二)IP数据包详解:

(1)0100 = Version : 4(表示使用的 IPv4协议),对等层之间要使用同一种IP协议(IPv4协议);

(2)0101 = Header Length : 20Bytes(5) 首部长度占4 bit ,可表示的最大数值为15个单位(1111),一个单位一个字节,最大为60字节;

(3)服务类型-----占8 bit ,(Differentiated Services ?Field)字段来区分服务,Delay = 1 延迟小,Throughput = 1吞吐量大,Reliability = 1 质量比较高,Cost = 1 最小代价!同一时刻只有一位是1;

(4)Total Length 总长度占 16 bit:2^16 - 1 = 65535 字节,值首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535字节(MTU最大传送单元);

(5)标识(identification)占16 bit,它是一个计数器,用来产生数据包的标识;

(6)标志(flag):数据包在传输的过程中,标志字段MF(More Fregment),MF = 1表示后面还有分片,MF = 0 表示最后一个分片;

(7)片偏移:每个数据片不同时传输,标志着谋片在原分组中的相对偏移位置,以8字节为偏移单位;

注意:发送数据报过大,就要对其数据报分片处理,每一个分片都会含有一个标识(IP地址 + 标识),到达目的地要对其所有的分片进行重新组装;

重点:片偏移计算过程;首部分大题的内容是一样,因为都属于同一个数据报文!

(8)生存时间(Time To Live)占用 8bit ,使用“跳数“作为TTL的单位。数据报每经历一个路由器时对应的TTL值就会减 1 ;防止数据报发送在路由器中出现环路,因为数据报在传送的过程中要占用一定的带宽(TTL值为零自动丢弃);

(9)协议(8bit)字段指出此数据报所携带上层数据使用的TCP协议还是UDP协议,以便对等层接收到数据报交给上层相应的协议(TCP或者UDP协议)进行处理;

(10)首部检验和(Header ?checksum ? 16bit)字段只校验数据报的首部,不包含数据部分;看IP数据报头部是否被破坏、被篡改和丢失等;

(11)源地址:数据向外发送,发送机器本身的IP地址,也成为逻辑地址;

目的地址:数据具体要发送目标及其的IP地址。

(对应IP数据报wireShark抓包图解)

(三)逻辑地址和物理地址解释:

(1)逻辑地址:(工作在网络层,网络级)也称为IP地址,具有特征 ① 全局唯一性;② 使用软件来实现网络中地址管理;③ 占32位,4字节;

(2)?物理地址:也称为硬件地址、链路地址或MAC地址,(工作在网络接口层)具有特征:① 本地范围唯一性;② 使用硬件实现(路由器、计算机有设置MAC地址的位置);③ 占48位,12字节,16进制表示!例如:74-E5-0B-35-60-16 :0111 ?0100-1110 ?0101-0000 ?1011-0011 ?0101-0110 ?0000-0001 ?0110。

(四)为什么有了IP地址,还要使用MAC地址:

① IP地址一般情况下容易修改和变动,具有随意性,不能在网络上固定标识一台设备;

② MAC地址一般情况出厂时由厂家烧录到网卡中,不容易修改,在局域范围内容易唯一定位一台设备。

③ 从拓扑结构和分层上分析,IP地址属于网络层,主要功能在广域网范围内路由寻址,选择最佳路由,而MAC地址在网络接口层要形成适合于网络媒体上传输的数据帧。

注意:标识一个设备的三种方式:① 域名访问(,应用层);② 设备的IP地址访问(网络层);③ 设备的MAC地址(在局域网当中唯一标识该设备,实际不用其访问,在网络接口层,具有固定的特性,不易发生紊乱现象)。

---------------------

原文:

ip协议优缺点

优点:

(1)开放的协议标准,可以免费使用,并且独立于特定的计算机硬件与操作系统;

(2)独立于特定的网络硬件,可以运行在局域网、广域网,更适用于互联网中;

(3)统一的网络地址分配方案,使得整个TCP/IP设备在网中都具有惟一的地址;

(4)标准化的高层协议,可以提供多种可靠的用户服务。

缺点:

该模型没有清楚地区分哪些是规范、哪些是实现;其次,TCP/IP模型的主机—网络层定义了网络层与数据链路层的接口,并不是常规意义上的一层,接口和层的区别是非常重要的,TCP/IP模型没有将它们区分开来。

(责任编辑:IT教学网)

更多

推荐PowerPoint文章