ip协议提供的服务类型是无连接的数据报服务。网络之间互连的协议也就是为计算机网络相互连接进行通信而设计的协议
一、IP协议介绍
IP协议是一种best efforts协议,不保证可靠性,数据包可能重复、丢失;无连接协议,同一个连接中的多个报文被独立对待。IP协议主要定义了数据传送的基本单位;执行路由功能;主要规定了主机和路由器应该如何处理数据包;在什么情况下产生错误信息;以及什么情况下应该丢弃数据包。
目前普遍使用的还是IPv4,报文格式如下:
我们可以看到,IP数据报的报头上一个可选填充字段,长度为0-40字节,因此IP数据报的报头的长度应该是20-60字节。接下来我们浏览一下百度产生数据报,使用wireshark抓取一个TCP数据报,观看其IP报头的部分,结合头部做实际的分析:
分析说明:
· 版本(4bit):4代表IPv4
· 首部长度(4bit):这里的5代表5*4=20,将这里的数乘以4就是首部的长度,因此我们抓取的这个数据报的IP首部长度为20
· 区分服务(8bit):用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过,其一般为0
· 总长度(16bit):代表IP数据报的总长度,单位是字节,共16位,因此IP数据报最大长度为2^16-1=65535字节
· 标识(16bit):用于标识IP数据报。由于在不同的网络环境中的MTU不同,IP数据报有时需要分片,为了正确重组IP数据报,故每个数据报有标识字段,标识该分组的一个随机号
· 标志(3bit):最低一位为MF(more fragment)标识后面是否还有碎片,中一位DF(don’t fragment)表示该数据报是否允许被分片
· 片偏移(13bit):用于标识该碎片在整个数据报中的位置
· 检验和(16bit):仅校验头部,而不检验数据部分
· TTL(8bit):单位是路由次数,表示最多经过多少路由
· 协议(8bit):携带的数据是何种协议,即该数据应该交付至哪层传输层协议,其中6表示TCP,17表示UDP
· 源IP(16bit)
· 目的IP(16bit)
其中一个IP数据包的包头长度最小为20bit
IP协议对应于OSI标准模型的网络层TCP/IP:
数据链路层:ARP,RARP
网络层: IP,ICMP,IGMP
传输层:TCP ,UDP,UGP
应用层:Telnet,FTP,SMTP,SNMP.
OSI:
物理层:EIA/TIA-232, EIA/TIA-499, V.35, V.24, RJ45, Ethernet, 802.3, 802.5, FDDI, NRZI, NRZ, B8ZS
数据链路层:Frame Relay, HDLC, PPP, IEEE 802.3/802.2, FDDI, ATM, IEEE 802.5/802.2
网络层:IP,IPX,AppleTalk DDP
传输层:TCP,UDP,SPX
会话层:RPC,SQL,NFS,NetBIOS,names,AppleTalk,ASP,DECnet,SCP
表示层:TIFF,GIF,JPEG,PICT,ASCII,EBCDIC,encryption,MPEG,MIDI,HTML
应用层:FTP,WWW,Telnet,NFS,SMTP,Gateway,SNMP
今天的分享就到这了,感谢您的阅读,若是想要了解更多服务器技术干货,关注我主页更精彩!