TCP/IP 卷一 ----------IP:网际协议

3.1 引言

所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。

IP是不可靠协议,即它不能保证IP数据报能成功到达目的地。任何要求的可靠性都由其上层协议完成。

IP是无连接的,即IP并不维护任何关于后续数据报的状态信息。

每个IP数据报的处理都是相互独立的,因此IP数据报是可以不按照发送顺序接收的。

3.2 IP首部

IP数据报的格式:

图1 IP报文首部

1)版本号:目前为4,即IPV4

2)首部长度:指首部站32bit字的数目,4位,所以首部最长为60个字节。对于没有选项值的IP数据报长度均为5

3)服务类型:一个3bit的优先权子字段(现已被忽略),4bit的TOS子字段和1bit未用位(需置零)。4bit的TOS分别表示:最小延时、最大吞吐量、最高可靠性和最小费用。这4bit只能有一位置为1bit,其他的要为0,如果四位全都置为0,则表示是一般服务

                                   图2   服务类型字段推荐值

Telnet 和 Rlogin 主要用来传输少量的交互数据,所以交互应用要求最小时延。

4)总长度:整个IP数据报的长度,即首部加数据,因此根据该项和首部长度可以推算出数据部分的长度以及起始位置。IP数据报的最大长度是65535,但是通常在数据链路层通常都会被分片。总长度的另一作用是在IP数据报不到46字节时(以太网要求的最小长度)会根据总长度确定哪些是真正的IP数据哪些是填充数据

5)标识:每发依次报文他的值就会加1

6)生存时间TTL:数据报可经过的最多路由器数,一般有源主机进行设置,每经过一个路由就减一。当变为零,则丢弃报文,并发送ICMP报文通知源主机

7)选项:数据报中的一个可变长的可选信息,可选字段包括

安全和处理限制      记录路径    时间戳    宽松的源站选路   严格的源站选路

4个字节的32bit值以下面的次序传输:首先是0~7bit,其次是8~15bit,然后是16~23bit,最后是24~31bit。这种传输次序称为bit endian字节序(大端)。TCP/IP首部中所有的二进制整数在网络中传输时均要求以这种次序,因此它又称作网络字节序。以其他形式存储二进制整数的机器,如Little endian格式(小端),则需要在传输数据之前把首部转化成网络字节序。

3.3 IP路由选择

IP层即可以配置成路由器的功能,也可以配置成主机的功能

区别:主机不把数据报从一个接口转发到另一个接口,而路由器需要转发数据报。内含路由器功能的主机应该从不转发数据报,除非被它被设置为那样。

一般体制中,IP可以从TCP、UDP、ICMP和IGMP接收数据报(即本地生成的数据报)并进行发送,或者从一个网络接口接收数据报(待转发的数据报)并进行发送。IP层在内存中有一个路由表。每收到一份数据报,对该表进行搜索。当数据报来自某个网络接口时,IP首先检查目的IP地址是否为本机的IP地址之一或者IP广播地址,如果是则将数据报送到由IP首部协议字段所指定的协议模块进行处理,如果不是,则1)若IP层被设置为路由器的功能,则对数据报进行转发,否则2)数据报被丢弃

路由表项:

  • 目的IP地址。 该项既可以是完整的主机地址(非0主机号),也可以是网络地址(主机号为0)即可指定网络中的所有主机。
  • 下一站(下一跳路由)的IP地址,或者有直接相连的网络IP地址
  • 标志。一个标志指明目的IP地址是网络地址还是主机地址,另一个标志指明下一站路由器是否为真正的下一站路由器,还是一个直接相连的接口
  • 为数据报的传输指定一个网络接口

路由器功能:

  • 搜索路由表,找到与目的IP地址完全匹配的表项,将报文发送给该表项指定的下一站路由器或直接连接的网络接口
  • 找到与目的网络号匹配的表项,将报文发送给该表项所指定的下一站路由器或者直接相连接的网络接口
  • 都未能找到,则发送“默认”表项指定的下一站路由
  • 如果上述步骤都没有成功,在该数据报不能被传送,则会想生成数据报的应用程序返回一个“主机不可达”或者“网络不可达”

一般是为一个网络指定一个路由器,而非为每一个主机指定一个路由器

3.4  子网寻址

IP地址不再是简单的一个网络号和一个主机好组成,而是把主机号再分成一个子网号和一个主机号

对于外部路由器而言隐藏了内部网络组织的细节。子网对子网内部的路由器不透明

3.5 子网掩码

子网掩码是用来区分有多少比特用于子网号及多少比特用于主机号。值为1的是比特留给网络,0留给主机

子网掩码通常使用十六进制表示

3.6 特殊情况的IP地址

图3 特殊情况的IP地址

其中0表示所有比特位均为0;-1表示所有的比特位全为1;netid、subnetid和hostid表示不全为0或不全为1.子网号栏为空表示该地址并没有进行子网划分。

2.7 ifconfig

ifconfig命令一般在引导时运行,用于配置主机上的每个接口

2.8 netsat命令

netsat -i 打印出接口信息   -n 打印出IP地址

时间: 2024-11-11 03:09:31

TCP/IP 卷一 ----------IP:网际协议的相关文章

Python学习之——Tcp/ip基础/IP地址/DNS/端口简介

一.为什么需要tcp/ip,什么是tcp/ip? TCP/IP协议,即Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议.Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成.TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准.协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求.通俗

Linux 网卡驱动学习(六)(应用层、tcp 层、ip 层、设备层和驱动层作用解析)

本文将介绍网络连接建立的过程.收发包流程,以及当中应用层.tcp层.ip层.设备层和驱动层各层发挥的作用. 1.应用层 对于使用socket进行网络连接的server端程序.我们会先调用socket函数创建一个套接字: fd = socket(AF_INET, SOCK_STREAM, 0); 以上指定了连接协议,socket调用返回一个文件句柄,与socket文件相应的inode不在磁盘上,而是存在于内存. 之后我们指定监听的port.同意与哪些ip建立连接,并调用bind完毕port绑定:

【网络协议】TCP分段与IP分片

我们在学习TCP/IP协议时都知道,TCP报文段如果很长的话,会在发送时发生分段,在接受时进行重组,同样IP数据报在长度超过一定值时也会发生分片,在接收端再将分片重组. 我们先来看两个与TCP报文段分段和IP数据报分片密切相关的概念. MYU(最大传输单元) MTU前面已经说过了,是链路层中的网络对数据帧的一个限制,依然以以太网为例,MTU为1500个字节.一个IP数据报在以太网中 传输,如果它的长度大于该MTU值,就要进行分片传输,使得每片数据报的长度小于MTU.分片传输的IP数据报不一定按序

PV(访问量)、UV(独立访客)、IP(独立IP) (转)

网站统计中的PV(访问量):UV(独立访客):IP(独立IP)的定义与区别今天使用了雅虎统计,看到里面就有这个,就说说,其实里面的uv大家可能觉得很新奇,但是和站长统计里的独立访客是一样的嘛.--------首先来看看ip.uv和pv的定义----------PV(访问量):即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次.UV(独立访客):即Unique Visitor,访问您网站的一台电脑客户端为一个访客.00:00-24:00内相同的客户端只被计算一次.IP(独立IP

IP分片(IP Fragment)

为什么要分片 不同的链路类型能够支持的最大传输单元值(MTU: Maxitum Transmission Unit)主要是由相关RFC文档规定的,常见的以太网链路的MTU值为1500,如果需要转发的IP报文超出其转发接口的MTU值,则在转发该报文之前,需要将其分片,分为多个适合于该链路类型传输的报文,这些分片报文在到达接收方的时候,由接收方完成重组. 各种常见链路类型的MTU值如下图所示: 报文的分片和重组 我们先来看一下分片的过程,为了简单起见,我就用<TCPIP详解卷一>第11章<U

IP 和 IP地址的区别和联系

IP(internet protocol) 网际协议 和IP地址有人会把“IP”和“IP 地址”搞混,“IP”其实是一种协议的名称.IP 协议的作用是把各种数据包传送给对方.而要保证确实传送到对方那里,则需要满足各类条件.其中两个重要的条件是 IP 地址和 MAC地址(Media Access Control Address). IP 地址和 MAC地址:首先这里小编要给大家说的是,ip就像是你的房间号,mac地址就像是你的身份证号码.ip地址是可以改变的,而mac地址是厂商制定的不可改变的.I

虚拟IP技术 ip地址漂移技术

1.虚拟IP 在 TCP/IP 的架构下,所有想上网的电脑,不论是用何种方式连上网路,都必须要有一个唯一的 IP-address.事实上IP地址是主机硬件地址的一种抽象,简单的说,MAC地址是物理地址,IP地址是逻辑地址. 虚拟IP,就是一个未分配给真实主机的IP,也就是说对外提供服务器的主机除了有一个真实IP外还有一个虚IP,使用这两个IP中的任意一个都可以连接到这台主机. 虚拟IP一般用作达到HA(High Availability)的目的,比如让所有项目中数据库链接一项配置的都是这个虚IP

Rocks 头结点更改public IP 上网IP地址

大家好,双十一光棍节来了,疯狂购物的同时,别忘了晓晓神给大家带来的千金换不来的小知识点哦.O(∩_∩)O! Rocks 头结点更改  public  IP  上网IP地址 安装之前啊咱们注意几点和学习几个概念: ------------------------------------------------------------------ Definitions: >> ----------- >>1. <frontend_name> - the short nam

linux网络配置命令 ifconfig 、route 、ip 、ip route

ifconfig route ip ip route 一.ifconfig 命令(查看或配置Ip) 1.查看网络连接 # ifconfig  \\ 显示所有活动连接,不包令禁用的设备 或  # ifconfig -a  \\ 显示所有活动及非活动的连接 显示指定接口的连接 # ifconfig eth1 2.配置ip地址 # ifconfig eth1 192.168.0.1 netmask 255.255.255. 或 # ifconfig eth1 192.168.0.1/24 3.启用或禁