<再看TCP/IP第一卷>关于网络层及协议细节---IP协议

说到关于IP协议,就必须先说IP协议的两个特性:

(一)不可靠性(unreliable)

不可靠性的意思是它不能保证IP数据报能成功地到达目的地,IP所能做的只是提供最好的传输服务,IP有一个简单的错误处理算法:丢弃该数据,然后发送ICMP消息报给信源端,任何的可靠性就必须由上一层的协议来提供。

(二)无连接性(connectionless)

无连接性的意思是IP并不维护任何关于后续的数据报(datagram)的状态信息,数据报之间是平行的互不干涉,IP不维护后续的状态信息。

IP数据报的格式如下图所示:

IP数据报的传输使用的是大尾方式,大尾方式即人们写数据的正常方式,但是在计算机看来这是不正常的,如果你接触过一些机器语言或者一些二进制码的改写就会知道计算机中一般储存数据的方式都是小尾方式,小尾方式通俗地讲即从右向左按字节读/写,更多资料自行百度。

TOS字段分为两个部分3bit的优先权子字段和4bit的服务类型字段和一个1bit的未用位但必须得置0,4bit的TOS分别代表:1.最小时延  2.最大吞吐量  3.最高可靠性和最小费用。4bit中只能置其中的1bit。如果所有的4bit都为0那么就意味着是一般的服务。

总长度字段是指的整个IP数据报的长度,以字节为单位,利用首部长度字段和总长度字段,就可以知道整个IP数据报中包裹的内容的具体的位置和长度。由于该字段的总位数为16,所以IP数据报的长度可达65535字节,IP数据报在链路层因MTU的影响而分片时,该字段的值也就随之变化。标识符字段和分片有关,以后再作详细论述。

总长度字段的必要性:尽管以太网的最小帧的长度为46字节,但是IP数据可能会更短需要填充一些数据来达到最小的长度,如果没有总长度字段,IP层就不会知道46字节中有多少的字节是IP数据报的内容。

TTL是数据报可以经过的路由器的最多数目,他指定了数据报的生存时间,TTL的初始值一般由主机设置,一旦经过一个路由它的数目就将要减去1,当该字段等于0时,数据报就会被丢弃,并发送ICMP报文通知源主机,这也就是IP协议错误检查的简单算法。

首部检验和字段是根据IP首部计算的检验和码,并不对后面的数据进行计算。

IP路由的选择

如果目的主机和源主机直接相连或者都在一个共享网络上(以太网或者令牌环网)那么IP数据报就直接送到目的主机上,否则主机把数据报发往默认路由器上,由该路由器来进行转发,大多数的主机都是采用的这种简单的机制。当今大多数的用户系统包括几乎所有的unix系统,都以配置成一个路由器,我们可以为它指定主机或者简单的路由算法。本质上的区别在于主机从不把数据报从一个接口转发到另一个接口,而路由器则要转发数据报。内含的路由器功能的主机应该从不转发数据报,除非它被设置成那样。

在一般的体制中,IP可以从TCP,UDP,ICMP和IGMP接受数据报(即在本地生成的数据报)并进行发送,或者从一个网络接口接受数据报并进行发送,IP层在内存中有一个路由表。当接受到一份数据报并继续发送的时候,它都要对该表搜索一次,当数据来自某一个网络接口的时候,IP首先检查目的地址是否为本机的IP地址之一或者IP广播地址。如果确实是这样,数据报就被送到由IP首部协议字段所指定的协议模块进行处理。如果数据报的目的地址不是这些地址,则:(1)当IP层被设置为路由器的功能,那么就对数据报进行转发(2)否则数据包就直接被丢弃。

路由表中的每一项都包含下面的这些信息:

(1)目的IP地址,它既可以是一个网络地址,也可以是一个完整的主机地址。

(2)下一站路由器的IP地址

(3)标志,其中一个标志指明IP地址是网络地址还是主机地址,另一个标志指明下一站路由器是否为真正的下一站路由器。

IP路由的选择是逐跳地完成地,从这个路由表信息可以看出。IP并不知道到达任何目的的完整路径。所有的IP路由选择只为数据报传输提供下一站路由器的IP地址,它假定下一站的路由器比发送数据报的主机更接近目的,而且下一站路由器于该主机是直接相连的。

IP路由选择主要完成以下这些功能:

(1)搜索路由表,寻找能与目的IP地址完全匹配的表目,如找到,则把报文送给该表目指定的下一站或直接连接的网络接口。

(2)搜索路由表,寻找能与目的网络号完全匹配的表目,如果找到,就把报文发送给该表目指定的下一站路由器或直接相连的网络接口。目的网络上的所有的主机都可以通过这个表目来进行寻径。

(3)搜索路由,寻找标为“default”的表目,如果找到,则把报文发送给该表目指定的下一个路由器。

(4)如果以上的步骤都没有成功,那么该数据报就不能被传送,会向生成该数据报的应用程序返回一个主机不可达或者网络不可达的错误。

时间: 2024-08-23 23:31:58

<再看TCP/IP第一卷>关于网络层及协议细节---IP协议的相关文章

&lt;再看TCP/IP第一卷&gt;关于网络层及协议细节---IP协议(2)--移动IP及DHCP

题外话:本来想按照互联网的层级自下向上回顾这些协议的,但是今天实在得破个例,DHCP不得不说! 主机从一个网络迁移到另一个网络,那么IP编址的结构就要发生改变,当今主流有如下几种修改方案: (一)改变地址: 主机在移动到新的网络的时候改变它的地址,这里需要DHCP协议,将其和新的网络关联起来,这么做的话需要我们手动修改可能需要如下的命令 1 sudo vim /etc/network/interface 每次修改若想要使修改之后生成的IP地址生效,大部分情况下需要我们重启主机 1 /etc/in

&lt;再看TCP/IP第一卷&gt;关于链路层的知识细节及相关协议

在TCP/IP协议族中,链路层的主要有三个目的: (1)为IP模块发送和接受数据报 (2)为ARP模块发送ARP请求和接受ARP应答 (3)为RARP发送RARP请求和接受RARP应答 TCP/IP支持多种不同的链路层协议,这取决于网络所使用的硬件,如以太网,令牌环网,FDDI,及RS-232串行线等. 两个串行接口链路层协议: SLIP:(Serial Line IP)它是一种在串行线路上对IP数据报进行封装的简单形式,SLIP适合用于家庭中每台计算机及都有的RS-232串行端口和告诉调制解调

TCP/IP入门(2) --网络层

/** 本篇博客由汗青ZJF整理并发布, 转载请注明出处: http://blog.csdn.net/zjf280441589/article/category/1854365 */ 什么是虚拟网络互连? 所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的(比如局域网有的采用的是以太网, 有的采用令牌环网),但是我们利用 IP 协议就可以使这些性能各异的网络从用户角度来看好像是一个统一的网络(在网络的上层, 我们看不到各网络具体的异构网络细节).使用I

柯南君:看TCP/IP 之一 (协议分层)

柯南君:今天无意中翻到一本书<TCP/IP 详解 >,据说是一本不错的书,就情不自禁的读了起来,果不其然,很不错,通俗易懂,在这里,就加一点自己的想法,和大家分享一下: 为什么需要TCP/IP? 很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但T C P / I P协议族允许它们互相进行通信.这一点很让人感到吃惊,因为它的作用已远远超出了起初的设想.T C P / I P起源于6 0年代末美国政府资助的一个分组交换网络研究项目,到9 0年代已发展成为计算机之间最常应用的组网形

柯南君:看TCP/IP 之 二 (IP:网际协议)

柯南君上一章讲了<TIP/IP之协议分层>,本章主要讲一下IP协议,这个是大家最关注的   一.概念:       IP是TCP / IP协议族中最为核心的协议.所有的TCP.UDP.ICM P及IGMP数据都以IP数据报格式传输.许多刚开始接触TCP/IP的人对IP提供不可靠.无连接的数据报传送服务感到很奇怪,特别是那些具有X.25或SNA背景知识的人.      不可靠(unreliable)的意思是它不能保证IP数据报能成功地到达目的地.IP仅提供最好的传输服务.如果发生某种错误时,如某

TCP/IP具体解释--UDP数据报中的IP分片

1.UDP首部 2.UDP分片 在第二章,讲链路层是,提到过以太网.刨除数据帧帧头.最多传输的长度为1500.也就是说,假设一个ip数据报,长度大于1500,则须要分片. 分片方法: 在ip头中3位标志,13位片偏移,这俩东西就是用来分片的. 3位标志中:一个很多其他的片标识.除了最后一个分片,其他分片都要有这个标识,另一个不分片标识,假设置上.则即便IP数据报再长.也不分片.可是会将该IP数据报丢弃,并发送一个ICMP差错报文给发送端. 13位片偏移:用于表示相对于起始的偏移量,就是个offs

TCP/IP协议之IP层

TCP/IP协议的结构参见下图.有应用层,运输层,网络层,链路层. 但是如果更细化的话,其实还有几层没在这上面体现出来. 1 表示层:数据格式化,代码转换,加密. 没有协议 2 会话层:解除或者建立与其他结点的联系.没有协议 3 物理层:以二进制形式在物理链路上传输数据.协议有ISO2100,IEEE802 在上图中加上这三层协议.就构成了OSI七层协议网络模型.从上到下分别是应用层,表示层,会话层,传输层,网络层.数据链路层,物理层. 为什么一个数据传输要分成这么多层呢.统一为一个模块不行么.

TCP/IP协议与HTTP协议(一)

1.什么是TCP/IP  如果要了解一个人,可以从他归属的集体聊起来.我们的HTTP协议就属于TCP/IP协议家族中的一员,了解HTTP协议再整个网络流程中的地位,也能更加充分的理解HTTP协议. 要想了解什么是TCP/IP协议,就要知道为什么有这个协议.中国人和中国人说话,要遵循汉语的的语法结构,使用汉语的发音.当我们和外国人交流时,就要适用外国的语言了,遵循外国的语法机构和发音.其实这就是一种协议,只不过我们称之为语言.计算机再这方面体现的更为直观,两台机器之间该如何通信呢,就需要制定各种各

转_结合Wireshark捕获分组深入理解TCP/IP协议之IP协议

转自: http://blog.chinaunix.net/uid-9112803-id-3213492.html 摘要: 本文简单介绍了网络层理论知识,详细讲解了IP数据报各个字段,并从Wireshark俘获分组中选取IP数据报进行分析,也阐述了分组和分片的区别. 一.IPv4数据报 网络层是处理端到端数据传输的最低层.网络层关注如何将分组从源端沿着网络路径送达目的端,期间可能需要经过许多跳中间路由器.即提供转发(数据从路由器那个接口出去).选路(发送方与接收方间的路径).网络建立(如ATM.