Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

网络模型、ISO/OSI七层模型、TCP/IP模型 #11

Open
XingGuoZM opened this issue Jun 15, 2023 · 0 comments
Open

网络模型、ISO/OSI七层模型、TCP/IP模型 #11

XingGuoZM opened this issue Jun 15, 2023 · 0 comments

Comments

@XingGuoZM
Copy link
Owner

XingGuoZM commented Jun 15, 2023

最开始的时候网络协议是由网络公司自定义的,微软、苹果、思科等都有自己的网络协议,但这各家的协议是不能互联互通的。对于消费者来说这是技术垄断,买了苹果的设备就不能用微软的设备,因为他们的协议都是不一样的,没有统一的标准来规范网络协议,这极大阻碍了互联网的发展,因此国际标准化组织(ISO)制定了一个用于计算机或者通信系统间互联的标准体系,即开放式系统互联模型(OSI)。

这个标准解释了协议之间应该如何相互作用,OSI定义了网络互连的七层模型(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),TCP/IP是一组协议的代名词,它包括许多协议,组成了TCP/IP协议簇。它是把OSI七层模型简化成了四层模型(应用层、传输层、网络层、网络接口层),TCP/IP模型将OSI模型简化成4层,传输层和网络层被完整保留,因此网络中最核心的技术就是传输层和网络层技术。网络7层模型是一个参考标准,并非实现。网络4层模型是一个实现的应用模型

OSI模型是从上往下的,越底层越接近硬件,越上层越接近软件,这种分层模型是我们计算机科学中常用的方法,分层直接通过规定好的接口进行交互,每一层其实对它上一层或者下一层都是一个黑盒,其实他的上层和下层也不关心它的内部实现,只关心它们之间进行交互的接口,接口是规定的信息,要给到什么都是规定好的。传输层的数据称为段(segments),网络层的数据称为包(packages),数据链路层的数据称为帧(frames),物理层的数据称为比特流(bits)

这种分层模型的好处就是可以对任何一层进行独立升级和优化,只要保持接口不变那么这个模型整体就不会有问题。

应用层:为操作系统或网络应用程序提供网络服务的接口。起到了调用的作用,为应用软件而设的接口,设置与另一应用软件之间的通信,提供不同计算机间的文件传输、访问管理、电子邮件内容处理。例如: HTTP,HTTPS,FTP,TELNET,SSH,SMTP、DNS等

表示层:主要任务是把所传输的数据的抽象语法变换为传送语法,把不同计算机内部的不同形式转换为网络通信中的标准形式。此外对传送数据的加密解密、正文压缩还原也属于表示层的的任务,即数据的处理,表示、安全、压缩等,格式有,jpeg、ascii、decoic、加密格式等。如URL加密、口令加密、图片编码解码等

会话层:负责在数据传输中设置和维护计算机网络中两台计算机之间的通信连接。控制应用程序之间的会话能力,保持数据的单向传输,一对一,一对多的控制。如服务器验证用户登录、断点续传等

运输层:端到端传输数据的基本功能,高低层之间衔接的接口层,定义传输数据的协议端口号以及流控和差错校验,如TCP、UDP、进程、端口

网络层:定义ip编址,定义路由功能,进行逻辑地址的寻址,实现不同网络之间路径选择,如不同设备的数据转发。如IP地址、路由器、多层交换机、防火墙等

数据链路层(DataLink):定义数据的传输格式,如何传输,如何标识。建立逻辑连接、进行硬件地址寻址、差错校验等,将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。如MAC地址、网卡、网桥、二层交换机等

物理层(Physical):底层数据传输,建立、维护、断开物理连接。如中继器、集线器、网线等

rfc草案

网络七层模型与四层模型区别

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant