TCP/IP协议簇及IP首部详解

TCP/IP网络

熟悉TCP/IP协议簇及IP协议,有助于我们开发健壮的网络应用程序,快速调试和定位问题。TCP/IP协议簇设计为4层架构,每层提供了不同的网络传输能力,如图所示

TCP/IP协议簇及IP首部详解_第1张图片

  1. 链路层(Data Link Layer):为两个物理线路上连接的相邻节点间提供可靠通信,抽象了物理层线路,使得其称为网络中一条无差错的逻辑线路,如两个以太网网线连接的主机、两台通过RS485连接的设备。一般性交换机工作于链路层,两个通过交换机连接的主机一般也是通过链路层通信即可,也是我们常说的二层交换。对通过1个或多个二层交换机相连的主机,均可被看作逻辑上的“相邻”节点,因为交换机基于链路层做转发,提供了透明的数据传输服务。链路层上的传输单元通常会被称为数据帧(data frame)。
  2. 网络层(Network Layer): 提供了跨节点跨网络的通信能力,可实现不同网络系统间主机的通信。路由器工作于网络层,通过路由器实现不同网络间的通信。网络层定义了点对点(即不同宿主机)之间通信方式,包括单播(一对一)、多播(一对多)、广播(一对所有),最常用的网络层协议即IP协议。网络层的数据传输单元一般称为数据报(Datagram),如本文讲述的最常用网络协议IP,传输单元称为IP数据报(IP datagram)。
  3. 传输层(Transport Layer): 提供端到端的网络通信能力,即不同节点主机上指定端口(进程)应用间的通信。当一个IP数据报被传输到主机A时,被传递到传输层,传输层协议(如TCP、UDP)可通过端口知悉该数据段(segment)属于哪个应用进程,从而正确传递数据到应用。传输层数据被称为数据段或分节(data segment)。关于TCP与UDP,可参见连接5。
  4. 应用层(Application Layer): 处于协议簇分层最上层,应用层一般处理业务数据,常见应用层协议有HTTP、Telnet、FTP等。开发人员也可以自定义应用层协议来实现自己的业务需求,如定义个即时通讯软件的消息类型(上线、下线、聊天内容等)。应用层的数据被称为数据包或报文。
  5. https://blog.csdn.net/SEU123WW/article/details/124298243?spm=1001.2014.3001.5502https://blog.csdn.net/SEU123WW/article/details/124298243?spm=1001.2014.3001.5502

协议架构中每层对上层提供服务,同时也是下层的服务对象,每一层有对应的协议格式和首部(Header)。一般数据帧在被接收到后的解析过程是自下而上的去Header过程,数据包在发送时是自上而下的加Header过程,如果所示。

TCP/IP协议簇及IP首部详解_第2张图片

IP协议

TCP/IP协议簇及IP首部详解_第3张图片

IP Header

TCP/IP协议簇及IP首部详解_第4张图片

首部(Header)字段含义:

  1. Version:占4bits,表示协议版本,目前主流使用IPv4和IPv6,IPv6的协议特性在网络编程专栏单独讲述,本文主要针对IPv4说明。
  2. IHL:Internet Header Length,占4bits,IP协议首部长度,单位:32bit(即4字节),此字段也指示了IP数据报的data起始位置,最小值:5,表明IP首部最小长度20字节。
  3. Type of Service:缩写TOS,占8bits,表示服务类型。用于指定IP数据报传输的等级、重要性、时延等特性,具体字段如下图所示。
  4. Total length:16bits,IP数据报总长度,包括首部+数据,单位:字节,最大表示65535。
  5. Identification:16bits,由发送方填充的字段,用于帮助组装IP数据报的分片。
  6. Flag+fragment offset:16bits,表示IP数据报的分片信息,在IP数据报超过其网络的传输长度时,会被分割为多个IP数据报,分片的IP数据报达到接收端后,又会被重新组装为一个完整的IP数据报,如下图所示。
  7. Time to Live:TTL,8bits,IP数据报的生存时间,单位:秒。为了避免网络环路或故障导致一个数据报无限的在网络中被转发,每当数据报被传输一次,存活时间就对应递减,当此字段等于0时,该数据就被丢弃。目前IPv4网络一般情况设定此字段为经过的路由转发跃点数,每当IP数据报经过一个转发结点时,递减1,当值为0时,则丢弃,此情况经过最大跳数为255。
  8. Protocol:8bits,用于指示上层(即传输层)协议类型。发送端填充,接收端主机可根据此字段决策将该IP数据报用于递送到上层哪个协议类型处理(如TCP、UDP、SCTP)。
  9. Header Checksum:首部校验和,用于IP数据报首部数据校验。因为IP数据报首部在传输过程中会变化(如TTL字段),所以每个转发及节点都需要进行校验和计算和比对,并重新计算填充后转发。用于保护IP首部数据的正确性。
  10. Source Address:32bits,源地址,即发送端IP地址。
  11. Destination Adress:32bits,目的端IP地址。

注:IP首部长度是4字节整数倍,最小长度20字节。

Type of Service图示:

TCP/IP协议簇及IP首部详解_第5张图片

Flags+Fragment Offset图示:

TCP/IP协议簇及IP首部详解_第6张图片

你可能感兴趣的:(网络编程,网络通信,网络协议,tcp/ip)