| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> osi与TCP/IP协议簇 -> 正文阅读 |
|
[网络协议]osi与TCP/IP协议簇 |
目录 分层模型:定制协议目的:把复杂问题简单化 分层思想:(了解架构存在的意义) 通信需求 ~~> (双方要定制好标准,此标准称为协议,任何两个点通信必须协议达成一致 )定义协议标准 完成一件事,需要的协议太多,不分层很难设计出来。~~>需要分层 所有的标准都是有关联的,下层为上层提供服务,但每一层的工作都是独立的 概念:将复杂的流程分解俄日几个功能相对单一的子过程 ——使整个流程更加清晰,复杂问题简单化 ——更容易发现问题并针对性的解决问题,效率会越来越高 分层思想在编程中的应用: 假如在程序当中想打印名字:
这样没有问题,但假如这个程序有几万行,现在要把zhanghe改变成zhangjia的话,那么肯定要改好多行,很不方便,假如我们使用分层的思想,我们可以把zhanghe定义一个变量,改动时只改动一个变量即可,如下:
eg: 交换机,防火墙,路由器,电脑各司其职 不分层(综合设备)的结果:造价高 为了把复杂问题简单化,将架构分三层: (同层使用相同协议,但每一层都是独立的 ) 写信人与收信人 邮局 运输部门 OSI七层模型(IP,互联网中)通信~~>协议 ~~>协议分层 ISO(国际标准组织)发布了OSI参考模型 ~~> OSI7层模型 OSI(open system interconnection)是开放的通信系统互联参考模型 电脑(综合体)可完成整个七层工作(全世界统一) 表示层和会话层被应用层吞并 ~~> 诞生了TCP/IP五层协议栈 传输层中有一个重要协议:TCP协议 OSI七层模型与TCP/IP五层协议站 同时诞生,OSI先有模型,TCP/IP先有协议 后来将数据链路层,物理层合并为同一层,称为网络接口层 称为TCP/IP四层 可以与世界通信 TCP/IP五层协协议簇/协议栈应用层 传输层 网络层 数据链路层 物理层:网线只能完成这一层功能 数据传输过程:(1)数据的封装与解封装过程:应用层:人类可以直接使用的软件 eg: 在QQ软件中写:hello(由应用层的软件生成) 回车后,hello传到传输层,封装(相当于给信加上信封) TCP与UDP的共同的功能:判断hello是从应用层中的什么软件传下来的,检查端口号,显示源端口,精确控制(QQ服务器),目标端口 TCP与UDP的区别: UDP:无连接服务。 传送快,尽最大努力交付,即不保证可靠交付,但没有任何的防御能力,不可靠传输 适用于对高速传输和实时性有较高的通信或广播通信。 UDP支持一对一,一对多,多对一和多对多的交互通信 不会向TCP一样先建立一个连接,而是直接传递,不管对方是否存在,也不管对方是否正常。 TCP:面向连接。提供可靠的数据传输。需要建立连接,连接中有数据重传机制。通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达 Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。 每一条TCP连接只能是点到点的 传输层功能:通过端口号完成进程到进程的通信 解释:一个电脑可能有多个进程同时在使用网络连接,当网络包达到主机之后,传输层会将数据正确递交给某个应用程序。 提供了应用程序间的通信,它负责数据能够从发送端传输到接收端。 功能: 一、格式化信息流 二、提供可靠传输 为实现可靠传输,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。 只有应用层的协议才有端口号 端口号: 表示一台计算机中的特定进程所提供的服务。网络中的计算机是通过IP地址来代表其身份的,它只能表示某台特定的计算机,但是一台计算机上可以同时提供很多个服务,如数据库服务、FTP服务、Web服务等,我们就通过端口号来区别相同计算机所提供的这些不同的服务 端口号标识了一个主机上进行通信的不同应用程序。在TCP/IP协议中, 用"源IP", "源端口号", "目的IP", "目的端口号", "协议号" 这样一个五元组来标识一个通信(可以通过 netstat -n查看,协议号指的是那个使用协议)。 ? 一个进程可以绑定多个端口号,但是一个端口号不能被多个进程绑定。 网络层:完成点到点的通信 有IP协议,有IP包头,把原IP和目标IP写入 数据链路层: 交换机(只能识别MAC地址,根据它来交换数据)工作在数据链路层,网络层的IP数据报传送到数据链路层就成为帧的数据部分。在帧的数据部分的前面和后面分别添加上首部和尾部,就构成了一个完整的帧(Frame)。 MAC子层含原MAC地址和标MAC地址,给交换机看 FCS:校验手段,有四个字节,循环校验算法 网线只识别数字信号 (2)数据的解封装过程对方的网卡接收到: 一个数据流是由若干个帧组成的 最古老的防火墙只工作在网络层,进行数据过滤 物理层:physical layer(层)为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境。是介质和信号 1.设备(传输介质):网线(传输最大距离100米)/光纤/空气 2.比特bit 8 bit=1 Byte (数字信号) 1024B=1KB 1024KB=1M(一百万) 1024MB=1GB 1024GB=1TB 1024TB=1PB 信号:模拟信号:无法复原,会失帧(衰减,噪音),可用放大器解决,但模拟信号中的噪音也会被放大,所以放大器只能为模拟信号提供远距离传输 数字信号:抗干扰能力强,但传输距离短,值是固定的,可复原,经过中继器(数字设备都有中继器的作用)可复原 模拟信号,数字信号统称电信号 光信号 总结: TCP/IP 5层协议簇/协议栈 数据/PDU 应用层 PC/防火墙 数据段/段(Fragment) 传输层 防火墙 报文/包/IP包(packet) 网络层 路由器 帧Frame 数据链路层 交换机 网卡 比特bit 物理层 网线 一个电脉冲是一个比特,电脉冲组合在一起,叫数字信号,也叫比特流 8bit = 1 Byte字节 协议 应用层:HTTP HTTPS SSH Telent FTP DHCP SMTP ? ? ? ? ? ? ? ? 80 443 22 23 20/2167/68 25 ? ? ? ? ? ? ? ?POP3 RDP SMB Mysql ? ? ? ? ? ? ? ?110 3389 445 3306 传输层: TCP UDP 网络层: ICMP IP ARP 数据链路层: MAC子层协议 物理层: 比特流 客户机向服务器发送请求时,使用UDP协议 只有IP协议可以封装IP包头,只有IP包头可以封装源IP和目的IP 数据封装关联图: |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 9:41:55- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |