tcp/ip详解 卷一 读书笔记 02

Ip协议是tcp/ip协议族中最重要的协议
Ip协议具有两个特性,不可靠和无连接

Ip头
普通的ip头有20个字节。
如果含有选项会更多

版本号: 4bit

首部长度: 4bit 
ip头占32bit字的数目。由此推出ip头最多可为60个字节

服务类型 tos字段:
包括一个3bit的优先权子字段,4bit的TOS子字段和1bit的未用位(必须置0)
4bit的tos分别表示:
最小时延
最大吞吐量
最高可靠性
最小费用
4bit中只能有一位置1,如果所有4bit均为0,那么意味着是一般服务

总长度字段:16bit
整个ip数据报的长度.所以一个ip数据包的最大长度为65535
主机不能接收超过576字节的数据报
以太网的最小帧长为46个字节

标识:16 bit
唯一表示主机发送的每一帧数据报,通常每发送一份报文它的值就会增1

TTL: (time to live) 8bit
设置了数据报可以经过的最多路由器数,它指定了数据报的生存时间.ttl的初始值由源主机设置。一旦经过一个处理它的路由器,它的值就减去一,当该字段的值为0时,数据报就被丢弃。并发送ICMP报文统治源主机

协议字段:8bit
区分传输层协议

首部校验和字段:16bit
根据ip首部计算的校验和码

每一个ip数据报都包含目的地址和源地址.都是32bit值

任选项:
可有可无.目前有以下任选项
1, 安全和处理限制
2, 记录路径 (让每个路由器都记录他的ip地址)
3, 时间戳 (让每个路由器都记录他的ip地址和时间)
4, 宽松的源站选路(为路由器指定一系列必须经过的ip地址)
5, 严格的源站选路(为路由器指定只能经过的ip地址)
选项字段用32bit为界限。没有则填0.保证了ip首部始终为32bit的倍数

Ip路由:
如果目的地址和源地址直接相连或者都在一个共享网络上。那么ip数据报就直接送到目的主机上。否则,主机把数据报发往一默认的路由器上,由路由器来转发该数据报

主机和路由器的区别在于,主机从来不把数据报从一个接口转发到另一个接口,但路由器则转发数据报

Ip层在内存中有一个路由表,当收到一份数据报并进行发送时,它都要对该表搜索一次。当数据报来自某个网络接口时,ip层首先检查目的ip地址是否为本机的ip地址之一或者是ip广播地址.如果确实是这样,数据报就被送到由ip首部协议字段所指定的协议模块进行处理。
如果数据报的目的不是这些地址,那么如果ip层被设置为路由器的功能,那么就对数据报进行转发。否则数据报被丢弃

路由表中的每一项都包含下面这些信息:
目的ip地址。它可以是一个完整的主机地址,也可以是一个网络地址。由该表目中的标志字段来指定。主机地址有一个非0的主机号。以指定某一特定的主机。而网络地址的主机号为0,用来指定网络中的所有主机.
下一站(或下一跳)路由器(next-hop router)的ip地址,或者有直接连接的网络ip地址。下一站路由器是指一个在直接相连网络上的路由器,通过它可以转发数据报。
标志。其中一个标志指明目的ip地址是网络地址还是主机地址。另一个标志指明下一站路由器是否为真正的下一站路由器。还是一个直接相连的接口
为数据报的传输指定一个网络接口

Ip路由选择:
1, 搜索路由表,寻找能与目的ip地址完全匹配的表目(网络号和主机号都要匹配)。
如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口
2, 搜索路由表,寻找能与目的网络号相匹配的表目。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口。
3, 搜索路由表,寻找标为默认的表目。如果找到,则把报文发送给该表目指定的下一站路由器.
4,  如果以上步骤都没有成功,那么该数据报就不能呢个被传递。这时会抛出一个主机不可达或者网络不可达错误。

每一个网络地址分为子网号和主机号



问题一,网络字节序到底是什么意思,首先0—7bit,其次8-15bit,然后16-23bit,最后是23-31bit.问题是到底怎么分段?难道是分成4个包发过去,第一个包7bit,第二包8bit这样吗?
可是按理说 一个ip数据报 应该是一个整体发过去才对.
问题二,3位标识和13位片偏移 起什么作用
问题三,什么是icmp报文?是链路层协议还是网络层协议还是运输层协议
问题四,ttl最大为8位,那是不是表示一个ip数据报最大只能穿越256个路由器?
问题五,本机地址和本机广播地址有什么区别
问题六,主机地址和网络地址有什么区别
主机地址的主机号为非0,网络地址的主机号为0

主机号分成一个子网号和主机号

你可能感兴趣的:(网络协议,读书)