1.OSI七层模型和TCP/IP四层模型的关系
OSI是一种理论写的模型,TCP/IP借鉴了OSI的服务、接口、协议、分层的概念建立TCP/IP模型。
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)
HTTP:超文本传输协议
FTP:文本传输协议
SMTP:简单邮件传输协议
POP3:邮政协议第3版
IMAP4:因特网信息访问协议第4版
3.TCP/IP四层模型
(1)应用层
功能:负责处理应用程序的逻辑,比如文件传输,名称查询和网络管理等。
常用协议:
(2)传输层
功能:为两台主机上的应用程序提供端到端的通信。与网络层使用的逐跳通信方式不同,传输层只关心通信的起始端和目的端,而不在乎数据包的中转过程。
主要协议:
(3)网络层
功能:实现数据包的选路和转发。
常用协议:
(4)数据链路层
功能:实现了网卡接口的网络驱动程序,以处理数据在物理媒介(如以太网、令牌环等)上的传输。
2.OSI七层参考模型
先来看看最早用的OSI七层参考模型,自底向上依次是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。下图则为由OSI七层参考模型到TCP/IP体系结构产生过程。
TCP/IP体系结构的优点:
(1)简化了计算机网络的结构,由原来的七层编导现在的四层,但是其功能并没有减少。
(2)每一层即独立又有联系,独立是因为如果那一层出现问题了不会影响其他层的工作,联系是因为上层协议又使用下层协议提供的服务。
由上也可以看到TCP/IP协议族是一个四层的协议系统,从下到上依次是数据链路层、网络层、传输层、应用层。每一层通过若干协议完成不同的功能,上层协议使用下层协议提供的服务。下来我就谈一下每一层的功能和常用协议。
1、数据链路层
功能:实现了网卡接口的网络驱动程序,以处理数据在物理媒介(如以太网、令牌环等)上的传输。
对应设备:网线、网桥、集线器、交换机
常用协议:
(1)ARP(地址解析协议):它实现IP地址到物理地址(通常是MAC地址,通俗的理解就是网卡地址)的转换。
(2)RARP(逆地址解析协议):顾名思义,它和ARP是相反的,它是实现从物理地址到IP地址的转换。
那有人就会问它们的用途是什么呢???
ARP用途:网络层使用IP地址寻找一台机器,而数据链路层则是使用物理地址寻找一台机器,因此网络层必须先将目标机器的IP地址转化成物理地址,才能使用数据链路层提供的服务。
RARP用途:RARP协议仅用于网络上的某些无盘工作站,因为缺少储存设备,无盘工作站无法记录自己的IP地址,然而通过RARP就可以看到从物理地址到IP地址的映射。
2、网络层
功能:实现数据包的选路和转发。
对应设备:路由器
常用协议:
(1)IP协议(英特网协议)根据数据包的目的IP地址来决定如何将它发送给目标主机。如果数据包不能直接发送给目标主机,那么IP协议为它寻找一个合适的下一跳路由器,将数据包交给路由器来转发,多次之后数据包将到达目标主机,或者因发送失败而被丢弃。
(2)ICMP协议是网络层的另一个重要协议,它是IP协议的重要补充,主要用于检测网络连接。
8位类型:将ICMP报文分为两大类:一类是差错报文,比如目标不可达(类型值为3)和重定向(类型值为5);另一类是查询报文,用来查询网络信息。
有的ICMP报文还用8位代码字段细分不同的条件。比如代码值0表示网络重定向,代码值1表示主机重定向。
16位校验和:对整个报文(包括头部和内容部分)进行循环冗余校验(CRC)。
注意:ICMP协议并非严格意义上的网络层协议,因为它使用了处于同一层的IP协议提供的服务,而一般来说,上层协议使用下层协议提供的服务。
3、传输层
功能:为两台主机上的应用程序提供端到端的通信。与网络层使用的逐跳通信方式不同,传输层只关心通信的起始端和目的端,而不在乎数据包的中转过程。
主要协议:
(1)TCP协议(传输控制协议):为应用层提供可靠的、面向连接的和流式服务。
(2)UDP协议(用户数据报协议):为应用层提供不可靠的、无连接的和数据报服务。(TCP和UDP协议的详解和区别将在下一篇详讲)
(3)SCTP协议(流控制传输协议)它是为在英特网上传输电话信号而设计的,这里不再细说。
4、应用层
功能:负责处理应用程序的逻辑,比如文件传输,名称查询和网络管理等。
注意:数据链路层、网络层、传输层复制处理网络通信 细节,所以这些部分必须稳定且高效,因此它们都在内核空间实现(如上图二),而应用层在用户空间中实现,因为它负责众多逻辑,在内核中实现的话,则会使内核变得非常庞大。也有少数服务器程序是在内核中实现,这样代码就不用在用户空间和内核空间中来回切换(主要是数据的复制)提高了工作效率。
常用协议:
(1)OSPF(开放最短路径优先)协议:是一种动态路由更新协议,用于路由器之间的通信,以告知对方各自的路由信息。
(2)DNS(域名服务)协议:提供机器域名到IP地址的转换。(如将www.baidu.com转化成百度的IP,输入域名就直接可以进入。因为IP地址记的时候太麻烦,就像每个人都是由身份证唯一标识的,但为了好记就起了名字。DNS就是一个将姓名与身份证对应的过程)
(3)telnet协议是一种远程登陆协议,使我们能在本地完成远程任务。
(4)HTTP协议(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式。
说完这些我再简单的说一下数据传输的过程都经历了什么!!!
下面是一个封装过程
一个数据从一台主机应用程序上发出后,传输层根据协议选择传输方式,如选择TCP协议,则在数据前面加上自己的头部,到达网络层后,网络层又选择协议,再加上自己的头部信息交给下一层,再到数据链路层后加上以太网头部后成为一个以太网帧,经过路由转发,到达目标主机后有一层层的根据头部信息选择协议,然后去掉各自的头部,一层层的交给上一层,最终到达目标主机的应用程序上。
3.OSI七层和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 用户数据报协议
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首部格式如下:
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 提供可靠交付的服务,保证数据无差错、不丢失、不重复、按序到达。
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位;标识接收方可接受的数据字节数。
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地址
以太网的帧格式如下所示:
在图中,帧末尾就是CRC校验码。
此外,对其他字段解释如下:
最常用的 MAC 帧是 以
注:文章来源:https://www.toymoban.com/news/detail-762844.html
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”部分就是硬件地址。文章来源地址https://www.toymoban.com/news/detail-762844.html
到了这里,关于OSI七层模型和TCP/IP四层模型的关系的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!