TCP/IP四层模型及各层协议首部详述

1. OSI七层和TCP/IP四层的关系

1.1 OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。

1.2 OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。

1.3 OSI是一种理论下的模型,而TCP/IP已被广泛使用,成为网络互联事实上的标准。

TCP:transmission control protocol 传输控制协议

UDP:user data protocol 用户数据报协议

 

OSI七层网络模型

TCP/IP四层概念模型  

对应网络协议

应用层(Application)

应用层

HTTP、TFTP, FTP, NFS, WAIS、SMTP

表示层(Presentation)

Telnet, Rlogin, SNMP, Gopher

会话层(Session)

SMTP, DNS

传输层(Transport)

传输层

TCP, UDP

网络层(Network)

网络层

IP, ICMP, ARP, RARP, AKP, UUCP

数据链路层(Data Link)

数据链路层

FDDI, Ethernet, Arpanet, PDN, SLIP, PPP

物理层(Physical)

IEEE 802.1A, IEEE 802.2到IEEE 802.11

 

 

 

2. OSI七层协议模型

应用层协议需要掌握的是:HTTP(Hyper text transfer protocol)、FTP(file transfer protocol)、SMTP(simple mail transfer rotocol)、POP3(post office protocol 3)、IMAP4(Internet mail access protocol)

 

3. TCP/IP四层模型

3.1 应用层:对应OSI中的应用层、表示层、会话层

3.2 物理链路层:对应OSI中的数据链路层、物理层(也有叫网络接口层)

3.3 数据包说明:

IP层传输单位是IP分组,属于点到点的传输;TCP层传输单位是TCP段,属于端到端的传输

 

UPD首部

UPD首部格式如下:

TCP/IP四层模型及各层协议首部详述_第1张图片

UDP 是无连接的,即发送数据之前不需要建立连接

UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。

UDP 是面向报文的。UDP 没有拥塞控制,很适合多媒体通信的要求。

UDP 支持一对一、一对多、多对一和多对多的交互通信。

UDP 的首部开销小,只有 8 个字节

  • 端口号:用来表示发送和接受进程。由于 I P层已经把I P数据报分配给T C P或U D P(根据I P首部中协议字段值),因此T C P端口号由T C P来查看,而 U D P端口号由UDP来查看。T C P端口号与UDP端口号是相互独立的。

  • 长度:UDP长度字段指的是UDP首部和UDP数据的字节长度。该字段的最小值为 8字节(发送一份0字节的UDP数据报是 O K)。

  • 检验和:UDP检验和是一个端到端的检验和。它由发送端计算,然后由接收端验证。其目的是为了发现UDP首部和数据在发送端到接收端之间发生的任何改动


TCP报文段首部

TCP报文段首部的前20个字节是固定的,后面的字节是根据需要增加的。首部格式如下:

TCP/IP四层模型及各层协议首部详述_第2张图片

TCP 提供可靠交付的服务,保证数据无差错、不丢失、不重复、按序到达。

TCP 提供全双工通信。

TCP虽然是面向字节流的,但TCP传送的数据单元却是报文段。一个TCP 报文段分为首部和数据两部分

  • 1、第一个4字节: 
    • (1)源端口,16位;发送数据的源进程端口
    • (2)目的端口,16位;接收数据的进程端口
  • 2、第二个4字节与第三个4字节 
    • (1)序号,32位;代表当前TCP数据段第一个字节占整个字节流的相对位置;
    • (2)确认号,32位;代表接收端希望接收的数据序号,为上次接收到数据报的序号+1,当ACK标志位为1时才生效。
  • 3、第四个4字节: 
    • (1)数据偏移,4位;实际代表TCP首部长度,最大为60字节。
    • (2)6个标志位,每个标志位1位; 
      SYN,为同步标志,用于数据同步; 
      ACK,为确认序号,ACK=1时确认号才有效; 
      FIN,为结束序号,用于发送端提出断开连接; 
      URG,为紧急序号,URG=1是紧急指针有效; 
      PSH,指示接收方立即将数据提交给应用层,而不是等待缓冲区满; 
      RST,重置连接。
    • (3)窗口值,16位;标识接收方可接受的数据字节数。详解可参看:http://www.cnblogs.com/woaiyy/p/3554182.html
  • 4、第五个4字节 
    • (1)校验和,16位;用于检验数据完整性。
    • (2)紧急指针,16位;只有当URG标识位为1时,紧急指针才有效。紧急指针的值与序号的相加值为紧急数据的最后一个字节位置。用于发送紧急数据。

IP报文

IP报文是在网络层传输的数据单元,也叫IP数据报。IP报文格式如下图


  • 1、第一个4字节(也就是第一行):

    • (1)版本号(Version),4位;用于标识IP协议版本,IPv4是0100,IPv6是0110,也就是二进制的4和6。
    • (2)首部长度(Internet Header Length),4位;用于标识首部的长度,单位为4字节,所以首部长度最大值为:(2^4 - 1) * 4 = 60字节,但一般只推荐使用20字节的固定长度。
    • (3)服务类型(Type Of Service),8位;用于标识IP包的优先级,但现在并未使用。
    • (4)总长度(Total Length),16位;标识IP数据报的总长度,最大为:2^16 -1 = 65535字节。
  • 2、第二个四字节:

    • (1)标识(Identification),16位;用于标识IP数据报,如果因为数据链路层帧数据段长度限制(也就是MTU,支持的最大传输单元),IP数据报需要进行分片发送,则每个分片的IP数据报标识都是一致的。
    • (2)标志(Flag),3位,但目前只有2位有意义;最低位为MF,MF=1代表后面还有分片的数据报,MF=0代表当前数据报已是最后的数据报。次低位为DF,DF=1代表不能分片,DF=0代表可以分片。
    • (3)片偏移(Fragment Offset),13位;代表某个分片在原始数据中的相对位置。
  • 3、第三个四字节:

    • (1)生存时间(TTL),8位;以前代表IP数据报最大的生存时间,现在标识IP数据报可以经过的路由器数。
    • (2)协议(Protocol),8位;代表上层传输层协议的类型,1代表ICMP,2代表IGMP,6代表TCP,17代表UDP。
    • (3)校验和(Header Checksum),16位;用于验证数据完整性,计算方法为,首先将校验和位置零,然后将每16位二进制反码求和即为校验和,最后写入校验和位置。
  • 4、第四个四字节:源IP地址

  • 5、第五个四字节:目的IP地址


以太网的帧格式如下所示:

TCP/IP四层模型及各层协议首部详述_第3张图片 

在图中,帧末尾就是CRC校验码。

此外,对其他字段解释如下:

字段 Meaning
目的地址 MAC地址
源地址 MAC地址
类型 三种值,分别对应IP、ARP、RARP
最常用的 MAC 帧是 以太网V2的格式

TCP/IP四层模型及各层协议首部详述_第4张图片

注:

  1. 以太网帧中的数据长度规定最小46字节,最大1500字节。ARP和RARP数据包的长度不够46字节,要在后面补填充位。最大值1500称为以太网的最⼤大传输单元MTU,不同的网络类型有不同的MTU。如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片(fragmentation)。
  2. ifconfig命令的输出中也有“MTU:1500”。注 意,MTU这 个概念指数据帧中有效载荷的最大长度,不包括帧首部的长度。
  3. MAC地址是指网卡的硬件地址,长度是48位。是在网卡出厂时固化的。用ifconfig命令看一下,“HWaddr 00:15:F2:14:9E:3F”部分就是硬件地址。


你可能感兴趣的:(计算机网络)