浅谈TCP/IP协议栈模型

TCP/IP协议栈参考模型


参考模型:应用层、传输层、网络IP层、链路层

链路层:给网络IP层提供访问接口,可以传输IP数据包

IP层:将数据包进行分组并发往目的主机或者网络,对分组进行排序,主要提供路由、网际互联和拥塞控制,包含网际控制报文协议ICMP和地址识别协议ARP

传输层:主要提供两种协议,传输控制协议TCP用户数据报协议UDP

TCP协议是一个面向连接的,可靠的协议,它利用IP层的机制在不可靠的连接的基础上实现可靠的连接,通过发送窗口控制,超时重发,分包等方法将一台主机发出的字节流发往互联网上的其它主机

UDP协议是一个不可靠的,无连接的协议,主要适用于不怕数据丢失,不需要对报文进行排序、流量控制的场景

应用层:基于TCP和UDP可实现很多的应用层协议,如基于TCP协议的文件传输协议FTP,Telnet协议,超文本链接HTTP协议,基于UDP协议有TFTP,网络管理协议SNMP,域名服务DNS,网络文件共享NFS和SAMBA等

链路层的主机到网络层协议

协议格式

目的地址(6字节)

源地址(6字节)

类型(2字节)

数据(46-1500字节)

CRC(4字节)

   

0800

IP数据

IP数据包(46-1500字节)

 
   

0806

ARP请求

ARP请求应答(28字节)|PAD(18字节)

 
   

8035

ARP请求应答(28字节)|PAD(18字节)

 

说明:以太网用48bit来表示源MAC地址和目的MAC地址

类型字段后是数据,对于以太网,规定数据段的大小范围是46个字节到1500个字节,不足的要用空字符填满,如ARP协议的数据格式为28字节,其后使用18个字节的占位符填充,满足最小长度

注意:数据段的长度有一个最大值MTU即最大传输单元,以太网为1500,如果IP层有一个要传送的数据长度比MTU大,在IP层数据要进行分片

CRC:CRC字段对帧内数据进行校验,保证数据传输的准确性,通常由硬件实现

下面是ARP抓包结果

IP层协议

IP层协议提供如下作用:

数据传送,将数据从一个主机传输到另一个主机

寻址,根据子网划分和IP地址,发现正确的目的主机地址

路由选择,选择数据在互联网上的传送路径

数据报文的分段,当传送的数据大于MTU时,将数据进行分段发送和接收并组装

协议格式

                        

说明:

标识和片偏移,在IP进行分片的时候,将标识复制的IP的头部标识数据报文的来源,还要加上分片在原数据报文中的偏移,便于之后进行组装,利用字段总长度和片偏移可以重新组装IP的数据报文

生存时间(TTL),表示数据报文最多可以经过的路由器的数量,源主机发送数据时设置TTL(一般为64或者64),经过一个路由器后TTL的值减一,当TTL为0的时候,路由器丢弃此包,并发送一个ICMP报文通知源主机,TTL的出现是由于包的传递过程中可能会出现错误情况,引起包在Internet的路由器之间不断循环,所以加入TTL限制报文经过路由器的个数。

协议类型,1->ICMP,2->IGMP,6->TCP,17->UDP

下面是IP层抓包结果

网际控制报文协议(ICMP)

ICMP协议作用:经常使用在传递差错信息,时间,回显,网络信息等报文控制数据

相关命令:ping,tracert

ping

-t:ping指定的ip,直到停止

-i:生存时间

-n:要发送的请求回显数

-w:等待每次回复的超时时间(ms单位)

-4:强制IPV4

tracert

-w:等待每个回复的超时时间

-4:强制IPV4

-d:不将地址解析成地址

下面为ping抓包,请求与回显应答

传输控制协议(TCP)

TCP的特点:

字节流的服务:传输的数据可视为无结构的字节流

面向连接的服务:在数据进行传输之前,TCP协议需要先建立连接,之后的TCP报文在此连接的基础上传输

可靠传输服务:基于校验和应答重复机制保证传输的可靠性,接收方对接收到的报文进行校验和计算,如果有误,不发送确认应答,发送方在超时后会自动重发此报文

缓冲传输:缓冲传输可以延迟传输应用层的数据,允许将应用程序需要传送的数据积攒到一定的数量才进行集中发送

全双工传输:各主机TCP协议以全双工的方式进行数据流交换

流量控制:TCP协议的滑动窗口机制,支持主机间的端到端的流量控制

下面是TCP的抓包

用户数据报文协议(UDP)

UDP的特点:

无连接不可靠的服务:数据传输不需要建立连接,需要应用层自己构建顺序机制和发送接收的确认机制

执行速度比TCP快:多用在系统资源受限的系统

下面是UDP的抓包

地址解析协议(ARP)

ARP作用:在局域网中必须知道网络设备的硬件地址才能向目的主机发送数据,在Internet中数据传输的目的地址是IP地址,数据要能够正确的传输,必须建立IP地址和硬件地址的对应关系,ARP就是建立这种关系的协议

在链路层已有抓包,这里就不在重复抓包了

子网划分:

等长划分:如果一个子网地址块是原来网段的1/2的n,子网掩码就在原网段的基础上后移n位

变长划分:如果一个子网地址块是原来网段的1/2,子网掩码就在原网段的基础上后移n位,不等长子网,子网掩码也不同

发布了33 篇原创文章 · 获赞 7 · 访问量 8355

猜你喜欢

转载自blog.csdn.net/muchong123/article/details/95853735
今日推荐