计算机网络——网络层协议
来源:互联网 发布:go语言编程 视频 编辑:程序博客网 时间:2024/06/05 05:56
IP:网际协议
IP是TCP/IP协议中最为核心的协议,所有TCP、UPD、ICMP和IGMP数据都是以IP数据报格式传输。
IP协议提供不可靠、无连接的数据报传输服务。
不可靠(unreliable):的意思是它不保证IP数据报能成功的到达目的地。IP仅提供最好的传输服务。
无连接:是指IP并不维护任何关于后续数据报的状态信息,每个数据报的处理是相互独立的。
IP首部
4个字节的32位bit值以下面的次序传输:首先是0~7bit,其次是8~15bit,然后16~23bit,最后是24~31bit。这种传输次序称作big endian字节序。由于TCP/IP首部中所有二进制整数在网络中传输时都要以这种次序,因此它又称作网络字节序。
以其他形式存储二进制整数的机器,如little endian格式,则必须在传输数据之前把首部转换成网络字节序。
对首部各个位的解释:
4位版本:目前的协议版本号为4,IPv4。
4位首部长度:是指首部占32bit字的数目,包括任何选项,它是一个4bit字段,因此首部最长为60字节。
16位总长度字段:是指整个IP数据报的长度,以字节为单位,利用首部长度和字段和总长度字段,就可以知道IP数据报中数据内容的起始位置和长度。该字段长16比特,所以IP数据报最长可达到
16位标识字段唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就会增加1。
TTL(time-to-live)生存时间字段:设置了数据报可以经过的最多路由器数。它指定了数据报的生存时间。TTL的初始值由源主机设置(通常为32或64)。一旦经过一个处理它的路由器,它的值就减去1。当该字段的值为0时,数据报就被丢弃,并发送ICMP报文通知源主机。
首部检验和字段是根据IP首部计算的检验和码,它不对首部后面的数据进行计算。
如何计算一份数据报的IP检验和:
首先把检验和字段置为0。然后对首部中每个16bit进行二进制反码求和,结果存在检验和字段中。当收到一份IP数据报后,同样对首部中的每个16bit进行二进制反码的求和。由于接收方在计算过程中包含了发送方存在首部中的检验和,因此如果首部在传输过程中没有发生任何差错,那么接收方计算的结果应该为全1。如果结果不是全1(即检验和错误),那么IP久丢弃收到的数据报。但是不生成差错报文,由上层去发现丢失的数据报并进行重传。
IP路由选择
如果目的主机与源主机直接相连或都在一个局域网络上,那么IP数据报就直接送到目的主机上。否则,主机把数据报发往一默认的路由器上,由路由器来转发该数据报。
IP路由表主要完成以下这些功能:
搜索路由表,寻找能与目的IP地址完全匹配的数目(网络号和主机号都要匹配)。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口。
搜索路由表,寻找能与目的网络号相匹配的表目。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口,目的网络上所有主机都可以通过这个表目来处置。
搜索路由表,寻找标为默认(default)的表目,如果找到,则把报文发送给该表目指定的下一站路由器。
如果上述步骤都没有成功,那么该数据报就不能被传送。一般会想生成数据报的应用程序返回一个“主机不可达”或“网络不可达”的错误。
子网寻址
不单单把主机看成由单纯的一个网络号和一个主机号组成,而是把主机号再分成一个子网号和一个主机号。
这样做的原因是因为A类和B类地址为主机号分配了太多的空间,可分别容纳的主机数为
子网掩码
除了IP地址以外,主机还需要知道有多少比特用于子网号及多少比特用于主机号。这是通过子网掩码来确定的。这个掩码是一个32bit的值,其中值为1的比特留给网络号和子网号,为0的比特留给主机号。
ARP:地址解析协议
RARP:逆向地址解析协议
ICMP:Internet控制报文协议
ICMP是IP层的一个组成部分,它传递差错报文以及其他需要注意的信息。
ICMP报文是在IP数据报内部被传输的,如图,
ICMP报文格式如图6-2所示。所有报文的前4个字节都是一样的,但是剩下的其他字节则互不相同。
类型字段可以有15个不同的值,以描述特定类型的ICMP报文。某些ICMP报文还使用代码字段的值来进一步描述不同的条件。
各种类型的ICMP报文如图6-3所示,不同类型由报文中的类型字段和代码字段共同决定。
图中,最后两列表明ICMP报文是一份查询报文还是一份差错报文。
- 计算机网络——网络层协议
- 计算机网络——网络层
- 计算机网络——网络层
- 计算机网络——网络层
- 计算机网络—网络层1
- [计算机网络笔记]第四部分——网络层 选路协议 因特网的选路协议
- 计算机网络协议第三章,网络层协议
- 计算机网络——传输层协议
- 计算机网络—传输层协议之TCP
- 计算机网络—传输层协议之UDP
- 计算机网络 4.网络层与IP协议
- 计算机网络:网络层与IP协议
- 计算机网络——网络层(一)
- 计算机网络基础——网络层
- 计算机网络——网络层篇
- 计算机网络五层协议——TCP协议实例图解
- 计算机网络——数据链路层、网络层
- 网络层协议——IP协议
- 获取url参数以及出现乱码
- Regular Expression Syntax
- 安全测试学习准备工作
- 使Apache Spark和Mysql作数据分析
- Easy-40
- 计算机网络——网络层协议
- 测试配置
- VC查看某IP是否可以ping通
- keras的零碎笔记
- jQuery基本选择器
- jmeter之参数化简介
- Spark Streaming学习(1)
- Mysql数据库学习笔记之数据库索引(index)
- C语言进阶之类型转换