`
hideto
  • 浏览: 2678985 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

TCP-IP详解笔记1.3 IP:网际协议

阅读更多
from http://www.beyondrails.com/blogs/22

1,TCP
英文原义:Transmission Control Protocol
中文释义:传输控制协议(RFC-793)
该协议主要用于在主机间建立一个虚拟连接,以实现高可靠性的数据包交换。
IP协议可以进行IP数据包的分割和组装,但是通过IP协议并不能清楚地了解到数据包是否顺利地发送给目标计算机。
而使用TCP协议就不同了,在该协议传输模式中在将数据包成功发送给目标计算机后,TCP会要求发送一个确认;如果在某个时限内没有收到确认,那么TCP将重新发送数据包。
另外,在传输的过程中,如果接收到无序、丢失以及被破坏的数据包,TCP还可以负责恢复。
传输控制协议(Transmission Control Protocol,TCP)是一种面向连接的、可靠的、基于字节流的运输层通信协议,通常由IETF的RFC 793说明。
在简化的计算机网络OSI模型中,它完成运输层所指定的功能。
百度百科:TCP

2,UDP
英文原义:User Datagram Protocol
中文释义:用户数据报协议(RFC 768)
用户数据报协议(UDP)是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
UDP 协议基本上是IP协议与上层协议的接口。
UDP协议适用端口分别运行在同一台设备上的多个应用程序。
与TCP不同,UDP并不提供对IP协议的可靠机制、流控制以及错误恢复功能等。
由于UDP比较简单,UDP头包含很少的字节,比TCP负载消耗少。
UDP适用于不需要TCP可靠机制的情形,比如,当高层协议或应用程序提供错误和流控制功能的时候。
UDP是传输层协议,服务于很多知名应用层协议,包括网络文件系统(NFS)、简单网络管理协议(SNMP)、域名系统(DNS)以及简单文件传输系统(TFTP)。
百度百科:UDP

3,ICMP
英文原义:Internet Control Message Protocol
中文释义:Internet控制消息协议(RFC 792)
该协议是TCP/IP协议集中的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。
当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。
我们可以通过Ping命令发送ICMP回应请求消息并记录收到ICMP回应回复消息,通过这些消息来对网络或主机的故障提供参考依据。
百度百科:ICMP

4,IGMP
英文原义:Internet Group Management Protocol
中文释义:Internet组管理协议
Internet组管理协议(IGMP)是因特网协议家族中的一个组播协议,用于IP主机向任一个直接相邻的路由器报告他们的组成员情况。
IGMP信息封装在IP报文中,其IP的协议号为 2。
IGMP具有三种版本,即IGMP v1、v2和v3。
IGMPv1: 主机可以加入组播组。没有离开信息(leave messages)。路由器使用基于超时的机制去发现其成员不关注的组。
IGMPv2: 该协议包含了离开信息,允许迅速向路由协议报告组成员终止情况,这对高带宽组播组或易变型组播组成员而言是非常重要的。
IGMPv3: 与以上两种协议相比,该协议的主要改动为:允许主机指定它要接收通信流量的主机对象。来自网络中其它主机的流量是被隔离的。IGMPv3 也支持主机阻止那些来自于非要求的主机发送的网络数据包。
百度百科:IGMP

5,不可靠和无连接
不可靠(unreliable)的意思是它不能保证IP数据报能成功地到达目的地。
IP仅提供最好的传输服务。
如果发生某种错误时,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息报给信源端。
任何要求的可靠性必须由上层来提供(如TCP)。
无连接(connectionless)这个术语的意思是IP并不维护任何关于后续数据报的状态信息。
每个数据报的处理是相互独立的。这也说明,IP数据报可以不按发送顺序接收。
如果一信源向相同的信宿发送两个连续的数据报(先是A,然后是B),每个数据报都是独立地进行路由选择,可能选择不同的路线,因此B可能在A到达之前先到达。

6,IP首部
IP数据报格式及首部中的各字段:

服务类型(TOS)字段包括一个3 bit的优先权子字段(现在已被忽略),4 bit的TOS子字段和1 bit未用位但必须置0。
4 bit的TOS分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。
4 bit中只能置其中1 bit。如果所有4 bit均为0,那么就意味着是一般服务。
RFC 1340[Reynolds and Postel 1992]描述了所有的标准应用如何设置这些服务类型。
RFC 1349[Almquist 1992]对该RFC进行了修正,更为详细地描述了TOS的特性。
不同应该建议的TOS值,最后一列给出的十六进制值就是tcpdump的输出:

现在大多数的TCP/IP实现都不支持TOS特性。

TTL(time-to-live)生存时间字段设置了数据报可以经过的最多路由器数。
它指定了数据报的生存时间。TTL的初始值由源主机设置(通常为32或64),一旦经过一个处理它的路由器,它的值就减去1。
当该字段的值为0时,数据报就被丢弃,并发送ICMP报文通知源主机。

7,IP路由选择
从概念上说, IP路由选择是简单的,特别对于主机来说。如果目的主机与源主机直接相连(如点对点链路)或都在一个共享网络上(以太网或令牌环网),那么IP数据报就直接送到目的主机上。
否则,主机把数据报发往一默认的路由器上,由路由器来转发该数据报。大多数的主机都是采用这种简单机制。
IP层在内存中有一个路由表。当收到一份数据报并进行发送时,它都要对该表搜索一次。
当数据报来自某个网络接口时,IP首先检查目的IP地址是否为本机的IP地址之一或者IP广播地址。
如果确实是这样,数据报就被送到由IP首部协议字段所指定的协议模块进行处理。
如果数据报的目的不是这些地址,那么(1)如果I P层被设置为路由器的功能,那么就对数据报进行转发;否则(2)数据报被丢弃。

路由表中的每一项都包含下面这些信息:
1)目的IP地址
2)下一站路由器(next-hop router)的IP地址
3)标志(其中一个标志指明目的I P地址是网络地址还是主机地址,另一个标志指明下一站路由器是否为真正的下一站路由器,还是一个直接相连的接口)
4)为数据报的传输指定一个网络接口

IP路由选择主要完成以下功能:
1)搜索路由表,寻找能与目的IP地址完全匹配的表目(网络号和主机号都要匹配)
2)搜索路由表,寻找能与目的网络号相匹配的表目
3)搜索路由表,寻找标为“默认(default)”的表目
如果上面这些步骤都没有成功,那么该数据报就不能被传送。
如果不能传送的数据报来自本机,那么一般会向生成数据报的应用程序返回一个“主机不可达”或“网络不可达”的错误。

默认路由,以及下一站路由器发送的ICMP间接报文(如果我们为数据报选择了错误的默认路由),是IP路由选择机制中功能强大的特性。
为一个网络指定一个路由器,而不必为每个主机指定一个路由器,这是IP路由选择机制的另一个基本特性。这样做可以极大地缩小路由表的规模。

8,子网寻址
现在所有的主机都要求支持子网编址(RFC 950[Mogul and Postel 1985])。
不是把IP地址看成由单纯的一个网络号和一个主机号组成,而是把主机号再分成一个子网号和一个主机号。
这样做的原因是因为A类和B类地址为主机号分配了太多的空间,可分别容纳的主机数为2^24-2和2^16-2。
事实上,在一个网络中人们并不安排这么多的主机。
由于全0或全1的主机号都是无效的,因此我们把总数减去2。
例如,这里有一个B类网络地址(140.252),在剩下的16 bit中,8 bit用于子网号,8 bit用于主机号,格式如下图所示。
这样就允许有254个子网,每个子网可以有254台主机。


9,子网掩码
除了IP地址以外,主机还需要知道有多少比特用于子网号及多少比特用于主机号。
这是在引导过程中通过子网掩码来确定的。
这个掩码是一个32 bit的值,其中值为1的比特留给网络号和子网号,为0的比特留给主机号。
下图是两种不同的子网掩码格式:

给定IP地址和子网掩码以后,主机就可以确定IP数据报的目的地址是:
(1)本子网上的主机;
(2)本网络中其他子网中的主机;
(3)其他网络上的主机。
如果知道本机的IP地址,那么就知道它是否为A类、B类或C类地址(从IP地址的高位可以得知),也就知道网络号和子网号之间的分界线。
而根据子网掩码就可知道子网号与主机号之间的分界线。

假设我们的主机地址是140.252.1.1(一个B类地址),而子网掩码为255.255.255.0(其中8 bit为子网号,8 bit为主机号)。
1)如果目的IP地址是140.252.4.5,那么我们就知道B类网络号是相同的(140.252),但是子网号是不同的(1和4)。
2)如果目的IP地址是140.252.1.22,那么B类网络号还是一样的(140.252),而且子网号也是一样的(1),但是主机号是不同的。
3)如果目的IP地址是192.43.235.6(一个C类地址),那么网络号是不同的,因而进一步的比较就不用再进行了。
给定两个IP地址和子网掩码后, IP路由选择功能一直进行这样的比较。

10,7个特殊的IP地址
在这个图中, 0表示所有的比特位全为0;-1表示所有的比特位全为1;netid、subnetid和hostid分别表示不为全0或全1的对应字段。
子网号栏为空表示该地址没有进行子网划分。


11,一个子网的例子


12,ifconfig/netstat
ifconfig用来查看和编辑系统的网络配置
netstat用来监控和显示网络接口设备的状态信息

13,IP的未来
IP主要存在三个方面的问题,这是Internet在过去几年快速增长所造成的结果:
1)超过半数的B类地址已被分配
2)32bit的IP地址从长期的Internet增长角度看,是不够用的
3)当前的路由结构没有层次结构,属于平面型(flat)结构,每个网络都需要一个路由表目

目前IP协议的版本号是4(简称为IPv4),它的下一个版本就是IPv6。
IPv6正处在不断发展和完善的过程中,它在不久的将来将取代目前被广泛使用的IPv4。

与IPV4相比,IPV6具有以下几个优势:
一,IPv6具有更大的地址空间。IPv4中规定IP地址长度为32,即有2^32-1(符号^表示升幂,下同)个地址;而IPv6中IP地址的长度为128,即有2^128-1个地址。
二,IPv6使用更小的路由表。IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。
三,IPv6增加了增强的组播(Multicast)支持以及对流的支持(Flow Control),这使得网络上的多媒体应用有了长足发展的机会,为服务质量(QoS,Quality of Service)控制提供了良好的网络平台。
四,IPv6加入了对自动配置(Auto Configuration)的支持。这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。
五,IPv6具有更高的安全性。在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,极大的增强了网络的安全性。
分享到:
评论

相关推荐

    TCP-IP详解卷一:协议

    《TCP/IP详解卷一:协议》是一本深入探讨TCP/IP协议族的专业书籍,它为读者提供了全面而细致的网络通信理论和技术知识。TCP/IP协议是互联网的基础,它定义了网络设备如何交换数据以及数据如何被封装、传输和解封装的...

    TCP-IP详解卷二:实现

    《TCP/IP详解卷二:实现》是一本深入探讨TCP/IP协议族实现细节的专业书籍,它在TCP/IP协议的三卷系列中占据着重要的位置。这本卷主要关注协议的实际操作和工作原理,对于网络通信、系统管理员、软件开发人员以及对...

    TCP-IP-Illustrated-vol1:《 TCPIP详解卷1:协议》笔记

    《TCP/IP详解卷1:协议》是一本深入探讨TCP/IP协议族的经典著作,由W. Richard Stevens撰写。这本书详尽地介绍了TCP/IP协议的基本概念、工作原理和实现细节,是IT从业者和网络工程师的重要参考资料。笔记内容可能...

    TCP-IP学习总结笔记.pdf

    TCP/IP协议是互联网通信的基础,它定义了网络设备如何连接到互联网以及数据如何在它们之间传输的规则。TCP/IP协议栈由四层组成,分别对应OSI参考模型的某些层,但并不完全相同。 1. **应用层**:这一层包含了许多...

    TCP/IP详解卷1-3

    《TCP/IP详解卷1-3》是一套深入探讨TCP/IP协议族的经典著作,由Stephen A. Thomas和W. Richard Stevens两位作者共同撰写。这套书籍详细地解析了互联网协议的各个方面,是IT行业内学习网络通信技术的重要参考书。下面...

    microchip TCP/IP协议栈应用笔记V3.6

    2. **网络层**:IP协议在此层起核心作用,负责数据包的路由和传递。同时,ICMP(Internet控制消息协议)用于错误报告和网络诊断。 3. **传输层**:TCP和UDP是传输层的主要协议。TCP提供可靠的数据传输,包括连接...

    TCP/IP 协议笔记

    ### TCP/IP协议详解 #### 一、引言与历史背景 TCP/IP协议族,作为现代互联网的基石,其影响力远超出了最初的预期。这一协议族起源于20世纪60年代末,当时由美国政府资助的一项分组交换网络研究项目孕育了TCP/IP的...

    《TCPIP详解 卷1:协议》的读书笔记

    tcp协议 # 目录 [1. 概述](./1. 概述.md) [2. 链路层](2. 链路层.md) [3. IP:网际协议](3. IP:网际协议.md) [4. ARP:地址解析协议](4. ARP:地址解析协议.md) [5. RARP:逆地址解析协议](5. RARP:逆地址...

    TCPIP详解》学习笔记

    TCP/IP详解的学习笔记涵盖了IP协议的关键概念和技术细节。IP,即网际协议,是互联网通信的基础,具有不可靠和无连接的特点。不可靠意味着IP不保证数据报能成功到达目的地,错误时会丢弃数据包并发送ICMP消息。可靠性...

    2015西电毕业生工作编程笔记

    - TCP/IP 分层:应用层、传输层、网际层、网络接口层。其中,应用层对应 OSI 的应用层、表示层和会话层,传输层对应传输层,网际层对应网络层,网络接口层对应数据链路层和物理层。 - OSI 分层:应用层、表示层、...

    计算机第五次作业网络.docx

    11. **TCP/IP协议全称**:TCP/IP协议是传输层协议和网际协议的简称,用于实现网络间的数据通信。 12. **网络诊断**:使用ping命令向远程IP发送请求,若收到4个应答,表明已成功使用默认网关。 13. **电子邮件处理*...

    计算机国一练习题.doc

    1. TCP/IP协议是传输控制协议和网际协议的简称,它是互联网上最基础的通信协议,负责在网络中传输数据。 2. ISO/OSI参考模型的最高层是应用层,它提供了用户与网络的接口;最低层是物理层,负责在物理介质上传输...

Global site tag (gtag.js) - Google Analytics