一.TCP/IP四层模型和OSI七层模型对比
OSI是一个理论上的网络通信模型,而TCP/IP则是实际运行的网络协议,我们把OSI 七层网络模型和TCP/IP四层概念模型对应,然后将各种网络协议归类。
OSI七层模型
OSI七层网络模型功能传输单位
应用层(Application)提供具体网络服务数据Data
表示层(Presentation)数据表示,包括数据的格式、加密、压缩数据Data
会话层(Session)建立、维护和中止会话数据Data
传输层(Transport)提供端对端连接片Segment
网络层(Network)网络寻址和最佳路径选择包Packet
数据链路层(Data Link)介质访问控制帧Frame
物理层(Physical)二进制传输比特Bit
TCP/IP四层模型和OSI七层模型对应表
OSI七层网络模型TCP/IP四层概念模型对应网络协议
应用层(Application)
应用层TFTP, FTP, NFS, WAIS
表示层(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
二.TCP/IP模型各层功能
1.网络接口层
TCP/IP概念模型的网络接口层(也叫链路层)把OSI的数据链路层和物理层放在一起,对应的网络协议主要是:Ethernet、PPP、FDDI和能传输IP数据包的任何协议。网络接口层负责数据帧(Frame)的发送和接收,帧是独立的网络信息传输单元。
2.网际层
TCP/IP概念模型的网际层对应OSI的网络层,管理离散的计算机间的数据传输,如IP 协议为用户和远程
计算机提供了数据包(Packet)的传输方法,确保数据包能正确地到达目的机器。这一过程中,IP协议和其他网际层的协议共同用于数据传输。重要的网际层协议包括ARP(地址解析协议)、ICMP(Internet控制消息协议)、IGMP(Internet组管理协议)和IP协议(网际协议)。
3.传输层
TCP/IP概念模型的传输层对应OSI的传输层。传输层提供应用程序间的通信。其功能包括:格式化信息流和提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认信息,如果分组丢失,必须重新发送。传输层包括TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议),它们是传输层中最主要的协议。TCP建立在IP之上,定义了网络上程序到程序的数据传输格式和规则,提供了IP数据包的传输确认、丢失数据包的重新请求、将收到的数据包按照它们的发送次序重新装配的机制。TCP 协议是面向连接的协议,类似于打电话,在开始传输数据之前,必须先建立明确的连接。UDP也建立在IP之上,但它是一种无连接协议,两台计算机之间的传输类似于传递邮件:消息从一台计算机发送到另一台计算机,两者之间没有明确的连接。UDP不保证数据的传输,也不提供重新排列次序或重新请求的功能,所以说它是不可靠的。虽然UDP 的不可靠性限制了它的应用场合,但它比TCP具有更好的传输效率。
举例说明传输层的作用,以太网无法接收大于1514字节的数据包,其中14字节是以太网帧的帧头。发送
方节点的传输层将数据分割成较小的数据片(Segment),同时对每一数据段安排一序列号,以便数据到达接收方节点的传输层时,能以正确的顺序重组,该过程即被称为排序。
4.应用层
TCP/IP概念模型中的应用层对应OSI的应用层、表示层和会话层。应用层位于协议栈的顶端,它的主要任务是应用。应用层一般是可见的,如利用FTP(File Transfer Protocol,文件传输协议)传输一个文件(Data),请求一个和目标计算机的连接,在传输文件的过程中,用户和远程计算机交换的一部分是能看到的。常见的应用层协议有:HTTP,FTP,Telnet,SMTP和Gopher等。
三.TCP/IP模型各层传输单位
一个UDP报文的分解模型
1.MAC帧(网络接口层)
Ethernet II(ARPA)是最常见的以太网MAC帧格式,帧头长14字节,结构如下:1)目的MAC地址(Destination):占6字节
2)源MAC地址(Source):占6字节
3)协议类型(Type):占2字节
MAC地址也叫硬件地址,在网络底层的物理传输过程中,是通过MAC地址来识别主机的,它一般也是全球唯一的。MAC地址由48比特长的16进制的数字组成,例如:
44-45-53-54-00-00(ff- ff- ff- ff- ff- ff为广播地址)。0-23位叫做组织唯一标志符,是识别LAN(局域网)节点的标识,24-47位是由厂家自己分配,其中第40位是组播地址标志位。MAC地址通常是由网卡生产厂家烧入网卡的EPROM,它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。
Ethernet II MAC帧格式
在上图通过wireshark捕获的Ethernet II帧里,目的MAC地址为0e-00-0e-00-00-00,源MAC地址为94-a8-20-00-0e-00,协议类型为IP(0x0800)。
2.IP数据包(网际层)
IP数据包也叫IP报文分组,它由IP报文头和IP报文用户数据组成,IP报文头的长度一般在20到60个字节之间,而一个IP分组的最大长度则不能超过65535个字节。
1)版本(Version):占4位,指IP协议的版本号。目前的主要版本为IPV4,即第4版本号,也有一些教育网和科研机构在使用IPV6。在进行通信时,通信双方的IP协议版本号必须一致,否则无法直接通信。
2)首部长度(Header length):占4位,指IP报文头的长度。最大的长度(即4个bit 都为1时)为15个长度单位,每个长度单位为4字节(TCP/IP标准,DoubleWord),所以IP协议报文头的最大长度为60个字节,最短为上图所示的20个字节。tcpip协议分为哪几层作用
3)服务类型(Differentiated Service Field):占1个字节,用来获得更好的服务。其中的前3位表示报文的优先级,后面的几位分别表示要求更低时延、更高的吞吐量、更高的可靠性、更低的路由代价等。对应位为1即有相应要求,为0则不要求。
4)总长度(Total Length):占2个字节,指报文的总长度。注意这里的单位为字节,而不是4字节,所以一个IP报文的最大长度为65535个字节。
5)标识(Identification):该字段标记当前分片为第几个分片,在数据报重组时很有用。
6)标志(Flags):该字段用于标记该报文是否为分片(有一些可能不需要分片,或不希望分片),后面是否还有分片(是否是最后一个分片)。
7)片偏移(Fragment offset):指当前分片在原数据报(分片前的数据报)中相对于用户数据字段的偏移量,即在原数据报中的相对位置。
8)生存时间(Time to live):该字段表明当前报文还能生存多久。每经过1ms或者一个网关,TTL的值
自动减1,当生存时间为0时,报文将被认为目的主机不可到达而丢弃。在windows中输入ping命令,在返回的结果中即有TTL的数值。
9)协议(Protocal):该字段指出在上层(TCP/IP的传输层)使用的协议,可能的协议有UDP、TCP、ICMP、IGMP、IGP等。
10)首部校验和(Header checksum):用于检验IP报文头部在传播的过程中是否出错,主要校验报文头中是否有某一个或几个bit被污染或修改了。
11)源IP地址(Source):占4个字节,每一个字节为0~255之间的整数,即我们日常见到的IP地址格式。
12)目的IP地址(Destination):占4个字节,每一个字节为0~255之间的整数,即我们日常见到的IP地址格式。
IP数据包格式